gpt4 book ai didi

python - 如何在栅格图层 Python 上绘制空间点?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:58 25 4
gpt4 key购买 nike

我在 epsg:27700 中有一个由点组成的地理数据框,我想使用 geoplot.kdeplot() 在同样位于 epsg:27700 中的栅格图层上绘制这些点。但我正在努力实现这一目标。

最初我尝试过 geopandas 使用 Contextily 添加背景。虽然它有效,但该区域的范围非常小,并且在将其转换为 epsg=3857 并使用缩放级别 13 使街道 map 最不可见之后 - 这些点不会落在它们应该的位置。

gdf = geopandas.GeoDataFrame(df1, crs=crs, geometry=geom)  #geodataframe from pandas dataframe


gdf.Prob[gdf.Prob < 0.2]= np.nan #set probability values <0.2 to nan for transparency


gdf.plot(column='Prob',figsize=(10, 10), alpha=0.5, legend=True)


rst = rasterio.open('UUS.tif')
red = rst.read(1)
bounds = (rst.bounds.left, rst.bounds.right, \
rst.bounds.bottom, rst.bounds.top)

plt.figure(num=None, figsize=(10, 10), facecolor='w', edgecolor='k')
plt.imshow(red, extent=bounds, cmap = 'gray')

我希望这些点位于栅格上(最好是 kdeplot)。我以前在 R 中以最小的努力完成了它,但在这里我需要在 Python 中完成,而且我是 Python 的新手。这里的解决方案也可能非常简单,但我需要一些建议。感谢您阅读本文。

最佳答案

您必须将相同的 matplotlib ax 传递给两个图。所以在你的情况下,应该遵循这个技巧。

import matplotlib.pyplot as plt

gdf = geopandas.GeoDataFrame(df1, crs=crs, geometry=geom) #geodataframe from pandas dataframe


gdf.Prob[gdf.Prob < 0.2]= np.nan #set probability values <0.2 to nan for transparency

fig, ax = plt.subplots(figsize=(10, 10))
gdf.plot(column='Prob',ax=ax, alpha=0.5, legend=True)


rst = rasterio.open('UUS.tif')
red = rst.read(1)
rst.plot.show(red, ax=ax)

您可能需要在 gdf ​​之前绘制 rst,对此不确定。

关于python - 如何在栅格图层 Python 上绘制空间点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57535504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com