我正在尝试将 Pumps.shp 数据绘制在同一图上本网站的 OSMap.tif 文件之上。
我尝试使用 rasterio.plot() 和 geopandas.plot() 方法以及 matplotlibs 子图。
问题是绘图不匹配,光栅文件被绘制在两个轴的范围(0,1000)中,而 shp 被绘制在实际坐标范围内(x 轴和周围大约 50000)。
两个对象中的 crs 相等,并且坐标在相同的范围内。为什么是这样?我究竟做错了什么?
这是我的代码
import rasterio as rast
import rasterio.plot as rsplot
import geopandas as gpd
src=rast.open("OSMap.tif")
data=gpd.read_file("Pumps.shp")
fig,ax=plt.subplots()
rsplot.show(src,ax=ax)
data.plot(ax=ax)
plt.show()
这是调用 src.bounds 的结果:
边界框(左=528765.0,下=180466.0,右=529934.0,上=181519.0)
这是 data.bounds 的结果
(528765.0、180466.0、529934.0、181519.0)
这是两者的crs:
CRS({'lon_0': -2, 'y_0': -100000, 'k': 0.9996012717, 'lat_0': 49, 'proj': 'tmerc', 'wktext': True, 'datum': 'OSGB36' , 'no_defs': True, 'x_0': 400000, 'units': 'm'})