使用 geopandas + geoplot 绘制热图(内核密度)会导致会话崩溃
Plotting a heatmap (kernel density) using geopandas + geoplot crashes session
我最近发布了 关于如何使用 geopandas 绘制热图的帖子。建议我使用 geoplot.kdeplot()
,但传递 projection
会使我的会话崩溃。
假设我在df_points
和df_map
中分别存储了以下数据:
> print(df_points)
PointID geometry
0 204403876 POINT (-101.66700 21.11670)
1 204462769 POINT (-101.66700 21.11670)
2 144407530 POINT (-101.66700 21.11670)
> print(df_map)
PolyID geometry
0 01001 POLYGON ((-102.10641 22.06035, -102.10368 22.0...
1 01002 POLYGON ((-102.05189 22.29144, -102.05121 22.2...
2 01003 POLYGON ((-102.68569 22.09963, -102.69087 22.0...
这是我尝试过的方法,但根据 this tutorial,我应该将 projection
传递给热图。
# Import geoplot
import geoplot
import geoplot.crs as gcrs
# Plot points
ax = geoplot.kdeplot(df_points, shade=True, alpha=0.7)
# Plot polygons
geoplot.polyplot(df_map, ax=ax)
但是,如果我添加 projection=gcrs.AlbersEqualArea()
,我的会话会崩溃:
# Plot heatmap
ax = geoplot.kdeplot(df_points, cmap='Reds', shade=True,
projection=gcrs.AlbersEqualArea()) # This crashes my session ):
# Add polygons
geoplot.polyplot(df_map, ax=ax)
python3: geos_ts_c.cpp:3991: int GEOSCoordSeq_getSize_r(GEOSContextHandle_t, const geos::geom::CoordinateSequence*, unsigned int*): Assertion `0 != cs' failed.
如何通过 projection=gcrs.AlbersEqualArea()
并避免错误?
我在评论之前的一个问题:我刚刚 运行 官方 geoplot 参考中的示例与 Colab 并经历了类似的崩溃。经过一番研究,我发现崩溃是由 shaply 引起的,卸载并重新安装它,图表按照参考显示。请试一试。
pip uninstall shapely
pip install shapely --no-binary shapely
以下是对我有帮助的
我最近发布了 geoplot.kdeplot()
,但传递 projection
会使我的会话崩溃。
假设我在df_points
和df_map
中分别存储了以下数据:
> print(df_points)
PointID geometry
0 204403876 POINT (-101.66700 21.11670)
1 204462769 POINT (-101.66700 21.11670)
2 144407530 POINT (-101.66700 21.11670)
> print(df_map)
PolyID geometry
0 01001 POLYGON ((-102.10641 22.06035, -102.10368 22.0...
1 01002 POLYGON ((-102.05189 22.29144, -102.05121 22.2...
2 01003 POLYGON ((-102.68569 22.09963, -102.69087 22.0...
这是我尝试过的方法,但根据 this tutorial,我应该将 projection
传递给热图。
# Import geoplot
import geoplot
import geoplot.crs as gcrs
# Plot points
ax = geoplot.kdeplot(df_points, shade=True, alpha=0.7)
# Plot polygons
geoplot.polyplot(df_map, ax=ax)
但是,如果我添加 projection=gcrs.AlbersEqualArea()
,我的会话会崩溃:
# Plot heatmap
ax = geoplot.kdeplot(df_points, cmap='Reds', shade=True,
projection=gcrs.AlbersEqualArea()) # This crashes my session ):
# Add polygons
geoplot.polyplot(df_map, ax=ax)
python3: geos_ts_c.cpp:3991: int GEOSCoordSeq_getSize_r(GEOSContextHandle_t, const geos::geom::CoordinateSequence*, unsigned int*): Assertion `0 != cs' failed.
如何通过 projection=gcrs.AlbersEqualArea()
并避免错误?
我在评论之前的一个问题:我刚刚 运行 官方 geoplot 参考中的示例与 Colab 并经历了类似的崩溃。经过一番研究,我发现崩溃是由 shaply 引起的,卸载并重新安装它,图表按照参考显示。请试一试。
pip uninstall shapely
pip install shapely --no-binary shapely
以下是对我有帮助的