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.

Geospatiaalisten tiedostojen käyttäminen suoraan julkisista repositorioista ja S3-tallennuspalveluista, mukaan lukien Allas

GDAL on tärkein avoimen lähdekoodin kirjasto geospatiaalisen datan lukemiseen ja kirjoittamiseen, ja monet muut edistyneet työkalut, kuten QGIS, ArcGIS, Python, R jne., hyödyntävät GDALia. GDALissa on useita virtuaalisia verkkoon perustuvia tiedostojärjestelmiä, jotka on tarkoitettu eri rajapinnoille ja käyttötapauksille. GDAL ja useimmat siihen perustuvat työkalut voivat lukea dataa suoraan julkisesta URL-osoitteesta tai S3-tallennuspalveluista. Tällöin tiedostoja ei tarvitse ladata manuaalisesti ennen data-analyysiä. GDAL voi myös kirjoittaa tiedostoja S3-tallennuspalveluihin, mutta vain osa GDALiin perustuvista työkaluista tukee tätä.

Datan lukeminen suoraan ulkoisesta palvelusta on yleensä hitaampaa kuin lukeminen paikallisilta levyiltä, mutta monissa tapauksissa nämä sekunnit ovat merkityksettömiä verrattuna analyysin kokonaiskestoon. Hyvä internetyhteys on kuitenkin tärkeä.

S3-palvelut ovat hyvin yleisiä suurten datamäärien tallentamiseen, esimerkiksi:

Alla on lisätietoja siitä, miten GDALia käytetään URL-osoitteiden julkisten tiedostojen (VSICURL) ja S3-tallennuksen yksityisten tiedostojen (VSIS3) kanssa. Erityistä huomiota kiinnitetään CSC:n Allas-objektitallennuspalveluun ja supertietokoneisiin. Jos käytät GDALia supertietokoneella, GDALin sisältävä moduuli on aktivoitava.

Julkisten tiedostojen lukeminen URL-osoitteesta

VSICURL voidaan käyttää URL-osoitteen kautta saatavilla olevien tiedostojen lukemiseen. S3-tallennuksen julkisilla objekteilla on yleensä myös URL-osoite, joten tämä toimii myös julkisille S3-tiedostoille. VSICURL tukee myös tiedostojen osittaista lukemista, joten se toimii hyvin pilvioptimoitujen tiedostomuotojen kanssa. VSICURL tukee myös perusautentikointia.

# A public file
gdalinfo /vsicurl/URL

# For example, from Paituli
gdalinfo /vsicurl/https://www.nic.funet.fi/index/geodata/mml/orto/normal_color_3067/mara_v_25000_50/2023/N33/02m/1/N3324F.jp2

# CSC Allas
gdalinfo /vsicurl/https://a3s.fi/bucket_name/object_name
# OR alternatively
gdalinfo /vsicurl/https://bucket_name.a3s.fi/object_name

# Amazon S3 (us-west-2)
gdalinfo /vsicurl/https://s3.us-west-2.amazonaws.com/bucket_name/object_name

#Depending on GDAL installation settings VSICURL may sometimes work also without the `/vsicurl/` before the URL.
gdalinfo URL

Tiedostojen lukeminen ja kirjoittaminen S3-palveluista ja -palveluihin

GDALin VSIS3 on tarkoitettu S3-palveluiden kanssa työskentelyyn.

S3-yhteyden tiedot

Jotta dataa voidaan käyttää S3-palveluista, yhteystiedot on ensin asetettava oikein. Yleensä tarvitaan seuraavat yhteystiedot:

  • päätepisteen URL
  • alue
  • käyttöavain ja salainen avain

Kunkin palvelun käyttöoppaan pitäisi määrittää päätepiste ja alue sekä antaa ohjeet avainten löytämiseen. On suositeltavaa tallentaa avaimet ja alueen nimi credentials-tiedostoon, joka sijaitsee Windowsissa polussa C:\Users\username\.aws\credentials tai Macissa ja Linuxissa polussa ~/.aws/credentials. Esimerkiksi Altaassa credentials-tiedosto voisi näyttää tältä:

[allas_project1]
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=yyy
AWS_DEFAULT_REGION=regionOne

Päätepisteen URL-osoitetta ei tarvita Amazon S3:ssa, mutta sitä tarvitaan muissa palveluissa. Valitettavasti sitä ei voi antaa asetustiedostojen kautta, vaan se on asetettava GDAKille ympäristömuuttujana jokaisessa istunnossa, kun S3:a käytetään. Esimerkiksi Allas-päätepisteen asettaminen:

  • Windowsin komentotulkki: set AWS_S3_ENDPOINT=a3s.fi
  • Linux/Mac: export AWS_S3_ENDPOINT=a3s.fi

S3-yhteyden määritys Altaalle

Helpoin tapa määrittää S3-asetukset GDALille on määrittämällä S3-yhteys CSC:n supertietokoneella.

GDAL vaatii lisäksi, että Allas-päätepiste annetaan AWS_S3_ENDPOINT-ympäristömuuttujana, katso yllä olevat komennot.

S3-yhteyden määritys Copernicus Data Space Ecosystemille (CDSE)

ESA:n data, mukaan lukien Sentinel-data, on saatavilla CDSE S3:n kautta. Hanki CDSE S3 -tunnukset ja tallenna ne credentials-tiedostoon yllä kuvatulla tavalla. CDSE:n kanssa AWS_VIRTUAL_HOSTING tulee asettaa arvoon False:

export AWS_S3_ENDPOINT=eodata.dataspace.copernicus.eu
export AWS_VIRTUAL_HOSTING=FALSE

Useita yhteysprofiileja

Kun työskennellään useiden CSC-projektien tai eri S3-tallennuspalveluiden kanssa, credentials-tiedostossa voi olla useita profiileja:

[allas_project1]
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=yyy
AWS_DEFAULT_REGION = regionOne

[esa_cdse]
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=yyy

Tämän jälkeen ennen GDALin käyttöä käytössä oleva profiili on asetettava ympäristömuuttujaksi: export AWS_PROFILE=allas_project1

S3:n käyttäminen

# Reading data
gdalinfo /vsis3/<name_of_your_bucket>/<name_of_your_file>

# Writing data
export CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE=YES
gdal_translate /vsis3/<name_of_your_bucket>/<name_of_your_input_file> /vsis3/<name_of_your_bucket>/<name_of_your_output_file> -of COG

GDAL-pohjaiset työkalut

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta