Denne side beskriver forskelle mellem abonnementsbaserede filudtræk og prædefinerede entitetsbaserede, rasterbaserede og punktskybaserede fildownloads, samt hvordan du som anvender af filudtræk, kan komme i gang med at bruge fildownload. 

Det skal bemærkes at filudtræk og fildownload driftes parallelt i en periode, så anvendere af Datafordeleren har mulighed for at skifte til fildownload.


Sideinformation





Entitetsbaserede fildownload


Denne guide beskriver forskelle mellem abonnementsbaserede filudtræk og prædefinerede entitetsbaserede fildownloads, samt hvordan du som anvender af filudtræk, kan komme i gang med at bruge entitetsbaserede fildownload. 







Indhold i filer


Totaludtræk på den Nuværende Datafordeler indeholder normalt hele registerets data, hvor alle registerets entiteter blev fordelt i lister og derefter samlet i én samlet fil. Dette kan ses i venstre side i nedenstående figur, som indeholder 4 lister med entiteter i. Den Moderniserede Datafordeler tager disse lister, der hver især indeholder en entitet, og opdeler så disse i hver deres filer i stedet for. Dette kan ses i højre side i figuren.

Det er altså det samme data der udstilles i filerne sammenlagt, men hvor forskellen er at fildownload hver især indeholder en delmængde af det samlede registers datasæt.



Den Moderniserede Datafordeler udstiller på denne måde den samme data i fildownload, som bliver udstillet i filudtræk på den Nuværende Datafordeler, dog med den ændring, at filerne er opdelt per entitet.




Da fildownload bliver genereret på entitetsniveau, betyder det også at hele entiteten udstilles, og at der ikke filtreres felter fra i det udstillede data, da dette er det samme som det der indlæses på Datafordeleren.

Hvis du som anvender gerne vil vide præcis hvilke felter der eksisterer i fildownload for en given entitet, skal du konsultere registrenes Dataleverancespecifikation (DLS), der i dens Bilag 3 (Opdatering) beskriver hvilke felter hvert registers entiteter består af. Registrenes DLS'er kan hentes findes på siden DLS-udstilling.



Forskelle i GML og GeoPackage filudtræk og fildownload

I forbindelse med implementering af eksport af GML og GeoPackage fildownload, er der taget en række design-beslutninger som er forskellige fra de valg som blev truffet da eksport af GML og GeoPackage filudtræk blev designet. Dette resulterer i følgende nævneværdige forskelle i de genererede filer, hvilket er beskrevet i dette afsnit.

Generelle forskelle der gælder for begge filtyper

  • I filudtræk eksporteres dato-felter i dansk tid. I fildownload eksporteres dato-felter i UTC.
  • I filudtræk kan der eksistere et felt som indeholder Datafordelerens opdateringstidspunkt for den pågældende database-række. Dette er kun inkluderet i et filudtræk, hvis registeret eksplicit har bestilt dette i deres DLS. Dette felt er altid inkluderet i fildownload.

Fildownload udstiller data per entitet, med samme datamodel som registrene sender til Datafordeleren. Hvis et register i deres DLS for filudtræk har valgt at omdøbe kolonner, lave sammenstillinger mellem tabeller, har beregnede felter, eller lign., vil disse ikke være at finde i fildownload. Der kan dermed forekomme flere/færre felter i fildownload, og nogen felter kan have andre navne.

GeoPackage-specifikke forskelle

  • I filudtræk eksporteres dato-felter til en kolonne defineret med typen DateTime, og er begrænset til millisekund præcision. I fildownloads eksporteres dato-felter til en kolonne defineret med typen TEXT, og er begrænset til mikrosekund præcision, hvor datoen er skrevet i ISO8601 format.

I tilfælde af at registre har brugt karakterer i deres felt- eller entitet-navne som ikke er tilladt af GeoPackage standarden, renses navnene i fildownload på følgende måde: æ/ø/å udskiftes til hhv. ae/oe/aa, og alle andre ugyldige karakterer udskiftes med _ (en understreg). Dette kan forårsage forskelle, hvis den manuelt definerede rensning som er brugt i filudtræk, ikke er udført på samme måde.

GML-specifikke forskelle

  • Der er en række mindre forskelle i XSD-skemaerne imellem filudtræk og fildownload. F.eks. udstilles GML fildownload med det pågældende registers namespace, hvorimod filudtræk bruger Datafordelerens namespace. Herudover indeholder fildownload XSD-skemaer alle registerets annotationer og type-restriktioner, hvilket ikke er inkluderet i filudtræk XSD-skemaer.
  • I filudtræk eksporteres dato-felter med op til millisekund præcision. I fildownload eksporteres dato-felter med op til mikrosekund præcision.
  • I tilfælde af at registre har brugt karakterer i deres felt- eller entitet-navne som ikke er tilladt i XML-standarden, renses navnene i fildownload ved at skrive disse med XML LocalName encoding reglerne. Dette kan forårsage forskelle, hvis den manuelt definerede rensning som er brugt i filudtræk, ikke er udført på samme måde.

