unterschiedliche Datenatribute (tags) bei OpenStreetMap

tarifa

Lieutenant
Registriert
März 2020
Beiträge
549
hallo Community


habe mehrere Datensätze - abgeleitet vom living atlas AT ESRI vgl. Living Atlas of the World | ArcGIS
Also es liegen insges. veschiedene Datensets zum Thema Hospitals: und Krankenhäuser vor und zwar von

-Kanada
-Usa
-Deutschland

Kanada - Hospitals:
https://www.arcgis.com/home/item.html?id=bf1249f3c9a64bcc809a6912c19c966d

US-Hospitals ;map: Hospitals
data: https://www.arcgis.com/home/item.html?id=53b8031b906e43c4a4dbcf2250022ca0

Deutsche Krankenhäuser (hospital):

Anm: Die datasets haben alle sehr uhnterschiedliche (Anzahlen an) Attributen.
das wundert mich etwas: vgl,. auch hierzu: Living Atlas of the World | ArcGIS

canada
https://www.arcgis.com/home/item.html?id=bf1249f3c9a64bcc809a6912c19c966d
The Open Database of Healthcare Facilities (ODHF) is a collection of open data containing the names, types, and locations of health facilities across Canada. It is released under the Open Government License - Canada. The ODHF compiles open, publicly available, and directly-provided data on health facilities across Canada. Data sources include regional health authorities, provincial, territorial and municipal governments, and public health and professional healthcare bodies. This database aims to provide enhanced access to a harmonized listing of health facilities across Canada by making them available as open data. This database is a component of the Linkable Open Data Environment (LODE).

Data sources and methodology The inputs for the ODHF are datasets whose sources include regional health authorities, provincial, territorial and municipal governments, and public health and professional healthcare bodies. These datasets were available either under one of the various types of open data licences, e.g., in an open government portal, or as publicly available data. In certain cases, data were obtained directly from administrative sources. Details of the sources used are available in the ODHF metadata.

The data sources used do not deploy a uniform classification system. The ODHF harmonizes facility type by assigning one of three types to each health facility. This was done based on the facility type provided in the source data as well as using other research carried out for the purpose. The facility types used in the ODHF are: ambulatory health care services, hospitals, and nursing and residential care facilities. However, alternative medicine (e.g., herbalists) and specialist areas (e.g., chiropractors, dentists, mental health specialists, etc.) are not in scope for the current ODHF version (version 1.0).

The ODHF does not assert having exhaustive coverage and may not contain all facilities in scope for the current version. While efforts have been made to minimize these, facility type classification and geolocation errors are also possible. While all data are released on the same date, the dates as of which data are current depends on the update dates of the sources used.

A subset of geo-coordinates available in the source data were validated using the internet and updated as needed. When latitude and longitude were not available, geocoding was performed for some sources using address data in the source. Some coordinates were also removed from the original sources when it was determined they were derive from postal codes or other aggregate geographic areas as opposed to street address Deduplication was done to remove duplicates for cases where sources overlapped in coverage.

This first version of the database (version 1.0) contains approximately 9,000 records. Data were collected by accessing sources between November 2019 and Marc 2020.

The variables included in the ODHF are as follows:

  • Index
  • Facility Name
  • Source Facility Type
  • ODHF Facility Type
  • Provider
  • Unit
  • Street Number
  • Street Name
  • Postal Code
  • City
  • Province or Territory
  • Source-Format Street Address
  • Census Subdivision Name
  • Census Subdivision Unique Identifier
  • Province or Territory Unique Identifier
  • Latitude
  • Longitude
This is a republishing of the data that is freely available from Statistics Canada at the Open Database of Healthcare Facilities. Records that did not have a latitude and longitude value (about 1,500) were geocoded using the Esri World Geocoder. For more information on this data set please review the Statistics Canada metadata document.

-Canada 1
-Canada 2
-USA
-Deutschland

