[opengeodb] README - Teil 1+2 (von min. 6)

Peter Wendorff wendorff at uni-paderborn.de
Sam Mar 22 10:49:46 CET 2008


Hallo zurück.
Das sieht doch schonmal vielversprechend aus.
Ein paar kleine Anmerkungen schreibe ich mal dazu, deshalb der lange 
Kommentar:

Martin Trautmann schrieb:
> Jetzt gewinne ich den Eindruck, diese README wird mehr und mehr zu einem 
> Handbuch - und da halte ich für besser, diese Erklärungen in das wiki 
> auszulagern. Einerseits ist es dort besser strukturierbar, andererseits 
> kann dort von jemden korrigiert und ergänzt werden.
>
> Was würdet ihr empfehlen?
>   
Ich würde vorschlagen, das ganze zweigleisig laufen zu lassen: Das 
readme zu den Download-Daten zu legen, darin aber ganz deutlich darauf 
hinzuweisen, dass die opengeodb ständiger Weiterentwicklung unterliegt, 
und das ganze im wiki aktuell zu halten.
Also: Mit einer Änderung der Struktur immer auch das wiki zu 
aktualisieren, bei größeren Inkompatiblitäten dann auch das readme zum 
runterladen.
Hier nochmal der Hinweis auf Versionsnummern, auf die man sich dann 
eindeutig beziehen sollte.
> +++
>
> README-Datei für Opengeodb
>
> Diese Datei erläutert, welche Dateien im Verzeichnis
> http://fa-technik.adfc.de/code/opengeodb/
> vorhanden sind und gibt einen kurzen Überblick über die Verwendung.
>
> Gliederung:
>
> 1. Verzeichnis-Übersicht
> 2. Dateninhalt
> 2. Kurzbeschreibung zur Erstellung der Datenbank
> 3. Erläuterungen zum Datenbank-Schema
> 4. weiterführende Beispiele
> 5. Verwendung der Opengeodb für eine Umkreissuche
>
>
>
> ################################
> ### 1. Verzeichnis-Übersicht ###
> ################################
>
> Die Dateien in diesem Verzeichnis enthalten die Basis-Daten der OpenGeoDB.
> Diese liegen in zwei verschiedenen Formaten vor:
>
>   - als Textdateien
>     Diese enthalten die reinen Informationen, eine Zeile pro Datensatz.
>     Die einzelnen Felder sind durch Tabulatoren getrennt, die Feldnamen
>     stehen in der ersten Zeile. Aktuell werden die Daten in diesen Dateien
>     gepflegt.
>
>     Es sind folgende Dateien vorhanden:
>
>       AT.tab      Daten für Österreich
>       BE.tab      Daten für Belgien
>       CH.tab      Daten für die Schweiz
>       DE.tab      Daten für Deutschland
>       LI.tab      Daten für Liechtenstein
>   
Hier würde ich vielleicht "Basis-Daten für ~" schreiben, damit das 
eindeutig zu den Sätzen vorher passt.
>       PLZ.tab     Diese Datei enhält eine Liste der Postleitzahlen
>                   mit den dazugehörigen Geokoordinaten und Ortsnamen
>
>       DE9.tab     Experimentelle Straßendaten abgeleitet aus der
>                   OpenStreetMap. Diese Daten stehen unter der
>                   CC-BY-SA-Lizenz
>   
Ein Link zum Lizenztext wäre hier ganz sinnvoll (wenn ich das richtig 
sehe, müsste dieser Link passen: 
http://creativecommons.org/licenses/by-nc-sa/2.0/de/legalcode - 
zusätzlich angeben würde ich zur einfacheren Verständlichkeit: 
http://creativecommons.org/licenses/by-nc-sa/2.0/de/ )
>   - als SQL-Dump
>     alle Dateien haben die Endung .sql und sind für MySQL erstellt. Falls
>     eine andere SQL-basierte Datenbank zum Einsatz kommen soll, dürfte sich
>     der Portierungs-Aufwand in Grenzen halten.
>
>     Diese Daten entstehen durch Konvertierung der Dateien von .tab nach .sql
>
>
>
> ################################
> ### 2. Dateninhalt           ###
> ################################
>
> Seit der ersten Einrichtung der OpenGeoDB ist die Datenbank in 
> verschiedene Richtungen gewachsen. Der Umfang der Daten, wie auch 
> Genauigkeit und Qualität allgemein werden fotlaufend verbessert. Es 
> können jederzeit neue Länder hinzugefügt werden. Auch die angebotenen 
> Daten wurden immer wieder ergänzt.
>
> Derzeit enthalten die .tab-Dateien eine Auswahl sogenannter Basisdaten, 
> die ergänzt werden durch Extradaten, die nur im Einzelfall verfügbar 
> sind. Zu diesen Extradaten gehören beispielsweise Sprachversionen oder 
> versionierte Daten mit eingeschränkter Gültigkeit.
>
> Für SQL werden die einzelnen Datentypen durch Kenn-Nummern markiert 
> (data_types)
>
> Folgende Daten werden insgesamt unterstützt:
>
> .tab       .sql         Beschreibung
> ########## Basisdaten ######################################################
> locid      loc-id       Location ID (Primärschlüssel)
> ags        500600000    Amtlicher Gemeindeschlüssel
> ascii      500100002	Sortiername
>   
Hier sollte dazugeschrieben werden, dass eben auch nur Zeichen des 
ASCII-Zeichensatzes verwendet werden, mit der Konsequenz für Umlaute und 
weitere Sonderzeichen.
> name	   500100000	Name
>             200100000	WGS84 Koordinaten
>   
Link zur Bedeutung von WGS84 sinnvoll?
> lat	       200200000	Breitengrad (latitude)
> lon	       200300000	Längengrad (longitude)
> amt        500700000	Verwaltungszusammenschluss
>             500700001	Sortiername eines Verwaltungszusammenschlusses
> plz	       500300000	Postleitzahl
> vorwahl    500400000	Telefonvorwahl
>   
was ist mit der führenden 0? ist die dabei oder nicht?
> einwohner  600700000	Einwohnerzahl
>             650700001	Ungefähre Einwohnerzahl
>             650700002	Genaue Einwohnerzahl
> flaeche	   610000000	Fläche
> kz         500500000	KFZ-Kennzeichen	
>   
kann man sich darauf verlassen, dass KFZ-Kennzeichen in Großbuchstaben 
geschrieben sind?
> typ        400300000	Typ	
>   
Genauere Erläuterung, was Typ hier heißt: Für eine Locid spezifisch die 
lokale Bezeichnung der Ebene bzw. des Hierarchie-Typs: z.B. Bundesland 
vs. Kanton

Dabei, weil ich gerade bei mir überprüft habe, was da drinsteht:
Ich habe die folgende SQL-Abfrage abgeschickt:

SELECT DISTINCT text_val
FROM `opengeodb`.`geodb_textdata`
WHERE `text_type` LIKE '%400300000%'

und bekomme unter anderem fünf verschiedene Werte für text_val, die ich 
irgendwie nicht einordnen kann:
100600000
100500000
100400000
100300000
100200000

Was bedeuten die wiederum? ein zusätzlicher Verweis auf einen 
Hierarchie-Typen wäre doch hier definitiv nicht sinnvoll, oder habe ich 
da was übersehen?
> level      400200000	Ebene	
> of	       400100000	Teil von
> invalid                 Markierung als ungültig
>   
Wie wird diese Markierung vorgenommen? 0/1? timestamp? boolscher Wert?...
> ########## Hierarchie-Typen ################################################
>             100100000	Erdteil
>             100200000	Staat/Land
>             100300000	Bundesland
>             100400000	Regierungsbezirk
>             100500000	Landkreis
>             100600000	Politische Gliederung
>             100700000	Ortschaft
>             100800000	Postleitzahlgebiet
>             100900000	Ortsteil
> ########## Datums-Typen ####################################################
>             300100000	Auf einen Tag genaues Datum
>             300200000	Auf ein Monat genaues Datum
>             300300000	Auf ein Jahr genaues Datum
>             300400000	Auf 10 Jahre genaues Datum
>             300500000	Unbekanntes Datum in der Zukunft
>   
NULL ist die Angabe, dass ein Datum vollkommen unbekannt ist - das 
sollte mit angegeben werden.
> ########## Höhenangaben ####################################################
>             600800000	Höhenangabe in Metern
>             650800001	Maximale Höhe
>             650800002	Minimale Höhe
>             650800003	Durchschnittliche Höhe
>             650800004	Höhe am Referenzpunkt mit der angegebenen loc_id
>             650800005	'Höhe an der angegebenen Koordinate'
> ########## sonstiges #######################################################
>             500100001	ISO 3166 Alpha-2
>             500100003	ISO_3166_2
>   
Auch hier würde ich einen Link zu entsprechenden Angaben hinzufügen, z.B.
http://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste
>             500100004	Region eines Postleitzahlgebietes
>             500800000	Quelle
>   
eindeutiger: Quelle der Daten - Quelle ist gerade bei Geodaten sonst 
schnell der Ursprung eines Flusses ;)
> [..]
> Weitere Erklärungen zu einzelnen Datentypen:
> * 100*00000 Hierarchie-Ebenen
>   
Dies sind generellere Informationen als die oben einzeln aufgelisteten, 
insofern sind sie an dieser Stelle unsinnig. Ich würde das irgendwie 
weiter hochschieben oder weglassen (wer aufmerksam liest, kann sich das 
auch ohne dieser Information denken).
> Alle opengeodb-Einträge können durch die Zuordnung über den Typ 
> 400100000 Teil von in Hierarchien zugeordnet werden.
>   
...in Hierarchien eingeordnet werden.
Ein Beispiel wäre hier noch sinnvoll.
> Durch die Ergänzung mit 400200000	Ebene lässt sich sicherstellen, dass 
> benachbarte Zweige gleich strukturiert bleiben. So gibt es neben 
> Kontinent (Ebene 1) und Staat (2) in Deutschland die Ebenen Bundesland 
> (3), Regierungzbezirk (4), Kreis (5), Gemeinde (6) usw. Nicht in jedem 
> Bundesland ist jede dieser Ebenen vorhanden. In den Hierarchien werden 
> solche Ebenen daher übersprungen.
>   
Regierungsbezirk: Tippfehler! Zwischen 400200000 und Ebene sollte ein 
Leerzeichen stehen, kein Tab (Ebene evtl. in Klammern).
> Die SQL-Hierarchien geodb_hierarchies sind redundant, können die 
> Datenbankabfragen aber erheblich beschleunigen. Da bisher keine 
> SQL-Routine existiert, die diese rekursive Berechnung erledigt, werden 
> sie ebenfalls aus den Basisdaten abgeleitet und als dump bereitgestellt 
> (XXhier.sql)
>   
Anmerkung dazu an Martin, um Verwirrung in naher Zukunft zu vermeiden: 
nimm die leere Tabelle weg aus den veröffentlichten Paketen, damit 
niemand aus Versehen oder Dummheit auf der leeren Tabelle arbeitet und 
sich wundert, wieso nichts funktioniert. Dann ist keine Tabelle 
vermutlich besser.
> * 100100000	Erdteil
>
> Aktiv gefüllt wird bisher nur der Kontinent Europa
>   
...da bisher nur europäische Staaten in der opengeodb berücksichtigt sind.
> * 100200000 Staat
>
> Verfügbar sind bisher die Länder Deutschland (DE), Österreich (AT), 
> Schweiz (CH) usw.
>   
Angaben zur Vollständigkeit? was soll das "usw."?
> * 100300000 Bundesland
>
> Deutschland hat 16 Bundesländer. Österreich hat 9 Bundesländer. Dem 
> entsprechen die 26 Schweizer Kantone.
>
> * 100400000	Regierungsbezirk
>
> Regierungsbezirke gibt es in den deutschen Bundesländern 
> Nordrhein-Westfalen, Baden-Württemberg und Bayern. In anderen 
> Bundesländern wie Niedersachsen (2004) und Sachsen-Anhalt (2007) wurden 
> diese aufgelöst. In Stadtstaaten wie Hamburg gab es diese nie.
>
> * 100500000	Kreis
>
> In Deutschland gibt es sowohl Landkreise als auch kreisfreie Städte. In 
> Österreich und der Schweiz werden auf dieser Ebene die Bezirke geführt.
>
> * 100600000	Gemeinde
>
> Die deutsche Hierarchisierung strukturiert jede politische Gliederung 
> bis zur Gemeinde-Ebene. Es gibt daher einen Stadtstaat wie Hamburg 
> sowohl als Bundesland Hamburg, als kreisfreie Stadt Hamburg (Kennzeichen 
> HH) und auch als Gemeinde. Notfalls werden hier Dummy-Einträge 
> eingeführt, die den Kreis als Gemeindestruktur wiederholen.
>   
Inwiefern sind dies Dummy-Einträge, bzw. inwiefern sind diese Einträge 
tatsächlich auch Gemeinden im offiziellen Sinne?
> Auch in Österreich und der Schweiz gibt es Gemeinde-Strukturen.
>
> * 100700000	Ortschaft
>
> Während viele Gemeinden praktisch nicht von einem Ort unterschieden 
> werden können, gibt es künstliche Gemeindestrukturen, die den 
> Zusammenschluss mehrerer Orte bilden. Während hier auf Gemeindeebene die 
> Koordinaten der Gemeindefläche oder teils auch die Koordinaten der 
> Gemeinde-Verwwaltung genutzt werden können. bietet die Ortschaft die 
> Koordinaten der entsprechenden, meist geschlossenen Ortsfläche.
>   
Tippfehler bei Verwaltung.
Beispiel wäre sinnvoll.
> * 100800000	Postleitzahlgebiet
>
> Achtung: ein Postleitzahlgebiet ist nur im Ausnahmefall eine Teilmenge 
> eines Ortes. Postleitzahlen folgen den unternehmerischen Interessen der 
> Post und sind oftmals völlig losgelöst von der politischen Struktuierung 
> der opengeodb.
>
> Großsstädte können viele verschiedene Postleitzahlen umfassen. Kleinere 
> Ortschaften und Gemeinden können sich die gleiche Postleitzahl teilen. 
> opengeodb wurde daher um PLZ-Gebiete erweitert, die für jede einzelne 
> PLZ eine repräsentative Koordinate, wie auch einen repräsentativen 
> Ortsnamen angeben.
>
> * 100900000	Ortsteil
>
> Ortsteile sind Unterstrukturen von Ortschaften und Gemeinden. Die genaue 
> Zuordnung folgt hier keinen regelmäßigen und bundesweit einheitlichen 
> Strukturen. Die Unterscheidung von Ort und Ortsteil, von Stadtviertel, 
> Stadtbezirk, Stadtquartier, Stadtteil, von Einzelwohnplatz, Siedlung, 
> Weiler usw. ist hier nach geeigneten Kriterien vor Ort festzulegen.
>
> Es können hier also auf gleicher Ebene kleinere Strukturen als Teil von 
> übergeordneten Strukturen aufgenommen werden. Nach unten werden diese 
> Strukturen ergänzt durch Straßen und Einzelkoordinaten wie Hausnummern. 
> Tipp: Ortsteile sind noch flächig, Straßen eher linienförmig, 
> Einzelkoordianten punktförmig.
>
>
> [...]
>
>
> * 500600000    Amtlicher Gemeindeschlüssel
>
> Der Amtliche Gemeindeschlüssel wird in Deutschland vom Statistischen 
> Landesamt vergeben. Er wird für verschiedene Verwaltungsaufgaben 
> verwendet. [...]
>
> ########################################################
> ### 3. Kurzbeschreibung zur Erstellung der Datenbank ###
> ########################################################
>
>
>