Import/Catalogue/Denmark Import

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page discusses (semi-)automated imports in Denmark

Goal

The goal is to improve the data quality of OSM in Denmark by importing government data. This data is available at https://datafordeler.dk/.

Possible imports:

  • Building data. The Danish BBR registry has information about buildings, their shape, materials and outline.
  • Building events. Construction, demolition and restauration
  • Company registration. Data from the business registry (CVR/VAT) can be used to e.g. alarm when a restaurant has closed permanently
  • Food safety. Tools for inspecting and importing FVST/smiley registrations semi-automatically has been developed by Niels Elgaard, use it at: https://digitalfrihed.dk/restaurants/all.html
  • Addresses. The autoAWS bot is already running today importing and updating address locations from the official registry Danmarks Adresser (DAR).

User names and bots

For semi-automated small scale import, where the user manually verifies each tag, editing is done under the username of the user responsible. For large-scale imports, a specific user ID will be created for each bot. For comments and feedback, please contact the user that made the specific upload.

Current state

Apart from the autoAWS bot, the project is in early alpha. All edits are verified manually. First focus is on import from the BBR registry.

Specific Tags

In order to create a permanent link between OSM and the Datafordeler, Datafordeler ID s can be imported and added as country-specific tags.

  • BBR:Husnummer: GUID which indicates a house. One house can have multiple buildings (e.g. carport).
  • BBR:Bygningsnummer: Small integer indicating the building number on the house.
  • CVR: CVR is the Danish central business registry on Wikipedia. You might see the tag in the wild, but it is currently not part of any Bot.
  • ref:DK:cvr=*: CVR number as used by the FVST/smiley project (prefixing a country specific domain).
  • ref:DK:cvr:pnummer=*: CVR production unit number as used by the FVST/smiley project.

Note that some of the above tagging suggestions uses keys containing upper case characters, this is not common. To highlight this, the below table provides an overview of the actual usage count of these in both upper and lower case. This shows a discrepancy between the documentation here and the reality of the OSM database.

Usage statistics of the above suggestions as of 2023-10-03
Key Taginfo count Taginfo link Wiki doc.
BBR:Husnummer 16 https://taginfo.openstreetmap.org/keys/BBR:Husnummer BBR:Husnummer=*
bbr:husnummer 20569 https://taginfo.openstreetmap.org/keys/bbr:husnummer bbr:husnummer=*
BBR:Bygningsnummer 0 https://taginfo.openstreetmap.org/keys/BBR:Bygningsnummer BBR:Bygningsnummer=*
bbr:bygningsnummer 0 https://taginfo.openstreetmap.org/keys/bbr:bygningsnummer bbr:bygningsnummer=*
CVR 0 https://taginfo.openstreetmap.org/keys/CVR CVR=*:
cvr 58 https://taginfo.openstreetmap.org/keys/cvr cvr=*:
ref:DK:cvr 34325 https://taginfo.openstreetmap.org/keys/ref:DK:cvr ref:DK:cvr=*
ref:DK:cvr:pnummer 31626 https://taginfo.openstreetmap.org/keys/ref:DK:cvr:pnummer ref:DK:cvr:pnummer=*

Variable mappings

This is how BBR variables are currently mapped to their OSM equivalents:

