Zephyrnet-logo

Geospatial dataanalyse med Geemap – KDnuggets

Dato:

Geospatial dataanalyse med Geemap
Illustrasjon av forfatter
 

Geospatial dataanalyse er et felt adressert for å håndtere, visualisere og analysere en spesiell type data, kalt geospatiale data. Sammenlignet med de vanlige dataene har vi tabelldata med en ekstra kolonne, plasseringsinformasjonen, for eksempel breddegrad og lengdegrad. 

Det er to hovedtyper av data: vektordata og rasterdata. Når du arbeider med vektordata, har du fortsatt et tabelldatasett, mens rasterdata ligner mer på bilder, for eksempel satellittbilder og flyfoto. 

I denne artikkelen skal jeg fokusere på rasterdata levert av Google Earth Engine, en cloud computing-plattform som gir en enorm datakatalog med satellittbilder. Denne typen data kan enkelt mestres fra Jupyter Notebook ved hjelp av en livreddende Python-pakke, kalt Geemap. La oss komme i gang!

Hva er Google Earth Engine?

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Hjemmesiden til Google Earth Engine.
 

Før vi begynner med Python-biblioteket, må vi forstå potensialet til Google Earth Engine. Denne skybaserte plattformen, drevet av Google Cloud-plattformen, er vert for offentlige og gratis geospatiale datasett for akademiske, ideelle og forretningsmessige formål.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Oversikt over Earth Engine Data Catalogue. 
 

Det fine med denne plattformen er at den gir en multi-petabyte-katalog med raster- og vektordata, lagret på Earth Engine-serverne. Du kan få en rask oversikt fra dette link. Dessuten gir den APIer for å lette analysen av rasterdatasett. 

Hva er Geemap?

Geospatial dataanalyse med Geemap
Illustrasjon av forfatter. Geemap bibliotek.
 

Geemap er et Python-bibliotek som lar deg analysere og visualisere enorme mengder geospatiale data fra Google Earth Engine. 

Før denne pakken var det allerede mulig å gjøre beregningsforespørsler gjennom JavaScript og Python APIer, men Python APIer hadde begrenset funksjonalitet og manglet dokumentasjon. 

For å fylle dette gapet ble Geemap opprettet for å tillate brukere å få tilgang til ressursene til Google Earth Engine med få linjer med kode. Geemap er bygget på earengine-api, ipyleaflet og folium.

For å installere biblioteket trenger du bare følgende kommando:

pip install geemap

 

Jeg anbefaler at du eksperimenterer med denne fantastiske pakken i Google Colab for å forstå dens fulle potensial. Se på denne gratis boken skrevet av professor Dr. Qiusheng Wu for å komme i gang med Geemap og Google Earth Engine.

Hvordan få tilgang til Earth Engine?

Først må vi importere to Python-biblioteker, som vil bli brukt i opplæringen:

import ee
import geemap

 

I tillegg til geemap har vi importert Earth Engine Python-klientbiblioteket, kalt ee. 

Dette Python-biblioteket kan brukes til autentisering på Earth Engine, men det kan være raskere ved å bruke Geemap-biblioteket direkte:

m = geemap.Map()
m

 

Du må klikke på URL-en som returneres av denne kodelinjen, som vil generere autorisasjonskoden. Velg først skyprosjektet, og klikk deretter på "GENERATE TOKEN"-knappen.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Notebook Authenticator.
 

Etter det vil den be deg velge kontoen. Jeg anbefaler å ta den samme kontoen til Google Colab hvis du bruker den.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Velg en konto.
 

Deretter klikker du på avmerkingsboksen ved siden av Velg alle og trykker på "Fortsett"-knappen. I et nøtteskall gir dette trinnet Notebook Client tilgang til Earth Engine-kontoen.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Gi Notebook Client tilgang til Earth Engine-kontoen din.
 

Etter denne handlingen genereres autentiseringskoden, og du kan lime den inn i den bærbare cellen.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Kopier autentiseringskoden.
 

Når bekreftelseskoden er angitt, kan du endelig opprette og visualisere dette interaktive kartet:

m = geemap.Map()
m

 

Geospatial dataanalyse med Geemap
 

Foreløpig observerer du bare basiskartet på toppen av ipyleaflet, en Python-pakke som muliggjør visualisering av interaktive kart i Jupyter Notebook. 

