Python實(shí)現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖
本文介紹基于Python中gdal模塊,實(shí)現(xiàn)對(duì)大量柵格圖像批量繪制直方圖的方法。
首先,明確一下本文需要實(shí)現(xiàn)的需求:現(xiàn)需對(duì)多幅柵格數(shù)據(jù)文件進(jìn)行依據(jù)其像元數(shù)值的直方圖繪制,具體繪制內(nèi)容即各柵格圖像像素?cái)?shù)值的分布情況;所有柵格數(shù)據(jù)都保存在同一目標(biāo)路徑下,且均為.tif格式;而目標(biāo)路徑下具有其它非.tif格式的文件,以及不需要進(jìn)行直方圖繪制的.tif格式文件,因此需要在繪制前對(duì)目標(biāo)路徑下的文件列表加以篩選,只保留需要繪制直方圖的柵格文件。
知道了需求,我們便開(kāi)始代碼的書(shū)寫(xiě)。具體代碼如下:
# -*- 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路徑下的全部文件,此時(shí)獲取的文件包括需要的.tif格式文件與其它不需要的文件;其次,通過(guò)os.path.splitext()函數(shù)將上述列表中的每一個(gè)文件file的文件名與文件拓展名分離,并選擇".tif"進(jìn)行處理;這一步是避免誤將lai_file_path路徑中非.tif格式文件一并選擇。
隨后,還需要將我們不需要的.tif柵格圖像通過(guò)文件名篩選的方式去除。在這里,由于不需要繪圖的.tif文件均以MCD開(kāi)頭,因此直接通過(guò)字符串截取的方式將其加以剔除即可;大家在上述代碼的實(shí)際運(yùn)用過(guò)程中按照個(gè)人需求進(jìn)行篩選即可。
接下來(lái),開(kāi)始直方圖的繪制。在這里我選擇了將幾幅直方圖以子圖的形式繪制在一個(gè)總圖中,因此需要借助sub_plot_num進(jìn)行循環(huán);隨后,對(duì)篩選后的圖層進(jìn)行讀取,并將柵格數(shù)據(jù)轉(zhuǎn)換為Array形式,這一部分具體可以參考文章Python GDAL讀取柵格數(shù)據(jù)并基于質(zhì)量評(píng)估波段QA對(duì)指定數(shù)據(jù)加以篩選掩膜,本文就不再贅述;最后,利用plt.hist()函數(shù)進(jìn)行直方圖的繪制即可。
最后,通過(guò)plt.savefig(pic_save_path, dpi=300)這句代碼,將設(shè)置了圖像清晰度的繪圖結(jié)果保存在指定路徑,從而大功告成。
到此這篇關(guān)于Python實(shí)現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖的文章就介紹到這了,更多相關(guān)Python繪制直方圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?ArcPy實(shí)現(xiàn)批量對(duì)大量遙感影像相減做差
- Python實(shí)現(xiàn)批量填補(bǔ)遙感影像的無(wú)效值NoData
- Python?ArcPy實(shí)現(xiàn)批量計(jì)算多時(shí)相遙感影像的各項(xiàng)元平均值
- Python?ArcPy批量掩膜、重采樣大量遙感影像的操作
- Python高光譜遙感影像處理問(wèn)題詳細(xì)分析講解
- 詳解Python修復(fù)遙感影像條帶的兩種方式
- Python 實(shí)現(xiàn)遙感影像波段組合的示例代碼
- 利用python GDAL庫(kù)讀寫(xiě)geotiff格式的遙感影像方法
- Python中使用OpenCV庫(kù)來(lái)進(jìn)行簡(jiǎn)單的氣象學(xué)遙感影像計(jì)算
- 基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù)(示例代碼)
相關(guān)文章
使用Python實(shí)現(xiàn)獲取文件詳細(xì)信息
Python提供了豐富的內(nèi)置模塊和函數(shù),獲取和操作文件的各種屬性信息,比如大小、修改時(shí)間、權(quán)限以及路徑等,本文將通過(guò)詳細(xì)的示例代碼展示如何使用Python中的os和os.path模塊來(lái)獲取文件屬性信息,需要的可以參考下2023-12-12
Python實(shí)現(xiàn)輸入二叉樹(shù)的先序和中序遍歷,再輸出后序遍歷操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)輸入二叉樹(shù)的先序和中序遍歷,再輸出后序遍歷操作,涉及Python基于先序遍歷和中序遍歷構(gòu)造二叉樹(shù),再后序遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
python sorted函數(shù)的小練習(xí)及解答
這篇文章主要介紹了python sorted函數(shù)的小練習(xí)及解答,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
python中opencv實(shí)現(xiàn)圖片文本傾斜校正
圖片有的時(shí)候需要矯正,本文主要介紹了python中opencv實(shí)現(xiàn)圖片文本傾斜校正,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
python使用點(diǎn)操作符訪問(wèn)字典(dict)數(shù)據(jù)的方法
這篇文章主要介紹了python使用點(diǎn)操作符訪問(wèn)字典(dict)數(shù)據(jù)的方法,涉及Python操作字典的技巧,需要的朋友可以參考下2015-03-03
tensorflow之讀取jpg圖像長(zhǎng)和寬實(shí)例
這篇文章主要介紹了tensorflow之讀取jpg圖像長(zhǎng)和寬實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例
這篇文章主要介紹了深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Python實(shí)現(xiàn)接口自動(dòng)化測(cè)試的方法詳解
Python接口自動(dòng)化測(cè)試是一種高效、可重復(fù)的軟件質(zhì)量驗(yàn)證方法,尤其在現(xiàn)代軟件開(kāi)發(fā)中,它已經(jīng)成為不可或缺的一部分,本文將深入探討如何使用Python進(jìn)行接口自動(dòng)化測(cè)試,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08