GML "srsName" attributten skrives i filudtræk med den korte form "EPSG:25832" eller "EPSG:4326". I fildownload bruges URN versionen af EPSG-definitionen, dvs. "urn:ogc:def:crs:EPSG::25832" og "urn:ogc:def:crs:EPSG::4326".







Geografisk filtrering i fildownload

Følgende afsnit beskriver, hvordan du, som anvender, kan postprocessere fildownload på forskellige geografiske egenskaber.

Du kan lave geografisk filtrering på registerdata ved at filtrere på de egenskaber der ses i nedenstående tabel. For data, som kan filtreres geografisk, gælder det, at et datapunkt er associeret med:

  • En afledt geografisk identifikator, eksempelvis kommunekode. Et datapunkt kan filtreres på baggrund af denne kode.
  • En geometri, eksempel en polygon med EPSG referencekode. Polygonen kan sammenlignes med en referencegeometri, såsom en kommune, og på baggrund af det geometriske overlap kan datapunktet filtreres.

Såfremt et datapunkt ikke har en reference til nogen af ovennævnte, kan det være tilfældet at datapunktet har en reference til en entitet der er associeret med enten en geometrisk identifikator eller geometri. Det er derfor ikke altid muligt direkte at foretage geografisk filtrering på en entitet uden først at behæfte entiteten med en geografisk identifikator først. Bemærk også at tabellen kun dækker de registre der har fildownloads. Der er i moderniseringens Udviklingsleverance 1 ikke implementeret generisk geografisk filtrering på fildownloads, idet det ville kræve, at Datafordeleren gør sig adskillige antagelser om, hvordan data anvendes i den anden ende. Såfremt disse antagelser ikke stemmer overens med den faktuelle brug, kan Datafordeleren fejlagtigt lave geografiske filtreringer, der er anderledes end anvenderens faktiske behov.

Register

Felt

BBR

Kommunekode

EBR

Kommunekode

MAT

Kommunekode

GEODKV

GeoDanmark kommunepolygon, kommunekode

DAGI

DAGI kommunepolygon

DHMHoejdekurver

DAGI kommunepolygon







Anvendereksempel på transition fra filudtræk til entitetsbaseret fildownload

Dette eksempel tager udgangspunkt i en anvender der allerede bruger Datafordeleren og henter data fra DAR igennem filudtræk.

Situationsbeskrivelse

Dette eksempel antager at en anvender allerede har etableret en kopi af DAR og skal i gang med at bruge fildownloads.
Anvenderen har først etableret sin datakopi af DAR ved at opsætte et abonnement på et brugerdefineret totaludtræk fra DAR med følgende parametre:

  • SincePrevious = True
  • RegistreringFra = 2021-03-01
  • VirkningFra = 2021-03-01
  • Format = JSON
  • Dagligt udtræk

Anvenderen henter filudtræk fra Datafordeleren via sin SSH2-tjenestebruger dagligt og indlæser deltafilen i sin datakopi.

Transition

For at anvenderen kan komme i gang med at bruge fildownloads, skal anvenderen vælge mellem 2 muligheder:

Mulighed A) Anvenderen ønsker at etablere en ny datakopi med fildownloads.
Mulighed B) Anvenderen ønsker at indlæse data oveni en eksisterende datakopi med fildownloads.

Anvenderen gør herefter følgende

  1. Anvenderen opretter en tjenestebruger med brugernavn og password på selvbetjeningen.
  2. Anvenderen kalder metoden GetAvailableFiledownloads med sin nye tjenestebruger som følger:
    1. https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=DAR&username=xxxx&password=yyyy
  3. Da anvender nu ved, hvilke fildownloads der eksisterer, kalder anvender metoden GetFile, for at hente totaldownloads for alle entiteter i DAR:
    1. https://api.datafordeler.dk/FileDownloads/GetFile?Register=DAR&username=xxxx&password=yyyy
  4. Anvender er nu i besiddelse af et totaludtræk i DAR. Anvenderen kan nu vælge at sammensætte alle filerne til én stor fil og postprocessere denne, eller postprocessere filerne enkeltvis. Postprocesseringen filtrerer data fra, der har RegistreringFra og VirkningFra ældre end 2021-03-01.
  5. Dette skridt varierer, alt efter om anvenderen valgte mulighed A eller B, som er beskrevet ovenfor:
    1. Hvis anvenderen valgte mulighed A), skal anvenderen etablere sin lokale datakopi ved at indlæse data fra filerne. I dette eksempel har totaludtrækket fra DAR udtræksnummer 14.
    2. Hvis anvenderen valgte mulighed B) i stedet, skal anvender finde forskellen mellem sin lokale datakopi og den data der findes i totaludtrækket fra DAR som anvenderen netop har hentet.

