DE:Phyghtmap

From OpenStreetMap Wiki
Jump to navigation Jump to search

phyghtmap ist ein kleines in Python geschriebenes Programm zur Erzeugung von Höhenlinien aus den NASA SRTM-Daten im OSM-Format. Wenn es Fragen gibt oder ihr einen Bug fundet, schreibt mir bitte: User:Panarchos.

Übersicht

Grundsätzlich bietet phyghtmap die gleiche Funktionalität wie srtm2osm. Es gibt allerdings einige Unterschiede:

  • in Python geschrieben, man braucht also keine C#-Laufzeitumgebung
  • phyghtmap erzeugt die OSM-Daten bereits in tiles (mit maximal 1.000.000 Knoten pro Datei), das anschließende Tiling entfällt
  • phyghtmap läuft deutlich schneller als srtm2osm, besonders auf Multiprozessor-Maschinen mit POSIX-konformen Betriebssystemen, auf denen parallelisiert werden kann
  • phyghtmap hat einige zusätzliche Funktionalität wie zum Beispiel die Erzeugung von xyz-Plot-Dateien, die man beispielsweise mit gnuplot visualisieren kann.

Zusätzlich bietet phyghtmap folgende Funktionen:

  • polygon-Unterstützung
  • Unterstützung von srtm3 und srtm1 Daten
  • Unterstützung von ViewFinderPanoramas Daten
  • pbf-Output
  • o5m-Output

Bitte beachten: Wie alle Programme, die Höhenlinien erzeugen, ist phyghtmap nicht dafür gedacht Daten für die OSM zu erzeugen, sondern einfach nur dafür Höhenlinien für tolle Karten zu erzeugen. Also ladet bitte keine Höhenlinien-OSM-Daten auf die OSM-Server hoch.

Download

phyghtmap kann hier heruntergeladen werden. Auf dieser Seite finden sich außerdem detaillierte Informationen über Programm-Abhängigkeiten und die verschiedenen Installations-Möglichkeiten.

Momentan gibt es phyghtmap als Python source distribution und als Debian-Paket.

Installation unter Windows

Nachdem die Installation unter Windows etwas aufwändiger ist als unter Linux, sollen die Schritte hier kurz beschrieben werden.

  • python-2.7.9.msi ... Installation von Python 2.7 32-bit (auch unter 64-bit Windows), falls nur kleine Gebiete (z.B. ein Land) berechnet werden sollen.
    • Alternativ: python-2.7.9.amd64.msi (nur unter 64-bit Windows), falls größere Gebiete (z.B. ein Kontinent) im Ganzen berechnet werden sollen.
  • ez_setup.py ... Download und Installation der aktuellen Python setuptools (z.B. 12.0.5) mit Python.exe setup.py install
  • matplotlib-1.4.2.win32-py2.7.exe (für 64-bit: matplotlib-1.4.2.win-amd64-py2.7.exe) ... Installation der aktuellen matplotlib
  • numpy-1.9.1-win32-superpack-python2.7.exe ... Installation von numpy für 32-bit
    • Alternativ für 64-bit: pip install numpy-1.9.2rc1+mkl-cp27-none-win_amd64.whl
  • pyparsing-2.0.3.win32-py2.7.exe ... Installation von pyparsing (falls nicht durch pip automatisch bereits mit installiert)

Alle weiteren Python Pakete können auf die übliche Art direkt per Python installiert werden.
Entweder per Download + cd <Download-Paket> + Python.exe setup.py install
oder alternativ: pip install <packagename>

  • BeautifulSoup-3.2.1 ... Achtung: nicht beautifulsoup4 verwenden
  • dateutils-0.6.6 ... falls von matplotlib nicht bereits mit installiert
  • six-1.9.0 ... falls von matplotlib nicht bereits mit installiert

Die Versionen der aktuellen Python Module können sich natürlich rasch ändern. (Stand: Jan/2015)

phyghtmap Aufruf

Hier ein beispielhafter Aufruf von phyghtmap unter Windows mit den Koordinaten des Preikestolen:

C:\Python27\Scripts\phyghtmap.exe --area=6.17:58.98:6.21:59.00 --step=20 --line-cat=200,100 --no-zero-contour --source=view1,srtm1,view3,srtm3 --o5m

Ausgehend vom aktuellen Ordner wird ein Unterordner \hgt angelegt (kann mit --hgtdir=DIRECTORY geändert werden).
In diesem Ordner werden Indexfiles erzeugt für srtm1 und srtm3 Daten sowie für ViewFinder 1 und 3, weiters 4 Unterordner für die hgt Daten: SRTM1v3.0, SRTM3v3.0, VIEW1, VIEW3.

In die Unterordner werden die benötigten hgt.zip Files geladen und entpackt. Als Ergebnis wird je nach Schalter ein OSM XML-File, pbf-File (--pbf) oder o5m-File (--o5m) im aktuellen Ordner mit dem Namen der verwendeten Koordinaten und hgt-Daten (in diesem Beispiel: lon6.17_6.21lat58.98_59.00_view1.osm) erstellt.
Der Filename kann optional mit --output-prefix=PREFIX ergänzen werden.

Tipp: Falls der Download z.B. der view1 Daten abbricht, dann empfiehlt es sich, die zip-Files mit einem Download-Manager vorab herunterzuladen und direkt in das entsprechende Verzeichnis \hgt\VIEW1 zu legen. Phyghtmap findet diese zip-Files und lädt sie nicht noch einmal herunter. Wenn phyghtmap die Files entpackt und feststellt, dass einzelne hgt-Files darin fehlen, dann wird auch gleich das Indexfile entsprechend aktualisiert. Aus diesem Grund sollte man die zip-Files nicht vorab entpacken.