Ich forsche, um den Chlorophyllwert aus Satellitenbildern mithilfe der Regression des neuronalen Netzwerks zu ermitteln. Zu diesem Zweck möchte ich zunächst als Datenerfassung und Vorverarbeitung darüber schreiben, wie der Breiten- und Längengrad aus Satellitenbilddaten angegeben und der Pixelwert an diesem Punkt erfasst werden kann. Was ist vorher ein Satellitenbild? ↓ Grundlagen der Satellitendaten
Verwenden Sie das Landsat 8-Bild. Als offene Daten in AWS veröffentlicht. AWS Landsat Data Auf AWS veröffentlichte Bilddaten von Landsat können von der Position aus durch Angabe von Pfad und Zeile durchsucht werden. Übrigens, dieses Mal werde ich die Daten des Biwa-Sees verwenden, also habe ich nach den Daten von Pfad 110, Zeile 35 gesucht und sie erhalten. Die obige Seite enthält eine vollständige Liste der verfügbaren Szenen, daher habe ich sie nach Pfad und Zeile sortiert, um sie zu erhalten.
Klicken Sie hier, um den Pfad und die Zeile ↓ zu überprüfen path/row coverter
Verwenden Sie ** rasterio ** und ** pyproj **. ** rasterio ** ist eine Bibliothek zum Umgang mit Rasterdaten. rasterio ** pyproj ** ist eine Bibliothek, die das Koordinatensystem transformiert. pyproj Landsat-Daten liegen im Geotif-Dateiformat vor und die Koordinatendaten sind als Tag eingebettet. Da jedoch UTM-Koordinaten verwendet werden, muss von Breiten- und Längengrad in das UTM-Koordinatensystem konvertiert werden.
import rasterio as rio import pyproj
↑ Bitte installieren Sie es im Voraus mit Pip usw.
B5 = rio.open ('Dateipfad')
utm = pyproj.Proj(B5.crs) lonlat = pyproj.Proj(init='epsg:4326') lat,lon = (35.445,136.0638888889) east,north = pyproj.transform(lonlat,utm,lon,lat)
Bestätigen Sie, dass der Längen- und Breitengrad in das UTM-Koordinatensystem konvertiert wurde.
east,north (596554.9414823324, 3922913.584464462)
Die Daten sind vom Typ Array, und Sie können die Zeile und Spalte, die den Koordinaten entsprechen, mit der Indexmethode abrufen.
row, col = B5.index(east,north)
print(f'row,col=({row},{col})') row,col=(6086,5625)
Außerdem ist der folgende Code erforderlich, um auf die Pixelwerte der Array-Daten zuzugreifen.
B5read = B5.read(1)
Diese 1 ist der Index des Bandes des Satellitenbildes, diesmal jedoch ein Band 5, geben Sie also 1 an.
B5read[row,col]
21530
Mit dem Obigen kann der Pixelwert des angegebenen Punktes leicht aus dem Breiten- und Längengrad erhalten werden. Dieser Pixelwert wird jedoch als DN-Wert bezeichnet, der von der Intensität und dem Winkel des Sonnenlichts beeinflusst wird, und ist eine Reflexion, die als TOA bezeichnet wird und zur Eingabe eines neuronalen Netzwerks mit dem Chlorophyllwert als Ausgabe verwendet wird. Ich denke darüber nach, es in eine Rate umzuwandeln. Ich würde wirklich gerne reines SR (Surface Reflectance) durch atmosphärische Korrektur finden, aber es ist schwierig, also werde ich diese Zeit aufgeben und vorstellen, wie man TOA das nächste Mal findet. ** Klicken Sie hier für die Satellitenbildverarbeitungsstufe ↓ ** Illustration! Was ist Satellitendatenvorverarbeitung
Vielen Dank für das Lesen bis zum Ende!
Recommended Posts