你认识GDAL吗?你了解GDAL吗?
反正我不是很熟,我只知道它很酷、很快、而且很厉害,不过好像也有很多缺陷。很酷很快很厉害我就不多说了,网上的彩虹屁多的和牛毛一样。我主要想说说几个问题,虽然这些问题可能只有我会遇到(意思是可能我安装的姿势不太对)。
你要是为我花过一块钱(上一篇)(好奇心的同学可以关注底下公众号,花一块钱查阅《OMI数据的python读写(顺便测试测试付费功能)》,虽然你们肯定只会白嫖),你可能就会发现一点点问题。为什么我得单独加载一个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的影像拼接而成,分为上下两部[分)
最后,希望我能和大家一样的幸福快乐~