Dette afsnit 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.

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





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 fildownloads 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 fildownloads, 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 fildownloads.

Fildownloads 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 fildownloads. Der kan dermed forekomme flere/færre felter i fildownloads, og nogen felter kan have andre navne.
GeoPackage-specifikke forskelle:

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 fildownloads 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 fildownloads. F.eks. udstilles GML fildownloads 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-skemaerne.
  • I filudtræk eksporteres dato-felter med op til millisekund præcision. I fildownloads 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 fildownloads 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 fildownloads 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 man, som anvender, kan postprocessere fildownloads på forskellige geografiske egenskaber. Man kan lave geografisk filtrering på registerdata ved at filtrere på de egenskaber der ses i Tabel 6. 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

GeoDanmark Vektor

GeoDanmark kommunepolygon, kommunekode

DAGI

DAGI kommunepolygon

DHM Højdekurver

DAGI kommunepolygon






Anvendereksempel på transition fra filudtræk til fildownloads


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

Afsnittet giver et eksempel på, hvordan en eksisterende anvender på Datafordeleren kan overgå fra at bruge filudtræk i sit system til at bruge fildownloads. Afsnittet påbegyndes med en situationsbeskrivelse efterfulgt af konkrete trin der beskriver transitionen.

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 sin eksisterende tjenestebruger som følger:
    1. https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=BBR&username=xxxx&password=yyyy
  2. Da anvender nu ved hvilke fildownloads der eksisterer, kalder anvender nu metoden GetFile for at hente totaldownloads for alle entiteter i BBR:
    1. https://api.datafordeler.dk/FileDownloads/GetFile?Register=BBR&username=xxxx&password=yyyy
  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 deltadownloads og filtrere denne historik fra, inden den data indlæses oveni den lokale datakopi.






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 fildownloads

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