Dette dokument er en guide i anvendernes transition fra de abonnementsbaserede filudtræk over til entitetsbaserede fildownloads.
Dokumentet er opdelt i to dele:

  1. Første del af dokumentet beskriver hvad fildownloads er, samt hvordan funktionaliteten anvendes.
  2. Anden del af dokumentet forklarer forskelle, samt hvordan anvendere i forskellige situationer kan komme i gang med at anvende fildownloads.

Dokumentet er tiltænkt følgende læsere:

  1. Eksisterende anvendere af Datafordeleren der henter filudtræk på Datafordeleren, som ønsker at komme i gang med at bruge fildownloads i stedet for.
  2. Nye anvendere, der vil i gang med at bruge fildownloads på Datafordeleren.

Sideinformation



Begreber


I dette dokument bruges begreberne i Tabel 1. Bemærk at begreberne også er yderligere forklaret i løbet af dokumentet med eksempler.


Beskrivelse

Filudtræk

Filudtræk er en metode at få udtræk af data fra Datafordeleren. Man kan som anvender logge på selvbetjeningen og oprette et abonnement på et specifikt filudtræk – evt. med brugerdefinerede parametre, hvorefter filen bliver genereret og er tilgængelig på en FTP-server. Filudtræk er beskrevet her.

Fildownload

Fildownloads beskrives i denne vejledning.

Entitet

En entitet er fysisk repræsentation af et registerobjekt som findes i Grunddatamodellen.

Totaldownload

Et totaldownload er et udtræk af alle data for en enkelt entitet og refererer til en enkelt fil.

Deltadownload

Et deltadownload er et udtræk af alle data der har ændret sig, siden forrige deltadownload blev lavet, for en enkelt entitet. Et deltadownload består af en enkelt fil.

Totaludtræk

Et totaludtræk er et udtræk af alle data i et register eller en delmængde af et register. Et totaludtræk er udgjort at en eller flere totaldownloads. Et totaludtræk kan således bestå af en eller flere filer, alt afhængigt af hvor stor en delmængde af et register der er tale om.

Deltaudtræk

Et deltaudtræk er et udtræk af alle data der har ændret sig, siden forrige deltaudtræk blev lavet, i et register eller en delmængde af et register. Et deltaudtræk er udgjort af et eller flere deltadownloads. Et deltaudtræk kan således bestå af en eller flere filer, alt afhængigt af hvor stor en delmængde af et register der er tale om.





Fildownloads


Fildownloads er en funktionalitet på Datafordeleren til udstilling af data, men skal ikke misforstås som værende det samme som de abonnementsbaserede filudtræk, der også er på Datafordeleren. Fildownloads tilbydes som prædefinerede entitetsbaserede fildownloads og baserer sig på de datamodeller som registrene har på Datafordeleren.
En entitet svarer til en tabel i Grunddatamodellen som er defineret i registrenes datamodel: https://grunddatamodel.datafordeler.dk/. En entitet kan eksempelvis være en "Adresse" fra DAR, en "Bygning" fra BBR eller et "Jordstykke" fra MAT. Det at fildownloads er entitetsbaserede betyder at et fildownload indeholder data for en enkelt type af entitet. Der leveres entitetsbaserede fildownloads på tabulære data og ikke for rasterdata (billeddata). Tabulære data forstås som strukturerede data der kan opbevares i tabeller som f.eks. adresser men ikke billedtyper som skærmkort.
Fildownloads genereres løbende i bestemte intervaller for en række registre, hvorefter filerne kan hentes gennem et REST-API, der udstiller de genererede fildownloads. Det eneste krav til at hente fildownloads er, at man har en tjenestebruger med brugernavn og adgangskode. Fildownloads bruger ikke abonnementer, da de allerede ligger klar til at blive hentet. REST-API'et beskrives nærmere i afsnit 2.6, mens skema for generering samt frekvenser for generering beskrives nærmere i afsnit 2.5.


