У меня есть файлы в формате ESRI Shapefile. Могу ли я узнать, как я могу использовать библиотеку QGIS или python gdal для извлечения широты и долготы? Я установил QGIS и добавил в него слой шейп-файла, я могу просматривать (широта, долгота) на карте, но я не знаю, как извлечь (широту, длину). Посоветуйте мне, как извлечь ( лат, долгота) наружу. общее качество
Как преобразовать формат шейп-файла ESRI с помощью библиотеки QGIS или python gdal для извлечения широты и долготы
Ответы (2)
Щелкните правой кнопкой мыши свой слой, выберите «Сохранить как». Откроется диалоговое окно "Сохранить векторный слой как...". Выберите следующие параметры:
Формат: значение, разделенное запятыми [CSV]
Имя файла: выберите имя файла
CRS: EPSG:4326, WGS84
В нижней части разверните «Выберите поля для экспорта» и нажмите «Отменить выбор всего», если вам нужны только координаты, или проверьте доступные элементы (столбцы из таблицы атрибутов), если вам нужны географические названия и т. д. Выбрав WGS84 в качестве на выходе CRS вы получите свои координаты в десятичных градусах (широта, долгота).
Пример вывода:
X,Y
12.4533865449718,41.9032821799601
12.4417701578001,43.936095834768
9.51666947290727,47.1337237742936
Если вы хотите сделать это с помощью 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