【发布时间】:2021-11-05 05:28:05
【问题描述】:
我正在尝试在地图上绘制河流流域。为了减小生成的矢量图的大小,我申请了GeoSeries.simplify()。
import cartopy
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import geopandas as gpd
# %%% Earth
fig = plt.figure()
latlon_proj = ccrs.PlateCarree()
axis_proj = ccrs.Orthographic()
ax = plt.axes(
projection=axis_proj
)
# %%% Major River Basins
mrb_basins = gpd.read_file('mrb_basins.json') # 520 entries
mrb_basins['geometry'] = mrb_basins['geometry'].simplify(0.1)
for shape in mrb_basins['geometry']:
feat = cartopy.feature.ShapelyFeature(
[shape],
latlon_proj,
facecolor='red',
)
ax.add_feature(feat)
mrb_basins.plot()
问题是,生成的地球地图完全被红色形状覆盖。
如果我删除mrb_basins['geometry'] = mrb_basins['geometry'].simplify(0.1)这一行,情况并非如此。
如何在保持完整性的同时简化几何?
主要流域数据集可在here获取。
【问题讨论】: