PBFtoOSM - Windows

Hallo zusammen,

ich würde gerne PBFtoOSM unter Windows64 nutzen. Leider habe ich keinen blassen Schimmer von C++ und wie ich den Source Code kompilieren kann. Ich habe zwar Visual Studio 2008, aber da haut es mir nur Fehlermeldungen um die Ohren… :frowning:

Möglicherweise erbarmt sich ja jemand hier PBFtoOSM für Windows zu kompilieren und der Community die Binarys zur Verfügung zu stellen?

Viele Grüße,
Sockeye

Hallo!
Von einem Profi weiß ich, dass man die Quelldatei relativ einfach mit MinGW übersetzen kann. Ich selber kanns leider nicht, habs jedenfalls noch nicht geschafft, das Programm unter Linux mit MinGW für Windows zu übersetzen. Aber wenn du selber MinGW installierst, sollte das klappen.
http://de.wikipedia.org/wiki/MinGW
http://komisar.gin.by/mingw/index.html (nimm die Version 4.6.0)

Oder es findet sich hier jemand, der sowas schon öfter gemacht hat…? Wär natürlich super. :slight_smile:

Was willst du damit erreichen?! Ich denke PBF-Dateien in das XML-Format überführen?
Das geht auch mit Osmosis
Ich nutze hauptsächlich Ubuntu und Mac OS, aber da eine osmosis.bat existiert, sollte es auch unter Windows laufen. Dazu die pbf-Datein in das /bin-Verzeichnis kopieren und über die Kommandozeile aufrufen:

osmosis.bat --rb input.osm.pbf --wx output.osm

input ist dann die pbf-Datei und output die xml-Datei.
Kann sein, dass er auch hier mit “omitmetadata=true” rummeckert, ich ignoriere das immer, denn am Ende geht’s trotzdem.
Wenn es klappt, wäre eine positive Rückmeldung super.

pbftoosm ist/wäre aber deutlich schneller als osmosis :wink:

Hallo Sockeye,

Das fertige .exe-File (compilert unter WinXP 32-Bit) gibt es hier:
http://www.datafilehost.com/download-1f2ddb50.html 114.358 Bytes, md5sum 96d7221b5f616c063dc92a6d774a0d77

Falls es bei Dir nicht läuft, Du einem fremden .exe-File nicht traust (was imho durchaus vernünftig ist) oder Du es aber selbst compilieren möchtest hier die Kurzanleitung:

  • Lade Dir die (meiner Meinung nach beste) MinGW-Distribution unter

http://nuwen.net/mingw.html → “mingw-7.1.exe”

bzw. direkter Download-Link http://nuwen.net/files/mingw/mingw-7.1.exe

herunter.

  • Das ist ein selbstentpackendes 7z-File, also doppelklicken und auspacken nach “C:\MinGW”

  • Windows-Pfad um “C:\MinGW\bin” ergänzen wie unter http://nuwen.net/mingw.html#install beschrieben.
    Für WinXP (deutsch) z.B. geht das so: Unter Start → Systemsteuerung → System → Erweitert → Umgebungsvaribalen → Systemvariablen → Path → Bearbeiten, dann ;C:\MinGW\bin hinten anhängen (Achtung: Strichpunkt nicht vergessen!), → OK → OK → OK

  • neue DOS-Box öffen (Start → Programme → Zubehör → Eingabeaufforderung)

  • gepatchtes “pbftoosm.c” C-Source-File von http://www.datafilehost.com/download-137ca707.html und z.B. unter “C:\OSM” (oder einen Pfad Deiner Wahl) speichern. (Das Original von http://wiki.openstreetmap.org/wiki/DE:Pbftoosm#pbftoosm.2C_ohne_History-Information → “Quellcode” funktioniert ungepatched nicht unter Windows)

  • In der DOS-Box

cd c:\OSM

bzw. “cd” zu dem Pfad zu “pbftoosm.c”

  • Compilieren mit
gcc -c pbftoosm.c
  • Linken mit
gcc -o pbftoosm pbftoosm.o -lz

Danach solltest Du ein “pbftoosm.exe” haben. :slight_smile:

Bitte gib mir Rückmeldung, ob bei Dir unter Win7-64Bit mein fertiges Win32-exe läuft und ob das Selbst-Compilieren bei Dir geklappt hat.

Schöne Grüße

PA94

Na wenn man sich über Geschwindigkeit gedanken macht, sollte man nicht mit Windows arbeiten :sunglasses:
Ich kann ja mal einen Benchmarktest machen…

Hab gerade gesehen, dass es ja schon einen ausführlichen Benchmarktest gibt. Gibt es das ganze auch noch als osm2pbf? Oder muss man dann doch noch über osmosis gehen? Ist ja schön und gut, wenn man ein Polygon schnell ausschneiden kann, aber ich will es ja nicht (unbedingt) als xml-Datei haben.

Läuft bei mir prima unter 32bit-XP.

