我有一个点数组[[lon1,lat1],[lon2,lat2],...,[lonN,latN]]。我正在遍历这些点并在每个点上生成高程,如下所示:
for point in points:
...
alt = ds_band.ReadAsArray(px, py, 1, 1)
# push the alt to an array
在哪里, ds_band 是栅格波段 px 是x_offset py 是y_offset
小型DSM文件(〜80 MB)与大型DSM文件(〜5 GB)
从小型DSM文件中获取海拔信息非常快。但是,从大的DSM文件中获取海拔信息需要更长的时间。 对于大约相同数量的点(33370),在小的DSM文件中需要1.983694553秒。但是在大的DSM文件中,则需要9.140556812秒。
时间仅用于获取高程。它不包括打开DSM文件之类的其他操作。
是否有比我正在做的更好的方法来获取多个点的高程?有没有一种方法可以优化ReadAsArray?
P.S。 Python / GDAL的新手。谢谢!