-
Geospatiaalisten tiedostojen käyttäminen suoraan julkisista repositorioista ja S3-tallennuspalveluista, mukaan lukien Allas
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:
- CSC Allas,
- EuroHPC LUMI-O,
- ESA Copernicus Data Space Ecosystem S3,
- Amazon S3,
- Google Cloud Storage,
- Microsoft Azure Blob Storage jne.
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ä:
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:
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
- ArcGIS Pro, yhteys pilvitallennukseen. Vain rastereille ja vain lukemiseen.
- ArcGIS Pro pyytää kaikki yhteystiedot pilvitallennusyhteyttä määritettäessä, joten
credential-tiedostoa tai ympäristömuuttujia ei tarvita.
- ArcGIS Pro pyytää kaikki yhteystiedot pilvitallennusyhteyttä määritettäessä, joten
- QGIS:
- Sekä rasteri- että vektorimuotoisen datan lisäysvalintaikkunoissa on vaihtoehdot datan lisäämiseen URL-osoitteesta (HTTPS) tai S3:sta. Vain lukeminen.
- Lisää S3-avaimet
credentials-tiedostoon yllä kuvatulla tavalla tai käytä ympäristömuuttujia. - QGIS muodostaa oletuksena yhteyden Amazon S3:een. Jos haluat muodostaa yhteyden johonkin muuhun palveluun, lisää kohtaan Settings -> Options -> Variables uusi muuttuja nimellä AWS_S3_ENDPOINT; Allasta varten arvo on
a3s.fi. - QGIS tukee myös pistepilviä URL-osoitteesta.
- Esimerkki Python-koodista Allaksen, rasterion, geopandasin ja boto3:n käyttöön.
- Esimerkki R-koodista Allaksen, terran, sf:n ja aws.s3:n käyttöön.