繁体   English   中英

如何使用QGIS或python gdal库转换ESRI shapefile格式以提取纬度

[英]How to convert ESRI shapefile format using QGIS or python gdal library to extract lat lon

我有ESRI Shapefile格式的文件。 我可以知道如何使用QGIS或python gdal库提取经度和纬度吗? 我已经安装了QGIS,并在其中添加了shapefile的图层,可以在地图上查看(纬长),但是我不知道如何提取(纬长)。请建议我如何提取( lat,long)out。 TQ

右键单击您的图层,选择“另存为”。 将打开“将矢量层另存为...”对话框。 选择以下选项:

格式:逗号分隔值[CSV]
文件名:选择一个文件名
CRS:EPSG:4326,WGS84

在下部中,展开“选择要导出的字段”,如果只需要坐标,则单击“取消全选”;如果需要地名,则检查可用的项(来自属性表的列),等等。通过选择WGS84作为输出CRS,您将以十进制度(纬度,经度)接收坐标。

“将矢量层另存为”的屏幕截图

输出示例:

X,Y
12.4533865449718,41.9032821799601
12.4417701578001,43.936095834768
9.51666947290727,47.1337237742936

如果要使用python进行操作,则不需要gdal。 我发现geopandas(与Shapely一起使用)是一个使用shapefile的简单得多的库。 尽管起初它可能比单击QGIS界面要花几分钟的时间,但是从长远来看,学习如何在Python中操作shapefile是非常有用的知识。 这是使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM