GeoNames Home | Postal Codes | Download / Webservice | About 

GeoNames Forum
  [Search] Search   [Recent Topics] Recent Topics   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Hierarchie Problem (und Lösung?)  XML
Forum Index -> Forum in Deutsch Go to Page: 1, 2 Next 
Author Message
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Hi,

ich bin gerade auf geonames gestossen und muss sagen - Hut ab! Diese Menge an Daten und vorallem exakten Daten findet man selten!

Ich habe mich bis anhin mit der OpenGeoDB beschäftigt, und bin wirklich froh nun auch Geonames zu kennen!

Ich würde es gerne für mein Projekt verwenden, wofür ich Daten aus DE/AT/CH/FL benötige, und diese scheinen mir bei Geonames zu 95% komplett zu sein.

Eines stört mich jedoch noch und zwar: Die Hierarchie funktioniert teilweise nicht oder nur dürftig. Dies wäre für mich jedoch sehr wichtig.

Als Beispiel:

Delhoven (ID = 2938380), Zons, Hackenbroich sind Ortschaften die zur Stadt Dormagen gehören.

Dormagen wiederrum gehört zum Rhein-Kreis Neuss und dieser zum Regierungsbezirk Düsseldorf und der zur Bundesrepublik Deutschland

Dormagen gibts mit der ID 2935825 und 6557505

jedoch lieferen diese Abfragen keine Ergebnisse:


http://ws.geonames.org/children?geonameId=6557505
http://ws.geonames.org/children?geonameId=2935825


auch andersrum funktionierts nicht

http://ws.geonames.org/hierarchy?geonameId=2938380

hier wird autom. zum Bundesland gesprungen.

Schrittweise kommt man aber z.B. nach Dormagen


Regierungsbezirke NRW: http://ws.geonames.org/children?geonameId=2861876

Landkreise / Kreisstädte im Regierungsbezirk Düsseldorf: http://ws.geonames.org/children?geonameId=2934245

Städte im Kreis Neuss: http://ws.geonames.org/children?geonameId=3247434

Weiter bis nach Delhoven gehts leider nicht:

http://ws.geonames.org/children?geonameId=6557505

Das ist mir eigentlich auch egal, bis zur Stadtebene würde mir schon reichen

Wenns also von oben nach unten geht, sollte es doch auch von unten nach oben gehen oder?

Nun würde mich natürlich interessieren ob das bald implementiert wird oder nicht?

Ich würde sonst gerne bei dieser Aufgabe behilflich sein. Ich habe dieses Problem bei der OpenGeoDB mithilfe von nested sets gelöst.

Meine Mail aus der Mailingliste von OpenGeoDB hab ich angehängt.

Ich danke schonmal viemals für eine Antwort!

Gruss

Simon


 Description Mail in der OpenGeoDB Mailingliste [Disk] Download
 Filesize 9 Kbytes
 Downloaded:  1707 time(s)

