Rajapinnat ja karttadatan lataus

Tämä sivuston laskennallinen maanousun ja jäätikön vlevinnäisyyden kartta-data on vapaasti kaikkien käytettävissä. Aineiston voi ladata kokonaisuudessaa tai sitä voi käyttää sivuston rajapinnan kautta suoraan.

Tiedostoformaatti

Kartta-datan jakelumuoto on Cloud Optimized GeoTIFF (COG). Tämä formaatti valittiin, koska sen avulla aineistoa voi jaella ilman WMS/WFS jne. palvelinta suoraan "palvelimen levyltä" eli pilvipalvelun bucketista. Tämä tekee sivuston ylläpidosta huomattavasti halvempaa.

Cloud Optimized GeoTIFF -tiedostomuodossa TIFF-tiedoston sisään on upotettu tiilit eri kartan zoomaustasoille. Tällöin datan käyttäjä voi kysyä HTTP-kutsun Range-otsakkeen avulla vain rajatun määrän koko datasta. Tämä mahdollistaa datan käytön suoraan selaimessa ilman koko aineiston lataamista.

GeoTIFF:n sisältö

Maannousukartta

Aineisto ei ole käyttövalmis visuaalinen rasteri, vaan GeoTIFF tiedostomuotoa käytetään välittämään tietoa 2m x 2m pikseleinä, että onko pikseli merta vai maata tiedoston tarkasteluvuotena:

Tieto on GeoTIFF-tiedoston data band 1 -tiedoissa. Tiedostoa ei siis voi renderöidä suoraan visuaalisesti, vaan käyttäjän pitää määrittää renderöintisäännöt käyttämäänsä työkaluun, joka renderöi nämä eri data-arvot halutuilla väreillä. tämä toteutustapa valittiin, koska järkevä "meren väri" vaihtuu käytetyn pohjakartan värityksen mukana.

Jäätikön levinnäisyyskartta

Vastaavasti myös jäätikön levinnäisyyskartta ei ole visuaalinen rasteri, vaan GeoTIFF data band 1 sisältää seuraavat arvot:

Projektio

Datan projektio on Suomessa yleisesti käytetty EPSG:3067 (ETRS-TM35FIN). Tämä mahdollistaa aineiston käytön esim. Maanmittauslaitoksen pohjakarttojen kannsa ilman projektion muunoksia.

Lisenssi

Maannousulaskennan pohjana on Maanmittauslaitoksen (MML) julkaisema korkeusmalli 2 m, joka kuvaa 2m x 2m ruudukolla koko Suomen maankorkeuden merenpinnasta vuonna 2023. Aineisto on lisenssi CC BY 4.0.

Laskennoissa käytetään myös muuta aineistoa:

Tämän myötä myös laskennan lopputuloksen lisenssi on siis CC BY 4.0, koska se on myösa kaiken lähtödatan lisenssi.

Nämä kaikki lähteet on mainittava, jos tämän sivuston kartta-aineistoa jakelee eteenpäin.

Rajapinnat ja tiedostot

OpenAPI dokumentaatio löytyy Html-muodossa osoitteesta maannousu.info/api ja JSON-muodossa osoitteesta maannousu.info/api/spec.json

Rajapinnat/GeoTIFF-tiedostot on nimetty vuosiluvun mukaan, jonka maankohoamisen tilannetta ne mallintavat. Negatiiviset luvut ovat ennen ajanlaskun alkua (esim. -4000 on 4000 eaa.).

Tuettujen vuosien määrä voi muuttua suuremmaksi (ei pienemmäksi) ajan myötä. Ajantasaisen listan voi hakea dynaamisesti JSON-muodossa seuraavista osoitteista:

Rajapinnat ja tiedostot ovat tässä tapauksessa yksi ja sama asia. GeoTIFF aineiston voi ladata kokonaisuudessaan klikkaamalla linkkiä selaimessa tai siitä voi hakea osia HTTP-kutsun Range-otsakkeen avulla samasta osoitteesta.

Maannousun karttojen tiedostojen koot ovat noin 300 - 600 megatavua kappale. Jään levinnäisyyskartat ovat todella pieniä (alle 1 megatavu).

