[PYTHON] Comment obtenir la valeur en pixels du point à partir de l'image satellite en spécifiant la latitude et la longitude

Contexte

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

Données d'image satellite à utiliser

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

Bibliothèque à utiliser

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.

Chargement de Geotif avec rasterio

B5 = rio.open ('chemin du fichier')

Conversion du système de coordonnées

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)

Obtenez la ligne et la colonne de l'image à ce point à partir des coordonnées

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.

Obtenir la valeur du pixel

B5read[row,col]

21530

Résumé

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

Comment obtenir la valeur en pixels du point à partir de l'image satellite en spécifiant la latitude et la longitude
Obtenez l'adresse à partir de la latitude et de la longitude
Donnez les données de séquence de points de latitude et de longitude et essayez d'identifier la route à partir des données d'OpenStreetMap
Comment obtenir et définir le nom du serveur NTP par DHCP
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[Python] Comment obtenir le premier et le dernier jour du mois
Trouvez la distance (en tenant compte de la rondeur de la terre) de la latitude et de la longitude.
Trouvez le waypoint à partir de la latitude et de la longitude (en tenant compte de la rondeur de la terre).
[Python Kivy] Comment obtenir le chemin du fichier par glisser-déposer
Lisez l'image du graphique avec OpenCV et obtenez les coordonnées du point final du graphique
[Django] Comment obtenir des données en spécifiant SQL.
Modifiez le point décimal de la journalisation de, à.
Comment obtenir le "nom" d'un champ dont la valeur est limitée par l'attribut choice dans le modèle Django
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
Comment obtenir le nombre de chiffres en Python
[Blender] Comment obtenir l'ordre de sélection des sommets, des côtés et des faces d'un objet
Obtenez l'image de "Suzu Hirose" par recherche d'images Google.
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Comment vérifier si le contenu du dictionnaire est le même en Python par valeur de hachage
Comment tester les attributs ajoutés par add_request_method de pyramid
Comment calculer la quantité de calcul appris de ABC134-D
Obtenez la valeur tout en spécifiant la valeur par défaut de dict en Python
Devinons l'état de développement de la ville à partir de l'image satellite.
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
Comment obtenir une liste de liens à partir d'une page de wikipedia
[Python] Comment utiliser l'instruction for. Une méthode d'extraction en spécifiant une plage ou des conditions.
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[EC2] Comment installer Chrome et le contenu de chaque commande
[EC2] Comment installer et télécharger chromedriver à partir de la ligne de commande
Comment trouver l'adresse mémoire de la valeur de la trame de données Pandas
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Obtenez et définissez la valeur du menu déroulant en utilisant Python et Selenium
J'ai résumé comment changer les paramètres de démarrage de GRUB et GRUB2
Comment obtenir la version Python
J'ai essayé de trier les objets de l'image du plat de steak-⑤ Détection de point de fonction d'image similaire
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
[Python] Comment spécifier la position d'affichage de la fenêtre et la taille de matplotlib
J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Fiche d'apprentissage (4e jour) #Comment obtenir le chemin absolu à partir du chemin relatif
Comment obtenir la différence de date et d'heure en secondes avec Python
[Reconnaissance d'image] Comment lire le résultat de l'annotation automatique avec VoTT
J'ai mesuré 6 méthodes pour obtenir l'indice de la valeur maximale (valeur minimale) de la liste
Comment obtenir la valeur du magasin de paramètres dans lambda (en utilisant python)
[GPS] Calculez la distance, l'angle azimutal et l'angle d'élévation à partir de la latitude et de la longitude GPS à l'aide de pyproj
Comment obtenir un exemple de rapport à partir d'une valeur de hachage à l'aide de l'API de Virus Total
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
__Getattr__ et __getattribute__ pour personnaliser l'acquisition des attributs d'objet par des points
Obtenez le titre de la chanson à partir du titre de la vidéo que vous avez chanté
[python] Envoyez l'image capturée de la caméra Web au serveur et enregistrez-la
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
Jugement interne / externe avec Python: obtenez le nom de la ville / ville / village à partir des informations de latitude / longitude de n'importe quel point
Comment se débarrasser des longues inclusions
Comment vérifier la version de Django
Comment obtenir une sortie colorée sur la console
Comment faire fonctionner Linux depuis la console