应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

PythonGDAL绘制栅格图像的时间序列折线图

  本文介绍基于Python中gdal模块,对大量多时相栅格图像,批量绘制像元时间序列折线图的方法。
  首先,明确一下本文需要实现的需求:现有三个文件夹,其中第一个文件夹存放了某一研究区域原始的多时相栅格遥感影像数据(每一景遥感影像对应一个时相,文件夹中有多景遥感影像),每一景遥感影像都是。tif格式;第二个文件夹与第三个文件夹则分别存放了前述第一个文件夹中原始遥感影像基于2种不同滤波方法处理后的遥感影像(同样是每一景遥感影像对应一个时相,文件夹中有多景遥感影像),每一景遥感影像同样也都是。tif格式。我们希望分别针对这三个文件夹中的多张遥感影像数据,随机绘制部分像元对应的时间序列曲线图(每一个像元对应一张曲线图,一张曲线图中有三条曲线);每一张曲线图的最终结果都是如下所示的类似的样式,X轴表示时间节点,Y轴就是具体的像素值。
  知道了需求,我们便开始代码的书写。具体代码如下:coding:utf8CreatedonWedDec1400:48:482022author:fkxxgisimportosimportnumpyasnpimportmatplotlib。pyplotaspltfromosgeoimportgdaloriginalfilepathrE:AllYearOriginalhantsfilepathrE:AllYearReconstructionsgfilepathrE:AllYearSGpicfilepathrE:AllYearPicpicnum50np。random。seed(6)originalfilelistos。listdir(originalfilepath)temrastergdal。Open(os。path。join(originalfilepath,originalfilelist〔0〕))colnumtemraster。RasterXSizerownumtemraster。RasterYSizecolpointarraynp。random。randint(0,colnum,picnum)rowpointarraynp。random。randint(0,rownum,picnum)deltemrasterhantsfilelistos。listdir(hantsfilepath)startdayhantsfilelist〔0〕〔12:15〕enddayhantsfilelist〔1〕〔12:15〕daylist〔xforxinrange(int(startday),int(endday)20,10)〕foriinrange(picnum):originalpixellist,hantspixellist,sgpixellist〔〔〕forxinrange(3)〕fortifinoriginalfilelist:originalrastergdal。Open(os。path。join(originalfilepath,tif))originalarrayoriginalraster。ReadAsArray()originalpixellist。append(originalarray〔rowpointarray〔i〕,colpointarray〔i〕〕)fortifinhantsfilelist:hantsrastergdal。Open(os。path。join(hantsfilepath,tif))hantsarrayhantsraster。ReadAsArray()hantspixellist。append(hantsarray〔1,rowpointarray〔i〕,colpointarray〔i〕〕)sgfilelistos。listdir(sgfilepath)fortifinsgfilelist:sgrastergdal。Open(os。path。join(sgfilepath,tif))sgarraysgraster。ReadAsArray()sgpixellist。append(sgarray〔1,rowpointarray〔i〕,colpointarray〔i〕〕)picfilenamestr(colpointarray〔i〕)str(rowpointarray〔i〕)。pngplt。figure(dpi300)plt。plot(originalpixellist,colorred,labelOriginal)plt。plot(hantspixellist,colorgreen,labelHANTS)plt。plot(sgpixellist,colorblue,labelSG)plt。legend()plt。xticks(range(len(daylist)),daylist,fontsize11)plt。xticks(rotation45)plt。title(str(colpointarray〔i〕)str(rowpointarray〔i〕),fontweightbold)plt。savefig(os。path。join(picfilepath,picfilename))plt。show()plt。clf()deloriginalrasterdelhantsrasterdelsgraster
  其中,E:AllYearOriginal为原始多时相遥感影像数据存放路径,也就是前述的第一个文件夹的路径;而E:AllYearR与E:AllYearS则是前述第二个文件夹和第三个文件夹对应的路径;E:AllYearPic则是批量绘图后,图片保存的路径。这里请注意,在运行代码前我们需要在资源管理器中,将上述三个路径下的各文件以名称排序的方式进行排序(每一景遥感影像都是按照成像时间命名的)。此外,picnum则是需要加以绘图的像元个数,也就表明后期我们所生成的曲线图的张数为50。
  代码的整体思路也非常简单。首先,我们借助os。listdir()函数获取originalfilepath路径下的所有栅格遥感影像文件,在基于gdal。Open()函数将这一文件下的第一景遥感影像打开后,获取其行数与列数;随后,通过np。random。randint()函数生成两个随机数数组,分别对应着后期我们绘图的像元的行号与列号。
  在代码的下一部分(就是hantsfilelist开头的这一部分),我们是通过截取文件夹中图像的名称,来确定后期我们生成的时间序列曲线图中X轴的标签(也就是每一个x对应的时间节点是什么)其中,这里的〔12:15〕就表示对于我的栅格图像而言,其文件名的第13到15个字符表示了遥感影像的成像时间;大家在使用代码时依据自己的实际情况加以修改即可。在这里,我们得到的daylist,就是后期曲线图中X轴各个标签的内容。
  随后,代码中最外层的for循环部分,即为批量绘图工作的开始。我们前面选择好了50个随机位置的像元,此时就可以遍历这些像元,对每一个像元在不同时相中的数值加以读取通过。ReadAsArray()函数将栅格图像各波段的信息读取为Array格式,并通过对应的行号与列号加以像素值的获取;随后,将获取得到的像元在不同时相的数值通过。append()函数依次放入前面新生成的列表中。
  在接下来,即可开始绘图的工作。其中,picfilename表示每一张曲线图的文件名称,这是通过当前像元对应的行号与列号来命名的;plt。figure(dpi300)表示设置绘图的DPI为300。随后,再对每一张曲线图的图名、图例与坐标轴标签等加以配置,并通过plt。savefig()函数将生成的图片保存在指定路径下。
  最终,我们得到的多张曲线图结果如下图所示,其文件名通过列号与行号分别表示了当前这张图是基于哪一个像元绘制得到的;其中,每一张图的具体样式就是本文开头所展示的那一张图片的样子。
  至此,大功告成。
  欢迎关注:疯狂学习GIS