VuosiLaskentamalli V1 osoiteLaskentamalli V2 osoiteLaskentamalli V2 jään levinnäisyyskartan osoite
10 000 eaa.https://maannousu.info/api/v2/-10000https://maannousu.info/api/v2/ice/-10000
9750 eaa.https://maannousu.info/api/v2/-9750https://maannousu.info/api/v2/ice/-9750
9500 eaa.https://maannousu.info/api/v2/-9500https://maannousu.info/api/v2/ice/-9500
9250 eaa.https://maannousu.info/api/v2/-9250https://maannousu.info/api/v2/ice/-9250
9000 eaa.https://maannousu.info/api/v2/-9000https://maannousu.info/api/v2/ice/-9000
8750 eaa.https://maannousu.info/api/v2/-8750https://maannousu.info/api/v2/ice/-8750
8500 eaa.https://maannousu.info/api/v2/-8500https://maannousu.info/api/v2/ice/-8500
8250 eaa.https://maannousu.info/api/v2/-8250
8000 eaa.https://maannousu.info/api/v2/-8000
7750 eaa.https://maannousu.info/api/v2/-7750
7500 eaa.https://maannousu.info/api/v2/-7500
7250 eaa.https://maannousu.info/api/v2/-7250
7000 eaa.https://maannousu.info/api/v2/-7000
6750 eaa.https://maannousu.info/api/v2/-6750
6500 eaa.https://maannousu.info/api/v2/-6500
6250 eaa.https://maannousu.info/api/v2/-6250
6000 eaa.https://maannousu.info/api/v1/-6000https://maannousu.info/api/v2/-6000
5500 eaa.https://maannousu.info/api/v1/-5500https://maannousu.info/api/v2/-5500
5000 eaa.https://maannousu.info/api/v1/-5000https://maannousu.info/api/v2/-5000
4500 eaa.https://maannousu.info/api/v1/-4500https://maannousu.info/api/v2/-4500
4000 eaa.https://maannousu.info/api/v1/-4000https://maannousu.info/api/v2/-4000
3750 eaa.https://maannousu.info/api/v2/-3750
3500 eaa.https://maannousu.info/api/v1/-3500https://maannousu.info/api/v2/-3500
3250 eaa.https://maannousu.info/api/v2/-3250
3000 eaa.https://maannousu.info/api/v1/-3000https://maannousu.info/api/v2/-3000
2750 eaa.https://maannousu.info/api/v2/-2750
2500 eaa.https://maannousu.info/api/v1/-2500https://maannousu.info/api/v2/-2500
2250 eaa.https://maannousu.info/api/v2/-2250
2000 eaa.https://maannousu.info/api/v1/-2000https://maannousu.info/api/v2/-2000
1750 eaa.https://maannousu.info/api/v2/-1750
1500 eaa.https://maannousu.info/api/v1/-1500https://maannousu.info/api/v2/-1500
1250 eaa.https://maannousu.info/api/v2/-1250
1000 eaa.https://maannousu.info/api/v1/-1000https://maannousu.info/api/v2/-1000
750 eaa.https://maannousu.info/api/v2/-750
500 eaa.https://maannousu.info/api/v1/-500https://maannousu.info/api/v2/-500
250 eaa.https://maannousu.info/api/v2/-250
0 eaa.https://maannousu.info/api/v1/0https://maannousu.info/api/v2/0
250 jaa.https://maannousu.info/api/v2/250
500 jaa.https://maannousu.info/api/v1/500https://maannousu.info/api/v2/500
750 jaa.https://maannousu.info/api/v2/750
1000 jaa.https://maannousu.info/api/v1/1000https://maannousu.info/api/v2/1000
1250 jaa.https://maannousu.info/api/v2/1250
1500 jaa.https://maannousu.info/api/v1/1500https://maannousu.info/api/v2/1500
1750 jaa.https://maannousu.info/api/v2/1750

Cross-Origin Resource Sharing (CORS)

Sivusto palautaa rajapintojen osoitteille Cross-Origin Resource Sharing (CORS) otsakkeet, joiden avulla rajapintoja voi käyttää suoraan toiselta verkkosivulta:

"Access-Control-Allow-Origin": "*"
"Access-Control-Allow-Methods": "GET", "HEAD", "OPTIONS"
"Access-Control-Max-Age": "86400"

Cache

Rajapinta palauttaa "Cache-Control": "public, max-age=86400" otsakkeen jokaisella kutsulla, joka sallii cachen selaimessa vuorokaudeksi. Selaimista kuitenkin vain Safari cachettaa tällä hetkellä HTTP Range-kutsuja. Chromella ja siis myös Edgellä selain lataa aina kaiken datan uudestaan.

Integraatio-esimerkit

OpenLayers

OpenLayers on avoimen lähdekoodin JavaScript-kirjasto, joka osaa renderöidä GeoTIFF-tiedostoja selaimessa. Kirjasto osaa hakea tehokkaasti zoomaustason mukaisia tiilejä aineistosta HTTP Range-kutsuilla.


        import WebGLTileLayer from "ol/layer/WebGLTile";
        import { GeoTIFF } from "ol/source";

        const colorLand = [0, 0, 0, 0]; // Invisible
        const colorSea = [201, 236, 250, 1]; // National Land Survey of Finland background map sea color
        const colorIce = [255, 255, 255, 1]; // White
        const noData = [0, 0, 0, 0]; // Invisible
        const style = {
          color: [
            "case",
            ["==", ["band", 1], 0], // Value 0 = land
            colorLand,
            ["==", ["band", 1], 1], // Value 1 = sea
            colorSea,
            ["==", ["band", 1], 2], // Value 2 = Glacial ice
            colorIce,
            noData, // Fallback
          ],
        };

        const source = new GeoTIFF({
          sources: [
            {
              url: `https://maannousu.info/api/v2/-6000`,
              bands: [1],
            },
          ],
          convertToRGB: false,
          normalize: false,
        });

        const layer = new WebGLTileLayer({
          source,
          style,
        });
      

Laajempi esimerkki kokonaisesta OpenLayers-sivustosta löytyy tämän sivuston lähdekoodista GitHubista: