PythonGIS,GDAL 讀取柵格資料

2021-10-08 12:47:41 字數 1864 閱讀 5170

新手上路,把我在學習pythongis中的過程記錄,包括出現的問題以及解決辦法記錄下來,從而幫助更多的新手。我比較喜歡在geany上操作,以下** 也是在geany上操作的。

from osgeo import gdal

#匯入gdal包,這步驟也可驗證你gdal包是否裝好,環境設定是否正確。

import numpy as np

#匯入numpy包,讀取柵格資料的數值,陣列矩陣運算

#開啟檔案

#1 在cmd中可以cd到資料的資料夾,然後直接讀取,cd的方法

#2 在geany中我是先把資料路徑賦給fn,如下操作:

fn = r'd:\study\pythongis\chapter_02\***.tif'

dataset=gdal.open(fn)

#1 2方法選1種即可

#讀取柵格矩陣的列、行、波段數(按順序對應**)

im_width=dataset.rasterxsize

im_height=dataset.rasterysize

im_bands=dataset.rastercount

#仿射矩陣,左上角畫素的大地座標和畫素解析度

im_geotrans=dataset.getgeotransform(

)#地圖投影資訊,字串表示

im_proj=dataset.getprojection(

)###這裡我就出現了一些問題,error1-n:can't find proj.

###我在確保自己的gdal包安裝正確且無丟失情況下,通過設定使用者變數環境解決了。

###link:[關於gdal執行時出現cannot find proj.db的解決辦法]

)###大家可以嘗試,若不懂該方法可以和我**。

#讀取波段,引數為波段的索引號,波段索引號從1開始

band=dataset.getrasterband(1)

#用readasarray(, , , ),讀出從(xoff,yoff)開始,大小為(xsize,ysize)的矩陣。

im_datas=band.readasarray(0,

0,im_width,im_height)

#獲取某個範圍內(行列)的像元值;如1~5行和5~11列;(濾波計算中常用的)

data=im_datas[1:

6,5:

12]print

(data)

#輸出結果:[[

927,

934,

936,

938,

940,

946],[

935,

950,

955,

959,

961,

965],[

936,

950,

955,

959,

961,

965],[

936,

959,

959,

961,

961,

966],[

931,

958,

965,

962,

957,

950]

]del dataset#釋放dataset,否則dataset會一直被占用,在arcgis或envi中開啟該影象時顯示檔案已被占用

完成!

接下來會分享寫入柵格資料的經驗,然後是向量資料的讀寫!

C 讀取 讀取XML

讀取xml到listbox combobox 1,知識需求 1 訪問xml檔案的兩個基本模型 一,dom模型 使用dom的好處在於它允許編輯和更新xml文件,可以隨機訪問文件中的資料,可以使用xpath查詢,但是,dom的缺點在於它需要一次性的載入整個文件到記憶體中,對於大型的文件,這會造成資源問題...

讀取excel PySpark讀取Excel

日常工作中,客戶通過excel提供資料是一種很常見的方式,既然碰到了就得解決。我常用的辦法就是pandas讀取,並儲存為parquet,如果只讀取乙個sheet,import pandas as pddf pd.read excel excel1.xlsx df.to parquet excel e...

中讀取資料 讀取資料

對資料庫有一定了解的同學應該都知道資料表這個東西。資料表一般是以行列來儲存和展示資料的。每一列就是乙個資料字段,代表每一行資料的屬性。在python裡面也有類似表概念的東西,叫做dataframe。dataframe是我們資料分析和風控建模中很重要乙個元素,後續的很多資料操作都要以此為基礎。我們的資...