En opsummering hvad fildownloads består af, kan ses i figuren til højre. Figuren viser 3 registre:

  • Register A, som har 5 entiteter. Registerets entiteter refererer til hinanden indbyrdes indenfor registeret og har også en enkelt reference til en entitet i register C udenfor registeret.
  • Register B, som har 6 entiteter. Registerets entiteter refererer til hinanden indbyrdes indenfor registeret og har også en enkelt reference til en entitet i register A udenfor registeret.
  • Register C, som har 6 entiteter. Registerets entiteter refererer til hinanden indbyrdes indenfor registeret.

Registrenes entiteter har alle fildownloads, som både består af totaludtræk og deltaudtræk. Det skal her bemærkes at Register C har fravalgt at der bliver genereret fildownloads for deres entitet nr. 5 og 6 i dette eksempel.



Typer af fildownloads


Datafordeleren udstiller flere typer af entitetsbaserede fildownloads. Der findes 2 typer af fildownloads, nemlig totaldownloads og deltadownloads. Datafordeleren opbevarer ét totaldownload pr. type pr. entitet, mens der opbevares deltaudtræk 14 dage fra de blev genereret.
Hvis der genereres fildownloads for en entitet, bliver der altid genereret både totaldownloads og deltadownloads. Udover at der findes flere typer af fildownloads, findes der også flere typer af filtreringer på den data som de genererede fildownloads indeholder. Dette skyldes at delmængder af data på Datafordeleren er bitemporal og at der dermed kan være flere forekomster af det samme objekt over tid i to tidsdimensioner https://confluence.sdfi.dk/display/DML/Grunddata+-+bitemporalitet.

  • Fuldt bitemporalt fildownload: Et fuldt bitemporalt fildownload inkluderer alt, hvad angår både registreringstid og virkningstid.
  • Temporalt fildownload: Et temporalt fildownload filtrerer registreringsdimensionen fra, men beholder virkningsdimensionen.
  • Fildownload med aktuelle data: Både registreringstiden og virkningstiden er sat til at være på det pågældende tidspunkt fildownload blev lavet.

Det er muligt at kombinere en type fildownload med en type af bitemporal filtrering og filformat. 

Type af fildownload

Type af bitemporal filtrering

Typer af filformater

Totaldownload

Bitemporal

JSON, GML og GPKG

Totaldownload

Temporal

JSON, GML og GPKG

Totaldownload

Aktuel

JSON, GML og GPKG

Deltadownload

Bitemporal

JSON, GML og GPKG




Filformater


Tabel 3 nedenfor viser, hvilke registre der har fildownloads på deres entiteter, samt hvilke filformater der er tilgængelige for registrenes entiteter. Et kryds i en række i tabellen indikerer at filformatet generelt er understøttet for det givne registers entiteter.

Register

JSON

GPKG

GML

BBR

X



DAR

X



EBR

X



MAT2

X

X

X

DAGI

X

X

X

DHM Oprindelse

X

X

X

DHM Højdekurver

X

X

X

Danske Stednavne

X

X

X

GeoDanmark Vektor

X

X

X

FIKSPUNKT

X

X

X

Tabel 3: Oversigt over understøttede filformater per register.
Det skal bemærkes det ikke er alle entiteter for et register der har fildownloads i GPKG og GML-format, selvom dette er indikeret i Tabel 3. Der skal gøre sig følgende gældende for at en entitet understøttes i GPKG eller GML-format:

  • GPKG-formatet understøttes på en entitet hvis entiteten indeholder 0 eller 1 geometrier.
  • GML-formatet understøttes på en entitet hvis entiteten indeholder minimum 1 geometri.




Udtræksnumre


Udtræksnumre er en fortløbende talrække der beskriver tidsmæssig sammenhæng mellem data i et register. Hver gang der genereres fildownloads for et register, påsættes alle fildownloads ved samme generering det samme udtræksnummer. Dette bevirker at fildownloads med det samme udtræksnummer indeholder konsistente data indenfor registerets egen data. Denne egenskab er særlig relevant hvis man som anvender er interesseret i at sammensætte data fra flere entiteter i et register.
Det er her vigtigt at understrege, at udtræksnumrene kun er fortløbende per register, og at hvert register derfor har sin egen fortløbende talrække, der er uafhængig af andre registre. Udtræksnumre kan derfor ikke garantere referentiel integritet på tværs af registrenes data, da dette afhænger af registrenes indlæsningstidspunkter, samt indlæsningsfrekvens.




