Разрезать большой GeoTiff на плитки с шагом 1 градус

У меня есть куча больших файлов GeoTiff (1,4 ГБ, 4 градуса широты x 8 градусов долготы).

Мне нужно разрезать каждую плитку на 1 градус широты x 1 градус длины (с небольшим избытком в каждой).

Вот вывод gdalinfo для одного из файлов GeoTiff:

Driver: GTiff/GeoTIFF
Files: index.tif
Size is 38401, 19201
Coordinate System is:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4326"]]
Origin = (-112.000104166666674,56.000104166666667)
Pixel Size = (0.000208333333333,-0.000208333333333)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (-112.0001042,  56.0001042) (112d 0' 0.38"W, 56d 0' 0.37"N)
Lower Left  (-112.0001042,  51.9998958) (112d 0' 0.38"W, 51d59'59.62"N)
Upper Right (-103.9998958,  56.0001042) (103d59'59.62"W, 56d 0' 0.37"N)
Lower Right (-103.9998958,  51.9998958) (103d59'59.62"W, 51d59'59.62"N)
Center      (-108.0000000,  54.0000000) (108d 0' 0.00"W, 54d 0' 0.00"N)
Band 1 Block=38401x1 Type=Int16, ColorInterp=Gray
  NoData Value=-32767

Я хочу, чтобы все было одинаково, кроме размера. Таким образом, каждый из них нужно разрезать на 32 плитки, каждая по 1 градусу x 1 градусу.

Например, можно покрыть:
-112.0001042, от 56.0001042 до -110.9998958, 54.9998958 (фактически от -112, 56 до -111, 55).

Я вижу такие утилиты, как gdal_retile.py и gdal_grid, но у меня нет прогресса. Каковы правильные параметры инструмента / командной строки для этого?


person user1517922    schedule 25.11.2013    source источник
comment
Взгляните на gdal_translate, особенно на ключевое слово projwin: gdal.org/gdal_translate.html   -  person Rutger Kassies    schedule 26.11.2013


Ответы (1)


Вы можете использовать gdal_translate в цикле Python, как показано ниже:

import os

for ulx in range(-112,-103):
    for uly in range(51,56):
        os.system('gdal_translate -projwin '+str(ulx)+' '+str(uly)+' '+str(ulx+1)+' '+str(uly+1)+' index.tif index_tile_ulx_'+str(ulx)+'_uly_'+str(uly)+'.tif')
person Wraf    schedule 26.11.2013