You are not logged in.
- Topics: Active | Unanswered
Announcement
#1 2017-05-23 07:18:11
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Hilfestellung bei der Erstellung von Karten aus historischen Daten
Moin!
im nächsten Monat haben wir unseren 100. Stammtisch und da lag es nahe einen graphischen Rückblick zu halten. Kollege Rainer hat sich sehr intensiv mit dem Thema beschäft - ist aber leider daran gescheitert entsprechende Daten für ein Rendering in Maperative zu beschaffen.
Wir haben nun die Hoffnung, dass einer von Euch eine entsprechende Umgebung am laufen hat und uns ggf. die entspechenden Daten zur Verfügung stellen kann.
Rainer hat die Problematik einmal zusammengestellt und ich erstelle bzw. beobachte das Posting. Hier seine Zusammenfassung:
Ich bräuchte die osm-Daten im API-0.6-Format (für die Weiterverarbeitung
mit Maperitive) für die Zeithorizonte Nr. 1-3 mitNr. | date planet.file | Ereignis
------------------------------------------
1 | Juni 2007 | vor 10 Jahren
2 | April 2009 | 1. Stammtisch HL
3 | Mai 2013 | 50. Stammtisch HL
(4 | aktuell | 100. Stammtisch - Karte vorhanden)jeweils für bounding-box top=54.0 left=10.5 bottom=53.7 right=11.0.
Der von mir bisher verfolgte Toolchain
a) convert API-0.4 to API-0.5 mit
bzcat planet-070613.osm.bz2 | \
perl 04to05.pl | \
bzip2 > planet-070613.api0p5.osm.bz2
und
b) Einsatz von OSMOSIS V0.35 scheitert - trotz diverser Korrekturen wie
- Löschen leerer values
- Füllen leerer refs
- Löschen leerer roles
auf der Basis von sed -
und führt immer wieder zum Abbruch (nunmehr zwar immerhin 'erst' bei
Zeile 40 Mio von 105 Mio - für den datentechnisch eher winzigen Fall Nr.
1 ... aber Abruch ist Abbruch !).Meine Hoffnung:
Möglicherweise ist jemand innerhalb der OSM-Community in der Lage und
bereit, uns z.B. mit OSMIUM und auf der Grundlage eines aktuellen
osm-history-files die drei o.g. Lübeck-files Nr. 1-3 in der angegebenen
bbox zur Verfügung zu stellen ...
und im Idealfall auch das howto dazu zu erklären ... Im Moment scheue
ich noch dem Aufwand der Übersetzung von OSMIUM aus den Code-Quellen und
dem Einbinden der Vielzahl an separaten Bibliotheken - und am Ende mag
ich auch nicht riskieren, mein derzeit prima laufendes Linux-System zu
killen ...
Detailfragen kann ich allerdings nicht beantworten und nun bleibt für uns nur die Hoffung, denn diese stirbt bekanntlich zuletzt.
Gruß aus Lübeck
Jan
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#2 2017-05-23 07:41:24
- Harald Hartmann
- Member

- From: 98667 Schönbrunn
- Registered: 2014-04-02
- Posts: 3,123
- Website
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Ist das jetzt ein erneuter Aufruf zu Arbeit mit planetfiles aus der Zeit vor der API 0.6?
Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD
Offline
#3 2017-05-23 07:44:53
- Lübeck
- Member

