Как преобразовать формат шейп-файла ESRI с помощью библиотеки QGIS или python gdal для извлечения широты и долготы

У меня есть файлы в формате ESRI Shapefile. Могу ли я узнать, как я могу использовать библиотеку QGIS или python gdal для извлечения широты и долготы? Я установил QGIS и добавил в него слой шейп-файла, я могу просматривать (широта, долгота) на карте, но я не знаю, как извлечь (широту, длину). Посоветуйте мне, как извлечь ( лат, долгота) наружу. общее качество


person Sam    schedule 22.12.2016    source источник
comment
Что вы подразумеваете под извлечением, преобразованием в CSV/текстовый файл? У вас есть шейп-файл с координатами точек или это другая геометрия?   -  person chrki    schedule 22.12.2016
comment
Да, чтобы преобразовать в текстовый файл. Шейп файл с координатами.   -  person Sam    schedule 22.12.2016
comment
Решили ли какие-либо из предложенных решений ваши проблемы? Затем, пожалуйста, отметьте этот ответ как выбранный для будущих посетителей и чтобы закрыть ветку.   -  person Marjan Moderc    schedule 27.06.2017


Ответы (2)


Щелкните правой кнопкой мыши свой слой, выберите «Сохранить как». Откроется диалоговое окно "Сохранить векторный слой как...". Выберите следующие параметры:

Формат: значение, разделенное запятыми [CSV]
Имя файла: выберите имя файла
CRS: EPSG:4326, WGS84

В нижней части разверните «Выберите поля для экспорта» и нажмите «Отменить выбор всего», если вам нужны только координаты, или проверьте доступные элементы (столбцы из таблицы атрибутов), если вам нужны географические названия и т. д. Выбрав WGS84 в качестве на выходе CRS вы получите свои координаты в десятичных градусах (широта, долгота).

Снимок экрана для

Пример вывода:

X,Y
12.4533865449718,41.9032821799601
12.4417701578001,43.936095834768
9.51666947290727,47.1337237742936
person chrki    schedule 22.12.2016

Если вы хотите сделать это с помощью python, вам не нужен для этого gdal. Я нахожу геопанды (с Shapely) гораздо более простой библиотекой для работы с шейп-файлами. Хотя поначалу это может занять на несколько минут больше времени, чем щелчок по интерфейсу QGIS, изучение того, как манипулировать шейп-файлами в Python, является очень важным знанием в долгосрочной перспективе. Вот пример вашей задачи, выполненной с помощью python:

import geopandas as gpd

# read shapefile (attributes and geometry) into geodataframe
shp = gpd.read_file("sample_shapefile.shp")

# convert "geometry" field into separate X and Y fields
shp["X"]=shp["geometry"].apply(lambda geom: geom.x)
shp["Y"]=shp["geometry"].apply(lambda geom: geom.y)

#save X,Y into csv file
shp[["X","Y"]].to_csv("coords.csv",header=True,index=False,sep=",")

Whick создаст желаемый результат в coords.csv:

X,Y
425070.0,80330.0
408390.0,81150.0
405370.0,85860.0
410880.0,82850.0
415310.0,80630.0
418610.0,80350.0
person Marjan Moderc    schedule 10.01.2017