anonymous PythonでGeoPandasとFionaを用いて複数レイヤを持つKMLファイルを読み込む
No License Python
2021年09月22日
Copy Clone
import fiona
import geopandas as gpd

kml_path = "/path/to/kml/file"

# KMLドライバの設定
gpd.io.file.fiona.drvsupport.supported_drivers["KML"] = "rw"

# 空のGeoDataFrameを生成
gdf = gpd.GeoDataFrame()

# 各レイヤごと情報を取り出し、1つのGeoDataFrameにする
for layer in fiona.listlayers(kml_path):
    tmp_gdf = gpd.read_file(kml_path, driver="KML", layer=layer)
    gdf = gdf.append(tmp_gdf)
import fiona
import geopandas as gpd

kml_path = "/path/to/kml/file"

# KMLドライバの設定
gpd.io.file.fiona.drvsupport.supported_drivers["KML"] = "rw"

# 空のGeoDataFrameを生成
gdf = gpd.GeoDataFrame()

# 各レイヤごと情報を取り出し、1つのGeoDataFrameにする
for layer in fiona.listlayers(kml_path):
    tmp_gdf = gpd.read_file(kml_path, driver="KML", layer=layer)
    gdf = gdf.append(tmp_gdf)
PythonでGeoPandasを用いてKMLファイルを読み込むときに苦労したので、そのメモです。
KMLのdriverを設定した後にgpd.read_file()を用いて読むこともできますが、その場合最初のレイヤしか情報が読み込まれないです。
そのため、Fionaのlistlayersを用いてlayerを取得したのちに指定して読み込む処理をしています。
No one still commented. Please first comment.
Output