如何将 GeoTIFF 投影到指定区域范围?

How to project GeoTIFF to specified area extent?

我正在尝试在指定区域显示 GeoTIFF 文件。我想做的是将多波段 GeoTIFF 文件投影到指定区域。

我的 GeoTIFF 是包含欧洲地区 3 个波段的卫星图像。我想将它投射到中欧地区(由 lat/lot 定义的范围)。我一直在尝试使用 rasterio 来解决这个问题,但到目前为止我一直很不走运。这是我执行后得到的:

import georaster
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.pyplot import figure

#define path to geotiff
file = "/home/lubomir/Desktop/Sentinel3_OLCI/RGB/OLCI_201812140859_Natural_Color.tif"

m = Basemap(epsg=3395,llcrnrlat=45,urcrnrlat=55,\
            llcrnrlon=5,urcrnrlon=25,lat_ts=15,resolution='f')

m.drawcoastlines(linewidth=0.5, color='g')
m.fillcontinents(color='beige')
m.drawcountries(linewidth=0.5, color='m')

#load GeoTIFF multiband file
image = georaster.MultiBandRaster(file)

plt.imshow(image.r, extent=image.extent, zorder=10)
plt.savefig('test.tiff')
plt.show()

without_geotiff

如您所见,生成的图像不包含我的 GeoTIF。知道如何解决这个问题吗?

为了使用底图的投影,您必须使用

m.imshow(image.r, extent=image.extent, zorder=10)

代替

plt.imshow(image.r, extent=image.extent, zorder=10)

希望对您有所帮助。