>백엔드 개발 >파이썬 튜토리얼 >Python은 위도 및 경도 포인트 좌표를 사용하여 DEM에서 고도 정보 읽기를 구현합니다(자세한 예).

Python은 위도 및 경도 포인트 좌표를 사용하여 DEM에서 고도 정보 읽기를 구현합니다(자세한 예).

WBOY
WBOY앞으로
2022-02-24 17:35:055251검색

이 기사에서는 위도 및 경도 점 좌표를 사용하여 DEM에서 고도 정보를 읽는 데 10줄의 코드를 사용하는 방법에 대한 관련 문제를 소개합니다. 주요 아이디어는 GDAL을 사용하여 DEM 데이터를 읽고 첫 번째 밴드를 얻은 후 다음과 같이 읽는 것입니다. 배열한 다음 경도와 위도를 사용하여 행과 열 번호를 계산하고, 행과 열 번호를 사용하여 고도 정보를 읽는 것이 모든 분들께 도움이 되기를 바랍니다.

Python은 위도 및 경도 포인트 좌표를 사용하여 DEM에서 고도 정보 읽기를 구현합니다(자세한 예).

추천 학습: mysql 비디오 튜토리얼

구현 조건: 1. 필요한 라이브러리는 GDAL입니다. DEMdata; 받는 사람 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 도구를 사용하세요. 도구 모음의 맨 오른쪽

포인트를 찾으려면 위도와 경도 좌표를 입력하세요.

지도에 포인트를 추가하세요.

ID를 사용하여 포인트 속성을 확인하세요.

결과는 일관됩니다.

추천 학습: mysql 비디오 튜토리얼

위 내용은 Python은 위도 및 경도 포인트 좌표를 사용하여 DEM에서 고도 정보 읽기를 구현합니다(자세한 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제