windows 中的 gdal 安装与使用

1. gdal 安装

  1. 下载gdal

    下载 gdal 编译后的压缩包

    gdal编译后的包

  2. 解压

  3. 文件拷贝

    release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\gdal\apps 所有文件拷贝到 release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\ 这个目录

  4. 设置环境变量

    PROJ_LIB=release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\proj9\share
    
  5. 测试 gdal 命令

    gdalinfo --version
    # GDAL 3.6.2, released 2023/01/02
    

2. gdal 使用

使用gdal将散点生成为等值线、等值面。

release-1930-x64-gdal-3-6-2-mapserver-8-0-0\ 修改为自己的gdal实际路径

  1. 准备散点 csv 文件

    以下是点的 csv 数据,第三列是做生成等值线、等值面的数值

    120.569893	31.768145	5.734
    120.570114	31.768759	0.014
    120.573029	31.768875	0
    120.571762	31.769505	5.734
    120.570213	31.769251	5.848
    120.572441	31.76965	4.761
    120.572357	31.770094	1.087
    120.570564	31.769335	5.675
    120.569572	31.767868	0
    120.572083	31.76895	0
    120.573036	31.769613	2.169
    120.571205	31.768848	3.533
    

    csv 格式说明

  2. 准备 vrt 配置文件

    vrt 文件是用于生成 tiff

    <OGRVRTDataSource>
            <OGRVRTLayer name="dem">
                <LayerSRS>EPSG:4326</LayerSRS>
                <SrcDataSource>.\dem.csv</SrcDataSource>
                <GeometryType>wkbPoint</GeometryType>
                <GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>
                <Field name="name" src="field_1" type="Real" />
                <Field name="desc" src="field_2" type="Real"/>
                <Field name="z" src="field_3" type="Real" />
            </OGRVRTLayer>
    </OGRVRTDataSource>
    

    vrt 格式说明

  3. vrt 生成 tiff 文件

    执行 gdal_grid 命令生成 tiff

    release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\gdal_grid.exe -a invdist:power=2.0 -txe 120.569572 120.573036 -tye 31.767868 31.770094 -a_srs EPSG:4326 -outsize 300 192 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff
    

    gdal_grid 命令参数

  4. tiff 文件生成等值线

    执行 gdal_contour 命令生成 geojson 等值线

    release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\gdal_contour -b 1 -a elev -i 1.0 dem.tiff polyline.geojson
    

    gdal_contour 命令参数

  5. tiff 文件生成等值面

    执行 gdal_contour 命令生成 geojson 等值面

    release-1930-x64-gdal-3-6-2-mapserver-8-0-0\bin\gdal_contour -p -amax elev_max -amin elev_min -b 1 -i 1.0 dem.tiff polygon.geojson
    

    gdal_contour 命令参数

    gdal_contour 个别参数说明

    • f 参数

    可以指定输出的文件格式,如果没有添加,程序将更加输入文件的后缀进行猜测

    gdal_contour -p -amax elev_max -amin elev_min -b 1 -i 1.0 -f GeoJSON dem.tiff polygon.geojson
    
    • lco 参数

      1. lco 多个参数可以在命令多写各参数,如下所示;

      2. COORDINATE_PRECISION 生成的 GeoJSON 文件中数据坐标小数点最多可以保留位数;

      3. SIGNIFICANT_FIGURES 生成的 GeoJSON 文件中数据坐标小数点最大有效位数;

        gdal_contour -p -amax elev_max -amin elev_min -b 1 -i 1.0 -f GeoJSON -lco COORDINATE_PRECISION=4 -lco SIGNIFICANT_FIGURES=8 dem.tiff polygon.geojson
        

        GeoJSON 图层创建选项

        GeoJSON 格式说明-英文
        GeoJSON 格式说明-中文

posted @ 2023-02-22 15:09  xustch  阅读(4358)  评论(0编辑  收藏  举报