Maison > développement back-end > Tutoriel Python > Python implémente la lecture des informations d'altitude dans DEM en utilisant les coordonnées des points de latitude et de longitude (exemple détaillé)

Python implémente la lecture des informations d'altitude dans DEM en utilisant les coordonnées des points de latitude et de longitude (exemple détaillé)

WBOY
Libérer: 2022-02-24 17:35:05
avant
5259 Les gens l'ont consulté

Cet article vous présente des problèmes connexes sur la façon d'utiliser 10 lignes de code pour lire les informations d'altitude dans DEM en utilisant les coordonnées des points de latitude et de longitude. L'idée principale est d'utiliser GDAL pour lire les données DEM, obtenir la première bande et la lire comme. tableau, puis calculez les numéros de ligne et de colonne en utilisant la longitude et la latitude, et utilisez les numéros de ligne et de colonne pour lire les informations d'altitude. J'espère que cela sera utile à tout le monde.

Python implémente la lecture des informations d'altitude dans DEM en utilisant les coordonnées des points de latitude et de longitude (exemple détaillé)

Apprentissage recommandé : Tutoriel vidéo mysql

Conditions d'implémentation : 1. La bibliothèque nécessaire est GDAL 2. DEMdonnées

1. À récupérez les données DEM, obtenez d'abord la première bande et lisez-la sous forme de tableau. La fonction utilisée est :

ds.GetRasterBand(1)和band.ReadAsArray();
Copier après la connexion

(2) Calculez le numéro de ligne et de colonne en fonction de la longitude et de la latitude

(3) Vous pouvez lire directement ; les informations d'élévation en fonction du numéro de ligne et de colonne.

2. Code

Le code et les commentaires sont les suivants :

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])
Copier après la connexion

3. Résultat

932, c'est-à-dire que l'élévation est de 932m

4.Vérification Arcgis

Utilisez l'outil Go To XY, l'outil sur à l'extrême droite de la barre d'outils

Entrez les coordonnées de latitude et de longitude pour localiser le point :

Ajoutez le point à la carte

Utilisez Identité pour afficher les attributs du point :

Les résultats sont cohérents.

Apprentissage recommandé :

Tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal