Zeit für eine neue Hausnummerauswertung?

Hallo,

(es folgt die Kopie meines Blogbeitrags [1] vom 21.12.)

"
Die heutige Hausnummerauswertung auf regio-osm.de stößt an ihre Grenzen und dies aus mehreren Gründen:

  • die verfügbaren Hausnummerlisten sind enorm angestiegen. In Europa gibt es für mehrere Länder komplette Listen, so z.B. für Polen, Tschechien, Niederlande, Belgien (Flandern-Teil), Dänemark …
  • die Art der Auswertung stößt an ihre Grenzen: es wird eine osm2pgsql-DB eingesetzt. Der Rechenaufwand zur aktuell Haltung der DB ist hoch und die DB-Struktur ist nicht optimal zur Auswertung geeignet.
  • Ein OSM-ler hat Interesse bekundet, Rechenleistung bereitzustellen. Die derzeitige Softwarearchitektur ist nicht gut geeignet dafür. Die Software ist aktuell auch eher aufwändig auf einen anderen Server zu portieren, z.B. damit die Community eines anderen Landes mit einer Hausnummerliste eigenständig Auswertungen durchführen kann.
  • Die Auswertungssoftware ist derzeitig in einem privaten Github Repository gelagert. Einige OSM-ler sind interessiert an der Programmierung, der Code ist aber nicht objektorientiert genug und besteht aus vielen, undokumentierten Teilprogrammen.
  • Die aktuelle, zentrale Lösung auf regio-osm.de verhindert die Auswertung neuer Listen oder die vorhandenen Auswertungen müssen seltener ausgeführt werden, was die OSM-Mapper eher demotivieren wird.

Daraus folgen aus meiner Sicht diese Anforderungen an eine neue Version der Auswertung:

  • die Auswertung sollte mit möglichst geringem Softwareaufwand machbar sein, also möglichst ohne lokale OSM-DB. Zu prüfen wäre u.a. die Eignung der live Overpass-Api Abfrage.
  • Auswertungen sollten parallel auf verschiedenen Servern laufen können, also interessierte OSM-ler sollten einfach Rechenleistung bereitstellen können.
  • die Ergebnisse der Auswertungen sollten optional zentral (aber ggfs. auf mehreren Servern) gesammelt werden. So könnten je Land Auswertungen gerechnet werden, diese aber in der Anzeige und ggfs. länderübergreifenden Ergebnisauswertung auf einigen oder allen Server bereitgestellt werden.
  • Die Ergänzung von Auswertungsservern sollte einfach möglich sein, allerdings ist sicherzustellen, wer den jeweiligen Server betreibt und das die Hausnummerlisten ggfs. im OSM-Umfeld bleiben (z.B. über PGP-Schlüssel und OSM-Accountidentifizierung).
  • Die Kommunikation der Server untereinander soll über eine API-Schnittstelle erfolgen.
  • Die Auswertungssoftware soll in einem öffentlichen Github Repository gehalten werden.
  • Die Softwareentwicklung sollte möglichst in einem Team erstellt werden.

Potential der neuen Auswertung

Die neue Version soll es lokalen Communities ermöglichen, in ihren Ländern oder Regionen eigenständige Auswertungen durchzuführen. Wenn die Ergebnisse aber Serverübergreifend verfügbar sind, ist eine OSM Gesamtauswertung und -darstellung möglich.

Wer als Einzelperson oder kleine Gruppe mit der Auswertung seiner Gebiete nicht zufrieden ist und das technische Potential hat, kann seine Gebiete so oft auswerten wie gewünscht. Diese Auswertungen wären wieder allgemein verfügbar.

Durch die mögliche Zusammenarbeit der bisherigen Entwickler sowie weitere neue Mitstreiter wäre ein größeres Potential vorhanden und die Abhängigkeit von Einzelnen geringer bzw. deren Wegfall nicht das Ende der Auswertungen.
Weg zur neuen Version

Ich habe mir noch keine Gedanken gemacht, wie die neue Version angegangen werden kann, aber ich hoffe, das schon in der Planungsphase mehrere Personen beteiligt sind.

Die aktuelle Version der Hausnummerauswertung bleibt selbstverständlich erhalten, bis die neue Version fertig gestellt ist.

Bitte diskutiert schonmal hier im Kommentarbereich zu diesem Blog,
"

Bitte hier in diesem Forumthread diskutieren, wie wir uns eine neue Version vorstellen.

viele Grüße

Dietmar aka okilimu

[1] http://www.openstreetmap.org/user/okilimu/diary/28270

Hallo,

ein Nachtrag: couchmapper hat mir eine passende Overpass-Query erstellt, vielen Dank dafür!


[timeout:3600][maxsize:1073741824]
[out:xml];

// Test: Relation: Augsburg (62407) -
area(3600062407)->.boundaryarea;


