Seite 1 von 1

pygeodb fuer python 3

Verfasst: Dienstag 29. November 2016, 14:11
von luckyluke335
Hallo ihr,

gibt es eine moeglichkeit dieses modul(https://pypi.python.org/pypi/pyGeoDb) in python 3 zu installieren?
Bzw. welche moeglichkeiten hab ich den um eine deutschlandkarte in python 3 zu erzeugen??


vielen dank fuer eure hilfe

luckyluke

Re: pygeodb fuer python 3

Verfasst: Dienstag 29. November 2016, 14:29
von BlackJack
Der Satz “Es gibt keine freie Datenquelle zu Groesse und Form der einzelnen Postleitzahlenbereiche.” aus der Dokumentation des Moduls stimmt glaube ich nicht mehr. Ich habe mal für Berlin die Geographie der Postleitzahlenbereiche aus OpenStreetMap-Daten gezogen. Das sollte eigentlich für ganz Deutschland funktionieren. Es sei denn diese Daten sind nicht vollständig.

Re: pygeodb fuer python 3

Verfasst: Dienstag 29. November 2016, 16:08
von luckyluke335
ok mit was hast du das gemacht? mit osmapi?
ich will am ende eine heatmap ueber die
deutschlandkarte legen kann das mit osmapi klappen??

Gruesse

Re: pygeodb fuer python 3

Verfasst: Dienstag 29. November 2016, 16:42
von BlackJack
@luckyluke335: Ich hatte mir ein Programm geschrieben das mir die Kartendaten aus einer OSM-XML-Datei in eine SQLite-Datenbank schreibt. Und dann eines das daraus dann ein Shapefile für die Postleitzahlbereiche erzeugt hat. Die Grafik als SVG habe ich daraus dann mit http://kartograph.org / erstellt.

Interessant ist in dem Zusammenhang mit Postleitzahlen vielleicht auch diese Wikiseite bei OpenStreetMap: https://wiki.openstreetmap.org/wiki/DE: ... hland_2013

Re: pygeodb fuer python 3

Verfasst: Freitag 2. Dezember 2016, 14:18
von luckyluke335
und, dass hast du mit python 3 gemacht??
bei mir kommt da:

runfile('C:/Users/LM/Downloads/WinPython-64bit-3.5.2.3Qt5/settings/.spyder-py3/temp.py', wdir='C:/Users/LM/Downloads/WinPython-64bit-3.5.2.3Qt5/settings/.spyder-py3')
Traceback (most recent call last):

File "<ipython-input-1-ac0d80268ae2>", line 1, in <module>
runfile('C:/Users/LM/Downloads/WinPython-64bit-3.5.2.3Qt5/settings/.spyder-py3/temp.py', wdir='C:/Users/LM/Downloads/WinPython-64bit-3.5.2.3Qt5/settings/.spyder-py3')

File "C:\Users\LM\Downloads\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)

File "C:\Users\LM\Downloads\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/LM/Downloads/WinPython-64bit-3.5.2.3Qt5/settings/.spyder-py3/temp.py", line 8, in <module>
from kartograph import Kartograph

File "C:\Users\LM\Downloads\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\kartograph\__init__.py", line 2, in <module>
from kartograph import Kartograph

ImportError: cannot import name 'Kartograph'

:K

Re: pygeodb fuer python 3

Verfasst: Freitag 2. Dezember 2016, 18:37
von BlackJack
Nee, Python 2.7, keine Ahnung ob das auf 3 läuft.

Re: pygeodb fuer python 3

Verfasst: Sonntag 21. Januar 2018, 15:24
von time4breakfast
Ich hab bei mir pyGeoDB unter python3 (Ubuntu 17.10) zum Laufen gebracht mit Hilfe der folgenden Änderungen. Ist sicherlich nicht der schönste oder eleganteste Weg, aber zumindest funkioniert es ;)

- pycairo muss installiert sein
- den Code bei github herunterladen (https://github.com/mdornseif/pyGeoDb)
- einen neuen Ordner erstellen
- alle Files aus den Ordnern 'pygeodb', 'tools', und 'data' in den neuen Ordner kopieren oder verschieben
- folgende Änderungen an folgenden Dateien vornehmen:
* 'draw_german_borders.py', 'draw_germany_plz.py': 'import pygeodb' zu 'import pygeodb_core as pygeodb' abändern
* 'plz2python.py' und 'plz2python2013.py' ändere 'import pygeodb.plzdata' zu 'import plzdata'
* 'plz_draw': in 'plz_draw.py' umbenennen, 'pygeodb.voronoi' in 'voronoi' ändern, 'import pygeodb' zu 'import pygeodd as pygeodb' ändern, sowie 'pygeodb.borderdata' zu 'borderdata' ändern
- dann ein Terminal öffnen
- den Aufruf, der auf der github Seite gegeben wird abändern: aus 'python ./plz_draw [...]' wird 'python <pfad-zum-neugenerierten-ordner/>plz_draw.py [...]' und die restlichen Argumente beibehalten

Funktioniert bei mir einwandfrei. Einziger Nachteil ist, dass es recht lange dauert (könnte auch an meinem etwas älteren Laptop liegen ;-) ) und dass das *.pdf, das dabei kreiert wird, ziemlich groß ist (mind. mehrere 100megabyte).

Viel Spaß