[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hallo Simon

Die gegenwärtige Implementierung erlaubt in der Tat nur direkte Baumstrukturen. Deutschland ist dafür leider nicht geeignet. Wir planen dies grundsätzlich zu ändern und auch nicht hierarchische Strukturen zu unterstützen. In Spanien beispielsweise ist die Information zu welcher Insel (Ibiza, etc) ein Ort gehört auch wichtig, obwohl diese Information nicht Teil der administrativen Hierarchie ist (oder zumindest nicht aus der Sicht von Madrid). Das heisst es sollte in Zukunft auch parallele Hierarchien zu einem Ort geben.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Hi,

das ist schade mit der Hierarchie, in der Schweiz scheint es teilweise zu funktionieren.

Ich muss mich mal näher mit der Datenstruktur von Geonames befassen. Mich wundert es nur dass es möglich ist von "Oben (z.B Land)" Schrittweise nach "Unten" (z.b Ort) zu gelangen.

Dann müsste es doch theoretisch auch umgekehrt gehen

Ist dir das Nested Set Modell für hierarchische Datenstrukturen bekannt? Falls nicht, schau es dir mal an

Z.b unter http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

Damit konnte ich die Abfragen für die OpenGeoDB wesentlich verkürzen. Wenn man die Knoten noch mit flags wie "Administrativer Knoten (z.B Bundesland)" oder "Geographischer Knoten (z.B Insel)" verknüpft könnte man auch das Problem sicher lösen


Wie sieht das eigentlich aus bezüglich des Webservice, kann ich mich auf die geonameIDs verlassen und in meiner Datenbank speichern? Z.b. wenn ein Benutzer sein Wohnort auswählt und ich die geonameID speichere, so wäre es fatal wenn die gleiche geonameID eine Woche später auf einen anderen Erdteil verweist *g"

Ich danke dir vielmals für die Menge an Daten!

Gruss

Simon

[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hallo Simon

Das Nested Set Model ist mir bekannt, denoch danke für den Link.

Die GeoNameId ist eine fortlaufende Nummer, die nur einmal vergeben wird und eindeutig ist.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Wie kann man in Österreich die Bezirke auflisten lassen?

Wenn ich nach feature_code = ADMD suche dann kommen auch nicht-bezirke da diese ebenfalls ADMD als feature_code haben

ist es geplant in Österreich auch ADM1,2,3 feature_codes einzuführen?


Gruss

simon
[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hallo Simon

Das ist sicher geplant. Es hat halt einfach noch niemand Zeit gehabt, bzw. es hat sich auf der Prioritätenliste noch nicht hochgearbeitet.
Vielleicht möchtest Du etwas beitragen?

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Klar möchte ich gerne etwas beitragen, da es ja auch in meinem Interesse ist.


Ich würde sofort alle Politischen Bezirke in ganz Österreich richtig kodieren

Jedoch müsstest du mir sagen wie - ich habe gerade ausprobiert den

Politischen Bezirk Hollabrunn (GeoNameId : 2775635) zu korrigieren, das ging aber nicht mit der Meldung:

error while saving:
no changes

Ich wollte "Lower Austria" in "Bundesland Niederösterreich" ändern. Klappte jedoch nicht


Eine alternative wäre auch, dass ich die Datenbank mithilfe der GeoDB korrigiere bzw. vervollständige.

Gruss

simon

[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hallo Simon

Diese Fehlermeldung kommt, wenn man auf speichern klickt ohne was geändert zu haben. 'Lower Austria' und 'Bundesland Niederösterreich' ist ja daselbe. Das eine ist der Englische, das andere der Deutsche Name.

Die Hauptaufgabe ist das Zuordnen der bereits existierenden ADMs zu den officiellen Codes.
Die neusten Daten findest Du hier :
Bezirke :
http://www.statistik.at/web_de/statistiken/regionales/regionale_gliederungen/PolitischeBezirke/index.html
Gemeinden :
http://www.statistik.at/web_de/statistiken/regionales/regionale_gliederungen/Gemeinden/index.html

Viele ADMD in GeoNames sind wahrscheinlich ADM2 oder ADM3 und man muss den FeatureCode korrigieren und die Zurordnung zum korrekten admincode machen. Du kannt mir dazu ein File schicken, da diese Bootstrapping Aufgabe direkt auf der DB gemacht werden muss, es gibt dazu noch kein UI.

Danach müssen die fehlenden in die Datenbank eingefügt werden. Für die Koordinaten können wir einen avg value aus den PLZ dump verwenden. Das geschieht aber automatisch. Du kannst mir ein csv file mit den Daten schicken und ich füge die Daten dann in die DB.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Hi,

habe mir eben ein Skript geschrieben und das ganze geupdated

Ich habe nur die Adminlevels geändert, nicht die Namen.

Wenn du willst kann ich das auch machen.

Die Erfolgsquote war relativ hoch, ich konnte 112 von 122 Datensätze updaten.

Es bleiben also noch 10 übrig die du evtl. neu hinzufügen musst.
Es handelt sich dabei oft um Stadt/Land.

Einen doppelten Datensatz habe ich auch entdeckt:

Code:
 ERROR: Multiple records found for: name = Oberwart, ac1: 1, ac2: 109, ac3: 109
 
 [ 2769621	Politischer Bezirk Oberwart	Politischer Bezirk Oberwart		47.3333333	16.25	A	ADM2	AT		01	109			0	0	407	Europe/Vienna	1994-01-05 ]
 [ 2769622	Politischer Bezirk Oberwart	Politischer Bezirk Oberwart		47.2833333	16.3	A	ADM2	AT		01	109			0	0	324	Europe/Vienna	1994-01-05 ]
 
 SELECT * FROM geonames WHERE country_code = 'AT' AND (feature_code = 'ADMD' OR feature_code = 'ADM2') 
 		AND admin1_code = 1 AND (name LIKE '%Oberwart%' OR alternames LIKE '%Oberwart%')
 


Da müsste einer gelöscht werden!


Bei Wien scheint es einige Stadtbezirke zu geben, diese habe ich als ADM3 eingetragen. Mit admin2_code von Wien.


Bitte beachte, dass die CSV Datei nicht UTF8 formatiert ist, das lag daran dass das Original CSV file auch nicht UTF8 war.

Ich habe folgendes angehängt:

results.csv - die neuen Daten
errors.csv - Datensätze die nicht zugeordnet werden konnten
bez.csv - original daten von der angegebenen Seite

Gruss

Simon
 Description errors.csv [Disk] Download
 Filesize 7 Kbytes
 Downloaded:  1747 time(s)

 Description results.csv [Disk] Download
 Filesize 16 Kbytes
 Downloaded:  1616 time(s)

 Description bez.csv [Disk] Download
 Filesize 4 Kbytes
 Downloaded:  1591 time(s)

[ICQ]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

Wenn du möchtest, kann ich dir auch noch alle Gemeinden samt PLZ einbinden.

Das ist für mich keine grosse Arbeit mehr, da mein Update-Script leicht anzupassen ist

Ich würde dann diese Daten hier verwenden:
http://www.statistik.at/web_de/static/gemeinden_sortiert_nach_gemeindekennziffer_mit_status_und_postleitzahlen_c_022953.csv

Die Gemeindekennziffer scheint wie ein Amtlicher Gemeinde Schlüssel zu sein.

D.h. die ersten 3 Ziffern stehen für den Bezirk. Und über den Bezirk wiederrum komme ich ans Bundesland.

Somit wäre ein korrekte Einteilung möglich. Da es gewisse Ortsnamen bestimmt mehrfach in anderen Bundesländern gibt.


Jedoch scheint Wien ein Sonderfall zu sein Da bräuchte ich dann genauere angaben wie ich das machen soll. D.h wenn der Gemeindecode nicht gleich wie die Gemeindekennziffer ist.


Gruss

Simon
[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hallo Simon

Vielen Dank.
Ein Oberwart habe ich gelöscht und die Bezirke nachgeführt.

Kannst du die fehlenden noch anschauen. Da sind einige bereits vorhanden. Einen ADMD für Wien habe ich als den Bezirk Wien (Stadt) verwendet.
Auch beide Eisenstadt sind als ADMD vorhanden :

http://www.geonames.org/advanced-search.html?q=Eisenstadt&country=AT&featureClass=A&continentCode=&fuzzy=0.6

Wenn wir dann die Bezirke voll haben können wir uns um die Gemeinden kümmern. Die Name in den Statistik Austria Liste werde ich dann als alternate name einfügen.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

hi,

ich werde mich um die fehlenden demfall gleich manuell kümmern.

Warum hast du für Eisenstadt Stadt/Land ADMD verwendet? Sind das keine eigenständige Bezirke?

Weil es scheint so dass Eisenstadt Land/Stadt eigene Gemeinden haben.

Gruss

simon
[ICQ]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

So hier sind noch die restlichen Daten, folgendes ist mir aufgefallen dabei:

- Schreibfehler in "Politischer Bezirk Sankt Veitan der Glan" da muss ein whitespace zwischen "Veit" und "an". ( GID = 2766358 )


- Stadt Waidhofen an der Ybbs hat featureclass 'P' statt 'A'


- Der Polit. Bezirk Wels habe ich als Wels (Land) kodiert, und Wels selber (P, PPL) als Wels (Stadt). Wels Stadt hat also immernoch featureclass P und code PPL.

- Wien 3.,Landstraße und Wien 15.,Rudolfsheim-Fünfhaus sind Gemeindebezirke von Wien und wurden als ADM3 kodiert.

Meine wichtigste Frage ist nun ob z.b die Stadt Wels P/PPL bekommen soll oder A/ADM2


Gruss

Simon


PS: Wäre es nicht sinnvoller die aktuellen namen durch die von der Liste zu ersetzen? Weil das sind ja eigentlich die amtlich "gültigen" Namen.

 Description results2.csv [Disk] Download
 Filesize 1 Kbytes
 Downloaded:  1571 time(s)

[ICQ]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

hi,

was hältst du davon wenn ich die Postleitzahlen für DE/AT richtig kodiere? Momentan scheint es mir so als ob Österreich ein riesen durcheinander wäre. Ich kriege für eine Österreichische PLZ jedesmal ein Dutzend Resultate

Bei den deutschen PLZ würde ich gerne die admin codes richtig setzen - bei der PLZ wird ja der ISO 3166-2 Code verwendet. In der Hauptdatenbank wird jedoch der FIPS code verwendet. Da sollte man sich für einen entscheiden.

Dann würde ich noch die admin2 und admin3 codes einfügen.

Somit wäre es dann problemlos möglich direkt die GeonameID zur PLZ zu finden. Was meiner Meinung nach sehr wichtig ist.

Für Österreich würde ich die PLZ Daten mittels der CSV Datei von Statistik Austria updaten.

Achja, wäre es nicht sinnvoll auch admin4 codes in der PLZ Datenbank zu verwenden? Immerhin gibts die ja auch in der Hauptdatenbank.

Gruss

simon



[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Danke.

Ich habe die neuen Änderungen auch nachgeführt. Jetzt haben wir 98 ADM2 in Österreich :
http://www.geonames.org/search.html?q=adm2&country=AT

Langsam kommen wir der Sache näher. In der Datei von Statistik Austria hat es 122 Bezirke.

Sankt Veit habe ich umbennant, Eisenstadt auf ADM2 gesetzt. Für Wels etc habe ich neue ADM2 Toponyme eingefügt. Das haben wir auch in anderen Ländern schon so gemacht, da die administrative division von der Stadt bei der Suche etc anders behandelt wird.
In diesem Fall kann man durchaus die 'amtlichen' Namen für den Hauptnamen verwenden. Der Hauptname sollte ein international verständlicher Name sein. Für lokale varianten dient der 'alteratename' table.

Das Ziel ist auch die Hauptdatenbank auf ISO zu wechseln, wenn möglich für alle Länder gleichzeitig, was nicht so einfach ist, da in vielen Ländern keine 1:1 Beziehung besteht ....

Für Österreichische PLZ liefert die Österreichische Post, die Daten. Die PLZ in Österreich sind nicht eindeutig, deshalb kriegst du viele Resultate.

Ich denke zuerst sollten wir die Bezirke sauber aufräumen, und dann die Gemeinden.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

hi,

das es 98 sind liegt daran, dass einige (24) als ADM3 kodiert wurden.

98 + 24 = 122

Siehe hier:

http://www.geonames.org/search.html?q=adm3&country=AT

Diese Gemeindebezirke gehören fast alle zu Wien.

Gruss

Simon
[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Danke. Ich hätte nur besser lesen müssen was du geschrieben hast dann wäre es klar gewesen.

Eine Frage habe ich jetzt aber doch noch. Wir haben jetzt 98 ADM2. Auf dieser Seite von Statistik Austria schreiben sie "Das Bundesgebiet gliedert sich in 99 Politische Bezirke und zwar 15 Statutarstädte und 84 Landbezirke. Die Politischen Bezirke stellen die unterste Verwaltungseinheit der staatlichen Verwaltung dar." :
http://www.statistik.at/web_de/statistiken/regionales/regionale_gliederungen/PolitischeBezirke/index.html

Fehlt uns jetzt noch einer?

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

marc wrote:

Fehlt uns jetzt noch einer?
 


Jein Oberwart ist der Bösewicht. Ist zwar drin, aber als ADMD !

Oberwart war ja auch mal doppelt vorhanden. Ich hab dir den korrekten Datensatz angehängt.

Soll ich nun noch die Gemeinden "eingemeinden" ? Denke mal das krieg ich bis morgen Nachmittag hin.

Gruss

Simon
 Description [Disk] Download
 Filesize 134 bytes
 Downloaded:  1524 time(s)

[ICQ]
marc



Joined: 08/12/2005 07:39:47
Messages: 4501
Offline

Hi Simon

Danke. Jetzt haben wir alle vollständig. Wäre fantasisch wenn du auch noch die Gemeinden machen könntest.

Gruss

Marc

[WWW]
simon



Joined: 27/12/2007 05:12:01
Messages: 21
Location: Zurich
Offline

marc wrote:
Hi Simon

Danke. Jetzt haben wir alle vollständig. Wäre fantasisch wenn du auch noch die Gemeinden machen könntest.

Gruss

Marc 


Kein Problem ist ne Sache von einigen Minuten wenn ich mein Skript übers CSV file laufen lasse. Sofern alles gefunden wird

Habe da jedoch noch einige Fragen und zwar:

1. Es gibt noch viele ADMDs (ca. 304) die sind meist auch im Gemeinde CSV File drin. Soll ich die auf ADM3 setzen?

2. Sollen die restlichen Gemeinden als PPL oder als ADM3 kodiert werden? Wenn eine Gemeinde noch zusätzlich Ortschaften hat, wärs doch ADM3 oder?

4. Es sind ca. 14'000 PPLs in der DB, im CSV jedoch nur ca. 2200, sind die restlichen demfall Ortschaften? Bzw. unselbständige Gemeinden?

5. Soll ich noch was mit den Postleitzahlen machen?

Wenn das geklärt ist, leg ich los


Achja, wenn die Gemeinden alle drin sind, kann ich auch noch die Ortschaften mitreinpacken, dann wär AT zu 99% komplett!

(http://www.statistik.at/web_de/statistiken/regionales/regionale_gliederungen/Ortschaften/index.html)

900kb CSV File das wird heftig


Gruss

Simon



[ICQ]
 
Forum Index -> Forum in Deutsch Go to Page: 1, 2 Next 
Go to:   
Powered by JForum 2.1.5 © JForum Team