首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python底图上镜像的GeoTIFF栅格

在Python底图上镜像的GeoTIFF栅格
EN

Stack Overflow用户
提问于 2020-09-10 21:35:57
回答 1查看 499关注 0票数 0

我正在尝试使用底图在我的地图上绘制.tif光栅。在QGIS中,我看到的栅格图层应该是:QGIS image

然而,当使用python底图绘制时,颜色是关闭的,投影以某种方式旋转了180度并镜像,在图表的左侧投影了一条随机的蓝线:

有关.tif文件的一些信息(通过rasterio和earthpy软件包获取):

代码语言:javascript
复制
<osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x7fcf9bdbef90> >
{'driver': 'GTiff', 'dtype': 'float32', 'nodata': -3.4028234663852886e+38, 'width': 2760, 'height': 1350, 'count': 1, 'crs': CRS.from_epsg(4326), 'transform': Affine(0.01, 0.0, 3.7,
       0.0, -0.01, 71.2)}
EPSG:4326
BoundingBox(left=3.7, bottom=57.7, right=31.3, top=71.2)
+proj=longlat +datum=WGS84 +no_defs

将原始栅格数据下载到here (森林恢复潜力)中,利用定量地理信息系统对原始栅格数据进行经纬度裁剪。

我做错了什么?

代码语言:javascript
复制
import gdal
from numpy import linspace
from numpy import meshgrid
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

lowlong = 3.7 #lower left corner of longitude
lowlat = 57.7 #lower left corner of latitude
upplong = 31.3 #upper right corner of longitude
upplat = 71.2 #upper right corner of latitude

pathToRaster = r'~/Data/Shapefile/NorwayPotential.tif'
raster = gdal.Open(pathToRaster,1)
print(raster)
geo = raster.GetGeoTransform()
geo = raster.ReadAsArray()

mp = Basemap(projection='merc',
             llcrnrlon=lowlong,
             llcrnrlat=lowlat,
             urcrnrlon=upplong,
             urcrnrlat=upplat,
             resolution='i')

mp.drawcoastlines()
mp.drawcountries()

x = linspace(0,mp.urcrnrx,geo.shape[1])
y = linspace(0,mp.urcrnry,geo.shape[0])

xx,yy = meshgrid(x,y)
mp.pcolormesh(xx,yy,geo)

plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-11 20:31:01

在代码行之后:

代码语言:javascript
复制
geo = raster.ReadAsArray()

您可以通过以下方式翻转数据数组

代码语言:javascript
复制
geo =  geo[::-1,:]

并且应该得到正确的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63830874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档