// union aus:
(
  // Nodes mit addr:housenumber
  node(area.boundaryarea)["addr:housenumber"];
  // Ways mit addr:housenumber, aufgelöst mit Knoten
  way(area.boundaryarea)["addr:housenumber"];>;
  // Rels mit addr:housenumber, aufgelöst nach Way + Knoten
  rel(area.boundaryarea)["addr:housenumber"];>>;
  // und noch associatedStreet-rels mit allem was dran hängt
  rel(area.boundaryarea)["type"="associatedStreet"];>>;
);
// Ergebnis ausgeben samt metadaten
out meta;

Die Query bringt alle OSM-Objekte (nodes, ways und relationen) mit addr:housenumber zurück.
Es kommen auch alle Mitglieder von einer Adressrelation (associatedStreet) zurück. Die Mitglieder können ggfs. auch außerhalb des Polygons liegen, das muss beachtet werden.

In der Query habe ich die Augsburg Stadtgebietsrelation angegeben. Es kann jede Relation in OSM genommen werden und deren Relations-Ids ist um 3600000000 zu addieren.

Ich werde jetzt die Query bei mir testweise einbauen, um zu sehen, wie die Overpass- und die Auswertezeiten sind.

viele Grüße

Dietmar

Das klingt alles total interessant. Ob die Overpassapi der richtige Weg ist, vermag ich nicht zu sagen. Aber vielleicht ließe sich auch mit einem PBF ein abgleich machen. Dort werden dann zwar die relationen schwieriger auszuwerten, aber so belastet man keine weiteren Server.

Mal eine Lernfrage am Rande.

Was ist der Vorteil von

area(3602420744)->.boundaryarea;

gegenüber

{{geocodeArea:Lüneburg}}->.boundaryarea;

Aus Usabiliygründen würde ich die zweite Variante wählen (dann muss man nicht die ID der Relation raussuchen). Mir ist aber nicht bewusst, ob das die DB mehr (oder weniger) belastet.

Gruß

Swen

Das klingt nach einer guten Idee. Solche Hausnummernlisten gibt es auch für Estland, die könnte man im Zuge dieses Projektes vielleicht ebenfalls integrieren. Derzeit läuft die Auswertung über Svimiks Projektseite.

Aus Erfahrung mit der TMC-Auswertung sowie mit der Public-Transport-Auswertung für Estland kann ich sagen, dass die Overpass-Query relativ lange brauchen kann, wenn man größere Gebiete auf einmal auswerten will. Hausnummern hat man natürlich wesentlich mehr als TMC-Punkte, von daher hat man dort also noch größere Datenmengen. Aber wenn man es auf Landkreise oder vielleicht noch besser Gemeindeverbände / Samtgemeinden o.ä. zerlegt, sollte das machbar sein.

{{geocodeArea:Lüneburg}} ist nur syntaktischer Zucker von overpass turbo, sprich Overpass API kann direkt damit nicht wirklich was anfangen.

Nachdem overpass turbo das allerdings umgesetzt hat, kommt auch wieder area(3602420744) raus, d.h. kein Unterschied von der Laufzeit her.

Edit: Dietmar meinte, dass ihm bereits die Relations-Ids vorliegen, also entfällt die Suche über Name (was der Regelfall wäre).

Hallo,

@viw: mehrfache inputwege wären natürlich sinnvoll. Ich habe kleine Erfahrungen gemacht mit der osmosis API für Java. Damit können u.a. PBF und OSM-Files gelesen werden. Die Relationen dürften auch damit erstellbar sein, werden aber vorauss. einiges an Aufwand bedeuten. Dieser Input wäre natürlich für landesweite Auswertungen zumindest der Overpass vorzuziehen.

@MHohmann: ich habe mit dem Website-Betreiber Kontakt aufgenommen und den Link zur Hausnummerliste erhalten, vielen Dank für den Tipp!
Aktuell sammle ich, für welche europäischen Länder landesweite Listen (bevorzugt Hausnummerliste, aber auch Straßenlisten bei Bedarf) verfügbar sind. Wer noch welche weiß, her damit :wink:

viele Grüße Dietmar

Naja osmosis ist quasi das allumfassende Instrument in OSM. Aber vielleicht sind für regelmäßige Auswertungen spezialprogramme besser. OSMFilter und OSMConvert. Damit ließen sich sehr schnell für Europa die Adressen an Wegen und Punkten ausfiltern und gegen eine Datenbank vergleichen. So wäre mein Ansatz gewesen. Dazu könnte man dann vielleicht noch mit einer Overpassapiabfrage die restlichen Relationen holen (wenn es nicht zu viele sind) und dann wäre das denke ich schnell erledigt.

Hallo zusammen,

