-
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., perustuvat GDALiin. GDALissa on useita virtuaalisia verkkoon perustuvia tiedostojärjestelmiä, jotka on tarkoitettu eri rajapinnoille tai käyttötapauksiin. GDAL ja useimmat siihen perustuvat työkalut voivat lukea dataa suoraan julkisesta URL-osoitteesta tai S3-tallennuspalveluista. Tämä poistaa tarpeen ladata tiedostot käsin ennen data-analyysiä. GDAL voi myös kirjoittaa tiedostoja S3-tallennuspalveluihin, mutta vain osa GDALiin perustuvista työkaluista tukee sitä.
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ä Internet-yhteys on hyvä.
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.
Lisätietoja GDALin käytöstä julkisten URL-tiedostojen (VSICURL) ja yksityisten S3-tallennuksessa olevien 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
VSICURLia 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 basic authentication -todennusta.
# 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 dataa voidaan käyttää S3-palveluista, yhteystiedot on ensin asetettava oikein. Yleensä tarvitaan seuraavat yhteystiedot:
- end-point URL
- alue
- käyttöavain ja salainen avain
Kunkin palvelun käyttöoppaan pitäisi määrittää end-point 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ä:
End-point URL:ää 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 Altaan end-pointin 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-end-point 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 kuten yllä on kuvattu. CDSE:n kanssa AWS_VIRTUAL_HOSTING tulee asettaa arvoon False:
Useita yhteysprofiileja
Kun työskennellään useiden CSC-projektien tai eri S3-tallennusten 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
Sitten 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, yhdistä 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ä vektorimuotoisen datan lisäysvalintaikkunoissa on vaihtoehdot datan lisäämiseen URL-osoitteesta (HTTPS) tai S3:sta. Vain lukeminen.
- Lisää S3-avaimia varten
credentials-tiedosto kuten yllä on kuvattu, 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; Altaalle arvo on
a3s.fi. - QGIS tukee myös pistepilviä URL-osoitteesta.
- Esimerkki Python-koodista Altaan, rasterion, geopandasin ja boto3:n kanssa työskentelyyn.
- Esimerkki R-koodista Altaan, terran, sf:n ja aws.s3:n kanssa työskentelyyn.