水经微图是一款用于下载高分辨率遥感影像的好用的软件,小编想利用其中的批量下载的功能下载超过100个小的研究区域的0.3米级的影像,这篇博客就详细介绍实现的细节。
1. 注册水晶微图,查看批量下载格式要求
进入水经微图先找到批量下载这个按钮,点击去看批量下载的格式
我们这里是按照矩形格式批量下载的,因此要符合矩形格式范围说明的要求
也就是txt任务文件每一行需要按照
test_sample_59|112.09962593476097,22.482644131668383|112.12218718560366,22.50360896710527|20
这样的格式书写好,每一行记录就是一个小矩形文件任务
2. 通过python代码形成符合水径微图要求的txt任务文件
在前面获取了我们想要研究的区域的shapefile以后,那么我只需要文件的名称、这一系列区域的最小外接矩形的范围,以及所需要的影像级别,确定这些信息以后,形成每一行任务记录,就可以了
代码如下:
import geopandas as gpd
import numpy as np
# 读取GeoDataFrame
gdf = gpd.read_file('your/file/path.shp')
count = len(gdf)
with open ('your/output/txt/name.txt', 'w') as f:
# 遍历每个Feature
for i in range(count):
geom = gdf.geometry[i]
print(i)
# 获取多边形的所有x和y坐标
xcoords = np.array(geom.exterior.coords)
xcoords = xcoords[:,0]
ycoords = np.array(geom.exterior.coords)
ycoords = ycoords[:,1]
# 更新x和y坐标的最大值和最小值
x_min = min(xcoords)
x_max = max(xcoords)
y_min = min(ycoords)
y_max = max(ycoords)
# 写入txt文件
f.write('test_sample_' + str(i) + '|' + str(x_min) + ',' + str(y_min) + '|' + str(x_max) + ',' + str(y_max) + '|' + str(20) + '\n')
f.close()
记得把里面的导入的shapefile数据的路径和导出的txt文件的路径修改一下,就可以得到符合水径微图要求的批量下载任务txt文件了
3. 利用水径微图批量下载功能进行数据下载
进入水径微图的批量下载工具里后,先点击导入模板,也就是将我们上面生成的批量下载任务txt文件导入,然后要确定导出数据的存储目录,点击确定就可以完成批量下载了!
欢迎大家关注我的博客,我将努力分享一些有用的地理信息技术的小知识给大家!