如何将多个geopandas geodataframes导出到一个kmz文件

3lxsmp7m  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(262)

我在gis stack exchange上问过这个问题,但没有得到很多视图和回复;所以我在这里尝试(如果这是不允许的,请让我知道)。
我有两个geopandas geodataframes,我想将它们导出到具有嵌套文件夹结构的kmz文件中。下面是创建geodataframes的独立代码,以及我希望kmz结构的外观截图。
我想在没有arcgis或qgis的情况下完成这项工作。使用Python3.7。


############################################### 

### load libraries

############################################### 

import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
from shapely.geometry import LineString

############################################### 

### Build Stand-Alone Geodataframes

### 'p' is a points-type gdf

### 'pl' is a polyline-type gdf

############################################### 

pname = ['Project1'] * 5
id1 = [1, 2, 3, 4, 5]
lat = [36.42, 36.4, 36.32, 36.28, 36.08]
long = [-118.11, -118.12, -118.07, -117.95, -117.95]
cat = ['X', 'X', 'X', 'Y', 'Y']
id2 = ['A', 'A', 'B', 'B', 'B']
df = pd.DataFrame(list(zip(pname, id1, lat, long, cat, id2)), 
                  columns =['pname', 'id1', 'lat', 'long', 'cat', 'id2']) 
df.reset_index(drop=True, inplace=True)

p = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['long'], df['lat']))
p = p.set_crs(epsg=4326)
display(p.style)

pl = p.groupby(['pname', 'id2'])['geometry'].apply(lambda x: LineString(x.tolist()))
pl = gpd.GeoDataFrame(pl, geometry='geometry').reset_index()
pl = pl.set_crs(epsg=4326)
display(pl.style)

fig, (ax1, ax2) = plt.subplots(1, 2, sharex=True, sharey=True)
p.plot(ax=ax1)
pl.plot(ax=ax2)
ax1.set_aspect('equal')


所需的文件夹结构

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题