如何在光栅图层Python上绘制空间点?

2024-04-27 10:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个点的地理数据框架epsg:27700和想用geoplot.kdeplot()在光栅层上epsg:27700。但我正在努力实现这一点。在

最初我试过用相接的方式添加背景。虽然它可以工作,但是区域的范围非常小,在将其转换为epsg=3857并使用缩放级别13使街道地图最不可见之后,这些点不会落在它们应该的位置。在

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还不熟悉。解决方案在这里可能也很简单,但我需要一些建议。谢谢你读这个。在


Tags: 数据框架光栅pltredrstnanepsg
1条回答
网友
1楼 · 发布于 2024-04-27 10:21:17

必须将相同的matplotlibax传递给两个绘图。所以,在你的情况下,以下应该是诀窍。在

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,但不确定这一点。在

相关问题 更多 >