【问题标题】:Convert ASCII to contour shapefile将 ASCII 转换为轮廓 shapefile
【发布时间】:2020-02-17 11:47:29
【问题描述】:

有没有办法将 ASCII 文件或 numpy 数组直接转换为等高线并导出为 shapefile(例如 geopandas)?例如栅格高程数据。

我通常做的是将 ASCII 作为 numpy 数组加载到 python 中,并将元数据存储在一个变量中。执行一些计算后,我将 numpy 数组与元数据一起导出为 ASCII,然后将其转换为 QGIS 中的等高线图。我很好奇是否有办法在 Python 中执行这一切。任何建议都会非常有帮助。

【问题讨论】:

  • 了解您的文件是例如 ASCII GRID 文件还是 XYZ 三元组文件会有所帮助。知道解决方案在 Python 中使用 gdaldem 很简单。
  • 这只是一个 ASCII GRID 文件,我自己通过导出一个 numpy 数组并添加一个 GIS 程序可以读取的标头来生成。

标签: python python-3.x contour shapefile geopandas


【解决方案1】:

可以使用 GDAL 实用程序 gdal_countour 将 ASCII GRID 文件转换为轮廓形状文件

https://gdal.org/programs/gdal_contour.html

例如,

gdal_contour -a elev dem.asc contour.shp -i 10.0

...这将从 dem.asc 中的 DEM 数据创建 10 米等高线,并在 contour.shp|shx|dbf 中生成一个 shapefile,其等高线高程位于 elev 属性中。

关于从 Python 调用该实用程序,因为 GDAL 2.1、GDAL 和 OGR 实用程序可以用作库函数,更多信息在这里:

http://erouault.blogspot.com/2015/10/gdal-and-ogr-utilities-as-library.html

甚至在 GDAL 主干上还有一个使用 Python 绑定的gdal_countour 测试,您可以在其中了解如何在 Python 中以编程方式调用该实用程序:

https://svn.osgeo.org/gdal/trunk/autotest/utilities/test_gdal_contour.py

【讨论】:

  • 太好了,有时间我会创建一个可重现的最小示例!
猜你喜欢
  • 1970-01-01
  • 2013-03-23
  • 2013-11-14
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
相关资源
最近更新 更多