[PYTHON] Kostenlose künstliche Satellitenbildanalyse mit Google Earth Engine und Google Colab-Satellitenbildanalyse (Einführung) -

Einführung

――In den letzten Jahren nimmt die Zahl der Fälle zu, in denen künstliche Satellitendaten in Gesellschaft und Wirtschaft verwendet werden.

Funktionen dieses Artikels

Bild der ordnungsgemäßen Nutzung von Diensten ~ Führen Sie eine Satellitenbildanalyse nur mit Cloud-Diensten durch, die Google-Dienste verwenden ~

image.png

Übersicht über Google Earth Engine (GEE)

Übersicht über Google Colaboratory (Colab)

[Verwendung] Satellitenbildanalyse auf GEE & Colab

Kontoerstellung

  1. Melden Sie sich auf der offiziellen Seite von Google Earth Engine an (Google-Konto erforderlich)
  2. Nach der Anmeldung können Sie auf den Datenkatalog zugreifen, eine Liste der auf GEE verfügbaren Satellitendaten.

Verwenden von GEE in einer Python-Umgebung (Google Colab)

1. Authentifizieren Sie GEE von Google Colab mithilfe der Python-API

#Importieren Sie die Python-API von Earth Engine
import ee
#GEE-Zertifizierung / Initialisierung
ee.Authenticate()
ee.Initialize()

2. Laden Sie die GEE-Satellitendaten

--Wählen Sie den ** Satellitennamen ** aus, den Sie aus dem Datenkatalog laden möchten

#Geben Sie den Namen des Satelliten an
satellite = 'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS'
#Geben Sie den Bandnamen an
band = 'avg_vis'
#Geben Sie den Zeitraum an
from_date='2010-01-01'
to_date='2012-12-31'
##Bereich angeben(Geben Sie den Breiten- / Längengrad für das Gebiet Japan an)
geometry = ee.Geometry.Rectangle([128.60, 29.97, 148.43, 46.12])

#Laden Sie Daten von GEE unter bestimmten Bedingungen
dataset = ee.ImageCollection(satellite).filter(
    ee.Filter.date(from_date, to_date)).filter(
    ee.Filter.geometry(geometry)).select(band)

―― Da es sich bei diesem Satellitenprodukt um einen jährlichen Datensatz handelt, liegen Daten für drei Jahre von 2010 bis 2012 vor. ――Die Messfrequenz ist je nach Satellit unterschiedlich, und es ist zu beachten, dass eine große Datenmenge geladen wird, wenn für Satelliten mit feiner Zeitauflösung (z. B. Satelliten, die alle 12 Tage beobachtet werden) ein langer Zeitraum angegeben wird.

#Bestätigung der Anzahl der Zieldaten
print(dataset.size().getInfo())

3. Speichern von Satellitenbilddaten

##In Listenformat konvertieren
data_list = dataset.toList(dataset.size().getInfo())
#Holen Sie sich das 0. Bild (2010 Bild)
image = ee.Image(data_list.get(0))

#Auf Gdrive speichern
task = ee.batch.Export.image.toDrive(**{
    'image': image,#Bezeichnung der Zieldaten
    'description': 'sample_dataloading_NTL',#Geben Sie den Dateinamen an
    'folder':'GEE_download',# Google Drive(MyDrive)Ordnernamen
    'scale': 1000,#Festlegen der Auflösung
    'region': geometry.getInfo()['coordinates']#Zielbereich oben angegeben
})

#Ausführung der Verarbeitung
task.start()
#Überprüfen Sie den Datenverarbeitungsstatus (True zeigt an, dass die Verarbeitung ausgeführt wird).
task.active()

4. Bestätigung des gespeicherten Satellitenbildes

--Daten werden im TIF-Format gespeichert

#Paketinstallation&importieren
!pip install rasterio
import numpy as np
import matplotlib.pyplot as plt
import rasterio

#Daten lesen
with rasterio.open('/content/drive/My Drive/GEE_download/sample_dataloading_NTL.tif') as src:
    arr = src.read()

