You are not logged in.

Announcement

*** NOTICE: CONTENT MIGRATION PENDING! Read More about the import. Bug? Post them here***

#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 mit

Nr. | 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

Lübeck wrote:

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-dev

3. libosmium 

git clone https://github.com/osmcode/libosmium.git

sudo apt-get install libexpat1-dev zlib1g-dev libbz2-dev

4. 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

ikonor wrote:

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-tool

und dann noch sowas wie:

docker build -t osmium-test .
docker run -v `pwd`:/data -ti osmium-test

In 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)

ikonor wrote:

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.

29299585kq.jpg

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

mmd wrote:

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

https://wiki.openstreetmap.org/wiki/API_v0.5

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 smile

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-osmium

Nun 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-osmium

gestartet 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-osmium

erfolgt 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:00Z

die 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-tool

dem 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

Board footer

Powered by FluxBB