Code:
    +------------------------------+------------------------------+------------------------+----------------------------------------------+--------------------------------+
    | Canada 1 (ca 10000 recprds)  | Canada 2 (ca 10000 recprds)  | US  (ca.4400 records)  |                                              | Deutschland (ca. 2800 records) |
    +------------------------------+------------------------------+------------------------+----------------------------------------------+--------------------------------+
    |                              |                              |                        | example                                      |                                |
    | index                        | Address_1                    | FID                    |                                              | OBJECTID                       |
    | Name                         | City                         | OBJECTID               |                                              | Name                           |
    | provider                     | County_Nam                   | Provider_N             |                                              | Einrichtung                    |
    | ODHF facility type           | Emergency_                   | State_1                |                                              | Gesundheitsattribut            |
    | unit                         | FID                          | County_Nam             |                                              | Gesundheitsattribut            |
    | Street                       | Hospital_O                   | Hospital_T             | Acute Care  / Critical Access                | Spezialrichtung                |
    | CSDname                      | Hospital_T                   | Hospital_O             | Proprietary  / Voluntary non-profit – Church | Betreiber                      |
    | Prov                         | Name_new                     | Emergency_             |                                              | Betreibertyp                   |
    | postal code                  | OBJECTID                     | ZipCode                |                                              | Telefon                        |
    | CSDuid                       | PhoneNum                     | PhoneNum               |                                              | Website                        |
    | Pruid                        | Provider_N                   | Address_1              |                                              | email                          |
    | latitude                     | State_1                      | City                   |                                              | Fas                            |
    | longitude                    | ZipCode                      | Name_new               | Howard Memorial Hospital                     | Adresse                        |
    |                              |                              |                        |                                              | Adresse voll                   |
    |                              |                              |                        |                                              | Straße                         |
    |                              |                              |                        |                                              | Hausnummer                     |
    |                              |                              |                        |                                              | Postleitzahl                   |
    |                              |                              |                        |                                              | Stadt                          |
    |                              |                              |                        |                                              | Hausname                       |
    |                              |                              |                        |                                              | Stadtteil                      |
    |                              |                              |                        |                                              | Unterbezirk                    |
    |                              |                              |                        |                                              | Bezirk                         |
    |                              |                              |                        |                                              | Provinz                        |
    |                              |                              |                        |                                              | Bundesland                     |
    |                              |                              |                        |                                              | Konfession                     |
    |                              |                              |                        |                                              | Religion                       |
    |                              |                              |                        |                                              | Notaufnahme                    |
    |                              |                              |                        |                                              | Räume                          |
    |                              |                              |                        |                                              | Betten                         |
    |                              |                              |                        |                                              | Kapazität                      |
    |                              |                              |                        |                                              | Rollstuhlgerecht               |
    |                              |                              |                        |                                              | wikidata                       |
    |                              |                              |                        |                                              | wikipedia                      |
    |                              |                              |                        |                                              | ORIG_FID                       |
    |                              |                              |                        |                                              | GlobalID                       |
    +------------------------------+------------------------------+------------------------+----------------------------------------------+--------------------------------+

Die Frage ist: warum ist das so: warum haben wir hier die unterschiedlichen tags und attribute?
....also wenn man jetzt mal canada genauer ansieht : dann haben wir hier die description and the methodology:
https://www.arcgis.com/home/item.html?id=bf1249f3c9a64bcc809a6912c19c966d

The Open Database of Healthcare Facilities (ODHF) is a collection of open data containing the names, types, and locations of health facilities across Canada. It is released under the Open Government License - Canada.

The ODHF compiles open, publicly available, and directly-provided data on health facilities across Canada. Data sources include regional health authorities, provincial, territorial and municipal governments, and public health and professional healthcare bodies. This database aims to provide enhanced access to a harmonized listing of health facilities across Canada by making them available as open data. This database is a component of the Linkable Open Data Environment (LODE).

Data sources and methodology
The inputs for the ODHF are datasets whose sources include regional health authorities, provincial, territorial and municipal governments, and public health and professional healthcare bodies. These datasets were available either under one of the various types of open data licences, e.g., in an open government portal, or as publicly available data. In certain cases, data were obtained directly from administrative sources. Details of the sources used are available in the ODHF metadata.

mit der folgenden Beschreibung der Attribute

