Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

SNAP

SNAP (Sentinel Application Platform) on Euroopan avaruusjärjestön kehittämä kaukokartoituksen työkalupakkiarkkitehtuuri. Se sisältää työkalut kaikille yleisille satelliittialustoille.

Saatavuus

SNAP on saatavilla Puhdissa seuraavina versioina:

  • 9.0 (kääritty singularity-kontti Python 3.6.9:llä, sisältää snappy- ja snapista-kirjastot)
  • 8.0 (Singularity-kontti, jossa snappy 8.0.3 ja Python 3.6.9)

Lisäksi tarjoamme moduulin snap/jupyter, jossa on SNAP 9.0 (kääritty singularity-kontti Python 3.6.9:llä, sisältää snappy- ja snapista-kirjastot) sekä jupyter asennettuna. Voit käyttää sitä esimerkiksi Jupyter-sovelluksessa Puhdin selainkäyttöliittymässä custom module -valinnan kautta.

Asennetut työkalupakit

  • Sentinel-työkalupakit (1,2,3)
  • SMOS-työkalupakki
  • Radarsat-työkalupakki
  • PROBA-V-työkalupakki

Voit asentaa lisää liitännäisiä omaan käyttäjähakemistoosi SNAPin graafisesta käyttöliittymästä.

Käyttö

SNAP sisältyy snap-moduuliin, ja sen voi ladata komennolla:

module load snap

Tämä lataa uusimman saatavilla olevan version. Vanhemman version voi ladata komennolla:

module load snap/<VERSION>

SNAPin käyttö graafisella käyttöliittymällä Puhdin selainkäyttöliittymässä

Helpoin tapa käyttää SNAPia on avata se Puhdin selainkäyttöliittymässä.

  1. Kirjaudu sisään Puhdin selainkäyttöliittymään.
  2. Avaa Desktop-sovellus.
  3. Kun Desktop on käynnistetty, kaksoisnapsauta SNAP-kuvaketta TAI avaa Terminal (Desktop-kuvake) ja käynnistä SNAP:
module load snap
source snap_add_userdir $TMPDIR
snap -J-xmx10G

SNAPin userdir- ja Java temp dir -asetukset

SNAP käyttää huomattavan määrän tallennustilaa välimuistiin ja väliaikaistiedostoihin. Oletuksena nämä kirjoitetaan HOME-hakemistoosi, ja ne voivat helposti täyttää sen. Tämän välttämiseksi määritä SNAPin käyttäjähakemisto ja Javan väliaikaishakemisto. Tämä skripti kannattaa suorittaa aina, kun alat käyttää SNAPia Puhdissa tai haluat vaihtaa käytettäviä kansioita.

Snap-moduulin lataamisen jälkeen suorita

source snap_add_userdir <YOUR-PROJECTS-SCRATCH-FOLDER>

Voit myös pyytää nopean nvme -levyn eräajossa ja suorittaa komennon ensin eräajossa, jolloin kaikki väliaikais- ja välimuistitiedostot kirjoitetaan nopealle levylle scratchin sijaan. Tämä voi parantaa suorituskykyä vaativissa laskennoissa.

source snap_add_userdir $LOCAL_SCRATCH eräajoissa

source snap_add_userdir $TMPDIR interaktiivisissa ajoissa

Tämä skripti asettaa myös Javan väliaikaishakemiston; se asetetaan määrittämäsi kansion snap/temp-alikansioksi. Jos haluat asettaa Javan väliaikaishakemiston muualle, käytä: export _JAVA_OPTIONS="$_JAVA_OPTIONS -Djava.io.tmpdir=<SOME-FOLDER>" käyttäjähakemiston asettamisen jälkeen.

Note

Graafinen käyttöliittymä ei noudata snap.userdir-asetusta, mutta se huomioi Java-asetuksen. SNAPin GUI:n käyttö luo __.snap__-kansion HOME-hakemistoosi ja täyttää sitä. Tyhjennä se, jos HOME-hakemistosi tila loppuu.

Javan muistiasetukset

Oletuksena SNAP/8.0 käyttää Puhdissa Java-muistia vain enintään 2 Gt. Voit kasvattaa tätä lisäämällä -J-xmx10G tai vastaavan asetuksen snap- tai gpt-komentoon. -J-xmx10G kasvattaa Javan enimmäismuistin 10 gigatavuun. Säädä tämä tarpeidesi ja ajon muistivarauksen mukaan. Käytä Javalle muutama gigatavu vähemmän kuin ajollesi varattu kokonaismuisti.

SNAPin käyttö Graph Processing Tool (gpt) -komennolla

