Heim  >  Artikel  >  Backend-Entwicklung  >  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
WBOYnach vorne
2022-02-24 17:35:055194Durchsuche

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();

(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])

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen