将xy的Geotiff转换为python中的numpy数组位置

时间:2017-04-12 12:50:48

标签: python arrays numpy gdal geotiff

我有geotiff文件,我已将其读入numpy数组,如下面的链接所述:

Working with TIFFs (import, export) in Python using numpy

我拥有的Geotiff数组的大小是(465,465),我使用gdalinfo获取了文件的元数据,并使用WGS84作为它的CRS。

我想对文件做的是将我在QGIS和Gdalinfo中看到的xy lat lon坐标转换为导入的numpy数组中点的实际位置,我将如何进行此操作?

1 个答案:

答案 0 :(得分:0)

您需要使用地理转换,从打开的GDAL数据集中获取它:

gt = ds.GetGeoTransform()

来自GDAL文档:

  

仿射变换由返回的六个系数组成   GDALDataset :: GetGeoTransform()将像素/线坐标映射到   使用以下关系的地理参考空间:

Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)
Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
     

http://www.gdal.org/gdal_datamodel.html

如果您的光栅未旋转,则相当简单,只需减去原点并除以分辨率。

有几个库可以执行这样的仿射变换,例如恰当命名的仿射'图书馆。有关其用法的详细说明,请访问:

http://www.perrygeo.com/python-affine-transforms.html