GDAL,地学必备~python的gdal(裁剪、拼接)

时间:2022-07-25
本文章向大家介绍GDAL,地学必备~python的gdal(裁剪、拼接),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

你认识GDAL吗?你了解GDAL吗?

反正我不是很熟,我只知道它很酷、很快、而且很厉害,不过好像也有很多缺陷。很酷很快很厉害我就不多说了,网上的彩虹屁多的和牛毛一样。我主要想说说几个问题,虽然这些问题可能只有我会遇到(意思是可能我安装的姿势不太对)。

你要是为我花过一块钱(上一篇),你可能就会发现一点点问题。为什么我得单独加载一个WGS坐标的tif图呢?这就是我想说的问题所在了,你要是看不下去就跳到下一段吧。python的gdal库可以读取很多的遥感影像格式,但是读进来并不意味着认出来,就好比上回的OMI,读进来后并不能准确的认出它的ds.GetGeoTransform()中的6个参数(分别是左下角x,左上角y,x和y的长宽以及两个0值---如果有错,请无情的批判我),好像也认不到它的坐标系?具体我忘了。总之,是有些问题的。

但是,今天的内容并不集中在python的gdal库,而是正!经! GDAL 的C语言程序上,通过python的subprocess包调用cmd函数。起码这个方式上,我没有遇到那么多问题~

好了~废话不要那么多,不如直接上干货。。。

等等,上干货之前,你总要了解一下GDAL的安装吧,我觉得安装GDAL也是满满的血坑,但是。。。我就是不告诉你我摔了个怎么样的大趴。。。毕竟:

跳过GDAL安装,愉快的lu python代码吧

import subprocess
#首先是拼接
subprocess.call('D:/Anaconda3/python.exe'+' '+'gdal_merge.py '+'-of GTiff '+'-o '+str(oup)+' '+str(inp1))
#这里,out是输出的路径+文件名,inp1是输入的

subprocess.call("gdalwarp -cutline " + str(shp) + " -crop_to_cutline " + str(inp) + " -tr " + str(res) + " " + str(res) + " " + str(out), shell = True)
#和上面一样的,out是输出的路径+文件名,inp1是输入的,两个res分别是空间分辨率的长和宽,shp是裁剪用的矢量哦

你们要是问我为什么写的这么简单,解释的这么不酷?

还能为什么?我懒啊!

还在等什么?还不赶紧跨过GDAL安装的门槛,愉快的用GDAL快速的裁剪、拼接成千上万的遥感影像?

放两个结果给大家:

第一个是裁剪:

(猜猜这是哪?)

下一个是拼接:

(这个你们可能看不清,它是两个MAIAC的影像拼接而成,分为上下两部分)

最后,希望我能和大家一样的幸福快乐~