栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python读取google earth导出的kml文件内的经纬度信息

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python读取google earth导出的kml文件内的经纬度信息

 首先利用google earth,描出河段中心线,并导出kml文件

 提取kml内的经纬度信息

import kml2geojson as k2g
import geopandas as gpd
import fiona
import os
import pandas as pd
import numpy as np


file_name = 'F:/CADfiles/river/river.kml' # google earth的kml文件路径
geoname = os.path.splitext(file_name)[0]+'.geojson' # 改变kml文件后缀名,转换为geopandas能够识别的json文件
file_outpath = 'F:/CADfiles/river/xy.xls' # 经纬度坐标输出的xls文件路径

fiona.drvsupport.supported_drivers['LIBKML'] = 'rw' #指明drivers,否则会报错

k2g.convert(file_name, geoname) # 利用kml2geojson程序库,将kml转为json文件

gdf = gpd.read_file(file_name, encoding='gbk')

x_array = gdf['geometry'].apply(lambda geo: np.array([coord[0] for coord in geo.coords]))[0] #经度
y_array = gdf['geometry'].apply(lambda geo: np.array([coord[1] for coord in geo.coords]))[0] #纬度
z_array = gdf['geometry'].apply(lambda geo: np.array([coord[2] for coord in geo.coords]))[0] #高程值(大概

length = x_array.shape[0]
xy = {
    "lon": pd.Series(x_array, index = np.arange(length)),
    "lat": pd.Series(y_array, index = np.arange(length)),
}
xy_df = pd.DataFrame(xy)
xy_df.to_excel(file_outpath, sheet_name="Sheet1",index=False) #将经纬度输出到xls文件
print(xy_df)

将python生成的xls文件导入arcmap,并查看属性信息

 

 提取成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号