笔者在google earth 上获取了一系列kml格式的样本点,需要将其转换为shp格式,在arcgis中打开并以图层形式加载近来。
解决方法:
第一步:
导入geopandas和fiona这两个包,如果没有geopandas这个库,需要事先下载,通过:
pip install geopandas
下载好这个库,然后:
激活KML文件读取格式:
fiona.drvsupport.supported_drivers['KML'] = 'rw'
'rw'表示读写格式
第二步:
通过geopandas读取目标kml文件;
# 读取KML文件
kml_file = './your/path/name.kml'
gdf = gpd.read_file(kml_file, driver='KML')
# 检查数据
print(gdf.head())
第三步:
通过gpd.to_file转换格式
# 保存为SHP文件
shp_file = './your/out/path.shp'
gdf.to_file(shp_file, encoding='utf-8')
用'utf-8'格式编码,可以避免属性表中汉字乱码
全部代码如下:
import geopandas as gpd
import fiona
fiona.drvsupport.supported_drivers['KML'] = 'rw'
# 读取KML文件
kml_file = './your/input/name.kml'
gdf = gpd.read_file(kml_file, driver='KML')
# 检查数据
print(gdf.head())
# 保存为SHP文件
shp_file = './your/output/name.shp'
gdf.to_file(shp_file, encoding='utf-8')