Sammenhæng mellem total- og deltaudtræk

Det er muligt at vedligeholde en lokal kopi af registrenes data som findes på Datafordeleren ved at hente totaludtræk – og herefter løbende hente deltaudtræk. Kopien etableres først lokalt, ved at hente et totaldownload for den/de entiteter der er interesse for. Idet totaludtrækket hentes, skal det bemærkes hvilket udtræksnummer totaludtrækket har, da udtræksnummeret skal bruges til at identificere hvilke deltaudtræk der er relevante at hente, for at opdatere den initiale kopi af data. Et totaldownload og deltadownload med det samme udtræksnummer indeholder data fra samme generation. Dette betyder at deltaudtræk med samme udtræksnummer som et totaludtræk indeholder dermed ingen data som ikke også er indeholdt i totaludtrækket. Det udtræksnummer der skal bruges til at opdatere kopien af data, er dermed det næste udtræksnummer i talrækken. Et eksempel på dette kan ses i Figur 2, som viser en række genererede deltaudtræk, samt et genereret totaludtræk. Hver generering har resulteret i, at der enten er blevet genereret et deltaudtræk og/eller et totaludtræk. Det kan ses på figuren, at der eksisterer både et totaludtræk, samt et deltaudtræk med udtræksnummeret 3. Såfremt det ønskes at etablere en kopi af data fra entiteten, kan totaludtrækket med udtræksnummeret 3 først hentes – og så herefter hente deltaudtrækkene med udtræksnummer 4, 5 og 6 for at vedligeholde datakopien. Det er således ikke nødvendigt at hente deltaudtrækket med udtræksnummer 3, da deltaudtrækket blev genereret på samme tid som totaludtrækket. 

Yderligere detaljer og eksempelscenarier kan findes i Kopiregister Guide.



Spring i udtræksnumre

Der kan i sjældne tilfælde forekomme et spring i udtræksnumre. Dette skyldes, at der eksisterer et nyere udtræksnummer for det pågældende register, og at generering af fildownloads, derfor, vil bruge det nyere udtræksnummer for at sikre konsistente data inden for registeret.
Processen for indhentning af deltaudtræk bør, på baggrund af ovenstående, følge følgende logik:

  1. Tjek hvilket udtræksnummer der er påsat senest indhentede deltaudtræk.
  2. Indhent deltaudtræk med udtræksnumre der er større end det sidst indhentede deltaudtræks udtræksnummer.
    1. Dette sikrer at alle nyere deltaudtræk altid hentes uden at der springes nogle over, selvom der sker spring i udtræksnummeret på deltaudtrækkene.




Navngivning af fildownloads


De fildownloads der genereres på Datafordeleren følger alle en navnestandard, der hjælper med at beskrive hvad indholdet af filen er. Navnestandarden ser ud som set på nedenstående figur.




Et fildownload som følger navnestandarden kan derfor eksempelvis have navn som følgende:

  1. DAR_1_Adresse_TotalDownload_JSON_Bitemporal_10.zip
  2. DAR_1_Adresse_DeltaDownload_JSON_Bitemporal_11.zip
  3. BBR_1_Bygning_TotalDownload_JSON_Temporal_123.zip
  4. MAT_1_Lodflade_TotalDownload_GPKG_Current_7.zip
  5. DAGI_1_Kommuneinddeling_TotalDownload_GML_Current_42.zip


Man kan ud fra navngivningen af ovenstående fildownloads udlede følgende:

  1. Fildownload nr. 1 indeholder et fuldt bitemporalt totaludtræk af Adresse-entiteten som ligger i DAR. Filen der downloades er en ZIP-fil, men ZIP-filen indeholder en JSON-fil. Filen har generationsnummer 10.
  2. Fildownload nr. 2 indeholder et fuldt bitemporalt deltaudtræk af Adresse-entiteten som ligger i DAR. Filen der downloades er en ZIP-fil, men ZIP-filen indeholder en JSON-fil. Deltafilen har generationsnummer 11 og ville derfor indeholde alle ændringer der var sket for Adresse-entiteten siden generationsnummer 10. Denne deltafil ville derfor kunne bruges til at opdatere en datakopi der havde indlæst fildownload nr. 1, som har generationsnummer 10.
  3. Fildownload nr. 3 indeholder et temporalt totaludtræk af Bygning-entiteten som ligger i BBR. Filen der downloades er en ZIP-fil, men ZIP-filen indeholder en JSON-fil. Filen har generationsnummer 123.
  4. Fildownload nr. 4 indeholder et totaludtræk med aktuelle data af Lodflade-entiteten som ligger i MAT. Filen der downloades er en ZIP-fil, men ZIP-filen indeholder en GPKG-fil. Filen har generationsnummer 7.
  5. Fildownload nr. 5 indeholder et totaludtræk med aktuelle data af Kommuneinddeling-entiteten som ligger i DAGI. Filen der downloades er en ZIP-fil, men ZIP-filen indeholder en GML-fil. Filen har generationsnummer 42.




Skema for generering af fildownloads


Skemaet i Tabel 3 viser, hvornår der genereres fildownloads for registrene på Datafordeleren. Bemærk at et register kan have frabedt sig, at få genereret fildownloads for bestemte entiteter i deres datamodel og vil således ikke blive genereret efter skemaet.

Register

Type af fildownload

Frekvens for generation

EBR

Totaludtræk

Genereres natten til lørdag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

DAR


Totaludtræk

Genereres natten til lørdag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

BBR

Totaludtræk

Genereres natten til lørdag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

MAT2

Totaludtræk

Genereres natten til søndag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

DAGI

Totaludtræk

Genereres natten til søndag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

GeoDanmark Vektor

Totaludtræk

Genereres natten til søndag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

Danske Stednavne

Totaludtræk

Genereres natten til mandag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

DHM Oprindelse

Totaludtræk

Genereres natten til mandag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

DHM Højdekurver

Totaludtræk

Genereres natten til mandag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

Fikspunkter


Totaludtræk

Genereres natten til mandag mellem kl. 3 og 6

Deltaudtræk

Genereres dagligt

Tabel 4: Oversigt over hvornår fildownloads bliver genereret.
Såfremt der genereres et deltaudtræk, men at der ikke er sket nogle dataændringer siden sidste gang der blev genereret et deltaudtræk for en pågældende entitet, vil deltaudtrækket være tomt. Hvis der genereres et totaludtræk uden at der er sket dataændringer siden sidste gang, det blev genereret, vil det nye totaludtræk i JSON-, GML- eller GPKG-format have et ældre generationsnummer i sit filnavn end den zip-fil den er indeholdt i.
Eksempelvis er det muligt at hente en fil med følgende navn:

  • DAR_1_Adresse_Total_JSON_Bitemporal_10.zip

Her er udtræksnummeret på ZIP-filen 10, men ZIP-filen kan godt indeholde en JSON-fil med følgende navn:

  • DAR_1_Adresse_Total_JSON_Bitemporal_9.json

JSON-filen har et lavere udtræksnummer end ZIP-filen, da der ikke er sket nogen ændringer i data siden sidste totaludtræk blev genereret for Adresse-entiteten. Såfremt der heller ikke sker nogen ændringer i Adresse-entiteten inden næste generering, vil ZIP-filen få udtræksnummer 11, mens den indeholdte JSON-fil stadig vil have udtræksnummer 9.




Sådan hentes fildownloads


Fildownloads på Datafordeleren tilgås via et REST-API. Dette afsnit beskriver, hvordan det vil være muligt at danne et overblik over hvilke fildownloads der kan hentes, samt hvorledes relevante fildownloads herefter hentes. REST-API'et indeholder to metoder som kan kaldes. REST-API'et kræver at man først har oprettet en tjenestebruger med brugernavn og password.

Figuren til højre viser hvordan REST-API'et overordnet set anvendes. Her kaldes metoden "GetAvailableFileDownloads" først for at danne et overblik over mulige filer der er tilgængelige, hvorefter relevante filer hentes, ved at kalde metoden "GetFile".