纳帅推销C罗是门德斯的工作我认为他应该得到C罗10年薪拜仁主帅纳格尔斯曼在接受sportbuzzer的采访时表示,他认为经纪人门德斯可以从C罗年薪中抽取10作为报酬。纳格尔斯曼表示:我认为门德斯可以得到C罗年薪中的10,所以……关羽陆树铭的消失,是娱乐圈的悲哀和损失关注我,每天带来名人感动的故事!陆树铭,是国内知名演员,1994年凭借电视剧《三国演义》中的关羽一举成名,青龙偃月刀在手,把关公演绎得威风凛凛,如天神下凡一般。有着……烟雨泰山海棠花开润流年人间四月令人留恋五月芳菲,却也令人赞叹泰山海棠初绽迎风峭立,楚楚动人粉红色的海棠花骨朵已经在枝头满满当当地挂起来有的更迫不及待抽丝吐蕊……北控休赛期又遭打击,核心内线赛季报销,马布里重金挖来福建核心CBA休赛期可谓是格外热闹,CBA几家核心俱乐部的关键球员目前都是去向不明。新疆的周琦,辽宁的郭艾伦,广东的赵睿都是有离队的可能。下赛季CBA格局或许又有大变化,豪门广东男篮休……NBA晚报ESPN各大奖项预测,KD留队米切尔去纽约,沃尔免关注NBA的朋友们,大家好!在漫长的长草期,NBA球星的动态成为了球迷们关注的重点。ESPN专家团对新赛季的诸多奖项进行了预测,例如总冠军、MVP、最佳新秀、最佳防守球员等,还……郑智真有一手!刚上任就激活广州队最弱一环,闷平大连队该记首功日前,广州队在中超补赛中跟大连队狭路相逢,这场比赛经过90分钟的激战,最终以0比0握手言和告终。对于,0比0的平局,相信很多广州球迷都能接受。因为,广州队在这场比赛长时间少打一……NBA一夜6大最新交易杜兰特交易迎来反转勇士决定放弃维金斯一:杜兰特的交易迎来最新消息今天名记chry透露:杜兰特的交易迎来了突破的进展,之前凯尔特人和KD频繁互动,他们给出的筹码也非常有诱惑力,今天媒体又曝光了杜兰特在波士顿花……失眠易醒,多是肝血不足!简单4味药,养肝补血安神,改善睡眠大家好,我是李医生。经常失眠,睡眠浅,梦多,半夜容易醒,是个总聊不完的话题,今天给大家分享一个简单的妙方,希望能够帮助你,让你睡得又香又甜。最近有个粉丝跟我说,他一……纳睿雷达,国际先进水平相控阵雷达系统解决方案提供商广东纳睿雷达科技股份有限公司(以下简称纳睿雷达)成立于2014年5月,是国内掌握自主知识产权全极化多功能有源相控阵雷达关键核心技术并实现了产业化的高新技术企业。也是全球为数不多……建议宝宝喝母乳,不是为了省钱,母乳的这些特点让孩子聪明又健康文菁妈秀秀上个月生了孩子,在群里面跟闺蜜们吐槽,自己买了两罐奶粉带去了医院,到了医院医生压根就不让孩子喝奶粉,医生一直跟她说孩子要喝母乳会更好!秀秀刚刚开始没有母乳……在妈妈肚子里的故事今天,给您说一个怀孕时宝宝在妈妈肚子里的故事。孙琪是我最宝贝的儿子。从他出现在我肚子里的时候开始,我就下决心要把他培养成一个有出息的孩子。记得书上说过,怀孕的时候每天看漂……湖人公牛商讨3换2交易!佩林卡忍痛割爱送2首轮,扣篮王辅佐詹著名经纪人里奇保罗成为了今年夏天的热门人物,先是亲自出面与湖人承诺詹姆斯不会离开球队,紧接着又亲自爆出公牛球星扎克拉文想要加盟湖人队的消息,此消息一出立马引发了外界的关注,各大……
戴尔新发布的商用显示器包含微软Teams软件专用按钮戴尔将在下个月推出三款新显示器,它们都带有一个专门的微软Teams按钮。戴尔宣称,在微软去年开始对显示器、网络摄像头和耳机进行认证后,他们已经打造出了全球首款通过微软Teams……肝好不好,脸知道,养肝护肝从现在开始肝不好,脸知道,你的肝还好吗?脸上出现这三个问题,要小心!1、脸色发黄、发黑2、视力下降,眼睛无神3、粉刺丛生肝是如何作出问题的?1、过量饮……英格拉姆35分鹈鹕力克湖人结束10连败,戴维斯3414鹈鹕131126力克湖人结束10连败。开场安东尼戴维斯、贝弗利、八村塁拿下17分,帮助湖人取得领先。鹈鹕这边瓦兰丘纳斯强攻篮下,CJ麦科勒姆单节贡献14分,首节追到303……SUP3R5将于本周开售纯黑定制版索尼PS5游戏主机对于喜欢PlayStation2的老玩家们来说,SUP3R5推出的纯黑定制版PlayStation5主机,或许会引发你们的浓厚兴趣。尽管功能上与标准的PS5没有区别,但采用了可……儿医说丨我的孩子怎么说话越来越少,还变丑了?记者焦守广通讯员桑琳明明(化名)3岁前原本是一位帅气聪明爱说话的小男孩,3岁时家长发现孩子说话逐渐减少,4岁时容貌也明显变丑、不再是帅气水灵的小孩了。家长带着孩子多处求医……原创诗歌龙溪河即景白萝卜之花穿过荔枝林,沿着翠竹夹道的水泥路来到龙溪河。妇女们带着男孩与女童在溪边浣洗衣物、被套、玩具,甚至,我无法想象:一个婶子把一锅猪大肠也带到……三星GalaxyBudsPro开箱和初步上手体验在正式发布之前三星GalaxyBudsPro就已经在二手市场上流出,现在更有数码博主分享了详细的开箱视频和初步上手体验。视频中并没有提供其他值得关注的信息,不过确认了耳机主动降……中超转会最新消息泰山盯上西甲前腰!亚泰报价土超高中锋!2023赛季中超联赛将于4月中旬开赛,比赛将采取主客场赛制,历经三年的赛会制足球联赛彻底告别,这也让球迷非常兴奋,这个难得的休赛期,球队也是积极备战!据葡萄牙媒体报道,目……Xbox模拟器Xemu版本更新加入诸多新功能Xemu是一个开源的、跨平台的Xbox模拟器,现在已经更新到了0。5版本,为音频和图形仿真带来了新的改进。一个全新的预告片展示了新版模拟器所引入的所有改进,这些改进包括Bug修……一加印度官推发健身手环产品预告或很快就会推出据外媒报道,一加健身手环将于2021年在印度推出,该公司正准备进入可穿戴设备领域。据悉,这家公司通过一加印度Twitter账号发布了一个预告,该条推文揭示了其即将推出的健身手环……途虎养车即将上市逆流而上的成功核心是什么?22年年初,途虎养车宣布赴港上市,22年9月,途虎再次递交了招股书。直至2022年7月,途虎养车是广东地区门店数量最多的汽车服务品牌,如今,凭借优秀的汽车服务,途虎养车赢……华为鸿蒙HarmonyOS明年将正式登陆欧洲IT之家12月5日消息,华为中东欧、北欧和加拿大消费者业务总裁DerekYu近日在罗马尼亚交流时向记者朋友表示,鸿蒙系统HarmonyOS明年将登陆欧洲。IT之家曾报道,……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网