Более

Преобразование CSV со столбцом WKT в шейп-файл


Используя ogr2ogr в Python, я пытаюсь преобразовать CSV в шейп-файл. Один столбец в CSV, названный «Многоугольник», содержит WKT, например: POLYGON ((долгая широта, долгая широта, долгая широта и т. Д.)) В настоящее время я могу создать шейп-файл многоугольника с правильной проекцией, но геометрия пуста . Как я могу изменить аргументы ogr2ogr, чтобы правильно создать геометрию, используя WKT в каждой строке? Сейчас у меня что-то вроде этого:

ogr2ogr.main ([«», «-a_srs», «EPSG: 4326», «-f», «ESRI Shapefile», «output.shp», «input.csv», «-nlt», «POLYGON»] )

Я не знаю, поможет ли это вам, но я тестировал с ogr2ogr инструмент командной строки, и эта команда выполняет работу (при условии, что «Многоугольник» - это поле, содержащее геометрию в WKT):

ogr2ogr -f "ESRI Shapefile" output.shp -dialect sqlite -sql "SELECT *, GeomFromText (Polygon) FROM input" input.csv -a_srs "WGS84"

Может быть, вы могли бы адаптировать это к инструменту Python ogr2ogr?

Я также опубликовал ответ на Stack Overflow, используя привязки ogr python (он в основном делает то же самое, но его более одной строки кода ...!)

РЕДАКТИРОВАТЬ: Я тестировал инструмент python ogr2ogr, и мне кажется, что параметр -dialect не реализован.
Однако, если вы не можете найти лучший вариант, он сработает, если вы вызовете ogr2ogr (инструмент командной строки) с подпроцессом в python:

В [24]: импорт подпроцесса В [25]: subprocess.call (["ogr2ogr", "-a_srs", "WGS84", "-f", "ESRI Shapefile", "output.shp", "input.csv "," -dialect "," sqlite "," -sql "," SELECT *, GeomFromText (Polygon) FROM input "]) Out [25]: 0

Как видите, он вернет код возврата процесса (здесь 0 в случае успеха или 1 в случае неудачи).
(протестировано с GDAL 1.11.2 / python 3.4)


Смотреть видео: Export Attribute Table to Excel in Qgis (October 2021).