将大GeoTiff切成1度瓷砖

时间:2013-11-25 21:02:37

标签: tile gdal geotiff

我有一堆大的GeoTiff文件(1.4GB,4纬度x 8经度)。

我需要将每个切片分成1度​​纬度x 1度长的瓷砖(每个瓷砖只有一点点的超量)。

以下是其中一个GeoTiff文件的gdalinfo输出:

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这样的实用程序,但我没有取得进展。什么是正确的工具/命令行选项?

1 个答案:

答案 0 :(得分:1)

您可以在Python循环中使用gdal_translate,如下所示:

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')