-
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 edistyneemmät 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ämä poistaa tarpeen ladata tiedostot 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. On kuitenkin tärkeää, että internetyhteys on hyvä.
S3-palvelut ovat hyvin yleisiä suurten datamäärien tallentamiseen, esimerkiksi:
- CSC:n Allas,
- EuroHPC:n LUMI-O,
- ESA:n Copernicus Data Space Ecosystem S3,
- Amazon S3,
- Google Cloud Storage,
- Microsoft Azure Blob Storage jne.
Lisätietoja GDALin käytöstä URL-osoitteiden julkisten tiedostojen (VSICURL) ja S3-tallennuksen yksityisten tiedostojen (VSIS3) kanssa annetaan alla. Erityistä huomiota kiinnitetään CSC:n Allas-objektitallennuspalveluun ja supertietokoneisiin. GDALin käyttämiseksi supertietokoneella on aktivoitava moduuli, joka sisältää GDALin.
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 perustodennusta.
# 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 / S3-palveluihin
GDALin VSIS3 on tarkoitettu S3-palveluiden kanssa työskentelyyn.
S3-yhteyden tiedot
Jotta dataan voidaan päästä käsiksi 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 tai Linuxissa polussa ~/.aws/credentials. Esimerkiksi Altaan 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 ympäristömuuttujaksi GDAKille jokaisessa istunnossa, kun S3:a käytetään. Esimerkiksi Altaan 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.
Lisäksi GDAL vaatii, 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. Hae 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ällöin 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 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ä vektori-datan lisäysvalintaikkunoissa on vaihtoehdot datan lisäämiseen URL-osoitteesta (HTTPS) tai S3:sta. Vain lukeminen.
- Lisää S3-avaimia varten
credentials-tiedosto yllä kuvatulla tavalla tai käytä ympäristömuuttujia. - QGIS yhdistää oletuksena Amazon S3:een. Jos haluat yhdistää johonkin muuhun palveluun, lisää kohdassa Settings -> Options -> Variables uusi muuttuja nimellä AWS_S3_ENDPOINT; Altaalle arvo on
a3s.fi. - QGIS tukee myös pistepilviä URL-osoitteesta.
- Esimerkkikoodi Pythonille Altaan, rasterion, geopandasin ja boto3:n kanssa työskentelyyn.
- Esimerkkikoodi R:lle Altaan, terran, sf:n ja aws.s3:n kanssa työskentelyyn.