经纬度坐标生成点要素

       刚学习的小技巧,记录一下。用arcmap由经纬度坐标生成点要素文件,即生成shp格式文件。

    PS:经度和纬度组成的坐标系统称为地理坐标系统,其中经度为X,纬度为Y,纬度的相差距离1°111Km,1′≈1.85KM,1″30.9m;经度1°相差的距离≈111*cos(a)km,其中a表示该纬度的纬度数,在不同的纬度上经度每差一度的实际距离的不同的。(参考百度百科)


           1)先确认自己手上的经纬度的单位,如果是度分秒的形式就转成分的形式(X°X′X″------X.xxxx°),具体的转换可以用EXCEL来计算,或直接网上有些软件提供转换的工具;

要通过Python读取Excel表中某一列的经纬度坐标,并将多组经纬度坐标生成多个矢量面文件,您可以使用pandas库来读取Excel文件,并结合GDAL库来生成矢量面文件。下面是一个示例代码: ```python import pandas as pd from osgeo import ogr # 读取Excel文件 data = pd.read_excel('input.xlsx') # 获取经纬度列数据 lon_lat_data = data['经纬度'] # 遍历每组经纬度坐标 for i, coordinates in enumerate(lon_lat_data): # 创建Shapefile数据源 driver = ogr.GetDriverByName('ESRI Shapefile') data_source = driver.CreateDataSource(f'output_{i}.shp') # 创建图层 layer = data_source.CreateLayer('polygon', geom_type=ogr.wkbPolygon) # 创建字段 field_defn = ogr.FieldDefn('id', ogr.OFTInteger) layer.CreateField(field_defn) # 创建多边形 ring = ogr.Geometry(ogr.wkbLinearRing) # 分割经纬度坐标 coordinates = coordinates.split(';') # 添加经纬度坐标 for coordinate in coordinates: lon, lat = coordinate.split(',') ring.AddPoint(float(lon), float(lat)) # 创建多边形对象 polygon = ogr.Geometry(ogr.wkbPolygon) polygon.AddGeometry(ring) # 创建要素 feature_defn = layer.GetLayerDefn() feature = ogr.Feature(feature_defn) feature.SetGeometry(polygon) feature.SetField('id', i+1) # 将要素添加到图层 layer.CreateFeature(feature) # 清理资源 feature = None data_source = None ``` 请将代码中的'input.xlsx'替换为您实际的Excel文件路径。此示例代码假设Excel文件中有一列名为'经纬度',其中包含多个经纬度坐标,每个经纬度坐标之间使用分号进行分隔,经度和纬度之间使用逗号进行分隔。 代码将遍历每组经纬度坐标,为每组坐标创建一个单独的Shapefile文件,文件名将使用索引编号进行命名,例如"output_0.shp","output_1.shp"等。 请确保已安装pandas和GDAL库,可以使用以下命令进行安装: ``` pip install pandas pip install gdal ``` 注意:在使用GDAL库之前,还需要安装GDAL的Python绑定,可以通过Anaconda进行安装,或者下载GDAL二进制文件进行安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值