Metode: GetAvailableFiledownloads

Metode: GetAvailableFiledownloads


URL

https://<env>-api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?

HTTP-metode

GET

Headere i forespørgsel

Content-Type: application/json

Format

JSON

Returværdier

Returnerer HTTP 200 – OK, ved succes.
Returnerer HTTP 400 – Bad Request, ved angivelse af forkerte parametre.
Returnerer HTTP 404 – Not Found, hvis den angivne ressource ikke kan findes.
Returnerer HTTP 500 – Internal Server Error, hvis der er sket en ukendt fejl.

Adgang

Tjenestebruger med brugernavn og password.

Dato- og tidsformat

Datoformat følger ISO 8601Tidszonen er UTC


Parametre

Navn

Type

Beskrivelse

Valgfri?

Register

String

Begrænser responsen til kun at indeholde fildownloads fra det angivne register. Følgende registre kan angives:

  • DAR
  • DAGI
  • BBR
  • DHM
  • MAT (Der refereres her til Matriklen 2)
  • EBR
  • FIKSPUNKT
  • DS (Danske Stednavne)
  • GeoDKV

Ja

Version

String

Begrænser responsen til kun at indeholde fildownloads der er i den angivne version. Parameteret kan kun angives hvis "Register" parameteret er angivet.

Ja

Entity

String

Begrænser responsen til kun at indeholde fildownloads der er af samme type som den angivne entitet. Parameteret kan kun angives hvis "Register" parameteret er angivet.

Ja


Returværdier

Metoden returnerer metadata om fildownloads, der følger strukturen beskrevet i Tabel 4.

Felt

Beskrivelse

Filename

Navnet på filen som kan downloades.

Register

Angiver hvilket register data i filen tilhører.

EntityName

Angiver navnet på registerentiteten som filens data tilhører.

Frequency

Angiver hvornår/hvor ofte der bliver genereret en ny fil af samme type med nyt udtræksnummer.

TypeOfDownload

Angiver om filen er et totaludtræk eller et deltaudtræk.

TypeOfData

Angiver hvilken bitemporal filtrering der er anvendt på data i filen. Denne kan enten være "Bitemporal", "Temporal" eller "Current".

Version

Angiver underlæggende version af filens data.

GenerationNumber

Angiver udtræksnummeret.

PointInTime

Angiver tidspunkt for registrerings- og virkningstid der blev anvendt ved generering af fildownload. Feltet er kun sat hvis der er tale om et Temporalt eller Current fildownload.
Datoformat følger ISO 8601Tidszonen er UTC

GenerationTime

Angiver tidspunktet for hvornår filen blev genereret. Datoformat følger ISO 8601Tidszonen er UTC

ExpirationDate

Angiver hvornår filen ikke længere udstilles på Datafordeleren.
Datoformat følger ISO 8601Tidszonen er UTC

ContainedFileFormat

Angiver hvilket filformat ZIP-filen indeholder.

OutputFileFormat

Angiver filformatet på selve filen som kan downloades.


Eksempler på brug af metoden

Se tilgængelige fildownloads for DAGI:

https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=DAGI&username=username&password=password


Se tilgængelige fildownloads for "Bygning"-entiteten

https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=BBR&Entity=Bygning&username=username&password=password


Se tilgængelige fildownloads i version 1 i EBR:

https://api.datafordeler.dk/FileDownloads/GetAvailableFileDownloads?Register=EBR&Version=1&username=username&password=password




Metode: GetFile

Metode: GetFile


URL

Error! Hyperlink reference not valid.?

http-metode

GET

Headere i forespørgsel

Content-Type: application/json

Format

JSON

Returværdier

Returnerer http 200 – OK, ved succes.
Returnerer HTTP 400 – Bad Request, ved angivelse af forkerte parametre.
Returnerer HTTP 404 – Not Found, hvis den angivne ressource ikke kan findes eller hvis brugeren ikke har adgang til den angivne fil.
Returnerer HTTP 500 – Internal Server Error, hvis der er sket en ukendt fejl.

