Heim > Backend-Entwicklung > Python-Tutorial > Python implementiert das Lesen von Höheninformationen in DEM mithilfe von Breiten- und Längengrad-Punktkoordinaten (detailliertes Beispiel).

Python implementiert das Lesen von Höheninformationen in DEM mithilfe von Breiten- und Längengrad-Punktkoordinaten (detailliertes Beispiel).

WBOY
Freigeben: 2022-02-24 17:35:05
nach vorne
5259 Leute haben es durchsucht

In diesem Artikel erfahren Sie, wie Sie mithilfe von 10 Codezeilen die Höheninformationen in DEM mithilfe von Breiten- und Längengradkoordinaten lesen. Die Hauptidee besteht darin, GDAL zum Lesen von DEM-Daten zu verwenden, das erste Band zu erhalten und es als zu lesen Array, berechnen Sie dann die Zeilen- und Spaltennummern anhand des Längen- und Breitengrads und verwenden Sie die Zeilen- und Spaltennummern, um die Höheninformationen zu lesen. Ich hoffe, dass dies für alle hilfreich ist.

Python implementiert das Lesen von Höheninformationen in DEM mithilfe von Breiten- und Längengrad-Punktkoordinaten (detailliertes Beispiel).

Empfohlenes Lernen: MySQL-Video-Tutorial

Implementierungsbedingungen: 1. Die benötigte Bibliothek ist GDAL; 2. DEMdata;

(1) Verwenden Sie GDAL lesen Holen Sie sich die DEM-Daten, rufen Sie zuerst das erste Band ab und lesen Sie es als Array. Die verwendete Funktion lautet:

ds.GetRasterBand(1)和band.ReadAsArray();
Nach dem Login kopieren

(2) Berechnen Sie die Zeilen- und Spaltennummer entsprechend dem Längen- und Breitengrad.

Sie können direkt lesen die Höheninformationen entsprechend der Zeilen- und Spaltennummer.

2. Code

Der Code und die Kommentare lauten wie folgt:

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])
Nach dem Login kopieren

3. Ergebnis

932, d ganz rechts in der Symbolleiste

Geben Sie die Breiten- und Längenkoordinaten ein, um den Punkt zu lokalisieren:

Fügen Sie den Punkt zur Karte hinzu

Verwenden Sie Identität, um die Punktattribute anzuzeigen:

Die Ergebnisse sind konsistent.

Empfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPython implementiert das Lesen von Höheninformationen in DEM mithilfe von Breiten- und Längengrad-Punktkoordinaten (detailliertes Beispiel).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage