Je fais des recherches pour trouver la valeur de la chlorophylle à partir d'images satellites en utilisant la régression du réseau neuronal. À cette fin, tout d'abord, en ce qui concerne l'acquisition et le prétraitement des données, je voudrais écrire sur la façon de spécifier la latitude et la longitude à partir des données d'image satellite et d'acquérir la valeur de pixel à ce point. Avant cela, qu'est-ce qu'une image satellite? ↓ Principes de base des données satellitaires
Utilisez l'image Landsat 8. Publié en tant que données ouvertes sur AWS. Données AWS Landsat Les données d'image de Landsat publiées sur AWS peuvent être recherchées à partir de la position en spécifiant le chemin et la ligne. À propos, cette fois, j'utiliserai les données du lac Biwa, j'ai donc recherché les données du chemin 110, rangée 35 et je les ai obtenues. La page ci-dessus contient une liste complète des scènes disponibles, je les ai donc triées par chemin et par ligne pour les obtenir.
Cliquez ici pour savoir comment vérifier le chemin et la ligne ↓ path/row coverter
Utilisez ** rasterio ** et ** pyproj **. ** rasterio ** est une bibliothèque de gestion des données raster. rasterio ** pyproj ** est une bibliothèque qui transforme le système de coordonnées. pyproj Les données Landsat sont au format de fichier Geotif et les données de coordonnées sont incorporées sous forme de balise, mais comme les coordonnées UTM sont utilisées, il est nécessaire de convertir la latitude et la longitude en système de coordonnées UTM.
import rasterio as rio import pyproj
↑ Veuillez l'installer à l'avance avec pip etc.
B5 = rio.open ('chemin du fichier')
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)
Confirmez que la latitude et la longitude ont été converties dans le système de coordonnées UTM.
east,north (596554.9414823324, 3922913.584464462)
Les données sont de type tableau et vous pouvez obtenir la ligne et la colonne correspondant aux coordonnées avec la méthode d'index.
row, col = B5.index(east,north)
print(f'row,col=({row},{col})') row,col=(6086,5625)
En outre, le code suivant est requis pour accéder aux valeurs de pixel des données du tableau.
B5read = B5.read(1)
Ce 1 est l'indice de la bande de l'image satellite, mais cette fois il s'agit d'une bande 5, spécifiez donc 1.
B5read[row,col]
21530
Avec ce qui précède, la valeur de pixel du point spécifié peut être facilement obtenue à partir de la latitude et de la longitude. Cependant, cette valeur de pixel est appelée valeur DN, qui est influencée par l'intensité et l'angle de la lumière du soleil, et est une réflexion appelée TOA à utiliser pour entrer un réseau de neurones avec la valeur de la chlorophylle en sortie. Je pense à le convertir en un taux. Je veux vraiment trouver du SR pur (Réflectance de surface) par correction atmosphérique, mais c'est difficile, alors je vais abandonner cette fois et je voudrais vous présenter comment trouver TOA la prochaine fois. ** Cliquez ici pour le niveau de traitement de l'image satellite ↓ ** Illustration! Qu'est-ce que le prétraitement des données satellites
Merci d'avoir lu jusqu'au bout!
Recommended Posts