Adgang

Tjenestebruger med brugernavn og password.

Dato- og tidsformat

Datoformat følger ISO 8601Tidszonen er UTC


Parametre

Navn

Type

Beskrivelse

Valgfri?

Filename

String

Specificerer en specifik fil til download. Dette parameter kan kun angives alene.

Se beskrivelse

Register

String

Specificerer, hvilket register der ønskes download fra. Hvis ikke parametrene 'LatestTotalForEntry' og 'Type' angives, bliver alle registerets totaludtræk downloadet.
Følgende registre kan angives:

  • DAR
  • DAGI
  • BBR
  • DHM
  • MAT (Der refereres her til Matriklen 2)
  • EBR
  • FIKSPUNKT
  • DS (Danske Stednavne)
  • GeoDKV

Se beskrivelse

LatestTotalForEntity

String

Henter det seneste totaludtræk for den specificerede entitet. 'Type' parameteret skal angives, såfremt dette parameter er angivet.

Se beskrivelse

Type

String

Angiver hvilken type fildownload der skal downloades for entiteten. 'LatestTotalForEntity' parameteret skal angives, såfremt dette parameter er angivet.

Se beskrivelse

Format

String

Angiver hvilket filformat der ønskes. Hvis 'LatestTotalForEntity' parameteret er angivet, skal dette parameter også angives.

Se beskrivelse

Version

String

Angiver hvilken version fildownloadet skal være i. Såfremt dette parameter ikke angives, vælges den nyeste version.

Ja


Returværdier

Denne metode returnerer altid en eller flere filer ved HTTP 200 - OK.

Eksempler på brug af metoden

Hent en specifik deltafil fra Danske Stednavne registeret:

https://api.datafordeler.dk/FileDownloads/GetFile?Filename=DS_V1_Vej_DeltaDownload_gml_Bitemporal_2335.zip&username=username&password=password

Kaldet returnerer en enkelt fil i en ZIP-fil.
Hent alle totaludtræk fra BBR i JSON-format:

https://api.datafordeler.dk/FileDownloads/GetFile?Register=BBR&Format=JSON&username=username&password=password

Kaldet returnerer flere filer i en samlet ZIP-fil.
Hent totaludtræk med aktuelle data i GML-format for en bestemt entitet i Fikspunkt-registeret:

https://api.datafordeler.dk/FileDownloads/GetFile?Register=FIKSPUNKT&LatestTotalForEntity=HoejdefikspunktFO&Type=Current&Format=gml&username=username&password=password

Kaldet returnerer en enkelt fil i en ZIP-fil.






Transition fra filudtræk til fildownloads