Anvender sætter herefter en vedligeholdelse op af sin datakopi. Vedligeholdelsen består i at hente deltadownloads ind fra DAR, som genereres dagligt. Anvenderen bemærker, at totaludtrækket har udtræksnummer 14, hvilket betyder at anvenderen skal hente deltadownloads fra DAR med udtræksnummer 15 og højere for at sørge for at datakopien holdes opdateret. Anvenderen kalder igen GetAvailableFiledownloads for at se, hvilke deltafiler der findes for DAR.

    1. https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=DAR&username=xxxx&password=yyyy
  1. Anvenderen ser at der findes deltadownloads for samtlige entiteter i DAR med udtræksnumrene 15 og 16. Anvenderen ved derfor, at det vil være nødvendigt at hente alle deltadownloads for alle entiteter i DAR med de ovenstående udtræksnumre. Dette gør anvenderen ved at kalde GetFile for alle entiteterne i DAR med både udtræksnumre 15 og 16:
    1. https://api.datafordeler.dk/FileDownloads/GetFile?Filename=filename&username=xxxx&password=yyyy
  2. Anvenderen holder løbende øje med genereringen af DAR deltadownloads der genereres hver dag og sørger for at hente disse og indlæse dem i deres lokale datakopi.
  3. Anvenderen har nu sat sit system op til at bruge fildownloads.


Figur 8: Opsummering af transitionsskridt for en anvender.
Transitionen i ovenstående skridt er opsummeret i Figur 8.







Anvendereksempel på transition med udgangspunkt i kopiregister

Dette eksempel tager udgangspunkt i en anvender som allerede har etableret en kopi af BBR, som skal i gang med at bruge fildownloads.

Situationsbeskrivelse

I dette eksempel henter anvenderen daglige totaludtræk hvor registreringshistorikken ikke er nødvendig, og derfor filtreres fra. Anvenderen har sat følgende abonnement op:

  • SincePrevious = False
  • RegistreringFra = NOW()
  • Format = JSON
  • Dagligt udtræk

Anvenderen bruger en tjenestebruger med brugernavn og password til at tilgå filudtræk.

Transition

  1. Anvenderen kalder metoden GetAvailableFiledownloads med en nyoprettet API-nøgle som følger:
  2. Da anvender nu ved hvilke fildownload der eksisterer, kalder anvender nu metoden GetFile for at hente totaldownload for alle entiteter i BBR:
  3. Anvender er nu i besiddelse af et totaludtræk af BBR, heriblandt et totaludtræk med temporale data, dvs. registreringshistorikken er filtreret fra. Anvenderen kan nu vælge at sammensætte alle filerne til én stor fil og postprocessere denne, eller postprocessere filerne enkeltvis.
  4. Anvenderen etablerer herefter den samme vedligeholdelsesproces som blev beskrevet i afsnit 4.3.2. Da anvenderen her ikke er interesseret i registreringshistorikken, skal anvender dog huske at postprocessere deltadownload og filtrere denne historik fra, inden den data indlæses oveni den lokale datakopi.






Rasterbaserede fildownload


Denne guide beskriver, gennem to eksempler, hvordan du som anvender af filudtræk, kan komme i gang med at bruge fildownload til at hente rasterdata på Datafordeleren.  







Anvendereksempel på transition med udgangspunkt i brug af bounding box for rasterdata


Dette eksempel tager udgangspunkt i en anvender der allerede bruger Datafordeleren og henter data fra Danmarks Topografiske Kortværk i forholdet 1:25.000 (DTK25) igennem filudtræk.

Situationsbeskrivelse

Dette eksempel antager at en anvender plejer at hente de tiles fra DTK-registret der dækker Møn og skal i gang med at bruge fildownload.

For at kunne hente et udsnit af kortet har anvenderen oprettet et abonnement på DTK25 Danmarks Topografiske Kortværk 1:25.000 Prædefineret. Anvenderen skal så finde navnene på de seks 20x20km tiles som dækker Møn, eventuelt ved brug af Dataforsyningen, for derefter at forbinde til Datafordelerens FTP-server og hente de tilhørende ZIP-filer.

