您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python如何實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖”,在日常操作中,相信很多人在Python如何實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python如何實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
首先,明確一下本文需要實現(xiàn)的需求:現(xiàn)需對多幅柵格數(shù)據(jù)文件進行依據(jù)其像元數(shù)值的直方圖繪制,具體繪制內(nèi)容即各柵格圖像像素數(shù)值的分布情況;所有柵格數(shù)據(jù)都保存在同一目標路徑下,且均為.tif
格式;而目標路徑下具有其它非.tif
格式的文件,以及不需要進行直方圖繪制的.tif
格式文件,因此需要在繪制前對目標路徑下的文件列表加以篩選,只保留需要繪制直方圖的柵格文件。
知道了需求,我們便開始代碼的書寫。具體代碼如下:
# -*- coding: utf-8 -*- """ Created on Tue Jul 20 12:17:05 2021 @author: fkxxgis """ import os import numpy as np import matplotlib.pyplot as plt from osgeo import gdal lai_file_path="G:/Postgraduate/LAI_Glass_RTlab/LAI_Difference_Global/" pic_save_path="G:/Postgraduate/LAI_Glass_RTlab/LAI_histogram.png" file_list=os.listdir(lai_file_path) tif_list=[] for file in file_list: if os.path.splitext(file)[1]==".tif": if file[0:3]!="MCD": tif_list.append(file) sub_plot_num=1 for tif in tif_list: lai_algorithm=tif[0:3] print(lai_algorithm) lai_raster=gdal.Open(lai_file_path+tif) lai_raster_array=lai_raster.ReadAsArray() plt.subplot(2,2,sub_plot_num) plt.hist(lai_raster_array) sub_plot_num=sub_plot_num+1 plt.show() plt.savefig(pic_save_path, dpi=300)
其中,lai_file_path
為待處理柵格圖層存放的路徑,pic_save_path
為后期程序得到直方圖的保存路徑。
首先,借助os.listdir()
函數(shù)獲取lai_file_path
路徑下的全部文件,此時獲取的文件包括需要的.tif
格式文件與其它不需要的文件;其次,通過os.path.splitext()
函數(shù)將上述列表中的每一個文件file
的文件名與文件拓展名分離,并選擇".tif"
進行處理;這一步是避免誤將lai_file_path
路徑中非.tif
格式文件一并選擇。
隨后,還需要將我們不需要的.tif
柵格圖像通過文件名篩選的方式去除。在這里,由于不需要繪圖的.tif
文件均以MCD
開頭,因此直接通過字符串截取的方式將其加以剔除即可;大家在上述代碼的實際運用過程中按照個人需求進行篩選即可。
接下來,開始直方圖的繪制。在這里我選擇了將幾幅直方圖以子圖的形式繪制在一個總圖中,因此需要借助sub_plot_num
進行循環(huán);隨后,對篩選后的圖層進行讀取,并將柵格數(shù)據(jù)轉換為Array
形式,這一部分具體可以參考文章Python GDAL讀取柵格數(shù)據(jù)并基于質(zhì)量評估波段QA對指定數(shù)據(jù)加以篩選掩膜,本文就不再贅述;最后,利用plt.hist()
函數(shù)進行直方圖的繪制即可。
最后,通過plt.savefig(pic_save_path, dpi=300)
這句代碼,將設置了圖像清晰度的繪圖結果保存在指定路徑,從而大功告成。
到此,關于“Python如何實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。