

Megjegyzés
Ez a projekt csak az OSGeoLive virtuális gépben (VMDK) található meg
actinia gyorstalpaló¶
Az actinia egy nyílt forráskódú REST API térinformatikai adatok skálázható, megosztott, nagy teljesítményű feldolgozásához, mely többnyire GRASS GIS-t használ a számítási feladatokhoz. Az actinia egy REST API-t biztosít műholdképek, műholdkép idősorok. raszter és vektor adatok feldolgozásához.
Tartalom
Az actinia-t különböző módokon használhatjuk:
curl vagy hasonló parancsori eszköz
Jupyter jegyzettömbön keresztül
a Postman vagy RESTman bövítmény a böngészőkhöz
GRASS GIS munkafolyamat nyitása és az ace (actinia command execution) eszköz használata
más interfész REST API-hoz
Ebben a gyorstalpalóban a GRASS GIS-t használjuk a parancsok indítására a munkamenetből az actinia szerver felé (mely maga is GRASS GIS-t használ). Az elképzelés az, hogy gyorsan dolgozzunk ki egy munkafolyamatot helyben, kis adathalmazzal,majd hajtsuk végre a szerveren.
actinia használata Jupyter jegyzettömbbel¶
Számos Jupyter jegyzettömb van az actinia-hoz itt https://github.com/actinia-org/actinia-jupyter
Bevezetés az ac-ba - actinia parancs végrehajtás¶
Az ace
eszköz (részletek <https://neteler.gitlab.io/actinia-introduction/#controlling-actinia-from-a-running-grass-gis-session>`_)) lehetővé teszi egy GRASS GIS parancs vagy a GRASS GIS parancsok listájának végrehajtását egy actinia REST szolgáltatáson (https://actinia.mundialis.de/). Továbbá munkakezelést is biztosít, a képesség, hogy a felhasználó által elérhető helyeket, térképhalmazokat, és térkép rétegeket listázzon továbbá térképhalmazokat hozzon létre és töröljön.
Az ace
eszközt egy aktív GRASS GIS munkamenetből kell végrehajtani. Ezzel a paranccsal telepíthető g.extension extension=ace url=https://github.com/actinia-org/ace
.
Minden parancsot egy tiszavirág életű adatbázisban hajtunk végre alapértelmezés szerint. Ezért az elkészített outputot exportálni kell a kibővített GRASS parancsok használatával.
A mapset=MAPSET_NAME
beállítás lehetővé teszi a parancsok végrehajtását az állandó felhasználói adatbázisban. Ez használható a location=LOCATION_NAME
paraméterrel együtt.
A környezet beállítása¶
Győződjön meg róla, hogy egy GRASS GIS munkamenetben futtatja a következő parancsokat.
A felhasználónak a következő környezeti változókat kell beállítania az actinia szerverhez és a hitelesítő adatokhoz:
# set credentials and REST server URL
export ACTINIA_USER='demouser'
export ACTINIA_PASSWORD='gu3st!pa55w0rd'
export ACTINIA_URL='https://actinia.mundialis.de/latest'
Hozzáférés a példa adatokhoz¶
A kiválasztott adatok elérhetők a demó felhasználó számára. A helyek listája, melyekhez hozzáférhet
ace -l
['latlong_wgs84', 'ECAD', 'nc_spm_08']
A kövtkező parancs az aktuális hely térképhalmazait listázza az aktuális GRASS GIS munkamenetben (nc_spm_08):
# running ace in the "nc_spm_08" location
# (the current location name is propagated to the server):
ace location="nc_spm_08" -m
['PERMANENT', 'landsat', 'modis_lst']
Adatok elérése külső forrásokból¶
A GRASS GIS parancsok kibővíthetők az actinia specifikus kiterjesztésekkel. a @
művelet adható meg egy input vagy output paraméterhez, hogy egy web helyről importálja az erőforrást illetve, hogy exportálja.
Fontos, hogy a lokális hely és térképhalmaz egyezzen meg a actinia REST szerverével.
Aktuálisan elérhető adathalmazok (vetület szerint csoportosítva):
Észak Carolina minta adathalmaz (NC State-Plane metric CRS, EPSG: 3358):
alap kartogáfia (
nc_spm_08/PERMANENT
; forrás: https://grassbook.org/datasets/datasets-3rd-edition/)Landsat képek (
nc_spm_08/landsat
; source: https://grass.osgeo.org/download/data/)
Szélesség-hosszúság (LatLong WGS84, EPSG:4326):
empty (
latlong_wgs84/PERMANENT/
)16-napi NDVI, MOD13C1, V006, CMG 0.05 fok felbontás (
latlong_wgs84/modis_ndvi_global/
; forrás: https://lpdaac.usgs.gov/products/mod13c1v006)LST növekvő hőmérsékletű napok Ázsia 2017 (
latlong_wgs84/asia_gdd_2017/
; source: https://www.mundialis.de/en/temperature-data/)LST tropikus napok Ázsia 2017 (
latlong_wgs84/asia_tropical_2017/
)LST napi hőmérséklet Ázsia 2017, min, max és átlag is (
latlong_wgs84/asia_lst_daily_2017/
)
Európa (EU LAEA CRS, EPSG:3035):
EU DEM 25m V1.1 (
eu_laea/PERMANENT/
; source: https://land.copernicus.eu/imagery-in-situ/eu-dem)CORINE felszínborítás 2012, g100_clc12_V18_5 (
eu_laea/corine_2012/
; source: https://land.copernicus.eu/pan-european/corine-land-cover/clc-2012)
Világ Mollweide vetület (EPSG 54009):
GHS_POP_GPW42015_GLOBE_R2015A_54009_250_v1_0 (
world_mollweide/pop_jrc
; source: https://ghsl.jrc.ec.europa.eu/ghs_pop.php)
A REST-hívás ellenőrzése az elküldés előtt¶
Az actinia feldolgozás lánc JSON kérés generálásához adja meg a -d
(dry-run) kapcsolót:
ace location="nc_spm_08" grass_command="r.slope.aspect elevation=elevation slope=myslope" -d
Egy térkép megjelenítése - térképrajzolás¶
Nagyon egyszerű (és gyors) a térképrajzolás:
# check amount of pixels, just FYI
ace location="latlong_wgs84" grass_command="r.info globcover@globcover"
# render the map ... 7 billion pixels
ace location="latlong_wgs84" render_raster="globcover@globcover"

ESA Globcover térkép actinia-val megjelenítve¶
Az efemer feldolgozás az actinia alapértelmezett feldolgozási módszere. A parancsokat egy efemer térképhalmazban hajtunk végre, amit a feldolgozás után eltávolítunk. A GRASS GIS modulok outputját exportálhatja, a számítási eredmények tárolására, letöltésére vagy további elemzéshez. A következő export formátumokat támogatjuk:
raszter:
COG
,GTiff
vektor:
GPKG
,GML
,GeoJSON
,ESRI_Shapefile
tábla:
CSV
,TXT
Szkript példák¶
1. példa: lejtés, kitettség és egyváltozós statisztikák számítása egy magasság modellből¶
A következő parancsok (egy szkriptben tárolandó és ace
-val végrehajtandó) egy raszter réteget importálnak egy internetes forrásból elev
névvel, beállítják a számítási régiót a térképhez és kiszámítja a lejtést. További információt kérünk az r.info
.val.
Tárolja a következő szkriptet mint egy szövegfájl ace_dtm_statistics.sh
:
# grass ~/grassdata/nc_spm_08/user1/
# Import the web resource and set the region to the imported map
g.region raster=elev@https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif -ap
# Compute univariate statistics
r.univar map=elev
r.info elev
# Compute the slope of the imported map and mark it for export as a COG file (Cloud Optimized GeoTIFF)
r.slope.aspect elevation=elev slope=slope_elev+COG
r.info slope_elev
Mentse el a szkriptet a /tmp/ace_dtm_statistics.sh
szövegfájlba és futtassa a mentett szkriptet
ace --location nc_spm_08 --script ace_dtm_statistics.sh
Az eredményeket (üzenetek, statisztikák, fájlok) mint REST erőforrásokat kapjuk meg.
Az actinia feldolgozás lánc JSON kérés generálásához adja meg a -d
(dry-run) kapcsolót:
ace -d location="nc_spm_08" script="/tmp/ace_dtm_statistics.sh"
Így kell kinéznie az outputnak:
{
"version": "1",
"list": [
{
"module": "g.region",
"id": "g.region_1804289383",
"flags": "pa",
"inputs": [
{
"import_descr": {
"source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
"type": "raster"
},
"param": "raster",
"value": "elev"
}
]
},
{
"module": "r.univar",
"id": "r.univar_1804289383",
"inputs": [
{
"param": "map",
"value": "elev"
},
{
"param": "percentile",
"value": "90"
},
{
"param": "separator",
"value": "pipe"
}
]
},
{
"module": "r.info",
"id": "r.info_1804289383",
"inputs": [
{
"param": "map",
"value": "elev"
}
]
},
{
"module": "r.slope.aspect",
"id": "r.slope.aspect_1804289383",
"inputs": [
{
"param": "elevation",
"value": "elev"
},
{
"param": "format",
"value": "degrees"
},
{
"param": "precision",
"value": "FCELL"
},
{
"param": "zscale",
"value": "1.0"
},
{
"param": "min_slope",
"value": "0.0"
}
],
"outputs": [
{
"export": {
"format": "COG",
"type": "raster"
},
"param": "slope",
"value": "slope_elev"
}
]
},
{
"module": "r.info",
"id": "r.info_1804289383",
"inputs": [
{
"param": "map",
"value": "slope_elev"
}
]
}
]
}
Példa 2: ortofotó kép szegmentáció exporttal¶
Tárolja a következő szkriptet mint egy szövegfájlt /tmp/ace_segmentation.sh
:
# grass ~/grassdata/nc_spm_08/user1/
# Import the web resource and set the region to the imported map
# we apply a importer trick for the import of multi-band GeoTIFFs:
# install with: g.extension importer url=https://github.com/actinia-org/importer
importer raster=ortho2010@https://apps.mundialis.de/workshops/osgeo_ireland2017/north_carolina/ortho2010_t792_subset_20cm.tif
# The importer has created three new raster maps, one for each band in the geotiff file
# stored them in an image group
r.info map=ortho2010.1
r.info map=ortho2010.2
r.info map=ortho2010.3
# Set the region and resolution
g.region raster=ortho2010.1 res=1 -p
# Note: the RGB bands are organized as a group
# export as a as COG file (Cloud Optimized GeoTIFF)
i.segment group=ortho2010 threshold=0.25 output=ortho2010_segment_25+COG goodness=ortho2010_seg_25_fit+COG
# Finally vectorize segments with r.to.vect and export as a GeoJSON file
r.to.vect input=ortho2010_segment_25 type=area output=ortho2010_segment_25+GeoJSON
Futtassa a szövegfájlba mentett parancsfájlt
ace location="nc_spm_08" script="/tmp/ace_segmentation.sh"
Az eredményeket (üzenetek, statisztikák, fájlok) mint REST erőforrásokat kapjuk meg.
Példák az állandó feldolgozásra¶
A GRASS GIS parancsok végrehajthatóak egy felhasználó által megadott állandó adatbázisban. A felhasználónak létre kell hoznia egy térképhalmazt egy létező helyen. Ezt a térképhalmazt elérhetjük a ace
-n keresztül. Ebben a térképhalmazban futtatott parancsok összes feldolgozási eredményét tartósan tároljuk. Ne felejtse el, hogy a feldolgozást egy efemer adatbázisban hajtjuk végre, amelyet a feldolgozás után a helyes névvel áthelyezzük a tartós tárhelyre.
Egy új térképhalmaz létrehozásához az nc_spm_08 helyen, test_mapset névvel a következő parancsot kell végrehajtania
ace location="nc_spm_08" create_mapset="test_mapset"
Futtassa a parancsokat a statisztika szkriptből egy új tartós térképhalmazban
ace location="nc_spm_08" mapset="test_mapset" script="/path/to/ace_dtm_statistics.sh"
A test_mapset-ben lévő parancsfájllal létrehozott rasztertérképek megjelenítése
ace location="nc_spm_08" mapset="test_mapset" grass_commmand="g.list type=raster mapset=test_mapset"
Az elev és slope_elev térképekről információ megjelenítése
ace location="nc_spm_08" mapset="test_mapset" grass_command="r.info elev@test_mapset"
ace location="nc_spm_08" mapset="test_mapset" grass_command="r.info slope_elev@test_mapset"
Törölje a test_mapset-et (mindig ellenőrizze duplán a neveket a törlésnél)
ace location="nc_spm_08" delete_mapset="test_mapset"
Ha az aktív GRASS GIS munkamenet azonos hely/térképcsoport beállításokkal rendelkezik, akkor egy aliast lehet használni, hogy elkerülje a tartós beállítást minden egyes parancs hívásban:
alias acp="ace --persistent `g.mapset -p`"
Feltételezzük, hogy az aktív GRASS GIS munkamenetben az aktuális hely nc_spm_08 és az aktuális térképhalmaz test_mapset. Ekkor a fenti parancsok a következő módon hajthatók végre:
ace location="nc_spm_08" create_mapset="test_mapset"
acp location="nc_spm_08" script="/path/to/ace_dtm_statistics.sh"
acp location="nc_spm_08" grass_command="g.list type=raster mapset=test_mapset"
acp location="nc_spm_08" grass_command="r.info elev@test_mapset"
acp location="nc_spm_08" grass_command="r.info slope_elev@test_mapset"
Kipróbálandó dolgok¶
Telepítés az OSGeoLive VM-en Docker Compose-al¶
Követelmények: docker és docker-compose (már rendelkezésre áll az OSGeoLive VM verzióban)
Az actinia elkészítéséhez és telepítéséhez futtassa
git clone https://github.com/actinia-org/actinia-core.git
cd actinia_core
docker-compose -f docker/docker-compose.yml up
Most van egy helyi, futó actinia példánya! Ellenőrizze
curl http://127.0.0.1:8088/api/v3/version
Új helyek létrehozása¶
# (note: the "demouser" is not enabled for this)
#
# create new location
ace create_location="mylatlon 4326"
# create new mapset within location
ace location="mylatlon" create_mapset="user1"
GRASS GIS bővítmények telepítése¶
# (requires elevated user privileges)
#
# list existing addons, see also
# https://grass.osgeo.org/grass-stable/manuals/addons/
ace location="latlong_wgs84" grass_command="g.extension -l"
# install machine learning addon r.learn.ml2
ace location="latlong_wgs84" grass_command="g.extension extension=\"r.learn.ml2\""
Mi a következő?¶
Látogassa meg az actinia honlapot https://actinia.mundialis.de
actinia oktatóanyag: https://neteler.gitlab.io/actinia-introduction
További olvasmányok: Neteler, M., Gebbert, S., Tawalika, C., Bettge, A., Benelcadi, H., Löw, F., Adams, T, Paulsen, H. (2019). Actinia: cloud based geoprocessing. In Proc. of the 2019 conference on Big Data from Space (BiDS’2019) (pp. 41-44). EUR 29660 EN, Publications Office of the European Union 5, Luxembourg: P. Soille, S. Loekken, and S. Albani (Eds.). (DOI)