Transition

  1. Anvenderen finder koordinaterne på det nederste venstre og det øverste højre hjørne af det ønskede område i EPSG-25832 format, eventuelt ved brug af Dataforsyningen eller io.
  2. Anvenderen kalder metoden GetRasterMultipleFiles med koordinaterne fra (1) for at hente alle tiles i det pågældende område fra DTK25:
  3. Kaldet returnerer filen DTK_DTK25_696086_6084811-728240_6108653.zip som indeholder de 6 20x20km tiles: 2023_608_68.tif, 2023_608_70.tif, 2023_608_72.tif, 2023_610_68.tif, 2023_610_70.tif og 2023_610_72.tif






Punktskybaserede fildownload


Denne guide beskriver, gennem to eksempler, hvordan du som anvender af filudtræk, kan komme i gang med at bruge fildownload til at hente punktskydata på Datafordeleren.







Anvendereksempel på transition med udgangspunkt i brug af bounding box for punktskydata


Dette eksempel tager udgangspunkt i en anvender der allerede bruger Datafordeleren og henter punktskydata fra Danmarks Højdemodel (DHM_PUNKTSKY) igennem filudtræk.

Situationsbeskrivelse

Dette eksempel antager at en anvender plejer at hente de tiles fra DHM-registret der dækker Fejø og skal i gang med at bruge fildownload.

For at kunne hente et udsnit af kortet har anvenderen oprettet et abonnement på Punktsky Brugerdefineret LAZ. Anvenderen skal så finde navnene på de 43 1x1km tiles som dækker Fejø, eventuelt ved brug af Dataforsyningen, for derefter at forbinde til Datafordelerens FTP-server og hente de tilhørende ZIP-filer.

Transition

  1. Anvenderen finder koordinaterne på det nederste venstre og det øverste højre hjørne af det ønskede område i EPSG-25832 format, evt. ved brug af Dataforsyningen eller io.
  2. Anvenderen kalder metoden GetPointCloudMultipleFiles med koordinaterne fra (1) for at hente alle tiles i det pågældende område fra Punktsky-datsættet:

Kaldet returnerer filen DHM_PUNKTSKY_650098_6088404-657989_6094473.zip som indeholder de 43 1x1km tiles.






Bilag 1: FAQ


  1. Er min IP-adresse stadig godkendt?
    1. Ja det er den.
  2. Hvilken zone udstilles fildownloads i?
    1. Fildownloads udstilles i zone 0.
  3. Hvilken type bruger skal jeg bruge for at hente fildownloads?
    1. En tjenestebruger med brugernavn og password er påkrævet for at tilgå fildownloads.
  4. Hvordan hentes fildownloads?
    1. Dette sker ved at kalde REST-API'et der udstiller fildownloads. Se afsnit 2.6 for en uddybende beskrivelse.
  5. Hvilke tidspunkter bliver fildownloads genereret?
    1. Dette sker som udgangspunkt mellem kl. 3 og 6 om natten. Se skemaet i afsnit 2.5 der giver et overblik over hvornår der genereres fildownloads for hvert register.
  6. Er der fildownloads for alle registre?
    1. Nej, det er der ikke. Det er kun de registre som står anført i Tabel 3 som får fildownloads i de filformater der står angivet i tabellen.






Bilag 2: Overførsel af filudtræk til entitetsbaserede fildownload

Filudtræk

Tilsvarende fildownloads

BBR-Aktuelt-Totaludtraek_HF

BBR_TotalDownload_Current for alle entiteter i BBR

BBR-Totaludtraek_HF

BBR_TotalDownload_Bitemporal for alle entiteter I BBR

DAGI10MULTIGEOM

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:10.000

DAGI10MULTIGEOMHIST

DAGI_TotalDownload_Bitemporal for alle entiteter hvor skala er 1:10.000

DAGI10MULTIGEOMHIST_HF

DAGI_TotalDownload_Bitemporal for alle entiteter hvor skala er 1:10.000

DAGI10MULTIGEOM_HF

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:10.000

DAGI2000MULTIGEOM

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:2.000.000

DAGI2000MULTIGEOM_HF

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:2.000.000

DAGI250MULTIGEOM

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:250.000

DAGI250MULTIGEOM_HF

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:250.000

DAGI500MULTIGEOM

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:500.000

DAGI500MULTIGEOM_HF

DAGI_TotalDownload_Current for alle entiteter hvor skala er 1:500.000

DAR-Aktuelt-Totaludtraek_HF

DAR_TotalDownload_Current for alle entiteter I DAR

DAR-Totaludtraek_HF

