如何将 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)
希望对您有所帮助。
我正在尝试在指定区域显示 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)
希望对您有所帮助。