Lag interaktive kart

Tidligere har vi sett hvordan man kan autentisere og visualisere et interaktivt kart ved hjelp av en enkelt kodelinje. Nå kan vi tilpasse standardkartet ved å spesifisere bredde- og lengdegraden til tyngdepunktet, zoomnivået og høyden. Jeg har valgt Romas koordinater for at senteret skal fokusere på Europakartet. 

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

 

Geospatial dataanalyse med Geemap

 

Hvis vi ønsker å endre grunnkartet, er det to mulige måter. Den første måten består i å skrive og kjøre følgende kodelinje:

m.add_basemap("ROADMAP")
m

 

Geospatial dataanalyse med Geemap
 

Alternativt kan du endre basiskartet manuelt ved å klikke på ikonet for ringnøkkelen plassert til høyre. 

 

Geospatial dataanalyse med Geemap
 

Dessuten ser vi listen over basiskart levert av Geemap:

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

 

Dette er resultatet:

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

 

Som du kan legge merke til, er det en lang rekke basiskart, de fleste tilgjengelige takket være OpenStreetMap, ESRI og USGS.

Earth Engine-datatyper

Før du viser det fulle potensialet til Geemap, er det viktig å kjenne til to hoveddatatyper i Earth Engine. Ta en titt på Google Earth Engines dokumentasjon for mer informasjon.

 

Geospatial dataanalyse med Geemap
Illustrasjon av forfatter. Eksempel på vektordatatyper: Geometri, Feature og FeatureCollection.
 

Når vi håndterer vektordata, bruker vi hovedsakelig tre datatyper:

  • Geometry lagrer koordinatene som trengs for å tegne vektordataene på et kart. Tre hovedtyper av geometrier støttes av Earth Engine: Point, LineString og Polygon.
  • Trekk er egentlig en rad som kombinerer geometri og ikke-geografiske attributter. Den er veldig lik GeoSeries-klassen til GeoPandas.
  • FeatureCollection er en tabellformet datastruktur som inneholder et sett med funksjoner. FeatureCollection og GeoDataFrame er nesten identiske konseptuelt.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Eksempel på bildedatatype. Den viser Australian Smoothed Digital Elevation Model (DEM-S)
 

I en verden av rasterdata fokuserer vi på Bilde gjenstander. Google Earth Engines bilder er sammensatt av ett eller flere merker, der hvert band har et spesifikt navn, anslått minimum og maksimum, og beskrivelse.

Hvis vi har en samling eller tidsserie med bilder, Bildesamling er mer passende som datatype.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Copernicus CORINE Landdekke.
 

Vi visualiserer satellittbildene som viser landdekkekartet over Europa. Dette datasettet viser endringene mellom 1986 og 2018.

Først laster vi inn bildet ved hjelp av ee.Image og velger deretter båndet "landcover". Til slutt, la oss visualisere bildet ved å legge til det nedlastede datasettet til kartet som et lag ved å bruke 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

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter.
 

På samme måte kan vi gjøre det samme for å laste og visualisere satellittbildene som viser landdekkekartet over Europa. Dette datasettet viser endringene mellom 1986 og 2018.

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter. Offline høyoppløselige bilder av metankonsentrasjoner.

 

For å visualisere en Earth Engine ImageCollection, er kodelinjene like, bortsett fra 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

 

Geospatial dataanalyse med Geemap
Skjermbilde av forfatter.
 

Det er flott! Fra dette kartet ser vi hvordan metan, en av de viktigste bidragsyterne til drivhuseffekten, er fordelt på kloden. 

Final Thoughts

Dette var en introduksjonsveiledning som kan hjelpe deg å jobbe med Google Earth Engine-data ved å bruke Python. Geemap er det mest komplette Python-biblioteket for å visualisere og analysere denne typen data. 

Hvis du vil gå dypere inn i denne pakken, kan du ta en titt på ressursene jeg foreslo nedenfor. 

Koden kan bli funnet her.. Jeg håper du fant artikkelen nyttig. Ha en fin dag!

Nyttige ressurser:

 
 

Eugenia Anello er for tiden stipendiat ved Institutt for informasjonsteknikk ved Universitetet i Padova, Italia. Forskningsprosjektet hennes er fokusert på kontinuerlig læring kombinert med anomalideteksjon.

spot_img

Siste etterretning

spot_img