我基本上试图达到this question的反面。
我在WGS84坐标系中有一组纬度和经度坐标(带有值),我想通过gdal python绑定写入geotiff(或者只是添加到gdal数据集)。
例如,我的起始数据可能是:
lat = np.array([45.345,56.267,23.425])
lon = np.array([134.689,128.774,111.956])
value = np.array([3.0,6.2,2.5])
怎么可能这样做?谢谢!
答案 0 :(得分:2)
虽然它不在您的问题中,但您似乎需要将WGS84基准的纬度/经度数据投影到UTM投影。这可以使用GDAL的ogr2ogr命令行使用两个选项-a_srs 4326 -t_srs ????
(目标SRID)。它也可以使用GDAL的OGR模块在Python内部完成。 Here is an example of use
有两种独立的方法可以从点数据中获取栅格。第一个是interpolate数据中的值,以便值泛滥区域(或者有时只有凸包)。有许多方法和工具可以在2D中插值。使用GDAL,命令行工具gdal_grid可用于此目的,尽管我认为不可能使用Python。可能最简单的方法是使用scipy.interpolate。一旦你有了一个2D NumPy数组,它就是simple to create a raster file和GDAL / Python。
将点转换为栅格的第二种方法是将点位置刻录到栅格上的像素。与第一种方法不同,只有点具有值的位置,而值不在栅格中的任何其他位置插值。可以从GDAL命令行工具gdal_rasterize中将矢量栅格化或刻录到栅格中。它也可以在GDAL / Python内部完成,here is an example。
答案 1 :(得分:1)
可以使用Python中的gdal_grid。我正在使用它。 您需要做的就是构造命令,就像从命令行使用它并将其放在subprocess.call(com,shell = True)中一样。您需要先导入子进程模块。
这实际上就是我使用它的方式:
pcall= "gdal_grid --config 'NUM_THREADS=ALL_CPUS GDAL_CACHEMAX=2000'\
-overwrite -a invdist:power=2.0:smoothing=2.0:radius1=360.0:radius2=360.0\
-ot UInt16 -of GTiff -outsize %d %d -l %s -zfield 'Z' %s %s "%(npx, npy,\
lname,ptshapefile,interprasterfile)
subprocess.call(pcall, shell= True)
NUM_THREADS选项可从gdal 1.10 +
获得