A subset of geo-coordinates available in the source data were validated using the internet and updated as needed. When latitude and longitude were not available, geocoding was performed for some sources using address data in the source. Some coordinates were also removed from the original sources when it was determined they were derived from postal codes or other aggregate geographic areas as opposed to street address.

Deduplication was done to remove duplicates for cases where sources overlapped in coverage.

This first version of the database (version 1.0) contains approximately 9,000 records. Data were collected by accessing sources between November 2019 and March 2020.

The variables included in the ODHF are as follows:

-Index
-Facility Name
-Source Facility Type
-ODHF Facility Type
-Provider
-Unit
-Street Number
-Street Name
-Postal Code
-City
-Province or Territory
-Source-Format Street Address
-Census Subdivision Name
-Census Subdivision Unique Identifier
-Province or Territory Unique Identifier
-Latitude
-Longitude

For more information on how the addresses and variables were compiled, see the metadata that accompanies the ODHF.
This is a republishing of the data that is freely available from Statistics Canada at The Open Database of Healthcare Facilities.


und wenn man dann das dataset der 9900 records ansieht: https://www.arcgis.com/home/item.html?id=bf1249f3c9a64bcc809a6912c19c966d#data

dann erkennt man einen Unterschied alleine im canadischen-dataset.

und wenn man das dataset und das set der attribute des deutschen Abzugs (mit 2900 Records) vergleicht, dann sieht man hier eine große Differenz: Beim dt. Datenset gibt es viel viel mehr Datenattribute ( vgl: Krankenhäuser bzw. Krankenhaus (hospital) OpenStreetMap Stand 17.03.2020 ).

-OBJECTID
-Name
-Einrichtung
-Gesundheitsattribut
-Gesundheitsattribut
-Spezialrichtung
-Betreiber
-Betreibertyp
-Telefon
-Website
-email
-Fas
-Adresse
-Straße
-Hausnummer
-Postleitzahl
-Stadt
-Hausname
-Stadtteil
-Unterbezirk
-Bezirk
-Provinz
-Bundesland
-Konfession
-Religion
-Notaufnahme
-Räume
-Betten
-Kapazität
-Rollstuhlgerecht
-wikidata
-wikipedia
-ORIG_FID
-GlobalID

Frage: was würdet ihr denn unternehmen wenn ihr - ein Template bauen wollt welches für unterschiedliche Datensätze passend ist - bzw. diese aufnimmt? Wie also vorgehen wenn veschiedene Datensets zum Thema Hospitals: und Krankenhäuser vorliegen und man ein Template braucht - welches gewissermaßen alle Datensätze aufnehmen soll - dann sollten ein paar Attribute und Tags wohl rausfallen - wie würdet ihr denn hier vorgehem - wenn ihr ein Template baut für die Datensätze von
  • USA
  • Kanada
  • Deutschland
  • Spanien
  • Brasilien
  • Italien
  • etc. etx.


Was sollte reinkommen & was sollte ggf draußenbleiben?
 
Zuletzt bearbeitet:

hallo floq0r

Danke für die Antwort.

Ich werde das Gefühl nicht los, dass dein Anliegen darin besteht deinen Beschäftigungsbereich hier breit zu treten.


Mal im Ernst: Gibt es hier denn so etwas wie Schaulaufen mit einer Frage!?

Also - ich hatte hier auch schon OSM-Fragen behandelt Und durchaus Antworten erhalten.

Es ist eine weitgehend typische Mapping-Frage.

https://wiki.openstreetmap.org/wiki/DE:Tag:amenity=hospital
https://wiki.openstreetmap.org/wiki/DE:Key:healthcare

sic: - wie Mappen !?


aber davon ab: klar gibt es Foren die sich hier noch stärker mit dem Thema osm beschäftigen als die CB

etwa https://forum.openstreetmap.org/


vg
 
So wie ich deine Frage verstanden habe möchtest du wissen welche Tags du aus den verschiedenen Datensätzen übernehmen "sollst" um die Datenbasis zu homogenisieren. Was ist daran technisch? Wer soll dir hier beantworten welche Tags repräsentativ für eine Gesundheitseinrichtung sind und welche nicht?

