2013-12-04 6 views
1

Как рассчитать среднюю широту и среднюю долготу каждого блока из изображения geotiff, разделив его на обычные блоки (скажем, 50 на 50 пикселей).вычислить широту и долготу по геотипному изображению

Входные данные только образы, например, как скачать с: http://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57752/land_shallow_topo_2048.tif

Это может быть открыт в питоне с использованием GDAL как folows:

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

Какая проекция, система координат и т. Д.? –

+0

@Mad Physicist это просто географическая система lat lon – 2964502

ответ

1

Взгляните на этот вопрос: Obtain Latitude and Longitude from a GeoTIFF File

Поскольку ваше изображение уже находится в полных координатах, следующие значения должны быть в режиме 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 

Центр коробки 50х50, который i коробки строк и j окно колонны от угла находится:

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

Если вы используя некоторую другую систему координат, вы можете добиться аналогичного результата, выполнив преобразование из другого, похожего вопроса.

Смежные вопросы