ich hatte mir mal eine einfache Abfrage für ein paar Städte im Bergichen gemacht um für mich zu sehen wie die Städte sich entwickeln.

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“Gebäude in Wuppertal”
*/
[out:json][timeout:1000];
// fetch area “Wuppertal” to search in
{{geocodeArea:Wuppertal}}->.searchArea;
// gather results
(
  // query part for: “"Gebäude"”
  way["addr:housenumber"](area.searchArea);

);
// print results
out body;
>;
out skel qt;

Nun habe ich das Beispiel mal auf Wuppertal angewendet und da sah ich 2 Äste die in andere Städte reinragen.
Oben nach Neviges und links richtung Mettmann
Ist das ein Mappingfehler?

[timeout:3600][maxsize:1073741824]
[out:xml];

// Test: Relation: Wuppertal (62478) -
area(3600062478)->.boundaryarea;


// union aus:
(
  // Nodes mit addr:housenumber
  node(area.boundaryarea)["addr:housenumber"];
  // Ways mit addr:housenumber, aufgelöst mit Knoten
  way(area.boundaryarea)["addr:housenumber"];>;
  // Rels mit addr:housenumber, aufgelöst nach Way + Knoten
  rel(area.boundaryarea)["addr:housenumber"];>>;
  // und noch associatedStreet-rels mit allem was dran hängt
  rel(area.boundaryarea)["type"="associatedStreet"];>>;
);
// Ergebnis ausgeben samt metadaten
out meta;

Gruß und guten Übergang
Michael

Moin,

für Hamburg gibt es - meiner Meinung nach öffentliche - Daten hier zu finden:

http://suche.transparenz.hamburg.de/dataset/alkis-adressen-hamburg

Gruss,
Stefan

P.S. Dietmar, Du hast eine PN von mir.

Hallo Stefan,

Die Hausnummerauswertung für die Hamburger Adressliste findest Du bei [1].

Deine PM habe ich eben erhalten, ich antworte Dir in Kürze direkt.

vielen Dank und Grüße

Dietmar

[1] http://regio-osm.de/hausnummerauswertung/auswertung_auswahldetails?land=Bundesrepublik%20Deutschland&stadt=Hamburg

Die Hausnummernauswertung zeigt weiterhin nur die Daten vom 15.12. ausgewertet am 20.12. Ist die alte Hausnummernauswertung deaktiviert?

Dietmar hat vor 18h gewittert, da er seine Auswertungen “morgen” wieder loslaufen lassen möchte.

https://twitter.com/regio_osm/status/552587786206068739

Dietmar: Ist das ein Problem das mit Hardware “erschlagen” werden kann ? Dann sollten wir mal einen Projektantrag formulieren ?

Hallo TheFive,

nein, ich bin selbst schuld.

Beim DB-Aufbau Ende November hatte ich das Importgebiet zu stark vergrößert. Ich hatte etliche, landesweite Hausnummerlisten und wollte die früher oder später nebenbei auswerten.

Der DB-Aufbau Ende Dezember mit reduziertem Gebiet war eigentlich ok, ich hatte danach ein neues Modul geschrieben, das die singulären Hausnummern und die über associatedStreet Relation in der lokalen DB manipulieren sollte. Das habe ich aber nicht genug getestet und es hatte alle DB-Connections zugemüllt und dadurch verursachte ein Diff-Import DB-Strukturfehler, die nicht beseitigt werden konnten.

Seit gestern (Mittwoch) früh laufen die Auswertungen wieder normal und in dem üblichen Rhythmus.

Ich verfahre jetzt erstmal konservativ auf dem Server. Nur die monatliche theoretische Auswertung wird neben den normalen Auswertungen noch laufen, weitere Auswertungen und “Optimierungen” lasse ich erstmal sein, damit die Auswertungen wieder mal zuverlässig laufen.

Parallel bin ich an der neuen Auswertung dran und mache da auch Fortschritte. Wenn da was zeigbares/nutzbares fertig ist, melde ich es. Der Code wird auf github in einem öffentlichen Repo bereitgestellt und andere Programmierer gerne mitmachen. Die offiziellen Hausnummerlisten werde ich in einem privaten Repo bereitstellen, dadurch können Interessierte auch gänzlich unabhängig eigene Auswertungen erstellen, wer will.

Sorry für die derzeitig unzuverlässige Auswertungsbereitstellung,

viele Grüße

Dietmar

Hi Dietmar,

Wir sind ein Freizeitprojekt, wenn da ein von einer Person getragener Dienst ausfältält, ist das vielleicht ärgerlich, aber kein Beinbruch.

Es freut mich aber zu hören das Du das Problem anpacken und lösen konntest, ich vermute mal das das die eine oder andere Nacht gekostet hat.

Christoph

Gestern sind in Berlin zwei neue Datensätze aufgetaucht:
Straßen und Plätze:
http://daten.berlin.de/datensaetze/rbs-verkehrsobjekte-stra%C3%9Fen-und-pl%C3%A4tze-dezember-2014
Sowie Adressen:
http://daten.berlin.de/datensaetze/rbs-adressen-dezember-2014