【问题标题】:calculate latitude and longitude from a geotiff image从 geotiff 图像计算纬度和经度
【发布时间】:2013-12-04 08:15:59
【问题描述】:

如何从geotiff 图像中计算每个块的平均纬度和平均经度,将其分成常规块(例如,50 x 50 像素)。

输入数据只是图像,例如下载自:http://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57752/land_shallow_topo_2048.tif

这可以使用gdal打开到python中,如下所示:

import gdal
geotiff = gdal.Open ('land_shallow_topo_2048.tif')
colum_numbers,row_numbers,band_numbers=geotiff.RasterXSize,
                                       geotiff.RasterYSize,geotiff.RasterCount
print (colum_numbers,row_numbers,band_numbers)
2048 1024 3

【问题讨论】:

  • 什么投影、坐标系等?
  • @Mad Physicist 这只是地理纬度系统

标签: python matplotlib scipy gdal geotiff


【解决方案1】:

看看这个问题:Obtain Latitude and Longitude from a GeoTIFF File

由于您的图像已经采用经纬度坐标,因此以下值应采用经纬度:

gt = geotiff.GetGeoTransform()
minx = gt[0]
miny = gt[3] + width*gt[4] + height*gt[5] 
maxx = gt[0] + width*gt[1] + height*gt[2]
maxy = gt[3]

现在一个像素的大小是:

latPxSz = (maxy - miny) / row_numbers
lonPxSz = (maxx - minx) / column_numbers

一个 50x50 盒子的中心是:i 盒子行和j 盒子列远离角落:

boxCenterLat = (i + 0.5) * 50 * latPxSz + miny
boxCenterLon = (j + 0.5) * 50 * lonPxSz + minx

如果您使用的是其他坐标系,则可以通过对其他类似问题进行转换来获得类似的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多