在Python中使用gdal_grid和np数组

我使用
Python 2.7.安装了gdal 2.1.2库.

我有一个像这样的np数组:

[[  2.34845824  48.84626174  15.20369   ]
[  2.34966283  48.84910128  13.88528   ]
[  2.35120647  48.85098931  15.76322   ]
...,
[  2.3556567   48.8415611   15.42184   ]
[  2.34394085  48.84248672  15.51128   ]
[  2.34926763  48.85128456  15.0685    ]]

其中第一列和第二列表示我的坐标(具体地说,纬度和经度),第三列表示与位置关联的变量值.我想在Python中直接使用gdal_grid来获得一个图像,在每个像素处我都使用像反距离加权的方法对数组的值进行插值.

如果我的数据是在csv文件中收集的(我将称之为’test.csv’),并且我创建了一个’test.vrt’文件,我发现如何使用gdal_grid执行此操作:

<OGRVRTDataSource>
    <OGRVRTLayer name="test">
        <SrcDataSource>test.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <LayerSRS>WGS84</LayerSRS>
        <GeometryField separator=" " encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

我尝试使用命令在python中运行它:

gdal.Grid('test_python.tiff', 'test.vrt', layers='test', algorithm='invdistnn:max_points=10:min_points=1:radius=0.001', format='GTiff', width=333, height=240)

它的工作原理.问题是我想避免将np数组转换为.csv,因为我需要多次复制此操作.
我怎么能直接使用我的np数组呢?

非常感谢您的帮助.

最佳答案 你不能.

gdal_grid的输入必须是GDAL可读格式,其中VRT是一种格式.或者,您可以将numpy数组保存为Tiff / GeoTiff文件.

使用GDAL> = 2.1的另一种替代方法是使用python binding而不是命令行实用程序,以及从numpy数组填充的“MEM”数据集(至少避免将其保存到磁盘).

点赞