Technische Antworten wären:
  • Nimm die kleineste gemeinsame Menge
  • Nimm alle Tags die du kriegen kannst (non-relational DBMS)
  • Nimm alle Tags die du kriegen kannst und setze sie leer/NULL wo sie nicht verfügbar sind (relational DBMS)

Aber auf diese Ideen wirst du ja selbst gekommen sein, also was willst du wissen?
 
  • Gefällt mir
Reaktionen: tarifa
hallo @floq0r

Danke für die Antwort und die Ideen - die sind in der Tat nicht unwesentlich.
Neben dem techn. Ansatz ist die Methodenfrage mir am Anfang auch noch wichtig gewesen - Methodisch wär die Frage: wie läuft das Mappen im Ansatz - gibt es Daten-Attribut-Sets, oder Teile - die ggf. obligatorisch sind und noch mit aufgenommen werden.

Aber - diese method. Fragen kann man ja auch mal hintanstellen - Für das Harmonisieren der Daten kann man den Ansatz von Dir durchaus heranziehen.

v.a.. C.

Nimm alle Tags die du kriegen kannst und setze sie leer/NULL wo sie nicht verfügbar sind (relational DBMS)

VG Tarifa
 
Ok, dann stehst du also noch am Anfang. Beispiel: Ich verwende Overpass für die Abfrage von POI aller Art. Da hierbei aufgrund der Unterschiede zwischen den POIs keine Homogenisierung möglich ist speichere ich den POI mit seinen Koordinaten in einen Table (poiID, lat, lng). Die Attribute speichere ich in einen extra Table (poiID, attr_name, attr_val).
Damit habe ich die Daten relational abgebildet, kann sie aber nach Bedarf auch nonrelational abfragen und aus dem Backend als JSON ins Frontend übergeben. Ich kann auch die Attribut-Werte (attr_val) unabhängig vom Feldnamen durchsuchen. Mit den passenden Indizes funktioniert das performant und problemlos.
 
  • Gefällt mir
Reaktionen: tarifa
Moin floq0r,

vielen Dank für dein Beispiel:

.... ok, dann stehst du also noch am Anfang. Beispiel:
Ich verwende Overpass für die Abfrage von POI aller Art. Da hierbei aufgrund der Unterschiede zwischen den POIs keine Homogenisierung möglich ist speichere ich
  • den POI mit seinen Koordinaten in einen Table (poiID, lat, lng).
  • Die Attribute speichere ich in einen extra Table (poiID, attr_name, attr_val).

Damit habe ich die Daten relational abgebildet, kann sie aber nach Bedarf auch nonrelational abfragen und aus dem Backend als JSON ins Frontend übergeben. Ich kann auch die Attribut-Werte (attr_val) unabhängig vom Feldnamen durchsuchen. Mit den passenden Indizes funktioniert das performant und problemlos.

....also wenn ich 2 Datensätze habe.... - hier zum Beispiel bezogen auf "Schulen"

einmal die Schule mit lon, lat

Code:
@id        @type    lon:, lat:
268915924    node,
name   max müller Schule

bzw - man kann das auch so umsezten:

