我想使用python
和对栅格进行地理配准GDAL
。我当前的方法是调用gdal_translate
和gdalwarp
使用os.system
地面控制点列表。我真的很想在本地进行此操作python
。
这是我正在使用的当前过程:
import os
os.system('gdal_translate -of GTiff -gcp 1251.92 414.538 -7.9164e+06 5.21094e+06 -gcp 865.827 107.699 -7.91651e+06 5.21104e+06 "inraster.tif" "outraster1.tif"')
os.system('gdalwarp -r bilinear -tps -co COMPRESS=NONE "outraster2.tif" "outraster3.tif"')
有一个以前的问题和答案在2012年里面写明了gdal_translate
可以导入后进行访问gdal
。我不确定是否已过时,或者是否错误,但是当我运行时,from osgeo import gdal
我不认为这gdal.gdal_translate
是一个选择。
我不知道它是否存在,但是如果我能以pythonic的方式翻译和重新投影栅格,我将不胜感激。例如:
# translate
gcp_points = [(1251.92, 414.538), (-7.9164e+06, 5.21094e+06)]
gdal.gdal_translate(in_raster, gcp_points, out_raster1)
# warp
gdal.gdalwarp(out_raster1, out_raster2, 'bilinear', args*)
这样的方法可行吗?
1
gdal_translate和gdalwarp以及其他gdal实用程序不是python软件包/模块,它们是独立的可执行文件。您可以使用os.system或(最好是)subprocess.Popen来调用它们。
—
user2856 2014年
@Luke,因此无法与这些gdal实用程序进行交互吗?如果不存在,我很乐意探索如何为这些编写一个python包装器。
—
djq 2014年
您可以使用gdal python API来执行gdal_translate和gdalwarp实用程序几乎可以做的所有事情,只是稍微复杂一点。查看gdal.AutoCreateWarpedVRT和gdal Driver.CreateCopy。
—
user2856 2014年