- Registered: 2009-02-17
- Posts: 2,874
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Moin!
ich wußte nicht das es dieses Posting schon gibt - es ist jetzt vielmehr der Hilferuf zu einer Datenbereitstellung, da trotz tagelangen versuchens kein Ergebnis raus gekommen ist!
Gruß Ja
Redmi Note 9 Pro mit Android 11, Tablet Android 8.1, PC: Win10
Offline
#4 2017-05-23 08:58:34
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Im Moment scheue
ich noch dem Aufwand der Übersetzung von OSMIUM aus den Code-Quellen und
dem Einbinden der Vielzahl an separaten Bibliotheken - und am Ende mag
ich auch nicht riskieren, mein derzeit prima laufendes Linux-System zu
killen ...
Wozu die Arbeit machen? Ein aktuelles System hat osmium als Paket mit dabei, zu finden unter dem Namen osmium-tool.
Steht auch in der Installationsanleitung:
Debian and Ubuntu
Packages called osmium-tool are available for Debian and Ubuntu systems. (Do not install the osmium package, it is a very old version of the Osmium library.) Depending on your system, the packages might be rather old. Debian unstable and testing are tracking the development of Osmium closely. For Jessie those new packages are available in the backports repository.
http://osmcode.org/osmium-tool/manual.html
Last edited by mmd (2017-05-23 09:06:13)
Offline
#5 2017-05-25 09:57:06
- projecter63
- Member
- Registered: 2011-07-07
- Posts: 77
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Moin,
ein letzter 'zaghafter' Versuch ...
Ich bin derjenige, der die historischen Karten für Lübeck rendern würde, so ich die historischen OSM-Daten hätte bzw. mit OSMIUM freischneiden könnte ...
1) Ich habe Linux Mint 17.3 Rosa 'unter der Haube' (läuft auf Basis von Ubuntu 14.04 - Codename Trusty Tahr)
2) Bei der Paketsuche im Software-Portal der LinuxMintCommunity gibt es für osmium-tool genau einen Treffer, allerdings für Release 'Sarah' (damit wohl für die base Ubuntu 16.04; für mein System also nicht passend); der Link führt aber ohnehin ins Leere ("Das Paket osmium-tool konnte nicht gefunden werden") ...
3) Das Osmium Tool Manual ist mir bekannt, genauso die Seite https://github.com/osmcode/osmium-tool/ … /README.md. Beides führt mich am Ende aber zum "Übersetzung von OSMIUM aus den Code-Quellen" ...
Das "Übersetzung aus Code-Quellen" habe ich (noch) nicht gemacht und wenn ich mir die "Prerequisites" und die dazugehörenden Versionsanforderungen anschaue, frage ich mich, ob das auf meinem System überhaupt noch funktionieren würde. Und ein neues Linux-System aufsetzen, nur um an passende packages für OSMIUM zu kommen, mag ich auch nicht.
Somit stecke ich gefühlt fest! Hat jemand noch'n Tipp für mich ?
Grüße
Rainer
Offline
#6 2017-05-25 20:24:41
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Ubuntu Pakete für osmium-tool gäbe es hier, allerdings nicht für trusty (http://osmcode.org/osmium-tool/ > Download):
https://packages.ubuntu.com/xenial/osmium-tool
Es gibt ein Docker file zum automatisierten Bauen der Quellen in einer separaten Umgebung (Container), das wäre vermutlich am einfachsten:
https://gist.github.com/ImreSamu/5447252a4e750fd8c61e
Ansonsten hier mein Protokoll (unter Ubuntu 16.04.) zum Bauen mit minimalen Abhängigkeiten (könnte aber unvollständig sein):
1. Ordner zum Installieren anlegen
Dort Kommandozeile öffnen, um dann nachher osmium-tool und libosmium nebeneinander in Unterordnern installieren ("git clone", siehe unten), damit wird libosmium automatisch gefunden:
CMake looks for Libosmium in a few places. If it finds it, it will just work. One of the places it looks for Libosmium is in ../libosmium. So if you are using the git version, clone libosmium and osmium-tool in the same directory and it will find it.
https://github.com/osmcode/osmium-tool/ … t-94706533
2. osmium-tool
Mit git clone wird die aktuelle Entwicklungsversion heruntergeladen, alternativ jeweils ein stabiles Release Zip herunterladen:
https://github.com/osmcode/osmium-tool/releases
git clone https://github.com/osmcode/osmium-tool
sudo apt-get install libboost-dev libboost-program-options1.58-dev3. libosmium
git clone https://github.com/osmcode/libosmium.git
sudo apt-get install libexpat1-dev zlib1g-dev libbz2-dev4. Bauen
siehe https://github.com/osmcode/osmium-tool#building
Falls noch nicht bekannt, die Geofabrik bietet seit kurzem auch Full History Extrakte an:
full history files on Geofabrik server (dev ML)
Offline
#7 2017-05-25 20:55:04
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Es gibt ein Docker file zum automatisierten Bauen der Quellen in einer separaten Umgebung (Container), das wäre vermutlich am einfachsten:
https://gist.github.com/ImreSamu/5447252a4e750fd8c61e
An Docker habe ich auch schon gedacht, allerdings würde ich da eher ein Image mit ubuntu16.04 als Basis nehmen. Leider ist das Dockerfile von Imre schon 3 Jahre alt und funzt nicht mehr:
Cloning into 'osmium-tool'...
---> bda4297503bc
Removing intermediate container dd18b2679d3f
Step 26 : RUN mkdir -p /osm/osmium-tool/build && cd /osm/osmium-tool/build && cmake ..
---> Running in 6b5625037ddd
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1131 (message):
Unable to find the requested Boost libraries.
Boost version: 1.54.0
Boost include path: /usr/include
Detected version of Boost is too old. Requested version was 1.55 (or
newer).
Call Stack (most recent call first):
CMakeLists.txt:44 (find_package)Offline
#8 2017-05-25 21:21:58
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Schade, hab den Link zum Dockerfile erst nach meiner Installation irgendwo gesehen und gar nicht auf das Datum geachtet.
Detected version of Boost is too old. Requested version was 1.55 (or newer).
Keine Ahnung und nicht getestet, aber evtl. "libboost-program-options1.58-dev" statt "libboost-program-options-dev"?
Offline
#9 2017-05-25 22:18:11
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Sorry, hatte gar nicht auf dem Docker Hub nachgeschaut, dort gibt es ein Image für Version 1.6.1, das funktioniert:
https://hub.docker.com/r/asymmetric/osmium-tool/
Offline
#10 2017-05-25 22:28:19
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
TL;DR: Spoiler
---
Ja, prinzipiell kann man das aber auch einfach zu fuss machen:
Dockerfile:
FROM ubuntu:16.04
RUN export DEBIAN_FRONTEND=noninteractive
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install osmium-toolund dann noch sowas wie:
docker build -t osmium-test .
docker run -v `pwd`:/data -ti osmium-testIn der Kommandozeile kann man dann direkt osmium aufrufen, das Verzeichnis /data im Container zeigt dann auf das Verzeichnis, von dem aus "docker run" gestartet wurde.
osmium time-filter -o /data/planet-20080101.osm.pbf /data/history-planet.osh.pbf 2008-01-01T00:00:00Z
(Dateinamen entsprechend anpassen)
Falls noch nicht bekannt, die Geofabrik bietet seit kurzem auch Full History Extrakte an:
full history files on Geofabrik server (dev ML)
Gute Idee: siehe http://download.geofabrik.de/europe/ger … in.osh.pbf
2008 geht noch (siehe unten), 2007 ist dagegen nur noch eine traurige Punktwolke ohne irgendwelche Wege.

Last edited by mmd (2017-05-26 19:48:51)
Offline
#11 2017-05-26 09:18:23
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
2007 ist dagegen nur noch eine traurige Punktwolke ohne irgendwelche Wege
Vielleicht Mitte Oktober 2007 versuchen?
Since segments were dropped with the introduction of API 0.5, they are not included.
https://wiki.openstreetmap.org/wiki/Planet.osm/full
OSM Protocol Version 0.5 is an old version of the API, released on 2007-10-07
Offline
#12 2017-05-27 15:59:40
- projecter63
- Member
- Registered: 2011-07-07
- Posts: 77
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
BINGO ![]()
Vielen Dank an Ikonor, mmd und Jan ! Mit dem Hinweis auf Docker und dem "Fahrplan" aus #10 hab ich's nun doch noch geschafft, die historischen OSM-Daten herauszutrennen.
Für alle, die das eventuell mal nachvollziehen wollen, hier 'kurz' my way:
Ausgangsproblem: Ich will ein package unter Linux installieren, mein OS ist aber für die vorhandenen packages nicht geeignet (zu 'alt') und selbst das Programm aus den sources kompilieren will/kann ich nicht ... Auch die Aktualisierung des PC-OS erscheint zur Lösung der gestellten Aufgabe overdosed.
Schritt 1: 'docker' installieren (docker ist eine Virtualisierungssoftware, die Container bereitstellt, in der andere Software isoliert laufen kann. Das ganze Konzept ist offenbar neuer und smarter als das 'altbekannter VM's' und kann wohl auch einiges mehr ... Mit
$ wget -qO- https://get.docker.com/ | sh
und
$ sudo usermod -aG docker <username>wird docker installiert und der User <username> der Gruppe 'docker' hinzugefügt, um das ansonsten nervige 'sudo' zu unterbinden.
Schritt 2: einen ersten docker-Container anlegen und Ubuntu (latest - hier V16.04.2) und osmium in den Container packen:
<mit $ für Wirt-OS und # für Gast-OS im Container>
$ docker run -ti ubuntu bash
# apt-get -y update && apt-get -y upgrade
# apt-get -y install osmium-tool
# exit
$Schritt 3: den frisch angelegten Docker-Container persitent machen (standardmäßig wird er geschlossen und wäre damit 'wech'), dazu zunächst die Container-ID ermitteln
$ docker ps -l
$ docker commit [Container-ID] ubuntu16.04.2-mit-osmiumNun haben wir im docker-Container als Gast-OS Ubuntu 16.04.02 mit osmium 1.3.0 am Laufen. Der Container kann mit
$ docker run -ti ubuntu16.04.2-mit-osmiumgestartet werden. Nur, das Gast-OS ist noch nicht in der Lage, mit dem Wirt-OS zusammen gemeinsame Verzeichnisse zu nutzen. Ganau das braucht es aber, da ich ja die im Container erzeugten Daten später weiterverarbeiten (rendern) möchte. Dazu muß nun ein sog. docker-volume angelegt werden = Schritt 4.
Dazu im Gast-OS ein geeignetes Verzeichnis (z.B. # /home/osmium-data) anlegen und wiederum persistent machen (Prozedere aus Schritt 3 wiederholen). Nun in das Verzeichnis des Wirt-OS wechseln, auf das auch das Gast-OS Zugriff haben soll. Mit
$ docker run -v `pwd`:/home/osmium-data -ti ubuntu16.04.2-mit-osmiumerfolgt die Koppelung beider OS zwischen den jeweils gewünschten Verzeichnissen.
Das war's! Osmium 1.3.0 läuft nun auf einem Ubuntu-14.04-PC in einem docker-Container mit Ubuntu-16.04.2
Auffällig ist, dass diese Osmium-Version das Kommando 'extract' nicht unterstützt (Unknown command 'extract'. Try 'osmium help'). Das ist doof, können zwar mit time-filter
# osmium time-filter -o /home/osmium-data/germany_2009-04-15.osm.pbf /home/osmium-data/germany.osh.pbf 2009-04-15T12:00:00Zdie Daten zum gewünschten Zeitpunkt aus dem osh.pbf-file herausgetrennt werden, aber z.B. 'germany' bleibt immer 'germany'. Als Datensäge habe ich mich erst einmal mit
$ osmconvert germany_2009-04-15.osm.pbf -b=10.4,53.65,11.1,54.05 -o=luebeck_2009-04-15.osm.pbf'gerettet'.
Möglicherweise hilft es hier, anstelle von
apt-get -y install osmium-tooldem Hinweis aus #9 zu folgen und damit osmium 1.6.1 zu installieren - z.B. in einen zweiten Container ...
Grüße aus Lübeck
Rainer
Offline
#13 2017-05-27 16:34:47
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: Hilfestellung bei der Erstellung von Karten aus historischen Daten
Prima. Dann steht ja eurem 100. Stammtisch hoffentlich sonst nichts mehr im Wege.
Zu Schritt 2 & 3: normalerweise ist diese manuelle Vorgehensweise nicht empfohlen, da das Bauen des Images damit nicht gut reproduzierbar und somit auch automatisierbar ist.
Daher hatte ich in #10 ein Dockerfile und dem docker build gearbeitet, sprich: man legt ein neues Verzeichnis an, erzeugt dort eine Datei "Dockerfile" an mit dem Inhalt aus #10, und startet dort dann das docker build wie oben beschrieben.
Last edited by mmd (2017-05-27 16:40:21)
Offline