Graph Processing Tool gpt on komentorivityökalu massaprosessointiin. GPT:tä käyttämällä voidaan hyödyntää enemmän laskentatehoa kuin SNAPin graafisella käyttöliittymällä, koska sitä voidaan käyttää skripteissä ja siten sisällyttää ajoihin, jotka voidaan lähettää mihin tahansa Puhdin partitioon.

GPT-komento näyttää usein tältä:

gpt -J-xmx10G <full_path_to_graph_xml_file> -Pfile=<inputfile> -t <outputfile>

Joitakin olennaisia gpt-valitsimia ovat:

  • -J-xmx10G Javan käyttämä enimmäismuisti.
  • -q Säikeiden määrä, jota gpt-instanssi käyttää. Aseta tämä pyydettyjen CPU-ytimien määrään tai suuremmaksi
  • -c Välimuistin koko tavuina. Muuta tätä, jos tallennustila muodostuu ongelmaksi
  • -x Tyhjennä sisäinen tile-välimuisti sen jälkeen, kun kokonainen laattojen rivi on kirjoitettu tulostiedostoon. Lisää tämä, jos muistista tulee ongelma

Katso tämän sivun lopussa olevien viitteiden linkeistä lisätietoja GPT:stä.

Myös seuraava komento on erittäin hyödyllinen eri operaattoreiden graafien luomisessa. Sen voi suorittaa interaktiivisessa sessiossa

sinteractive -i
module load snap
gpt <snap-operator> -h

gpt --diag -J-Xmx60G -c 40G -komennolla voi tarkistaa, mitä muisti- ja välimuistiasetuksia gpt käyttää.

GPT-esimerkkejä Puhdille

SNAPin käyttö Python-rajapinnoilla

SNAPin toimintoja on mahdollista käyttää myös Pythonista snappy- ja snapista-kirjastojen avulla (vain SNAP 9).

SNAP 9.0

snappy/snapista-skriptien ajaminen eräajoissa:

python3 <YOUR-PYTHON-SCRIPT>

Katso saatavilla olevat paketit:

pip3 list

Uusien pakettien asentaminen $HOME-hakemistoosi:

pip <NEW-PACKAGE-NAME> --user

Paketteja on mahdollista asentaa myös muihin hakemistoihin kuin $HOME. Katso ohjeet Pythonin käyttöoppaasta.

SNAP 8.0

snappy-skriptien ajaminen eräajoissa:

apptainer_wrapper exec python3 <YOUR-PYTHON-SCRIPT>

Katso saatavilla olevat paketit:

apptainer_wrapper exec pip list

Uusien pakettien asentaminen $HOME-hakemistoosi:

apptainer_wrapper exec pip <NEW-PACKAGE-NAME> --user

Paketteja on mahdollista asentaa myös muihin hakemistoihin kuin $HOME. Katso ohjeet Pythonin käyttöoppaasta.

SNAPin päivittäminen

SNAPin pienversio- ja moduulipäivitykset tallennetaan hakemistoon $HOME/.snap. Tämä tarkoittaa, että käyttäjän täytyy asentaa kaikki pienpäivitykset itse. Voit tehdä tämän joko SNAP Desktopissa seuraamalla käynnistyksen yhteydessä avautuvan ponnahdusikkunan ohjeita tai SNAP 9:ssä suorittamalla source update_snap sen jälkeen, kun olet ladannut SNAP-moduulin terminaalissa.

Lisenssi

Kaikki SNAP-ohjelmistot on julkaistu GPL-3 -lisenssillä.

Viittaus

SNAP - ESA Sentinel Application Platform v{VERSION}, http://step.esa.int

Kiitokset

Pyydämme mainitsemaan CSC:n ja Geoportin julkaisuissasi; tämä on tärkeää projektin jatkuvuuden ja rahoitusraporttien kannalta. Esimerkiksi voit kirjoittaa: "The authors wish to thank CSC - IT Center for Science, Finland (urn:nbn:fi:research-infras-2016072531) and the Open Geospatial Information Infrastructure for Research (Geoportti, urn:nbn:fi:research-infras-2016072513) for computational resources and support".

Asennus

SNAP asennettiin Puhtiin Singularitylla käyttäen mundialisin Dockerhubissa tarjoamaa SNAP Docker -kuvaa, johon tehtiin pieniä lisäyksiä snappy- ja snapista-Python-rajapintojen tarjoamiseksi. Kontti käärittiin lopuksi Tykyn wrap-container-toiminnallisuudella:

wrap-container -w /usr/local/snap/bin,/usr/bin snap9_py.sif --prefix install_dir

Koko SNAP Singularity -määritystiedosto.

Viitteet

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta