如何基于实地测量点坐标对无人机栅格影像进行重采样与插值
问题解答
你的代码逻辑大体正确,输出的grid_z0可以和实地测量表的lat、lon字段组合得到目标结果,但有几个需要注意的细节和优化点:
需确认的前提条件
- 首先要保证两组数据的坐标参考系(CRS)完全一致:如果实地测量的经纬度是WGS84坐标系,要确认无人机影像导出的lat/lon字段也为WGS84,若无人机使用的是UTM等投影坐标系未做转换,坐标匹配会完全出错。
- 注意插值方法的选择:你当前用的
method='cubic'是三次卷积插值,输出的是周边像素拟合的平滑估算值,符合你示例预期输出的非整数值需求;如果你只需要和测点最邻近的原始像素值,把参数改为method='nearest'即可。
现有代码的正确性验证
你当前的参数传递逻辑是正确的:
points传入无人机所有像素的经纬度数组,values传入对应像素值,符合griddata的输入要求- 查询点
(grid_x, grid_y)对应实地测量的纬度、经度数组,得到的grid_z0长度和测点数量一致,顺序和date1_field_mes的行顺序完全对应,可以直接合并
结果合并代码示例
直接给测量表加新列即可得到符合要求的结果:
date1_field_mes['drone_value'] = grid_z0 # 按需保留字段即可得到目标格式 result = date1_field_mes[['drone_value', 'lat', 'lon']]
更简便的替代方案(针对xarray数据集)
如果你用xarray加载的无人机影像,无需转numpy调用scipy,直接用xarray自带的插值方法更不容易出错:
drone_match = Drone_image.interp( lat=date1_field_mes['lat'], lon=date1_field_mes['lon'], method='cubic' )
内容的提问来源于stack exchange,提问作者Luckasino
相关产品推荐
相关产品推荐

