Letzter Beitrag

VW Käfer

Wo ist das?

Na gut. Ich beschreibe den Lösungsweg. Aber dann in Details. In dem Foto gibt es nur eine einzige starke Spur - die Hausnummer 32. Daher hat mich die Aussage mit dem „guten Kompromiss“ gelinde gesagt etwas gewundert. Das musste pure Ironie gewesen sein. Ich fand es schwer. Aber erstmal wo war das grob? Land: sicher Österreich? Florian könnte doch zur totaler Irreführung ins benachbarte Ausland fahren und dafür sorgen, dass man im Foto keinen Text lesen kann. Und weil da wirklich kein Text zu sehen ist, wäre die Vorsicht geboten. Aber nicht nötig. Die Hausnummer ist eindeutig in Wiener Norm gesetzt. Leider wird diese Schrift nicht nur in Wien verwendet und auch nicht in ganz großem Umkreis, sondern fast überall. Zum Einschränken des Suchgebietes also nicht geeignet, aber zum Einschränken des Landes schon. Auch diese Leitpflöcke kommen in Österreich vor, aber nicht in Ungarn und nicht in Tschechen oder Slowakei. OK, also Österreich. Hoffentlich nicht ganzes Land - habe ich mir gedacht. Der bisherige Bewegungsradius von Florian beträgt ca. 100 km. Das ist für mich noch die Wohlfühlzone. Man könnte das Foto auf eine schlaue Art und Weise lösen: den Text im Sinne von Pattern Matching dafür nutzen, um aus der großen Menge der Straßennamen nur ganz wenigen Kandidaten ausfiltern. Das war der Plan A. Auf mich wirkt das Foto überhaupt nicht nach Wien. Ich habe mehr auf Burgenland getippt, in zweiter Linie auf Niederösterreich ausdrücklich außerhalb von Wien. Erst auf Platz drei Wien. Da man aber wirklich nichts Handfestes hat, musste ich alle diese Bereiche in Betracht ziehen. Also habe ich in einem riesigen Rechteck vom der Größe ca. 1/4 Niederösterreich aus OSM alle Hausnummer 32 geholt. Das ergibt ca. 4500 Kandidaten. Das ist keine Menge die mich erschüttert, aber wenn man sie stark reduzieren könnte, dann warum nicht? Ich habe mir den Text ganz genau angeschaut und für mich ergeben sich folgende Merkmale:  - Der erste Buchstabe hat links einen senkrechten Strich und oben mehr Weiß, daher habe ich auf ein M getippt. Ganz sicher kein runder Buchstabe, schon gar nicht an der linken Seite.  - Der letzte Buchstabe hat einen Strich nach unten. In Frage kommt also g, j, p, q, y. Die zwei letzten sind extrem unwahrscheinlich, j ist in deutscher Sprache sehr selten, p am Ende ungewöhnlich. Daher blieb das g nicht nur dank Ausschlussverfahren, sondern weil es z.B. in „-weg“ vorkommt.  - Kein einziger Buchstabe zwischen dem ersten und dem letzten hat einen Strich nach unten.  - Es gibt nur einen Buchstaben ungefähr in der Mitte, der etwas nacht oben trägt. Aber nicht stark, daher kann es kein b, d, f, h, k, l, t sein, sondern wahrscheinlich ein i.  - Das Wort enthält keine Leerzeichen.  - Das Wort enthält keine Bindestriche.  - Das Wort besteht aus mindestens 7 Buchstaben.  - Das Wort besteht aus maximal 11 Buchstaben. Löscht man alle Straßennamen mit Leerzeichen oder Bindestrichen bleiben immer noch ca. 3000 Stück. Lässt man dann nur die, die mit G enden, sind es plötzlich knapp über 200. Zwei hundert! Das ist nichts. Aber für eine reine manuelle Überprüfung für mich noch zu aufwendig. Denn man muss sich die Ergebnisse anschauen, die in Overpass-Turbo aus dem OSM-Datenbank rauskommen. Hier ein Beispiel: AT;1170;Wien;Andergasse;32;48.2260992;16.2934110 AT;1130;Wien;Josef-Gangl-Gasse;32;48.1822814;16.2671835 AT;1140;Wien;Baumgartenstraße;32;48.1940527;16.2828427 AT;1130;Wien;Fleschgasse;32;48.1899730;16.2900698 Jetzt müsste man aus dem Browser jeden Treffer einzeln in Google Maps per copy&paste übertragen, dann auf StreetView-Knopf klicken. Die Zeit die auf Kopieren, Einfügen, Klicken, warten bis StreetView-Ansicht aufgebaut ist drauf geht, ist unfassbar viel, viel länger, als das was man als Mensch braucht, um ein fertiges Bild zu beurteilen - ist das unseres gesuchtes Haus oder nicht? Ich würde das bei einer Handvoll Treffer per Hand machen, aber nicht bei 200. Da muss ein Automatismus her. Der heißt in meinem Fall AutoHotKey - ein Tool/Sprache für Automatisierung aller Art. Ich habe mir ein paar Zeilen Code geschrieben, die die Trefferliste aus OSM lesen, für jeden Treffer einen Google-StreetView-URL erzeugen, damit den Browser aufrufen und die angezeigte StreetView-Ansicht auf der Platte schreiben. Leider funktioniert die Benachrichtigung aus dem Browser nicht, dass die Seite fertig aufgebaut ist, daher muss ein Dummy-Sleep nach der Prinzip Hoffnung dafür sorgen, dass alles da ist. Merkt man später, dass kein sinnvoller Inhalt im Bild vorhanden ist, kann man die gescheiterte Fälle gezielt holen. Sind höchstens nur eine Handvoll.  Diese Aktion geht mit ca. 7..8 Sekunden pro Treffer sehr langsam. Aber das ist egal, denn man sitzt ja dabei nicht vor dem Bildschirm. Der Sinn liegt darin, dass man die Zeit nur für das schnelle Sichten der StreetView-Bilder investieren muss. Also irgendwann ist das fertig und man tippt in einem schnellen Viewer schnell auf Pfeil Rechts. Wenn ich mich gut konzentriere, schaffe ich zwei Bilder pro Sekunde für eine Beurteilung. Aber immer wieder hat man das Gefühl, dass man das vorherige Bild nochmal sehen will, manchmal braucht man ein paar Sekunden Pause. Ich habe mal ausgerechnet, dass ich über sehr viele Bilder einen Schnitt von ca. einer Sekunde bis 1.2 habe. Also die knapp 200 Treffer waren sehr schnell durch. Das Ergebnis: die richtige Lösung war nicht dabei. Ich mache das nicht zum ersten Mal und das ist der Moment, an dem Der Große Zweifel kommt. Das Problem: die OSM ist nicht zuverlässig. Ist das Haus überhaupt drin? Und wenn es drin ist, hat es eine Nummer? Und dann kommen noch die Annahmen auf sehr dünnem Eis: G am Ende. Wenn man die OSM z.B. für Wien abfragt, gibt es für die Regex "^M.*g$" nur diese ganzen 9 Treffer: Mondweg  Musketierweg   Milanweg   Markweg  Meisenweg   Miltnerweg  Mühlhäufelweg   Miltnerweg  Mittelfeldweg Nur neun! Das könnte man so schnell und so schlau lösen… wenn man drauf gekommen wäre, dass auf der Tafel „gasse“ mit „g“ abgekürzt werden kann. Leider bin ich drauf nicht gekommen.  Für "^M.*gasse$" gibt es in Wien nur 40 Treffer. Da könnte man sogar auf das weitere Ausfiltern mit den Kriterien „keine Unterlänge, keine Oberlänge bis auf i in der Mitte“ verzichten.  Bevor ich OSM komplett aufgegeben habe, habe ich noch eine andere Idee ausprobiert. Weil im Foto am Straßenrand ein Leitpfosten steht, dachte ich, muss es eine Ortsdurchfahrt sein, vermutlich am Anfang oder Ende des Ortes, weil im Zentrum wohl keine Leitpfosten stehen. Also habe ich aus OSM nur die Hausnummer 32 geholt, die an einer Straße der Kategorie secondary oder tertiary liegen. Ausdrücklich keine residential-Wege, denn das sind kleine Wege im Ort. Wiki sagt dazu: „Straße an und in Wohngebieten, die keiner anderen Straßenklasse angehört“. Bei so was erwartet man keine Leitpfosten. Großer Fehler - die Mooswiesengasse ist in OSM als residential kartiert. Aber das weißt man natürlich erst hinterher. Wohl ahnend, dass das mit der Straßenkategorie eine unsichere Sache sein könnte, habe ich stattdessen 32 an einer Bundes- oder Landesstraße untersucht. Alle diese „an der Straße“ habe ich aber nicht mit skriptbasierten StreetViews gemacht. Weil es zu viele Treffer gab, habe ich sie mit „endet auf weg“ gefiltert. Die überschaubare Menge habe ich manuell überprüft. Tja, war nichts dabei. Damit habe ich endgültig den Tiefpunkt meines Vertrauens ins OSM erreicht. Bessere Daten und besserer Plan mussten her. Es gibt eine Straßenliste für ganz Österreich, alles schön nach Bundesländer: https://www.statistik.at/statistik.at/strassen/#/strassenInput Aber das sind wirklich nur ortweise Straßennamen gelistet. Keiner sagt, dass an der jeweiliger Straße eine Hausnummer 32 existiert. Also jede Straße blind mit 32 in StreetView auf Verdacht kontrollieren? Wien: 7983, Niederösterreich: 41403, Burgenland: 8256 Stück. Nein, danke! Aber es gibt eine viel bessere Datenquelle! DIE ultimative Quelle für Fragestellungen dieser Art. Es heißt Adressregister es und kommt von Bundesamt für Eich- und Vermessungswesen. Es wird gepflegt und regelmäßig upgedatet. Es sind letztendlich Tabellen einer relationalen Datenbank als CSV-Dateien. Jetzt nur noch einlesen und das rausholen, was man braucht. Die Hauptmusik spielt in der Tabelle Adressen, dort ist für jede Hausnummer ein Eintrag. Das macht für ganz Österreich ca. 2.5 Millionen Datensätze. Klingt erstmal nach etwas viel und es könnte zarte Wesen schwindlig machen. Holt man die 32-er Hausnummer, ergibt sich folgende Anzahl der Treffer: PLZ 7xxx : 1182 (Burgenland) PLZ 1xxx : 1328 (Wien) PLZ 2xxx und 3xxx : 5643 (Niederösterreich) Und das ist plötzlich ganz zum Greifen nah, denn so 1000 StreetView-Bildchen sichte ich in ca. einer Viertelstunde. Vorausgesetzt natürlich, dass sie fertig zum Sichten vorliegen. Also habe ich, angefangen mit Burgenland, weil ich das starke Gefühl hatte, dass es dort ist, mein Skript angeworfen und die 1182 StreetView-Bilder auf die Platte runtergeholt. Vorher musste ich ein bisschen Code schreiben, um aus den mehreren Tabellen alle nötigen Daten für Google zu holen, denn Ortsnamen und Straßennamen sind ja nicht in der Tabelle Adresse drin, sondern über IDs aus anderen referenziert. Sicher existiert eine Menge fertigen, freien und funktionsfähigen Datenbanken die das alles hergeben, aber ich mag das alleine machen. Da spielt sicher zum großen Teil ein bisher unerfüllter Wunsch, beruflich in Lisp zu programmieren. Daher wenn ich beruflich schon meinen Arsch verkaufe und Sprachen nutzen muss, die mich anwidern, programmiere in meiner Freizeit am liebsten in Lisp. Ich liebe das über alles. Diese Code-Ästhetik sucht ihresgleichen. Das ist so ein bisschen wie mit alten Autos. Aber ich schweife ab… Die Laufzeit war ca. 2.5 Stunden. Ich meine für den StreetView-Download. Durchsichten war in 15..20 Minuten durch. Dummerweise war die richtige Lösung nicht dabei. Leichte Zweifel? Ja, aber nicht in das amtliche Datenwesen, da habe ich hohes Vertrauen, aber nicht in Google. Denn die Suche nach einer Straße mit Hausnummer generiert zwar von alleine die StreetView-Ansicht, aber sie zeigt manchmal das falsche Haus. Unfassbar, aber wahr. Wenn man sich die StreetView-URL anschaut, dann stellt man fest, dass dort geografische Koordinaten auftauchen. Auch wenn man die Abfrage nur mit Straße und Hausnummer macht. Sie kommen einfach automatisch. Dann dachte ich mir, wenn ich die Koordinaten mit der abfrage schicken würde, wäre das StreetView vielleicht genauer? Glücklicherweise gibt es für jede Hausnummer eine Koordinate, die nah an Zufahrt oder Zugang platziert ist. Wahnsinn was die alles treiben. Da freut sich jeder Steuerzahler, dass das Geld auch für sinnvolle Zwecke verwendet wird! Das sind zwar Gauß-Krüger-Koordinaten, also rechtwinkliges System, und Google nur geographische Koordinaten akzeptiert, aber auch dafür gibt es freie Tools, die sich in meine Programmierumgebung integrieren lassen. Ich habe den Test gemacht und stichpunktartig kaputte StreetViews mit den genauen Koordinaten von BEV nochmal abgerufen. Sie waren genauso falsch wie ohne Koordinaten. Es blieb nur zu hoffen, dass man das Glück hat und an dem Haus aus dem Rätselfoto das Google-StreetView-Auto vorbeigefahren ist, die Technik in dem Moment nicht streikte und Google für diese Adresse noch die richtige Sicht zeigt. Ziemlich viele Wünsche dafür, dass man für diese Dienstleistung nichts zahlt. Kein Fund in Burgenland war zwar etwas enttäuschend, aber es blieb noch das ganze Niederösterreich und ja… Wien. Eher aus Faulheit, die mehr als 5000 niederösterreichische StreetViews sichten zu müssen, habe ich beschlossen, zuerst Wien in den Mangel zu nehmen. Gute Entscheidung, denn die Mooswiesengasse 32 war dabei und das nicht an der letzten Position. Es war bei ca. 3/4 der 1328 Adressen, wenn ich mich richtig erinnere. Ja, ist gelöst, ich freue mich auch, aber ich würde mich viel mehr freuen, wenn ich geschnallt hätte, dass ein „g“ am Ende des Straßennamens als Abkürzung für Gasse stehen kann. Eigentlich war mir das durchaus bekannt, ich frage mich nur, warum ich das nicht ernst genommen habe. Würde ich alle Erkenntnisse auf dem verschwommenen Text nutzen, wäre das in Minuten gelöst. Leider habe ich zu wenig Gewicht dem zugeschrieben und mich auf den Brute-Force-Pfad begeben. Etwas was ich gar nicht mag und schon gar nicht bei unserem Wo-ist-das. Aber zumindest habe ich einige affenartigen Teile automatisiert. Noch perfekter wäre ein Programm, das die StreetViews mit dem Rätselfoto vergleichen kann und eine Wahrscheinlichkeit für die Ähnlichkeit ausgibt.  Bei den Tiefpunkten meiner Suche dachte ich noch kurz daran, dass Florian eventuell das Bild manipulieren könnte, z.B. eine falsche Hausnummer einbauen. Das wäre zwar fies hoch 10, vor allem bei diesem Foto, wo außer dieser Nummer nichts Verwertbares da ist, aber hier gab es schon Aktionen dieser Art. ;) Mit blossem Auge habe ich nichts gesehen, aber sicher ist sicher - ich habe das Foto durch foto-forensische Tools gejagt. Das Ergebnis war negativ. @g4c_tdi Auf jeden Fall ein großes Dankeschön für ein anspruchsvolles Rätsel, das sich nicht vom blossen Angucken von alleine löst. Darauf habe ich lange gewartet. So, es war ein bisschen lang, aber ihr wolltet es wissen und das Schreiben tut mir nicht weh. :)