Dette afsnit beskriver forskelle mellem abonnementsbaserede filudtræk og prædefinerede entitetsbaserede fildownloads, samt hvordan man som anvender af filudtræk, kan komme i gang med at bruge entitetsbaserede fildownloads i stedet for. Det skal bemærkes at filudtræk og fildownloads driftes parallelt i en periode, så anvendere af Datafordeleren har mulighed for at skifte til fildownloads.
Følgende er blevet observeret for filudtræk, som har dannet grundlaget for målene med den Moderniserede Datafordelers fildownloads:

  • Specificeret enkeltvist af registrene i Dataleverancespecifikationen (DLS https://confluence.sdfi.dk/display/DML/DLS-udstilling). Specificeringen er fordelt over potentielt mange dokumenter og er omkostningsfulde og tager lang tid at implementere og vedligeholde på længere sigt.
  • Implementeringen af filudtrækkene sker altid manuelt.
  • Der er fundet uhensigtsmæssige designvalg i filudtræk, som har medført potentielt datatab og inkonsistens i data.

Moderniseringen introducerer fildownloads, som har følgende egenskaber:

  • Det er ikke nødvendigt at oprette abonnement på fildownloads. Filer bliver genereret løbende og ligger klar til download når der er behov for det.
  • Der er fildownloads for alle entiteter i et register, såfremt registeret ikke har fravalgt at de genereres.
  • Fildownloads specificeres ikke længere manuelt i DLS'en, men genereres automatisk ud fra den datamodel som registeret afleverer til Datafordeleren.
  • Datakonsistens er sikret indenfor registrene selv og sikrer referentiel integritet for at modvirke datatab og inkonsistens i data.




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 Figur 5, 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 Figur 5. Det er altså det samme data der udstilles i filerne sammenlagt, men hvor forskellen er at fildownloads hver især indeholder en delmængde af det samlede registers datasæt.

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

Figur 6: Sammenligning af data i filudtræk og fildownloads.
Da fildownloads 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 man som anvender gerne vil vide præcis hvilke felter der eksisterer i fildownloads for en given entitet, skal man konsultere registrenes Dataleverancespecifikation (DLS), der i dens Bilag 3 (navn på det bilag skal stå her) beskriver hvilke felter hvert registers entiteter består af.




Sammenligning mellem nuværende og moderne GML og Geopackage filer

Dette afsnit er under udarbejdelse ifm. Story 537: Functional scenarios 537: Udvidet sammenligning af eksisterende og moderne GML og geopackage filer til inklusion af transitionsguiden.




Geografisk filtrering i fildownloads


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 5. For data, som kan filtreres geografisk, gælder det, at et datapunkt er associeret med:

  • En afledt geografisk identifikator, e.g. kommunekode. Et datapunkt kan filtreres på baggrund af denne kode.
  • En geometri, i.e. en polygon med EPSG referencekode. Polygonen kan sammenlignes med en referencegeometri, e.g. 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 antagelse.

Register

Felt

BBR

Kommunekode

EBR

Kommunekode

MAT

Kommunekode

GeoDanmark Vektor

GeoDanmark kommunepolygon, kommunekode

DAGI

DAGI kommunepolygon

DHM Højdekurver

DAGI kommunepolygon

Tabel 6: Overblik over hvilke geografiske egenskaber der skal filtreres på for forskellige registre.




Eksempel på transition hos en anvender


Dette afsnit 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 beslutte om:

  1. Anvenderen ønsker at etablere en ny datakopi med fildownloads.
  2. 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=username&password=password
  3. Da anvender nu ved, hvilke fildownloads der eksisterer, kalder anvender metoden GetFile, for at hente totaludtræk for alle entiteter i DAR:
    1. https://api.datafordeler.dk/FileDownloads/GetFile?Register=DAR&username=username&password=password
  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. 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.
    1. 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.
  6. Anvender sætter herefter en vedligeholdelse op af sin datakopi. Vedligeholdelsen består i at hente deltaudtræk ind fra DAR, som genereres dagligt. Anvenderen bemærker, at totaludtrækket har udtræksnummer 14, hvilket betyder at anvenderen skal hente deltaudtræk 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=username&password=password
  7. Anvenderen ser at der findes deltaudtræk for samtlige entiteter i DAR med udtræksnumrene 15 og 16. Anvenderen ved derfor, at det vil være nødvendigt at hente alle deltaudtræk 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=username&password=password
  8. Anvenderen holder løbende øje med genereringen af DAR deltaudtræk der genereres hver dag og sørger for at hente disse og indlæse dem i deres lokale datakopi.
  9. Anvenderen har nu sat sit system op til at bruge fildownloads.








Eksempel på anden transition hos anvender

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=username&password=password
  2. Da anvender nu ved hvilke fildownloads der eksisterer, kalder anvender nu metoden GetFile for at hente totaludtræk for alle entiteter i BBR:
    1. https://api.datafordeler.dk/FileDownloads/GetFile?Register=BBR&username=username&password=password
  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 3.3.2. Da anvenderen her ikke er interesseret i registreringshistorikken, skal anvender dog huske at postprocessere deltaudtrækkene 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 2 som får fildownloads i de filformater der står angivet i tabellen.
  7. Skal jeg, som register, foretage mig noget for at få fildownloads på mine data?
    1. Som register kræves det at JSON-filen "Automated_Predefined_Filedownloads.json" er udfyldt korrekt i DLS'en.




Bilag 2 – Overførsel af filudtræk til fildownloads



Hidtil filudtræk

Ny fildownload

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