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

时间:2019-08-17 10:39:00

标签: python geopandas rasterio

我在epsg:27700中具有一个点的地理数据框,并希望使用geoplot.kdeplot()在也位于epsg:27700中的栅格图层上绘制这些点。但是我努力做到这一点。

最初,我尝试过Geopandas使用Contextily添加背景。尽管它可以工作,但是该区域的范围很小,将其转换为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的新手。解决方案在这里也可能非常简单,但是我需要一些建议。谢谢您阅读本文。

1 个答案:

答案 0 :(得分:1)

您必须将相同的matplotlib 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) 传递给两个图。因此,在您的情况下,应采取以下措施。

 var myRe = view.findViewById<RecyclerView>(R.id.myRecyclerViewMain)

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