- Created by Ann-Sofie Hildebrandt, last modified on Apr 28, 2025
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
Forfatter
Datafordeleren
Oprettet
May 28, 2024
Version
2.0
Ændret
Apr 28, 2025
Sidehistorik
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
- Anvenderen opretter en tjenestebruger med brugernavn og password på selvbetjeningen.
- Anvenderen kalder metoden GetAvailableFiledownloads med sin nye tjenestebruger som følger:
- Da anvender nu ved, hvilke fildownloads der eksisterer, kalder anvender metoden GetFile, for at hente totaldownloads for alle entiteter i DAR:
- 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.
- Dette skridt varierer, alt efter om anvenderen valgte mulighed A eller B, som er beskrevet ovenfor:
- 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.
- 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.
- 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:
- 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.
- 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
- Anvenderen kalder metoden GetAvailableFiledownloads med en nyoprettet API-nøgle som følger:
- Da anvender nu ved hvilke fildownload der eksisterer, kalder anvender nu metoden GetFile for at hente totaldownload for alle entiteter i BBR:
- 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.
- 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
- 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.
- Anvenderen kalder metoden GetRasterMultipleFiles med koordinaterne fra (1) for at hente alle tiles i det pågældende område fra DTK25:
- 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
- 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.
- 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
- Er min IP-adresse stadig godkendt?
- Ja det er den.
- Hvilken zone udstilles fildownloads i?
- Fildownloads udstilles i zone 0.
- Hvilken type bruger skal jeg bruge for at hente fildownloads?
- En tjenestebruger med brugernavn og password er påkrævet for at tilgå fildownloads.
- Hvordan hentes fildownloads?
- Dette sker ved at kalde REST-API'et der udstiller fildownloads. Se afsnit 2.6 for en uddybende beskrivelse.
- Hvilke tidspunkter bliver fildownloads genereret?
- 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.
- Er der fildownloads for alle registre?
- 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 |
DHMhoejdekurverekstrempunkter_HF | DHM_kote05_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 |