Verschlagwortet: POI, poi_converter, sqlite
-
AutorBeiträge
-
Januar 28, 2022 um 17:49 Uhr #47115bm.ffbTeilnehmer
Wie einige scheinbar schon vor mir scheitere ich an der Nutzung des poi-converter (), da ich ihn auf meinem PC nicht installiert bekomme. Ich möchte damit vom mapsforge-poi-writer erstelle .poi Dateien in das Locus-Format (.db) konvertieren.
Dazu verwende ich einen Windows PC (Win10, 64 bit, Python 3.9 ist installiert). Bei der Installation des osmium Packages hackt es dann. Es gibt eine lange Fehlermeldung.
Deshalb hier die Frage: Hat jemand eine Schritt-für-Schritt Anleitung, um den poi-converter auf einem Windows PC zum Laufen zu bekommen?
Ich würde freuen.
GrüßeJanuar 29, 2022 um 08:45 Uhr #47124ChristianKAdministratorIch fahre alles was Phyton benötigt mitlerweile unter Win10/WSL/Debian, so auch Phyghtmap
Phyton unter native Windows ist eine Krankheit, das funktioniert manchmal mit viel Aufwand- aber es hakt immer irgendwo.
Sobald Librarys benötigt werden ist die Sache idR gelaufen.LG, Christian
Januar 30, 2022 um 13:25 Uhr #47150ChristianKAdministratorHier im Anhang der leicht modifizierte Poi-Converter.
Der von Github hat 2 kleine Bugs.Hier der Aufruf:
wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create
Die Folder musst Du halt anpassen
LG, Christian
BTW:
Wenn Du Hilfe beim Setup von WSL hast helfe ich dir gerne, nur ist das alles pipifein bei Google erklärt.
Du kannst auch von mir ein komplettes Debian-WSL-Image haben bei dem alles vorinstalliert ist.Januar 31, 2022 um 12:50 Uhr #47169bm.ffbTeilnehmerDanke für deine Infos.
Für Phyghtmap auf nativem Windows habe ich eine Anleitung geschrieben (Anleitung). Damit läuft es bei mir stabil (Win10, Python 2.7).
Für den poi_converter (und andere Scripts) habe ich Python 3.9 installiert. Mein Problem ist zunächst das „osmium“ Package (oder brauch man das gar nicht?). Bis zur Ausführung des poi_converter komme ich noch gar nicht. Und nur für dieses Skript WSL-Debian zu installierten ist wahrscheinlich gut machbar, aber aufwendig.
Für mich klang es hier so, dass du es zum Laufen gebracht hast (And finally 🙂 🙂
Found Win64 sqlite.dll with rtree support !Here ist Guam.db – please could someone test if it’s OK – Thanks
, März 2020). Aber du bist trotzdem jetzt zur Linux Umgebung gewechselt?
Ich probiere es auf jeden Fall noch mal mit deinem modifizierten poi_converter. Danke dafür.
Und wenn das nicht geht, versuche ich mich mal an dem Debian-WSL.
Grüße
BernardJanuar 31, 2022 um 13:06 Uhr #47171ChristianKAdministratorAber du bist trotzdem jetzt zur Linux Umgebung gewechselt?
Ja, das ist wesentlich weniger Aufwand als Python unter Windows.
Auch das Update des planet-files mit den daylies geht unter WSL einfach leichter.
Die Shell-Scripts und Commands unter Linux sind auch wesentlich mächtiger und lassen sich unter Win problemlos transparent aus einem .bat aufrufen.
SED etc haben unter win einfach keine echten Entsprechungen.
Rsync (native unter WSL) fürs Web-Backup ist auch um Längen besser als FTPFebruar 2, 2022 um 12:29 Uhr #47184bm.ffbTeilnehmerSo, jetzt habe ich Debian-WSL installiert und habe eine Art Kommandozeilen Oberfläche. Und dann habe ich keine Ahnung, wie von dort weiter?
Kann/muss ich dort Python installieren?Du kannst auch von mir ein komplettes Debian-WSL-Image haben bei dem alles vorinstalliert ist.
Dann würde ich vielleicht auf dein Angebot zurückkommen.
GrüßeFebruar 2, 2022 um 14:07 Uhr #47186ChristianKAdministratorUnd dann habe ich keine Ahnung, wie von dort weiter?
Ohjee..
Noch nie unter Linux/Unix/BSD gearbeitet?
Das ist dann ein steiler Pfad.Ich lade dir das Image hoch.
Importiere das nach WSL :
https://www.windowscentral.com/how-import-windows-subsystem-linux-wsl-distribution-tar-fileIch gebe Dir Bescheid wenn der Dump auf GDrive zur Verfügung steht.
Februar 2, 2022 um 16:13 Uhr #47188ChristianKAdministratorLink ist per MAil unterwegs
1 Teilnehmer(n) gefällt dieser Beitrag
Februar 2, 2022 um 18:18 Uhr #47192bm.ffbTeilnehmerNoch nie unter Linux/Unix/BSD gearbeitet?
Nein. Ich würde mich aber als einen recht Computer-affinen Windows User bezeichnen.
Vielen Dank für das Image. Der Download hat geklappt.Februar 3, 2022 um 09:30 Uhr #47194bm.ffbTeilnehmerDer Import deines Debian-WSL-Image scheint geklappt zu haben:
Die installierten Dateien befinden sich hier:
Und der Inhalt dieses Verzeichnisses sieht so aus:
Jetzt müsste ich wahrscheinlich diesen Aufruf ausführen:
wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create
Aber:
Muss dazu der poi_converter im WSL Verzeichnis installiert sein?
Was ist also der Pfad %DIR_MAKES_WSL%?
Muss die .poi Datei nun auch in dieses Verzeichnis? Was wäre dann der Pfad %DIR_MAPFOLDER_WSL%?Bei mir ist aktuell der poi_converter hier installiert: „C:/Python39/poi_converter-master/“. Und so dachte ich, dass für meine Test-poi Datei (TEST.poi, sie liegt im poi_converter Verzeichnis) die Eingabe in der PowerShell so aussehen sollte:
wsl python3 C:/Python39/poi_converter-master/poiconverter.py C:/Python39/poi_converter-master/TEST.poi C:/Python39/poi_converter-master/TEST.db -if poi -om create
Das kann aber nicht funktionieren, denn der Pfad wird nicht gefunden:
python3: can't open file '/mnt/c/Users/bernard/C:/Python39/poi_converter-master/poiconverter.py': [Errno 2] No such file or directory
Irgendwie undurchsichtig.
Grüße
BernardFebruar 3, 2022 um 10:44 Uhr #47207ChristianKAdministratorIch habe den POI-converter in einem Windows Verzeichnis installiert
Aus
m:\makes\poi_converter-master\poiconverter.py in dos
wir dann im Aufruf über WSL:
mnt\m\makes\poi_converter-master\poiconverter.pyNebenbei:
Datein in C: Userverzeichnis zu hinterlegen ist keine gute idee.
Die C:_Partition halte ich immer AUSSCHLIESSLICH für das Betriebssystem frei.
Wenn Dir das OS abschmiert kannst Du das einfach neu aufsetzen ohne Eigenprogramme zu verlieren.
Wenn Du alles in C:\user reinquetschst ist im Zweifelsfall alles kaputt.Weiters belege ich alles auf Variable.
Es gibt eine Datei die nennt sich .oam_config in der alle pfade für dos/wsl hinterlegt sind (in meinem Fall wird diese Datei aus einem Spreadsheet geschrieben.DIR_MAIN_DOS=m:\mapsforge\ DIR_MAIN_WSL=/mnt/m/mapsforge/ DIR_OSMDATA_DOS=m:\osm_data\ DIR_OSMDATA_WSL=/mnt/m/osm_data/ DIR_OSMEXTRACTS_DOS=o:\osm_data\ DIR_OSMEXTRACTS_WSL=/mnt/o/osm_data/ DIR_MAKES_DOS=m:\makes\ DIR_MAKES_WSL=/mnt/m/makes/ DIR_HGT_DOS=o:\osm_srtm\hgt\ DIR_HGT_WSL=/mnt/o/osm_srtm/hgt/ DIR_PERLSCRIPTS_DOS=c:\perl\perl\site\bin\ DIR_PERLSCRIPTS_WSL=/mnt/c/perl/perl/site/bin/ DIR_OAM_WEBSITE_DOS=m:\oam_web\ DIR_OAM_WEBSITE_WSL=/mnt/m/oam_web/ DIR_TEMP_DOS=n:\oam_temp\ DIR_TEMP_WSL=/mnt/n/oam_temp/ DIR_MAPS_DOS=d:\oam_maps\maps\V5\ DIR_MAPS_WSL=/mnt/d/oam_maps/maps/V5/ DIR_POIS_DOS=d:\oam_maps\maps\poisV5\ DIR_POIS_WSL=/mnt/d/oam_maps/maps/poisV5/ DIR_MAPS_ZIP_DOS=d:\oam_maps\zip\V5\ DIR_MAPS_ZIP_WSL=/mnt/d/oam_maps/zip/V5/ DIR_POIS_ZIP_DOS=d:\oam_maps\zip\poisV5\ DIR_POIS_ZIP_WSL=/mnt/d/oam_maps/zip/poisV5/ DIR_MYCLIPBOUNDS_DOS=m:\osm_data\my_clipbounds\ DIR_MYCLIPBOUNDS_WSL=/mnt/m/osm_data/my_clipbounds/ DIR_SHAPES_LAND_DOS=m:\osm_data\shapes\land\ DIR_SHAPES_LAND_WSL=/mnt/m/osm_data/shapes/land/ DIR_OSMTOOLS_DOS=m:\tools\ DIR_OSMTOOLS_WSL=/mnt/m/tools/ DIR_OSMOSIS_DOS=m:\osmosis\ DIR_OSMOSIS_WSL=/mnt/m/osmosis/
In jedes Batch wird zuerst diese Datei eingelesen und man hat immer aktuelle pfade:
@Echo off REM Hier werden die Steuervariablen eingelesen for /f "delims=" %%x in (m:\makes\.oam_config) do (set "%%x")
.. und auch alle sonstigen Variablen aus anderen parameterfiles.
1 Teilnehmer(n) gefällt dieser Beitrag
Februar 3, 2022 um 16:57 Uhr #47222bm.ffbTeilnehmerDatein in C: Userverzeichnis zu hinterlegen ist keine gute idee.
Da hast du natürlich Recht. Ich habe mich nur an die WSL Import Anleitung, die du mir genannt hast, gehalten. Und die haben den Import in das User-Verzeichnis installiert. Inzwischen habe ich mit „unregister“ die Installation wieder entfernt und den Import in ein neues Verzeichnis auf meiner „Datenpartition“ (D) gemacht. Nun liegt sie in
D:\__APPs\Debian
Mein Kartenbauverzeichnis („_KARTENBAU\_TOOLS\“) liegt auch auf D. In dieses habe ich nun auch den poi_converter-master abgelegt. Damit wären meine Parameter wohl:DIR_MAKES_DOS=D:\_KARTENBAU\_TOOLS\ DIR_MAKES_WSL=/mnt/D/_KARTENBAU/_TOOLS/
Also habe ich versucht, den poi_converter auf eine TEST-Datei anzuwenden mit (in der PowerShell):
wsl python3 /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/TEST.poi /mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/TEST.db -if poi -om create
Damit erhalte ich aber weiterhin den Fehler, dass die Datei wohl nicht gefunden werden kann:
python3: can't open file '/mnt/D/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py': [Errno 2] No such file or directory
Oder stimmt das mit den „/“ nicht? In dem Auszug aus deiner Parameter Datei verwendest du für WSL backshlash, aber in deinem Beispiel Python-Aufruf nicht?
wsl python3 %DIR_MAKES_WSL%poi_converter-master/poiconverter.py %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.poi %DIR_MAPFOLDER_WSL%/%MAPNAME%_oam.osm.db -if poi -om create
Weiters belege ich alles auf Variablen.
Das ist eine gute Idee. Bisher habe ich die Parameter immer am Anfang innerhalb meines Batchskriptes festgelegt.
Februar 3, 2022 um 17:21 Uhr #47224ChristianKAdministratorSlash für WSL
Backslash für DosWSL = Linux = alles ist CaseSensitiv – ev. liegt es daran
mach mal ein WSL-Fenster auf und schau dir die struktur mit dem MC (MidnightCommander) anAHHHHHH, ich seh’s gerade….
die driveletter sind klein zu schreiben (schau mal auf meine Parameterliste) , klar das WSL die Datei nicht findet
(Linux ist CaseSensitive 🙂 , das ist zwar anfangs lästig hat aber massive Vorteile)Also /mnt/d/ | /mnt/c/ usw
Februar 3, 2022 um 19:36 Uhr #47231bm.ffbTeilnehmerdie driveletter sind klein zu schreiben
OK. Habe ich nun geändert und komme genau einen Schritt weiter. Die Fehlermeldung lautet:
Traceback (most recent call last):
File „/mnt/d/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter.py“, line 13, in <module>
from poiconverter.database import Database
File „/mnt/d/_KARTENBAU/_TOOLS/poi_converter-master/poiconverter/database.py“, line 4, in <module>
import spatialite
ModuleNotFoundError: No module named ’spatialite‘Das sollte aber doch eigentlich in deinem Image enthalten sein, oder?
Februar 4, 2022 um 15:42 Uhr #47241ChristianKAdministratorDas sollte aber doch eigentlich in deinem Image enthalten sein, oder?
Ich fürchte ich bin hier auch Linux aufgesessen.
Die Konfiguration müsste schon im Dump enthalten sein, aber unetr dem USer „biz“
wenn du mit deinem user reingehst hast du IMO ein blankes Image.
Nehme ich zumindest mal an.Macht aber nicht , einfach das ganze Zeugs nachinstallieren.
-
AutorBeiträge
- Sie müssen angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.