Zephyrnet-logo

Geospatiale gegevensanalyse met Geemap – KDnuggets

Datum:

Georuimtelijke gegevensanalyse met Geemap
Illustratie door auteur
 

Geospatiale data-analyse is een vakgebied dat zich richt op het omgaan met, visualiseren en analyseren van een speciaal type data, genaamd geospatiale data. Vergeleken met de normale gegevens hebben we gegevens in tabelvorm met een extra kolom, de locatie-informatie, zoals breedtegraad en lengtegraad. 

Er zijn twee hoofdtypen gegevens: vectorgegevens en rastergegevens. Als je met vectorgegevens werkt, heb je nog steeds een dataset in tabelvorm, terwijl rastergegevens meer op afbeeldingen lijken, zoals satellietbeelden en luchtfoto's. 

In dit artikel ga ik me concentreren op rastergegevens van Google Earth Engine, een cloud computing-platform dat een enorme gegevenscatalogus van satellietbeelden biedt. Dit soort gegevens kunnen eenvoudig vanuit uw Jupyter Notebook worden beheerd met behulp van een levensreddend Python-pakket, genaamd Geemap. Laten we beginnen!

Wat is Google Earth Engine?

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Startpagina van Google Earth Engine.
 

Voordat we aan de slag gaan met de Python-bibliotheek, moeten we het potentieel ervan begrijpen Google Earth Engine. Dit cloudgebaseerde platform, mogelijk gemaakt door het Google Cloud-platform, host openbare en gratis geospatiale datasets voor academische, non-profit en zakelijke doeleinden.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Overzicht van de Earth Engine-gegevenscatalogus. 
 

Het mooie van dit platform is dat het een catalogus van meerdere petabytes aan raster- en vectorgegevens biedt, opgeslagen op de Earth Engine-servers. Hieruit kunt u snel een overzicht krijgen link. Bovendien biedt het API's om de analyse van rasterdatasets te vergemakkelijken. 

Wat is Geemap?

Georuimtelijke gegevensanalyse met Geemap
Illustratie door auteur. Geemap-bibliotheek.
 

Geemap is een Python-bibliotheek waarmee u grote hoeveelheden georuimtelijke gegevens van Google Earth Engine kunt analyseren en visualiseren. 

Vóór dit pakket was het al mogelijk om computationele verzoeken te doen via JavaScript en Python API's, maar Python API's hadden beperkte functionaliteiten en ontbeerden documentatie. 

Om deze leemte op te vullen, is Geemap gemaakt zodat gebruikers met weinig regels code toegang kunnen krijgen tot de bronnen van Google Earth Engine. Geemap is erop gebouwd oormotor-api, ipyblad en folium.

Om de bibliotheek te installeren, hebt u alleen de volgende opdracht nodig:

pip install geemap

 

Ik raad u aan om met dit geweldige pakket in Google Colab te experimenteren om het volledige potentieel ervan te begrijpen. Kijk eens naar dit gratis boek geschreven door professor Dr. Qiusheng Wu om aan de slag te gaan met Geemap en Google Earth Engine.

Hoe krijg ik toegang tot Earth Engine?

Eerst moeten we twee Python-bibliotheken importeren, die in de tutorial zullen worden gebruikt:

import ee
import geemap

 

Naast geemap hebben we de Earth Engine Python-clientbibliotheek geïmporteerd, genaamd ee. 

Deze Python-bibliotheek kan worden gebruikt voor de authenticatie op Earth Engine, maar het kan sneller gaan door rechtstreeks de Geemap-bibliotheek te gebruiken:

m = geemap.Map()
m

 

U moet op de URL klikken die door deze coderegel wordt geretourneerd. Hierdoor wordt de autorisatiecode gegenereerd. Selecteer eerst het cloudproject en klik vervolgens op de knop “TOKEN GENEREREN”.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Notebook-authenticator.
 

Daarna wordt u gevraagd het account te kiezen. Ik raad aan hetzelfde account van Google Colab te gebruiken als u het gebruikt.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Kies een account.
 

Klik vervolgens op het selectievakje naast Alles selecteren en druk op de knop "Doorgaan". Kort gezegd geeft deze stap de Notebook Client toegang tot het Earth Engine-account.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Geef de Notebook Client toegang tot uw Earth Engine-account.
 

Na deze actie wordt de authenticatiecode gegenereerd en kunt u deze in de notebookcel plakken.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Kopieer de authenticatiecode.
 

Zodra de verificatiecode is ingevoerd, kunt u eindelijk deze interactieve kaart maken en visualiseren:

m = geemap.Map()
m

 

Georuimtelijke gegevensanalyse met Geemap
 

Voorlopig bekijk je alleen de basiskaart bovenop ipyleaflet, een Python-pakket dat de visualisatie van interactieve kaarten binnen de Jupyter Notebook mogelijk maakt. 

Maak interactieve kaarten

