0

我有一个包含 3 列 xy 和 z 值的大型 csv 文件。我想做以下事情:1.如何将该csv转换为矢量形状文件(点)。2.如何将步骤2中得到的点转换成地理栅格。3. 让我们说一组“shp”格式的单独点文件如何将步骤 2 中获得的栅格中的值提取到新的 csv 文件中,以便我可以对其进行统计。

问题是我是使用 python 进行地理处理的新手,例如,对于第 2 步,我曾经在 R 中使用“raster”包很容易做到这一点,而第 3 步也使用“raster”包中的“extract”函数。但是,在 python 中,我可以在 geopandas 中执行第 2 步,但第 2 步和第 3 步没有简单的答案可用。

4

1 回答 1

1

这种确切的情况存在于 GDAL文档中。

假设您的数据 ,dem.csv就像:

Easting,Northing,Elevation
86943.4,891957,139.13
87124.3,892075,135.01
86962.4,892321,182.04
87077.6,891995,135.01
...

你创建一个VRT来描述它:

<OGRVRTDataSource>
    <OGRVRTLayer name="dem">
        <SrcDataSource>dem.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

或者,如果 CSV 缺少列,您可以GeometryField这样指定:

<GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

将其另存为类似的东西dem.vrt以在以后的命令中使用。

然后插值gdal_grid并生成 GeoTIFF 输出:

gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff
于 2019-06-18T21:07:45.397 回答