"Bygning anvændelse" to "Building=XXX"

 Select Case Anvændelse
           Case = BygningAnvendelse.Stuehus_til_landbrugsejendom
               Return "farm"
           Case = BygningAnvendelse.Fritliggende_enfamiliehus
               Return "detached"
           Case = BygningAnvendelse.Sammenbygget_enfamiliehus
               Return "terrace"
           Case = BygningAnvendelse.Fritliggende_enfamiliehus_i_tæt
               Return "terrace"
           Case = BygningAnvendelse.Række_kæde_eller_dobbelthus
               Return "terrace"
           Case = BygningAnvendelse.Række_kæde_og_klyngehus
               Return "terrace"
           Case = BygningAnvendelse.Dobbelthus
               Return "semidetached_house"
           Case = BygningAnvendelse.Etagebolig
               Return "apartments"
           Case = BygningAnvendelse.Kollegium
               Return "college"
           Case = BygningAnvendelse.Boligbygning_til_døgninstitution
               Return "apartments"
           Case = BygningAnvendelse.Anneks_i_tilknytning_til_helårsbolig
               Return "shed"
           Case = BygningAnvendelse.Anden_bygning_til_helårsbeboelse
               Return "residential"
           Case = BygningAnvendelse.Bygning_til_erhvervsmæssig_produktion_vedrørende_landbrug_gartneri_råstofudvinding
               Return "farm_auxiliary"
           Case = BygningAnvendelse.Stald_til_svin, BygningAnvendelse.Stald_til_kvæg_får_mv, BygningAnvendelse.Stald_til_fjerkræ, BygningAnvendelse.Minkhal
               Return "barn"
           Case = BygningAnvendelse.Væksthus
               Return "greenhouse"
           Case = BygningAnvendelse.Lade_til_foder_afgrøder
               Return "barn"
           Case = BygningAnvendelse.Maskinhus_garage
               Return "barn"
           Case = BygningAnvendelse.Lade_til_halm_hø
               Return "barn"
           Case = BygningAnvendelse.Anden_bygning_til_landbrug
               Return "farm_auxiliary"
           Case = BygningAnvendelse.Bygning_til_erhvervsmæssig_produktion_vedrørende_industri_håndværk = 220
               Return "industrial"
           Case = BygningAnvendelse.Bygning_til_industri_med_integreret_produktionsapparat, BygningAnvendelse.Bygning_til_industri_uden_integreret_produktionsapparat
               Return "industrial"
           Case = BygningAnvendelse.Værksted
               Return "industrial"
           Case = BygningAnvendelse.Anden_bygning_til_produktion
               Return "industrial"
           Case = BygningAnvendelse.El_gas_vand_eller_varmeværk_forbrændingsanstalt
               Return "industrial"
           Case = BygningAnvendelse.Bygning_til_energiproduktion
               Return "industrial"
           Case = BygningAnvendelse.Bygning_til_forsyning_og_energidistribution
               Return "service"
           Case = BygningAnvendelse.Bygning_til_vandforsyning
               Return "service"
           Case = BygningAnvendelse.Bygning_til_håndtering_af_affald_og_spildevand
               Return "service"
           Case = BygningAnvendelse.Anden_bygning_til_energiproduktion_og_
               Return "industrial"
           Case = BygningAnvendelse.Anden_bygning_til_landbrug_industri_etc
               Return "industrial"
           Case = BygningAnvendelse.Transport_og_garageanlæg
               Return "transportation"
           Case = BygningAnvendelse.Bygning_til_jernbane_og_busdrift
               Return "transportation"
           Case = BygningAnvendelse.Bygning_til_luftfart
               Return "transportation"
           Case = BygningAnvendelse.Bygning_til_parkering_og_transportanlæg
               Return "transportation"
           Case = BygningAnvendelse.Bygning_til_parkering_af_flere_end_to_køretøjer_i_tilknytning_til_boliger
               Return "parking"
           Case = BygningAnvendelse.Havneanlæg
               Return "transportation"
           Case = BygningAnvendelse.Andet_transportanlæg
               Return "transportation"
           Case = BygningAnvendelse.Bygning_til_kontor_handel_lager_herunder_offentlig_administration
               Return "commercial"
           Case = BygningAnvendelse.Bygning_til_kontor
               Return "office"
           Case = BygningAnvendelse.Bygning_til_detailhandel
               Return "retail"
           Case = BygningAnvendelse.Bygning_til_lager
               Return "warehouse"
           Case = BygningAnvendelse.Butikscenter
               Return "supermarket"
           Case = BygningAnvendelse.Tankstation
               Return "commercial"
           Case = BygningAnvendelse.Anden_bygning_til_kontor_handel_og_lager
               Return "commercial"
           Case = BygningAnvendelse.Bygning_til_hotel_restaurant_vaskeri_frisør_og_anden_servicevirksomhed
               Return "commercial"
           Case = BygningAnvendelse.Hotel_kro_eller_konferencecenter_med_overnatning
               Return "hotel"
           Case = BygningAnvendelse.Bed_and_breakfast
               Return "hotel"
           Case = BygningAnvendelse.Restaurant_café_og_konferencecenter_uden_overnatning
               Return "commercial"
           Case = BygningAnvendelse.Privat_servicevirksomhed_som_frisør_vaskeri_netcafé
               Return "commercial"
           Case = BygningAnvendelse.Anden_bygning_til_serviceerhverv
               Return "commercial"
           Case = BygningAnvendelse.Anden_bygning_til_transport_handel_etc
               Return "commercial"
           Case = BygningAnvendelse.Bygning_til_biograf_teater_erhvervsmæssig_udstilling_bibliotek_museum_kirke
               Return "civic"
           Case = BygningAnvendelse.Biograf_teater_koncertsted
               Return "civic"
           Case = BygningAnvendelse.Museum
               Return "civic"
           Case = BygningAnvendelse.Bibliotek
               Return "civic"
           Case = BygningAnvendelse.Kirke_eller_anden_bygning_til_trosudøvelse
               Return "religious"
           Case = BygningAnvendelse.Forsamlingshus
               Return "public"
           Case = BygningAnvendelse.Forlystelsespark
               Return "commercial"
           Case = BygningAnvendelse.Anden_bygning_til_kulturelle_formål
               Return "civic"
           Case = BygningAnvendelse.Bygning_til_undervisning_og_forskning
               Return "yes"
           Case = BygningAnvendelse.Grundskole
               Return "school"
           Case = BygningAnvendelse.Universitet
               Return "university"
           Case = BygningAnvendelse.Anden_bygning_til_undervisning_og_forskning
               Return "yes"
           Case = BygningAnvendelse.Bygning_til_hospital_sygehjem_fødeklinik
               Return "hospital"
           Case = BygningAnvendelse.Hospital_og_sygehus
               Return "hospital"
           Case = BygningAnvendelse.Hospice_behandlingshjem
               Return "hospital"
           Case = BygningAnvendelse.Sundhedscenter_lægehus_fødeklinik
               Return "hospital"
           Case = BygningAnvendelse.Anden_bygning_til_sundhedsformål
               Return "hospital"
           Case = BygningAnvendelse.Bygning_til_daginstitution
               Return "yes"
           Case = BygningAnvendelse.Daginstitution
               Return "kindergarten"
           Case = BygningAnvendelse.Servicefunktion_på_døgninstitution
               Return "yes"
           Case = BygningAnvendelse.Kaserne
               Return "military"
           Case = BygningAnvendelse.Fængsel_arresthus
               Return "government"
           Case = BygningAnvendelse.Anden_bygning_til_institutionsformål
               Return "yes"
           Case = BygningAnvendelse.Bygning_til_anden_institution_herunder_kaserne_fængsel
               Return "yes"
           Case = BygningAnvendelse.Sommerhus
               Return "bungalow"
           Case = BygningAnvendelse.Bygning_til_feriekoloni_vandrehjem_bortset_fra_sommerhus
               Return "yes"
           Case = BygningAnvendelse.Feriecenter_center_til_campingplads
               Return "yes"
           Case = BygningAnvendelse.Bygning_med_ferielejligheder_til_erhvervsmæssig_udlejning
               Return "yes"
           Case = BygningAnvendelse.Bygning_med_ferielejligheder_til_eget_brug
               Return "yes"
           Case = BygningAnvendelse.Anden_bygning_til_ferieformål
               Return "yes"
           Case = BygningAnvendelse.Bygning_i_forbindelse_med_idrætsudøvelse
               Return "sports_hall"
           Case = BygningAnvendelse.Klubhus_i_forbindelse_med_fritid_og_idræt
               Return "yes"
           Case = BygningAnvendelse.Svømmehal
               Return "sports_hall"
           Case = BygningAnvendelse.Idrætshal
               Return "sports_hall"
           Case = BygningAnvendelse.Tribune_i_forbindelse_med_stadion
               Return "yes"
           Case = BygningAnvendelse.Bygning_til_træning_og_opstaldning_af_heste
               Return "riding_hall"
           Case = BygningAnvendelse.Anden_bygning_til_idrætformål
               Return "yes"
           Case = BygningAnvendelse.Kolonihavehus
               Return "bungalow"
           Case = BygningAnvendelse.Anneks_i_tilknytning_til_fritids_og_sommerhus
               Return "shed"
           Case = BygningAnvendelse.Anden_bygning_til_fritidsformål
               Return "yes"
           Case = BygningAnvendelse.Garage_med_plads_til_et_eller_to_køretøjer
               Return "garage"
           Case = BygningAnvendelse.Carport
               Return "carport"
           Case = BygningAnvendelse.Udhus
               Return "greenhouse"
           Case = BygningAnvendelse.Drivhus
               Return "greenhouse"
           Case = BygningAnvendelse.Fritliggende_overdækning
               Return "roof"
           Case = BygningAnvendelse.Fritliggende_udestue
               Return "yes"
           Case = BygningAnvendelse.Tiloversbleven_landbrugsbygning
               Return "yes"
           Case = BygningAnvendelse.Faldefærdig_bygning
               Return "ruins"
           Case = BygningAnvendelse.Ukendt_bygning
               Return "yes"
           Case Else
               Return "yes"

conversion of Tagdækningsmateriale to OSM roofMaterial

           Case = Tagdækningsmateriale.TagpapMedLilleHældning, Tagdækningsmateriale.TagpapMedStorHældning
               Return "tar_paper"
           Case = Tagdækningsmateriale.FibercementHerunderAsbest, Tagdækningsmateriale.FibercementUdenAsbest
               Return "eternit"
           Case = Tagdækningsmateriale.Tegl
               Return "roof_tiles"
           Case = Tagdækningsmateriale.Betontagsten
               Return "roof_tiles"
           Case = Tagdækningsmateriale.Metal
               Return "metal_sheet"
           Case = Tagdækningsmateriale.Stråtag
               Return "thatch"
           Case = Tagdækningsmateriale.Glas
               Return "glass"
           Case = Tagdækningsmateriale.LevendeTage
               Return "grass"
           Case = Tagdækningsmateriale.Plastmaterialer
               Return "plastic"
           Case Else
               Return String.Empty