Eerder hebben we gezien hoe je een interactieve kaart kunt authenticeren en visualiseren met behulp van een enkele regel code. Nu kunnen we de standaardkaart aanpassen door de breedte- en lengtegraad van het zwaartepunt, het zoomniveau en de hoogte op te geven. Ik heb de coördinaten van Rome gekozen voor het centrum om zich te concentreren op de kaart van Europa. 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

Georuimtelijke gegevensanalyse met Geemap

 

Als we de basiskaart willen wijzigen, zijn er twee mogelijke manieren. De eerste manier bestaat uit het schrijven en uitvoeren van de volgende coderegel:

m.add_basemap("ROADMAP")
m

 

Georuimtelijke gegevensanalyse met Geemap
 

Als alternatief kunt u de basiskaart handmatig wijzigen door op het pictogram van de ringsleutel aan de rechterkant te klikken. 

 

Georuimtelijke gegevensanalyse met Geemap
 

Bovendien zien we de lijst met basiskaarten van Geemap:

basemaps = geemap.basemaps.keys()
for bm in basemaps:
   print(bm)

 

Dit is de output:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

 

Zoals u kunt zien, is er een lange reeks basiskaarten, waarvan de meeste beschikbaar zijn dankzij OpenStreetMap, ESRI en USGS.

Earth Engine-gegevenstypen

Voordat u het volledige potentieel van Geemap laat zien, is het belangrijk om twee belangrijke gegevenstypen in Earth Engine te kennen. Kijk eens naar de Documentatie van Google Earth Engine voor meer details.

 

Georuimtelijke gegevensanalyse met Geemap
Illustratie door auteur. Voorbeeld van vectorgegevenstypen: Geometry, Feature en FeatureCollection.
 

Bij het verwerken van vectorgegevens gebruiken we hoofdzakelijk drie gegevenstypen:

  • Geometrie slaat de coördinaten op die nodig zijn om de vectorgegevens op een kaart te tekenen. Drie hoofdtypen geometrieën worden ondersteund door Earth Engine: Point, LineString en Polygon.
  • Kenmerk is in wezen een rij die geometrie en niet-geografische kenmerken combineert. Het lijkt erg op de GeoSeries-klasse van GeoPandas.
  • FeatureCollectie is een tabellarische gegevensstructuur die een reeks functies bevat. FeatureCollection en GeoDataFrame zijn conceptueel vrijwel identiek.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot van auteur. Voorbeeld van het gegevenstype Afbeelding. Het toont het Australian Smoothed Digital Elevation Model (DEM-S)
 

In de wereld van rasterdata richten wij ons op Beeld voorwerpen. De afbeeldingen van Google Earth Engine zijn samengesteld uit een of meer merken, waarbij elke band een specifieke naam, een geschat minimum en maximum en een beschrijving heeft.

Als we een verzameling of tijdreeksen van afbeeldingen hebben, Beeldcollectie is geschikter als gegevenstype.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot door auteur. Copernicus CORINE Landbedekking.
 

We visualiseren de satellietbeelden die de landbedekkingskaart van Europa tonen. Deze dataset geeft de veranderingen tussen 1986 en 2018 weer.

Eerst laden we de afbeelding met ee.Image en selecteren vervolgens de band “landcover”. Laten we ten slotte de afbeelding visualiseren door de geladen gegevensset als een laag aan de kaart toe te voegen met behulp van Map.addLayer. 

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot door auteur.
 

Op dezelfde manier kunnen we hetzelfde doen om de satellietbeelden van de landbedekkingskaart van Europa te laden en te visualiseren. Deze dataset geeft de veranderingen tussen 1986 en 2018 weer.

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot door auteur. Offline hogeresolutiebeelden van methaanconcentraties.

 

Om een ​​Earth Engine ImageCollection te visualiseren, zijn de coderegels vergelijkbaar, behalve ee.ImageCollection. 

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}

Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

 

Georuimtelijke gegevensanalyse met Geemap
Screenshot door auteur.
 

Dat is geweldig! Op deze kaart zien we hoe methaan, een van de belangrijkste bijdragers aan het broeikaseffect, over de hele wereld wordt verspreid. 

Conclusie

Dit was een inleidende handleiding die u kan helpen bij het werken met Google Earth Engine-gegevens met behulp van Python. Geemap is de meest complete Python-bibliotheek om dit soort gegevens te visualiseren en analyseren. 

Als u dieper op dit pakket wilt ingaan, kunt u de bronnen bekijken die ik hieronder heb voorgesteld. 

De code is te vinden hier. Ik hoop dat je het artikel nuttig vond. Prettige dag!

Handige bronnen:

 
 

Eugenia Anello is momenteel een research fellow bij de afdeling Information Engineering van de Universiteit van Padua, Italië. Haar onderzoeksproject is gericht op Continual Learning in combinatie met Anomaly Detection.

spot_img

Laatste intelligentie

spot_img