isp-uv-es/SEN2NAIP
收藏SEN2NAIP 数据集概述
数据集介绍
SEN2NAIP 是一个大型遥感数据集,旨在支持传统和基于参考的超分辨率(SR)模型训练。该数据集分为两个主要部分:
- 跨传感器数据集:包含 2,851 对来自 Sentinel-2 L2A 的低分辨率(LR)图像和来自国家农业影像计划(NAIP)的高分辨率(HR)图像。
- 合成数据集:包含 17,657 对 NAIP 和 S2like 图像对,这些图像是通过降解模型生成的,以匹配 Sentinel-2 图像的特征。
数据集下载
数据集可以通过以下代码从 Hugging Face Hub 下载:
下载跨传感器数据集
python from huggingface_hub import hf_hub_download
hf_hub_download( repo_id="isp-uv-es/SEN2NAIP", repo_type="dataset", filename="cross-sensor/cross-sensor.zip" )
下载合成数据集
python for i in range(1, 19): hf_hub_download( repo_id="isp-uv-es/SEN2NAIP", repo_type="dataset", filename="synthetic/synthetic_%02d.zip" % i )
可复现示例
加载跨传感器数据集
python import rioxarray import torch
DEMO_PATH = "https://huggingface.co/datasets/isp-uv-es/SEN2NAIP/resolve/main/demo/"
cross_sensor_path = DEMO_PATH + "cross-sensor/ROI_0000/" hr_data = rioxarray.open_rasterio(cross_sensor_path + "hr.tif") lr_data = rioxarray.open_rasterio(cross_sensor_path + "lr.tif") hr_torch = torch.from_numpy(hr_data.to_numpy()) / 255 lr_torch = torch.from_numpy(lr_data.to_numpy()) / 10000
加载合成数据集
python import opensr_degradation import rioxarray import datasets import requests import tempfile import torch import json
def load_metadata(metadata_path: str) -> dict: tmpfile = tempfile.NamedTemporaryFile(suffix=".json") with requests.get(metadata_path) as response: with open(tmpfile.name, "wb") as file: file.write(response.content) metadata_json = json.load(open(tmpfile.name, "r")) return metadata_json
DEMO_PATH = "https://huggingface.co/datasets/isp-uv-es/SEN2NAIP/resolve/main/demo/"
synthetic_path = DEMO_PATH + "synthetic/ROI_0001/"
hr_early_data = rioxarray.open_rasterio(synthetic_path + "early/01__m_4506807_nw_19_1_20110818.tif") hr_early_torch = torch.from_numpy(hr_early_data.to_numpy()) / 255 hr_early_metadata = load_metadata(synthetic_path + "late/metadata.json") lr_hat, hr_hat = opensr_degradation.main.get_s2like( image=hr_early_torch, table=hr_early_metadata["sim_histograms"], model="gamma_multivariate_normal_50" )
import matplotlib.pyplot as plt fig, ax = plt.subplots(1, 3, figsize=(10, 5)) ax[0].imshow(hr_early_torch[[3, 1, 2]].permute(1, 2, 0)) ax[0].set_title("NAIP") ax[1].imshow(hr_hat[[3, 1, 2]].permute(1, 2, 0)*3) ax[1].set_title("NAIPhat") ax[2].imshow(lr_hat[[3, 1, 2]].permute(1, 2, 0)*3) ax[2].set_title("S2like") plt.show()




