Geospatial Crash Course

Modellering

Et tidligt kort

Raster

Vektor

grid

punkter

linjer

flader

Øvelse

Gå ind på geojson.io og indtegn "missilrampe" punkter:
Thule basen, Pyongyang, Rio de Janeiro

Gem filen som geojson og indlæs den på mapshaper.org

Åben "Console" og skriv "buffer radius=1000 units=km"

 

Export som geojson, åben filen i en text editor og byt teksten på geojson.io ud med den nye tekst.
 

Øvelse - resultat

Projektion

Geoide 

Elipsoide

Jorden som en rund kugle (form/størrelse)

 Middelvandstand

Datum

Elipsoiden matematiske "anker"

Geografisk koordinat system 

Koordinater som vinkler i cirklen

Projekteret koordinat system 

Koordinater som rette linjer i fx meter

3D➠2D  =  Areal ≠ Form

(Distance ≠ Direction)

EPSG

European Petroleum Survey Group

EPSG

European Petroleum Survey Group

Øvelse

Fra hvor UTM32 "grid krydset" i Oksbøl kaserne til et mål 4 km nord og 3 km øst er der 5 km.

Ejendomme i Danmark bliver i området opmålt med EPSG:4093

Googles koordinatsystem er EPSG:3857

Hvilket navn går EPSG:4093 under og hvilken Datum og Ellipsoide benytter det?

Hvad bliver afstanden i de 2 andre koordinat systemer?

Øvelse - resultat

ETRS89 / DKTM1, GRS1980

Standarder

OGC

Open Geospatial Consortium

 

🠗

 

DGIWG

Defence Geospatial Information Working Group

 

🠗

 

JGSWG (NATO)

Joint Geospatial Standards Working Group

OSGeo

The Open Source Geospatial Foundation

 

ESRI, Mapbox, etc.

Åbne standarder fra firmaer

Standardisation of

geospatial data, products, and services

Øvelse

Gå ind på https://kort.xyz og klik på "lag ikonet".
Hermed ses en liste med lag efter
DFDD featurekoder (DGIWG - DGIM).

Hvad viser (A)GB055?


Hvilken kode har veje?


AT042 (pylon) har en attribut "TOS",

hvad er det?

Øvelse - Resultat

Hvad viser (A)GB055?

Runway


Hvilken kode har veje?

AP030


AT042 (pylon) har en attribut "TOS", hvad er det?

Towershape

Data Formater

Vektordata - GEOJSON

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {"text": "test"},
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [9.4921875,51.6180165487737],
            [1.7578125,40.97989806962013],
            [25.3125,40.97989806962013],
            [22.8515625,52.696361078274485],
            [9.4921875,51.6180165487737]
          ]
        ]
      }
    }
  ]
}

Vektordata - OGC GML

Geography Markup Language

https://www.ogc.org/standards/gml

    <gml:featureMember xmlns:gml="http://www.opengis.net/gml">
        <feature:features">
            <feature:geometry>
                <gml:Polygon>
                    <gml:outerBoundaryIs>
                        <gml:LinearRing>
                            <gml:coordinates decimal="." cs="," ts=" ">
                              9.4921875,51.6180165487737 
                              1.7578125,40.97989806962013 
                              25.3125,40.97989806962013 
                              22.8515625,52.696361078274485 
                              9.4921875,51.6180165487737
                          </gml:coordinates>
                        </gml:LinearRing>
                    </gml:outerBoundaryIs>
                </gml:Polygon>
            </feature:geometry>
            <feature:text>test</feature:text>
        </feature:features>
    </gml:featureMember>

Vektordata - ESRI Shapefile

Består af flere filer:

Øvelse

Gå ind på Natural Earth og download "timezones" som shapefil.

Hvilken projektion er datasættet i?

 

Hvilket tegnsæt?

 

Hvilke attributter indeholder datasættet?

Øvelse

Hvilken projektion er datasættet i?

EPSG:4326

 

Hvilket tegnsæt?

UTF-8

 

Hvilke attributter indeholder datasættet?objectid,scalerank,featurecla,name,map_color6,

map_color8,note,zone,utc_format,time_zone,

iso_8601,places,dst_places,tz_name1st,tz_namesum

Rasterdata - OGC GeoTIFF

Billedfil med geospatiale informationer

Rasterdata - DTED

DTED0 = 900km*900km grid

 

DTED1 = 90km*90km grid

 

DTED2 = 30km*30km grid

Digital Terrain Elevation Data

MIL-PRF-89020B

Rasterdata - jpeg,png,webp

Billedfil uden geospatiale informationer

Øvelse

Højre klik på billedet og download det. Åben det på exifviewer.

Hvor er billedet taget?

Web Services

OGC WMS - intro

Levere et billede, som serveren fremstiller når den får en forespørgsel igennem http

DGIWG 112, STANAG 6523

Stammer fra 2000 og nyeste version er fra 2004.   (google maps kom i 2005)

Forskellige forespørgsels typer:

  • getCapabilities,
  • getMap,
  • getFeatureinfo,
  • getLegendGraphics,
  • Describelayer,
  • (osv.)

Stammer fra 2000 og nyeste version er fra 2004.   (google maps kom i 2005)

Har (måske) følgende struktur:

OGC WMS - getCapabilities

Response i XML og beskriver WMS servicen

<WMT_MS_Capabilities version="1.1.1">
  <Service>
  ...
  </Service>
  <Capability>
  ...
  </Capability>
</WMT_MS_Capabilities>
<Capability>
  <Request>
  ...
  </Request>
  <Exception>
  ...
  </Exception>
  <Layer>
  ...
  </Layer>