DAR_TotalDownload_Bitemporal for alle entiteter I DAR

DHMhoejdekurver025

DHM_ referencekurve025_TotalDownload_Temporal

DHMhoejdekurver025_HF

DHM_ referencekurve025_TotalDownload_Temporal

DHMhoejdekurver050

DHM_ formkurve05_TotalDownload_Temporal

DHMhoejdekurver050_HF

DHM_ formkurve05_TotalDownload_Temporal

DHMhoejdekurver250

DHM_ formkurve25_TotalDownload_Temporal

DHMhoejdekurver250_HF

DHM_ formkurve25_TotalDownload_Temporal

DHMhoejdekurverekstrempunkter

DHM_kote05_TotalDownload_Current
DHM_kote25_TotalDownload_Current

DHMhoejdekurverekstrempunkter_HF

DHM_kote05_TotalDownload_Current
DHM_kote25_TotalDownload_Current

DHMoprindelseKorrektion

DHM_korrektionsegne_Bitemporal med GeoDK Soe-entiteten

DHMoprindelseKorrektion_HF

DHM_korrektionsegne_Bitemporal med GeoDK Soe-entiteten

DHMoprindelsePunktoprindelse

DHM_punktoprindelse_Bitemporal

DHMoprindelsePunktoprindelse_HF

DHM_punktoprindelse_Bitemporal

DKstednavneBearbejdedeNohist

DS_TotalDownload_Current for alle entiteter

DKstednavneBearbejdedeNohist_HF

DS_TotalDownload_Current for alle entiteter

EBREjendomsbeliggenhedSimpel_HF

EBR_TotalDownload_Current for alle entiteter

EBREjendomsbeliggenhed_HF

EBR_TotalDownload_Bitemporal for alle entiteter

GeoDanmark60

GeoDKV_TotalDownload_Temporal for alle entiteter

GeoDanmark60HIST

GeoDKV_TotalDownload_Bitemporal for alle entiteter

GeoDanmark60HISTKommune_HF

GeoDKV_TotalDownload_Temporal for alle entiteter med geografisk filtrering på relevant kommune

GeoDanmark60HISTRegion_HF

GeoDKV_TotalDownload_Temporal for alle entiteter med geografisk filtrering på relevant region

GeoDanmark60HIST_HF

GeoDKV_TotalDownload_Bitemporal for alle entiteter

GeoDanmark60_HF

GeoDKV_TotalDownload_Temporal for alle entiteter

GeoDanmark60bruger

GeoDKV_TotalDownload_Bitemporal for alle entiteter

GeoDanmark60bruger_HF

GeoDKV_TotalDownload_Bitemporal for alle entiteter

MATkortdataGaeldendeDKComplete_GML

MAT_Totaldownload_Current for alle entiteter med tilknyttet jordstykke pr. entitet

MATkortdataGaeldendeDKComplete_GPKG

MAT_Totaldownload_Current for alle entiteter med tilknyttet jordstykke pr. entitet

MATkortdataGaeldendeKommuneComplete_GML

MAT_Totaldownload_Current for alle entiteter med tilknyttet jordstykke pr. entitet og med geografisk filtrering

MATkortdataGaeldendeKommuneComplete_GPKG

MAT_Totaldownload_Current for alle entiteter med tilknyttet jordstykke pr. entitet og med geografisk filtrering

MATregisterdataTotalUdtraek

MAT_TotalDownload_Bitemporal for alle entiteter






Bilag 3: Datasæt med rasterdata


Register

Datasætnavn

skaermkort

KlassiskS3

KlassiskS6

KlassiskS12

KlassiskS24

KlassiskS48

KlassiskS96

KlassiskS193

KlassiskS387

KlassiskS774

KlassiskS1548

KlassiskS3096

KlassiskS6192

KlassiskS07

KlassiskS1

DaempetS07

DaempetS1

DaempetS3

DaempetS6

DaempetS12

DaempetS24

DaempetS48

DaempetS96

DaempetS193

DaempetS387

DaempetS774

DaempetS1548

DaempetS3096

DHM

Terraen

Overflade

TerraenSkygge

OverfladeSkygge

Bluespot2007

Terraen2015

Overflade2015

DTK

DTK4cm19571976

DTK4cm19771994

DTK4cm19831997

DTKHøjeMaalebordsblade

DTKLaveMaalebordsblade

DTKPreussiskeMaalebordsblade

DTK25

DTK250

DTK500

DTK1000

GeoDKO

GeoDKO10cm

GeoDKO12,5cm






Bilag 4: Datasæt med punktskydata


Register

Datasætnavn

DHM

Punktsky

Punktsky2015

Punktsky2007