来自 XYZ csv 格式的光栅
Raster from XYZ csv format
我有一个包含 3 列 x y 和 z 值的大型 csv 文件。我想做以下事情:
1. 如何将该 csv 转换为矢量形状文件(点)。
2、如何将步骤2中得到的点转化为geo raster。
3. 假设一组 "shp" 格式的单独点文件如何将步骤 2 中获得的栅格值提取到新的 csv 文件中,以便我可以对其进行统计。
问题是我是使用 python 进行地理处理的新手,例如,对于第 2 步,我曾经在 R 中使用 "raster" 包轻松地做到这一点,对于第 3 步也使用"extract" "raster" 包中的函数。但是,在 python 中,我可以在 geopandas 中执行第 2 步,但第 2 步和第 3 步没有可用的简单答案。
GDAL documentation.
中存在这种情况
假设您的数据 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
我有一个包含 3 列 x y 和 z 值的大型 csv 文件。我想做以下事情: 1. 如何将该 csv 转换为矢量形状文件(点)。 2、如何将步骤2中得到的点转化为geo raster。 3. 假设一组 "shp" 格式的单独点文件如何将步骤 2 中获得的栅格值提取到新的 csv 文件中,以便我可以对其进行统计。
问题是我是使用 python 进行地理处理的新手,例如,对于第 2 步,我曾经在 R 中使用 "raster" 包轻松地做到这一点,对于第 3 步也使用"extract" "raster" 包中的函数。但是,在 python 中,我可以在 geopandas 中执行第 2 步,但第 2 步和第 3 步没有可用的简单答案。
GDAL documentation.
中存在这种情况假设您的数据 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