</Capability>

Øvelse

3 spørgsmål til 3 forskellige getCapabilities filer:

Kan man få ortofotos i webmercator og UTM32 nord? link

 

Hvilken farve har kartofler i marker18? link

 

Hvor langt ud i fremtiden kan man kalde tempaturlaget? link

Øvelse - resultat

Kan man få ortofotos i webmercator og UTM32 nord? link

Ja og nej

 

Hvilken farve har kartofler i marker18? link

teal

 

Hvor langt ud i fremtiden kan man kalde tempaturlaget? link

35 timer

Øvelse - getMap

<html>

    <head>
        <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
        <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
        <script src="index.js" defer></script>
    </head>

    <body style="margin:0;">
        <div id='map' style="background:steelblue;height: 100vh;width: 100vw;"></div>
    </body>

</html>
var map = L.map('map', {
    center: [56.5, 9.5],
    zoom: 10,
    crs: L.CRS.EPSG4326
});

var wmsLayer = L.tileLayer.wms('http://geodata.fvm.dk/geoserver/ows?', {
    layers: 'Jordbrugsanalyser:CHR14',
}).addTo(map);

I en tom mappe lav 2 filer: index.html og index.js

Åben html filen i en texteditor og tilføj nedenstående:

Åben js filen i en texteditor og tilføj nedenstående:

Øvelse - getMap

Åben html filen i en browser og tryk F12.

Gå ind under "network" fanen og zoom ind og ud i kortet.

getMap forespørgslerne kan så ses.

Hvilken størrelse har billedfilerne?

 

Hvilket format er billederne i?

Øvelse - resultat

Hvilken størrelse har billedfilerne?
256 x 256 pixel

 

Hvilket format er billederne i?

JPEG

Øvelse - getFeatureInfo

Dette billede fåes ved dette link

Ændre "request" KVP til "GetFeatureinfo" og

Tilføj "&query_layers=Jordbrugsanalyser:CHR14&X=50&Y=50"

Hvad "forestiller" punktet?

 

Hvilken kommune ligger punktet i?

 

Hvor mange dyreenheder (DE) har punktet?

Øvelse - resultat

Hvad "forestiller" punktet?

Svinekødsbesætning

 

Hvilken kommune ligger punktet i?

Favrskov

 

Hvor mange dyreenheder (DE) har punktet?

311.96

OGC WMTS / Tiles

Delt ind i et tilematrix sets.

For (det meste) prerenderet billeder.

 

<TileMatrix>
  <ows:Identifier>0</ows:Identifier>
  <ScaleDenominator>559082264.02871787548065185547</ScaleDenominator>
  <TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
  <TileWidth>256</TileWidth>
  <TileHeight>256</TileHeight>
  <MatrixWidth>1</MatrixWidth>
  <MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
  <ows:Identifier>1</ows:Identifier>
  <ScaleDenominator>279541132.01435887813568115234</ScaleDenominator>
  <TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
  <TileWidth>256</TileWidth>
  <TileHeight>256</TileHeight>
  <MatrixWidth>2</MatrixWidth>
  <MatrixHeight>2</MatrixHeight>
</TileMatrix>

OGC WMTS / Tiles

<Layer>
  <ows:Title>Sentinel-2 cloudless layer for 2018 by EOX - 4326</ows:Title>
  <ows:Abstract>Sentinel-2 cloudless -Contains modified Copernicus Sentinel data 2017 - 2018</ows:Abstract>
  <ows:WGS84BoundingBox>
    <ows:LowerCorner>-180.000000 -90.000000</ows:LowerCorner>
    <ows:UpperCorner>180.000000 90.000000</ows:UpperCorner>
  </ows:WGS84BoundingBox>
  <ows:Identifier>s2cloudless-2018</ows:Identifier>
  <Format>image/jpeg</Format>
  <TileMatrixSetLink>
    <TileMatrixSet>WGS84</TileMatrixSet>
  </TileMatrixSetLink>
  <ResourceURL format="image/jpeg" resourceType="tile" 
template="https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2018/default/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpg"/>
</Layer>

Lag beskrives i OGC WMTS sådan:

Tileservice specifikationer

 

TMS har "0,0" koordinat i venstre bund.      XYZ/WMTS har i venstre top.

I praksis kommer det til udtryk når man skal skrive urlen til en service:

XYZ = {Z}/{X}/{Y}         TMS = {Z}/{X}/{-Y}        WMTS = {Z}/{Y}/{X}                                                                                                                   {tileMatrixId}/{tileRow}/{tileCol}

Øvelse - WMTS

Følgende link indeholder en WMTS service.

Åben JS filen fra før og tilføj et baggrundskort ved hjælp af følgende kode:

var magnetic_graticules = 
   L.tileLayer('INDSÆT URL HER!').addTo(map);

TIPS!
- koden skal tilføjes imellem de 2 "variable" i eksisterende kode.
- der bruges {x} i stedet for {tilerow} osv.

- der skal tilføjes parametre til wms tjenesten for at man kan se baggrunden.

 

Øvelse - WMTS

var map = L.map('map', {
    center: [56.5, 9.5],
    zoom: 10,
    crs: L.CRS.EPSG4326
});

var magnetic_graticules = 
    L.tileLayer('https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2020/default/WGS84/{z}/{y}/{x}.png').addTo(map);

var wmsLayer = L.tileLayer.wms('http://geodata.fvm.dk/geoserver/ows?', {
    layers: 'Jordbrugsanalyser:CHR14',
	format:'image/png',
	transparent:true,
}).addTo(map);

Geospatial Crash Course

By tinoks

Geospatial Crash Course

  • 138