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

WBOY
풀어 주다: 2022-02-24 17:35:05
앞으로
5213명이 탐색했습니다.

이 기사에서는 위도 및 경도 점 좌표를 사용하여 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