....
Code:
{
  "version": 0.6,
  "generator": "Overpass API 0.7.56.6 474850e8",
  "osm3s": {
    "timestamp_osm_base": "2020-10-15T13:56:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "node",
  "id": 268915924,
  "lat": 53.5955976,
  "lon": 9.9249389,
  "tags": {
    "amenity": "school",
    "name": "
name   max müller Schule
"
  }
},
{
  "type": "node",
  "id": 268915924   
  "lat": 53.6874870,
  "lon": 9.6838098,
  "tags": {
    "amenity": "school",
    "name": "Birkenallee-Schule"
  }
},
{
  "type": "node",
  "id": 268980540,
  "lat": 53.6927053,
  "lon": 9.9905466,
  "tags": {
     "amenity": "school",
    "name": "Gemeinschaftsschule Ossenmoorpark mit Außenstelle am Aurikelstieg",
   }
},
{

Das obenstehende wäre der erste Datensatz:

Und wenn ich dann .....dann darüber hinaus einen Datensatz mit folgenden Attributen:

Code:
Name
Schul_ID
Schulform
Adresse
Ort
Bezirk
Stadtteil
Telefon
FAX
Rechtsform
Internet
E-mail
is_rebbz
FID

- dann kann ich mit diesen beiden Datensätzen gut arbeiten. Denn so habe ich dann mit der von dir angeführten Methode die Daten relational abgebildet,
Und darüber hinaus kann ich nach Bedarf auch nonrelational abfragen: Und ja: ich kann auch die Daten aus dem Backend als JSON auslesen und dann damit arbeiten.
Die DB kann ich dann auch nach Attribut-Werte (attr_val) unabhängig vom Feldnamen durchsuchen.
 
Zuletzt bearbeitet:
hallo und guten Abend floq0r


vielen Dank für Deine Rückmeldung - ich bin im Moment noch am Experimentieren - aber auch durch Deine Anregungen bin ich schon weitergekommen. Danke!

floq0r schrieb:
Ok cool, das heißt es funktioniert alles für dich oder gibt es noch Unklarheiten?

...da ich für ein kl. Projekt beides brauch - eine Karte und (!) dazugehörige Daten: hier ist natürlich klar, dass ich die Daten erstmal lokal sammeln - und dann eine Auswahl davon geht ins Frontend (wie du sagst). Die Umsetzung würde ich m.E. am besten mit einem osm-plugin eine wordpress-plugin:

- in einer DB - wollte ich eine Möglichkeit schaffen beides zu generieren. Eine einfache Abfrage

diese Abfrage liefert die Map

Code:
[timeout:600];
area["ISO3166-1"="BR"]->.brazil;
area["ISO3166-1"="AR"]->.argentina;
area["ISO3166-1"="VE"]->.venezuela;
area["ISO3166-1"="PE"]->.peru;
area["ISO3166-1"="CL"]->.chile;

/* more areas..*/

(
  nwr[amenity=hospital](area.brazil);
  nwr[amenity=hospital](area.argentina);
  nwr[amenity=hospital](area.venezuela);
  nwr[amenity=hospital](area.peru);
  nwr[amenity=hospital](area.chile);
  /* other queries... */
);
out center;

und ....diese Abfrage liefert die Daten...:

Code:
[out:csv(::id,::type,::lon, ::lat, "name","addr:postcode","addr:city","addr:street","addr:housenumber","contact:website"," contact:email=*")][timeout:600];
area["ISO3166-1"="BR"]->.brazil;
area["ISO3166-1"="AR"]->.argentina;
area["ISO3166-1"="VE"]->.venezuela;
area["ISO3166-1"="PE"]->.peru;
area["ISO3166-1"="CL"]->.chile;
/* more areas..*/

(
  nwr[amenity=hospital](area.brazil);
  nwr[amenity=hospital](area.argentina);
  nwr[amenity=hospital](area.venezuela);
  nwr[amenity=hospital](area.peru);
  nwr[amenity=hospital](area.chile);
  /* other queries... */
);
out center;

...das so zusammenbauen bzw. abfragen, dass man Map und Daten hat:

....hier gibt es grundsätzlich zwei Möglichkeiten:
1. zwei getrennte Abfragen zu machen (wie oben aufgeführt);
2. bei der "Kartenabfrage" die Daten als xml oder GeoJson exportieren und dann in CSV konvertieren

wenn ich die Daten dann lokal habe: dann denke ich, dass ich jeden Fall würd ich ein Blockdiagramm und ein Sequenzdiagramm erstellen: Wichtig ist hier die Frage: Welche Datenquellen gibt es und wie stehen die Prioritäten zueinander? ich könnte regelmäßig (zB einmal pro Monat) die Daten von einer öffentlichen Quelle (ArcGIS) in eine private (WP-DB) überführen.

Interessant hierbei:
Wie funktioniert der Sync?
Was, wenn es einen Eintrag z.B. nicht mehr gibt, wird dieser dann auch aus meiner privaten DB gelöscht?
Was wenn er geändert wurde - gibt es eine eindeutige ID zu jedem Eintrag?

zum praktischen Umsetzen:
Grundsätzlich denke ich, dass ich die Views von den Daten trennen sollte.
  • d.h. es gibt die Daten und die Views auf die Daten.
  • das kann einmal in einer OpenStreetMap Karte sein und ein anderes Mal eine Tabelle.

Auslesen aus der WP-DB ist grundsätzlich natürlich auch für die OpenStreetMap möglich, für verortete Beiträge gäbe es etwa hier ein Beispiel mit mehr als 1.000 POIs die aus der DB beim Aufbau der Seite ausgelesen werden:

http://www.fotomobil.at/openstreetmap

meine beabsichtigte Anwendung hat am Anfang eigentlich nur ein paar Demo-Themen: ich denke, dass ich hierzu auf ein WordPress-Plugin sezte: das mit OSM zusammenarbeitet: ... hier ein paar Beispiele:

a. https://wordpress.org/plugins/search/openstreetmap/
b. https://wordpress.org/plugins/search/openstreetmap/page/2/

Also für den Einstieg denke ich dass ein Modifzieren des WP-OSM-Plugin die beste -Idee ist. Da kommt natürlich viel mit, das ich am Anfang nicht benötige. Alternativ könnte ich auch auf eine eigene Entwicklung setzen (mit OpenLayers oder Leaflet). Dann - also in diesem Falle; In diesem Falle wär das dann - (bleiben wir bei WordPress) sozusagen ein leeres WP Plugin; ich könnte ein Skelett nehmen und dort meine Anwendung "reinhängen".

hier noch ein paar Plugin-'Ideen: mit Links

Leaflet Maps Maker
https://wordpress.org/plugins/leaflet-maps-marker/

AcuGIS Leaflet Plugin
https://www.acugis.com/leaflet-map-plugin/

Embed OSM
https://wordpress.org/plugins/embed-osm/


OSM - ein weitere Plugin:
https://wordpress.org/plugins/osm/
META: Version:5.5 Last updated:4 weeks ago Active installations:10,000+ WordPress Version:3.0 or higher Tested up to:5.5.1 PHP Version:5.3 or higher
Details: Development Description :: Add a map with marker in less than 100 sec:
If you want to get detailed information about the OSM-plugin visit these pages:

Homepage: WP-OSM-Plugin
Features: OSM-plugin:
  • OpenStreetMap, HOT, OpenSeaMap, OpenTopoMap, BaseMap (AT), Stamen, WMS in posts/pages
  • Integration in post / page / widget
  • HTML Popup Marker
  • GPX and KML (incl. upload in Mediathek)
  • Map with geo-tagged posts/pages as linked marker
  • Map with autogenerated track by geo-tagged posts / pages
  • html-meta tags for geo-tagged posts/pages
  • uses OpenLayers Library
  • SSL connection (https)


nochmals, floq0r

wie schon oben festgestellt,.....für das kl. Projekt brauch ich eigentlich beides: - eine Karte und (!) dazugehörige Daten: hier ist natürlich klar, dass ich die Daten erstmal lokal sammeln - und dann eine Auswahl davon geht ins Frontend (wie du sagst). Die Umsetzung würde ich m.E. am besten mit einem osm-plugin eine wordpress-plugin:

Der erste Schritt allerdings ist es, die Daten mal lokal zu organsieren; - in einer DB - wollte ich eine Möglichkeit schaffen alles zu generieren.
 
Zuletzt bearbeitet:
Die Daten kannst du über die Overpass API abfragen: https://wiki.openstreetmap.org/wiki/Overpass_API
Ich würde sie lokal speichern (jeder Datensatz hat eine eindeutige ID) und den Timestamp mitführen, an dem der Datensatz zum letzten mal aktualisiert wurde. Wenn der Timestamp kleiner ist als der letzte Durchlauf dann weißt du, dass der Datensatz nicht mehr existiert und kannst ihn bei dir entweder aufheben und nicht mehr selektieren oder löschen.
Die Map würde ich über ein WebGIS Plugin betreiben (ich empfehle Leaflet), dann die Daten von Overpass aus deiner DB laden und gesondert als Marker auf der Map einbinden.
 
  • Gefällt mir
Reaktionen: tarifa
Zurück
Oben