NRW (ohne weitere Filter) ist in 2 Minuten durch statt in 10.

Gruß und Dank,
ajoessen

Ich schneide regelmäßig bestimmte Bereiche aus dem Planet File heraus, welche weder von Geofabrik noch Cloudmade verfügbar sind. Osmosis ist hier schon lange im Einsatz, im wahrsten Sinne der Wortes :slight_smile: “waiting for execution…”

Ersteinmal vielen Dank für deine Mühe. Hier im Büro auf Win7 64 bekomme ich folgende Fehlermeldung:

Ich werde es zu hause nochmal versuchen, bzw den Anlauf starten es selbst zu Kompilieren. Mit deiner Anleitung klappt es bestimmt :slight_smile:

VG
Sockeye

ich hab hier ein pbf2osm.exe. Ist das was anderes?

Laut dem Benchmarktest aus http://forum.openstreetmap.org/viewtopic.php?pid=162152#p162152 schon.

Nach Anleitung (oben) lies sich PBFtoOSM sofort kompilieren (Win7 64)

Nur leider scheint es Probleme mit großen *.pbf Dateien zu geben. So ab 120MB bricht er mit unterschiedlichsten Fehlermeldungen ab. Kleine Dateien macht das Programm einwandfrei.

Gibt es die gleichen Fehlermeldungen unter Linux?

VG
Sockeye

Linux kann ich grad nicht bieten, aber die aktuelle africa.osm.pbf läuft mit pbftoOsm auf XP 32bit ohne Murren durch, und erzeigt 3GB output. Liegt also wohl eher an den 64bit.

Gruß,
ajoessen

Hallo Sockeye,

Mit der “africa.osm.pbf” vom **04.**05. bekomme ich sowohl unter Linux als auch unter WinXP die Fehlermeldung wie Du auch


WinXP:

pbftoosm Error: way user string index overflow: 41->4078064
pbftoosm: Number of bytes read: 100866130

Linux:

pbftoosm Error: way user string index overflow: 41->3086398973
pbftoosm: Number of bytes read: 100866130


Sie unterscheiden sich also nur in der Zahl hinter “41->”.

Mit dem zusätzlichen Parameter “–drop-his”


pbftoosm --drop-his  < africa.osm.pbf > africa.osm

läuft es ohne Fehlermeldung durch.

Interessanterweise läuft auch die "africa.osm.pbf"vom **05.**05. ohne “–drop-his” fehlerfrei durch.
Ich tippe daher auf einen kleinen Bug in “pbftoosm.c” in der History-Auswertung…

Schöne Grüße

PA94

Hier meine pbftoosm.exe (erstellt auf Win7-64):

http://www.datafilehost.com/download-e49d18dd.html

md5sum:
636e91fb9d158a46a6c63d1d3d23122f *pbftoosm.exe

Test mit africa.osm.pbf ok, Laufzeit: 59 sec.

Chris

Gut möglich. Aber ebenso möglich, dass beim Erstellen der .pbf-Datei ein Fehler passiert ist.
“way user string index overflow” bedeutet, dass ein String-Index enthalten ist, der größer ist als der Index des letzten Strings in der vorausgehenden Tabelle des Blocks. Ich hab einen solchen Fehler in der Datei schon einmal entdeckt, und zwar bei einem uid 0, also bei einem User-Namen, den es eigentlich nicht geben dürfte.

Aber falls ihr einen Programmfehler findet, wär das natürlich besser! :slight_smile:

Mit der Africa.osm.pbf vom 05.05. hat es einwandfrei funktioniert :slight_smile:
(41 Sec auf einem i7 920 auf SSD)
Die Europe.osm.pbf hat er auch gemacht in 26Min

Entweder war die Datei vom 04.05 korrupt oder beim Download hat es ein zwei Bits gedreht…

Vielen Dank jedenfalls an alle! Ich werde jetzt mal ein paar Benchmarks mit dem Planet.pbf fahren.

VG
Sockeye

…oder das Programm hat noch einen Bug. :slight_smile:
Falls dir wieder mal eine PBF-Datei über den Weg läuft, die dir Probleme macht (am besten nicht eine so riesige wie planet.osm.pbf), dann poste bitte den Link auf den Download. Danke!

Hallo,

Ja, stimmt. Aber mein Bauch sagt mir, daß es wahrscheinlicher ein Bug in “pbftoosm.c” ist ;).

Besser: Schicke noch zusätzlich eine Mail an den Autor von “pbftoosm.c” Markus Weber (markus.weber § gmx.com ← absichtlich verfremdet als Harvester-Schutz).

Schöne Grüße

PA94

Ich muss zugeben, ich bin begeistert… :slight_smile:

Deutschland aus der Europe.osm.pbf zu schneiden hat mit Osmosis 26:14 gedauert mit pbftoosm nur 9:16. Das ist fast Faktor 3

VG
Sockeye