首頁 >後端開發 >Python教學 >python實作用經緯度點座標讀取DEM中的高程資訊(實例詳解)

python實作用經緯度點座標讀取DEM中的高程資訊(實例詳解)

WBOY
WBOY轉載
2022-02-24 17:35:055256瀏覽

本篇文章帶給大家了關於怎樣用10行程式碼實現經緯度點座標讀取DEM中的高程資訊的相關問題,主要的思路就是使用GDAL讀取DEM數據,獲取第一波段,並讀取為數組,然後金句經緯度計算行列號,利用行列號讀取高程信息,希望對大家有幫助。

python實作用經緯度點座標讀取DEM中的高程資訊(實例詳解)

推薦學習:mysql影片教學

#實作條件:1.需要用到的函式庫是GDAL;2.DEM資料;

1.想法

(1)使用GDAL讀取DEM資料,先取得第一波段,並讀取為數組,使用函數為:

ds.GetRasterBand(1)和band.ReadAsArray();

(2)根據經緯度計算行列號;

(3)根據行列號即可直接讀取高程資訊。

2.程式碼

程式碼及註解如下:

from osgeo import gdal

gdal.UseExceptions()
#以湖北DEM数据为例
ds = gdal.Open('./data/hubei_wgs84.tif')

band = ds.GetRasterBand(1)
elevation = band.ReadAsArray()
nrows, ncols = elevation.shape

x0, dx, dxdy, y0, dydx, dy = ds.GetGeoTransform()
#指定经纬度点坐标
latitude,longitude=31.15,111.24
#根据经纬度计算行列号,dx=dy为分辨率,不相等的时候(y0-latitude)/dx改为(y0-latitude)/-dy
new_ncols,new_nrows=int((y0-latitude)/dx),int((longitude-x0)/dx)

#根据行列号读取并打印输出指定坐标点高程
print(elevation[new_ncols][new_nrows])

3.結果

932,即高程是932m

4. Arcgis驗證

使用Go To XY工具,工具列最右邊工具

 

輸入經緯度座標定位到該點:

#將該點加入地圖

#  使用Identity 檢視該點屬性:

# 結果一致。

推薦學習:mysql影片教學

#

以上是python實作用經緯度點座標讀取DEM中的高程資訊(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除