Конвертировать ASCII в контурный шейп-файл - PullRequest
2 голосов
/ 17 февраля 2020

Есть ли способ конвертировать ASCII-файлы или numpy массивы непосредственно в контурные линии и экспортировать их в шейп-файл (например, с помощью geo pandas)? Например, растровые данные высот.

Обычно я загружаю ASCII в python как numpy массивы и сохраняю метаданные в переменной. После выполнения некоторых вычислений я экспортирую массив numpy в виде ASCII вместе с метаданными, а затем преобразую его в контурную карту в QGIS. Мне любопытно, есть ли способ сделать все это в Python. Любое предложение будет очень полезным.

1 Ответ

1 голос
/ 04 марта 2020

Преобразование файла ASCII GRID в файл формы контуров можно выполнить с помощью утилиты GDAL gdal_countour

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

Например,

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

..., который будет создавать 10-метровые контуры из данных матрицы высот в dem.as c и создавать шейп-файл в contour.shp | shx | dbf с возвышениями контуров в атрибут elev.

О вызове утилиты из Python, поскольку утилиты GDAL 2.1, GDAL и OGR можно использовать в качестве библиотечных функций, более подробную информацию можно получить здесь:

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

и даже на магистрали GDAL есть gdal_countour тест с использованием Python привязок, где вы можете посмотреть, как программно вызывать утилиту в Python:

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

...