本篇文章帶給大家了關於怎樣用10行程式碼實現經緯度點座標讀取DEM中的高程資訊的相關問題,主要的思路就是使用GDAL讀取DEM數據,獲取第一波段,並讀取為數組,然後金句經緯度計算行列號,利用行列號讀取高程信息,希望對大家有幫助。
推薦學習:mysql影片教學
#實作條件:1.需要用到的函式庫是GDAL;2.DEM資料;
(1)使用GDAL讀取DEM資料,先取得第一波段,並讀取為數組,使用函數為:
ds.GetRasterBand(1)和band.ReadAsArray();
(2)根據經緯度計算行列號;
(3)根據行列號即可直接讀取高程資訊。
程式碼及註解如下:
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])
932,即高程是932m
使用Go To XY工具,工具列最右邊工具
輸入經緯度座標定位到該點:
#將該點加入地圖
# 使用Identity 檢視該點屬性:
# 結果一致。
推薦學習:mysql影片教學
#以上是python實作用經緯度點座標讀取DEM中的高程資訊(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!