#Holen Sie sich Daten im Numpy-Format-> (1, 1847, 2208)Holen Sie sich in eine Reihe von
print(arr.shape)

#Visualisierung
plt.imshow(arr[0])

"2010 DMSP-OLS Nachtlichtdaten" image.png

―― Da arr im Numpy-Format vorliegt, können Sie Statistiken von Satellitendaten berechnen, Daten für das nächste Jahr erfassen, in Zeitreihen vergleichen und die Analyse frei durchführen.

Funktionalisierung einer Reihe von Prozessen


#Importieren Sie die Python-API von Earth Engine
import ee

#GEE-Zertifizierung / Initialisierung
ee.Authenticate()
ee.Initialize()

#GEE-Daten laden
def load_data(snippet, from_date, to_date, geometry, band):
    #Daten gemäß Parameterbedingungen extrahieren
    dataset = ee.ImageCollection(snippet).filter(
    ee.Filter.date(from_date, to_date)).filter(
    ee.Filter.geometry(geometry)).select(band)
    #In Listentyp konvertieren
    data_list = dataset.toList(dataset.size().getInfo())
    #Geben Sie die Anzahl der Zieldaten und die Datenliste aus
    return dataset.size().getInfo(), data_list

#Speichern Sie Satellitenbilder in Google Drive
def save_on_gdrive(image, geometry, dir_name, file_name, scale):
    task = ee.batch.Export.image.toDrive(**{
        'image': image,#Zu ladende Satelliteninformationen
        'description': file_name,#Dateiname zum Speichern
        'folder':dir_name,#Speichern Sie den Namen des Zielordners
        'scale': scale,#Auflösung
        'region': geometry.getInfo()['coordinates'],#Zielgebiet
        'crs': 'EPSG:4326'
    })
    # Run exporting
    task.start()
    print('Done.')

##Parameter angeben
#Bestimmen Sie einen Satelliten
snippet = 'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS'
#Geben Sie den Bandnamen an
band = 'avg_vis'
#Geben Sie den Zeitraum an
from_date='2010-01-01'
to_date='2012-12-31'
#Bereich angeben(Geben Sie den Breiten- / Längengrad für das Gebiet Japan an)
geometry = ee.Geometry.Rectangle([128.60, 29.97, 148.43, 46.12])
#Ordnername zum Speichern
dir_name = 'GEE_download'
#Dateiname
file_name = 'file_name'
#Auflösung
scale = 1000

##Ausführung der Verarbeitung----------------------------------------------
num_data, data_list = load_data(snippet=snippet, from_date=from_date, to_date=to_date, geometry=geometry, band=band)
print('#Datasets; ', num_data)

##Alle speichern (Dateiname verwendet Satelliten-ID)
for i in range(data_list.size().getInfo()):
    image = ee.Image(data_list.get(i))
    save_on_gdrive(image, geometry, dir_name, image.getInfo()['id'].replace('/', '_'), scale)

schließlich

――In diesem Artikel haben wir die Methode der Satellitenbildanalyse mit verschiedenen Google-Diensten (GEE, Colab und Drive) vorgestellt. ――Bei der Verwendung von GEE ist es attraktiv, verschiedene im Datenkatalog aufgeführte Satellitendatensätze mit demselben Befehl verwenden zu können (normalerweise sind bei Verwendung von Satellitendatensätzen unterschiedliche Formate und Komplexitäten für jede Betriebseinrichtung attraktiv. Eine Vorverarbeitung ist erforderlich, aber mithilfe von GEE können sich Analysten auf Analyse und Nutzung konzentrieren.)

Recommended Posts

Kostenlose künstliche Satellitenbildanalyse mit Google Earth Engine und Google Colab-Satellitenbildanalyse (Einführung) -
[Fortsetzung] Künstliche Satellitenbildanalyse von Google Earth Engine und Google Colab-Satellitenbildanalyse ab kostenlos (Übung) -
[Einführung] Künstliche Satellitendatenanalyse mit Python (Google Colab-Umgebung)
Deep Learning Bildanalyse beginnend mit Kaggle und Keras