python 呼叫gdal 處理dem資料

2021-08-14 20:52:53 字數 2267 閱讀 3970

# -*- coding: utf-8 -*-

from osgeo import gdal

import osr

import numpy as np

from matplotlib import pyplot as plt

from gdalconst import *

from matplotlib import cm

gdal.allregister()

filename = r"c:\users\y\desktop\12\astgtm2_n00e011\astgtm2_n00e011_num.tif"

data = gdal.open(filename, ga_readonly)

defconverttoutm

(dataset, dx, utmzone):

datum = 'wgs84'

oldref = osr.spatialreference() #初始化空間座標

# 從資料集中複製投影座標系

oldref.importfromwkt(dataset.getprojectionref())

newref = osr.spatialreference()

newref.setutm(abs(utmzone), utmzone > 0)

# 建立乙個座標轉換物件

transform = osr.coordinatetransformation(oldref, newref)

tvect = dataset.getgeotransform()

nx, ny = dataset.rasterxsize, dataset.rasterysize

#轉換左上角座標,x,y

(ulx, uly, ulz ) = transform.transformpoint(tvect[0], tvect[3])

#轉換左下角座標

(lrx, lry, lrz ) = transform.transformpoint(tvect[0] + tvect[1]*nx+ny*tvect[2],

tvect[3] + tvect[5]*ny+nx*tvect[4])

#分別是左上角x,每個畫素寬,旋轉,分別是左上角y,旋轉,畫素高

newtvect = (ulx, dx, tvect[2], uly, tvect[4], -dx)

return newtvect

nx, ny = data.rasterxsize, data.rasterysize

dx = 10

#格網間隔

utmzone = 10

#南半球為負,utm 帶號=(經度整數字/6)的整數部分+31(東經為正值,西經為負值)

gridnew = data.readasarray().astype(np.float)#所有點高程

(upper_left_x, x_size, x_rotation, upper_left_y, y_rotation, y_size) = converttoutm(data, dx, utmzone)

xllcenter = upper_left_x + dx/2

# 左下角畫素中心x座標(utm)

yllcenter = upper_left_y - (ny-1)*dx - dx/2

# 左下角畫素中心y座標

###yllcenter 之所以是,是此時座標係為笛卡爾,

##東西為x,南北朝上為y,左上角座標減去(ny-1)*dx可得左下角畫素座標,再減去0.5個格網,就得到左下角畫素的中心座標

#每個畫素的座標

xcoordinates = [x*dx + xllcenter for x in range(nx)]

ycoordinates = [y*dx + yllcenter for y in range(ny)]

#建立2d格網描述x,y

投影後的

python dll呼叫 python呼叫dll

在python中呼叫dll檔案中的介面比較簡單,例項 如下 如我們有乙個test.dll檔案,內部定義如下 extern c int stdcall test void p,int len return len 在python中我們可以用以下兩種方式載入 1.import ctypes dll ct...

GDAL 處理柵格資料

gdal 是柵格資料處理模組 ogr 是向量資料處理模組 gdal資料驅動,與ogr資料驅動類似,需要先建立某一型別的資料驅動,再建立響應的柵格資料集。一次性註冊所有的資料驅動,但是只能讀不能寫 gdal.allregister 單獨註冊某一型別的資料驅動,這樣的話可以讀也可以寫,可以新建資料集 d...

python關於GDAL配置

檢查電腦安裝python版本如下,win r輸入cmd開啟控制台 輸入python,即可檢視版本號 c users administrator python python 3.9.0 tags v3.9.0 9cf6752,oct 5 2020,15 34 40 msc v.1927 64 bit ...