ホームページ >バックエンド開発 >Python チュートリアル >Python は、緯度と経度の点座標を使用して DEM で標高情報を読み取るように実装します (詳細な例)
この記事では、10 行のコードを使用して、緯度と経度の点座標を使用して DEM の標高情報を読み取る方法に関する関連問題を紹介します。主なアイデアは、GDAL を使用して DEM データを読み取り、最初のバンドを取得し、それを配列として取得し、経度と緯度から行番号と列番号を計算し、行番号と列番号を使用して標高情報を読み取ります。
推奨学習: mysql ビデオ チュートリアル
実装条件: 1. 使用するライブラリは GDAL;2.DEMData;
(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 です。
ツールバーの右端にある [XY に移動] ツールを使用します
緯度と経度の座標を入力しますポイントを見つけるには:
マップにポイントを追加します
# ID を使用しますポイントの属性を表示するには: 結果は一貫しています。 推奨学習:以上がPython は、緯度と経度の点座標を使用して DEM で標高情報を読み取るように実装します (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。