美文网首页
gdal_grid 使用gdal实现空间插值

gdal_grid 使用gdal实现空间插值

作者: 开源GIS地图与信创 | 来源:发表于2021-10-29 11:36 被阅读0次

    gdal_grid 使用gdal实现空间插值

    利用gdal_grid.exe可以实现空间插值

    下载gdal_grid.exe文件,在gdal的windows包里面有,
    如果gdal_grid.exe在cmd里面直接执行没反应很可能是缺少依赖包,双击gdal_grid.exe就知道缺少哪些包了,再按顺序找到相应的包放到同级目录即可。
    我是从MapServer中拷出来的包,因此缺少:expat.dll、freexl.dll、geos.dll、geos_c.dll、iconv.dll、libcrypto-1_1.dll、libcurl.dll、libmysql.dll、libpq.dll、libssl-1_1.dll、libxml2.dll、openjp2.dll、proj.dll、spatialite.dll、sqlite3.dll、xerces-c_3_2.dll、zlib1.dll这几个dll文件,不同情况可能有所不同,注意版本要对应上。

    准备点数据datatest.txt,内容如下:

    id,x,y,z
    0,-4033.176588,-8013.121063,229.450000
    1,-4100.832155,-8015.092321,229.260000
    2,-3340.176588,-8013.121064,234.220000
    3,-3638.176588,-8022.121064,234.010000
    4,-3638.176588,-7987.121064,233.500000
    5,-4451.933582,-8013.124110,228.320000
    6,-4458.433112,-7977.121063,227.880000
    7,-4707.932199,-7989.121063,226.250000

    根据数据情况生成dem.vrt文件,dem.vrt内容如下:

    <OGRVRTDataSource>
    <OGRVRTLayer name="datatest">
    <SrcDataSource>datatest.csv</SrcDataSource>
    <GeometryType>wkbPoint</GeometryType>
    <GeometryField encoding="PointFromColumns" x="x" y="y" z="z"/>
    </OGRVRTLayer>
    </OGRVRTDataSource>

    准备执行命令:

    ./gdal/gdal_grid.exe -a invdist:power=2.0:smoothing=1.0 -of GTiff -ot Float64 -l datatest dem.vrt dem.tiff

    按官方的命令行执行后报错:

    ERROR 1: Failed to open datasource `datatest.txt'.
    No point geometry found on layer datatest, skipping.

    此错误的主要原因是官方示例采用的csv作为点数据源,我采用的txt作为数据源,txt内肯定是没有layer这个概念的,但是csv中有sheet的概念,对应就是layer。

    将datatest.txt文件后缀改为csv,名为datatest.csv,然后修改dem.vrt文件中SrcDataSource的值为新文件名就可以了。

    再执行提示:

    0...10...20...30...40...50...60...70...80...90...100 - done.

    查看文件夹内,生成了dem.tiff文件

    效果如下:


    7-1.png

    相关文章

      网友评论

          本文标题:gdal_grid 使用gdal实现空间插值

          本文链接:https://www.haomeiwen.com/subject/kdjialtx.html