构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)
一、获取哨兵数据
首先进入欧洲航空局网站,哨兵1号由两颗极轨卫星A星和B星组成。两颗卫星搭载的传感器为合成孔径雷达(SAR),属于主动微波遥感卫星。
1.点击“Open Hub”
2.点击右上角完成账户注册(这一步很简单)。
3.点击下图中“1”,选择要查找的区域(本文以西安为例),选择完成后,点击“2”来完成具体的数据选择。
产品类型中:
SLC(Single Look Complex):这些产品包含原始SAR数据的相位和振幅信息,通常用于制作高分辨率SAR图像,进行地质勘探和地震监测等应用。(博主因为要用于SAR图像训练,所以选择了该产品类型)
GRD(Ground Range Detected:这些产品包含了原始合成孔径雷达数据的地表反射率信息,可以用于监测土地覆盖和变化,如农田、森林和城市。
OCN(Ocean):主要用于监测和研究地球的海洋环境,提供了关于海洋表面特征和动态的有用信息。
RAW属于为加工的原始SAR数据,加工后得到SLC、GRD、OCN。
传感器模式选项:
Stripmap(SM)模式: Stripmap模式提供了中等分辨率的SAR图像,适用于地质、环境和农业监测等应用。
Interferometric Wide (IW) 模式: IW模式具有较高的分辨率,适用于地表变形监测、森林监测和海洋应用。
Extra Wide (EW) 模式: EW模式提供更宽的覆盖范围,适用于大范围地表监测,如洪水监测和农业用途。
4.设置完毕后,点击搜索按钮,并选择一款产品加入购物车(为了防止下一次找不到),再点击下载按钮。得到的是一个非常大的压缩包。
二、处理哨兵计划产品数据
1.下载SNAP软件进行哨兵数据的处理,进入下载官网,选择版本。
2.打开软件,点击“File”,再点击“Open Product…”,选择刚刚下载的安装包,在“Bands”中就可以查看图像了(西安古城墙清晰可见23333)
至此,数据的获取就完成了,后续就可以进行其他专业处理了,本人后面只介绍如何导出成图片,以及分割图片
三、导出图片格式并切割图片
1.导出图片,点击“File”–>“Export”–>“Other”–>“View as image”,接下来在图片右侧窗口进行分辨率的选择。
2.切割图片。(因为本人需要训练网络,所以要分辨率较小的图片),这里本人使用python写了一个简单的脚本,使用到了PIL的Image库。
def batch_crop(input_dir, crop_size=128):
# input_dir 传入的照片路径
# crop_size 所截取图片的大小
# dirs = os.listdir(input_dir) # 保存input_dir目录下所有文件至dirs
# for item in dirs:
im = Image.open(input_dir)
print("图像尺寸(宽,高): ", im.size)
(width, height) = im.size
stepping = 32 # 设置步进大小,每隔32个像素点,截取一次
right_times = (width - crop_size) // stepping
down_times = (height - crop_size) // stepping
print("右移次数:", right_times)
print("下移次数:", down_times)
# left, top = 0, 0
number = 0
for i in range(right_times + 1):
for j in range(down_times + 1):
if i == right_times:
left = width - crop_size #此时顶格裁切
else:
left = stepping * i
if j == down_times:
top = height - crop_size
else:
top = stepping * j
im_crop = im.crop((left, top, left + crop_size, top + crop_size))
# 输入保存地址
im_crop.save(f'./xiAn_datasets/Amplitude-VV/{i}_{j}.png')
number += 1
print(number)