如何从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
答案 0 :(得分:1)
看看这个问题:Obtain Latitude and Longitude from a GeoTIFF File
由于您的图像已经在lat-lon坐标中,因此以下值应为lat-lon:
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
如果你正在使用其他一些坐标系,你可以通过从另一个相似的问题进行转换来获得类似的结果。