Installieren von GDAL und OGR für Python?

18

Ich entwickle Code in Python und möchte die GDAL / OGR-Python-Bindungen verwenden. Was ist das Minimum, das ich installieren muss, um die GDAL- und OGR-Python-Bindungen zu verwenden?

Was ist der einfachste Weg, um GDAL / OGR zu installieren, wenn ich es nur von Python aus verwenden möchte?
Ich suche nach einer Antwort, die sowohl für Mac als auch für Windows gilt.

GDAL ist im Python Package Index (PyPi) aufgeführt, aber ich verstehe nicht, wie man seine Abhängigkeiten installiert (libgdal und die Header-Dateien für libgdal und numpy). Vielleicht brauche ich nur numpy zu installieren und dann irgendwo libgdal zu bekommen, und wenn ja, wo? Benötigt eine Windows-Installation zusätzlich zu libgdal und den Header-Dateien die Windows- Binärdateien?

Wie kann ich sicherstellen, dass ich die richtigen Python-Bindungen für meine Version von Python (2.5, 2.6, 2.7, 3) erhalte?
Müssen Änderungen an der Umgebungsvariablen PATH vorgenommen werden, um GDAL und OGR von Python aus zu verwenden, oder kann auf alles über den Ordner "site-packages" und eine typische importAnweisung zugegriffen werden ?

Diese Fragen sind für diese Frage relevant, werden jedoch nicht beantwortet:
Installieren von GEOS, PROJ, GDAL / OGR in einer Python-Virtualisierung unter Mac OS X Wie installiere ich
GDAL mit Python unter Windows?

Ich sollte beachten, dass FWTools , OSGeo4W und Kyngchaos OGR und GDAL mit Python-Bindungen bieten und ausgezeichnet sind, aber FWTools und OSGeo4W werden mit einem eigenen Python ausgeliefert, anstatt als Bibliotheken für eine vorhandene Python-Installation zu fungieren Nur für OS X.

BenjaminGolder
quelle
"Kyng Chaos Frameworks scheinen nur für Unix zu sein." Ich glaube, Sie verstehen es falsch, sie sind für OS X.
Sean
2
Informationen zur Windows- Installation finden Sie unter gis.stackexchange.com/questions/2276/… . Ich persönlich bin ein großer Fan von lfd.uci.edu/~gohlke/pythonlibs, da sie Win64 und neuer sind
Mike T
3
Ich besuche das 3 Jahre später noch einmal. Kurz gesagt, ich sehe, dass das Problem darin besteht, dass Python-Bibliotheksinstallationen dazu neigen, schlecht mit Abhängigkeiten umzugehen, die in C. KyngChaos, FWTools, Anaconda usw. geschrieben wurden mit der Version von Python haben sie. Grundsätzlich hat niemand einen plattformübergreifenden Weg geschaffen, um einfach pip install gdalund automatisch alle notwendigen Dateien aus GDAL aufzunehmen und zu kompilieren. Es wird erwartet, dass Sie andere Mittel verwenden, um die GDAL-Binärdateien zu erstellen.
BenjaminGolder

Antworten:

25

Ich habe dies nur hinzugefügt, weil ich versucht habe, die Kyng Chaos-Tools zu verwenden, aber auf meinem Mac OS X-Computer konnte ich dies mit Anaconda sehr, sehr einfach installieren

conda install gdal

Posting für den Fall, dass jemand dies wiederfindet - ich stelle fest, dass der ursprüngliche Post 3 Jahre alt ist.

mmallek
quelle
1
Ich habe Anaconda verwendet und es war einfach für GDAL, aber jetzt möchte ich in der Lage sein zu laufen ogr2ogr -clipdst -105.53 39.9 -104.93 40.27 places.json ne_10m_admin_0_map_subunits.shpund es scheint, dass ich GEOS aus einer .configure-Datei aktivieren muss - irgendeine Idee, wo Anaconda diese Datei ablegt? trac.osgeo.org/geos
blehman
Ich weiß den Hinweis zu schätzen, aber dies ähnelt den KyngChaos-Binärdateien, da es Ihnen immer noch nicht erlaubt, eine vorhandene Python-Installation zu verwenden, und Sie müssen die mit Anaconda gelieferte Python-Version verwenden.
BenjaminGolder
Ich konnte das KyngChaos-Zeug jedoch nicht zum Laufen bringen, weshalb ich die Idee dazu hatte. Aber in Anaconda können Sie auswählen, welche Version von Python installiert werden soll. Ich weiß nicht, ob Sie einen Grund haben, die andere spezifische Installation zu benötigen?
Mmallek
1
Ein Weihnachtswunder, das diese Antwort in mehr als zwei Stunden beim Versuch findet, mein (funktionierendes) Setup vom PC auf den Mac zu übertragen.
ScottieB
Nach dem Zurücksetzen der Umgebung funktioniert dies bei mir nicht mehr. Ich erhalte einen Fehler in Bezug auffrom osgeo import ogr
ScottieB
6

Wenn Sie unter Windows arbeiten, gibt es sofort Installationsprogramme, die Sie über den oben genannten Link meinen Freunden mitteilen können. Wenn Sie jedoch unter Linux arbeiten, können Sie libgdal 1.11 auf diese Weise installieren.

gehe auf diese Seite

http://packages.ubuntu.com/trusty/libgdal1h

Laden Sie die erforderliche .deb-Datei herunter und wählen Sie Ihre Systemarchitektur aus.

Gehen Sie nach dem Herunterladen in das heruntergeladene Verzeichnis und führen Sie diesen Befehl aus

$ sudo dpkg -i libgdal1h_1.10.1+dfsg-5ubuntu1_amd64.deb 

Jetzt wird ein Fehler angezeigt, der besagt, dass Abhängigkeiten nicht installiert sind. Geben Sie nun diesen Befehl ein

$ sudo apt-get -f install

Es installiert alle Abhängigkeiten automatisch und führt den Hauptinstallationsbefehl erneut aus.

$ sudo dpkg -i libgdal1h_1.10.1+dfsg-5ubuntu1_amd64.deb 

Es wird jetzt problemlos installiert. Jetzt müssen wir Entwicklerbibliotheken für gdal installieren.

$ sudo apt-get install libgdal1-dev 

export CPLUS_INCLUDE_PATH=/usr/include/gdal

export C_INCLUDE_PATH=/usr/include/gdal

Wenn Sie numpy haben, können Sie mit der Installation der GDAL-Python-Bibliothek fortfahren. Anderenfalls können Sie numpy installieren, um numpy and scipy unter Linux zu installieren

$ sudo apt-get install python-numpy python-scipy

Jetzt mit Pip installieren GDAL-Bibliothek

$ sudo pip install GDAL
narenarya
quelle
Dank dieser Antwort (erinnert mich an die beiden 'Export'-Zeilen, die ich vergessen hatte) konnte ich GDAL in einer virtuellen (venv)mgc@mgc:~$ export CPLUS_INCLUDE_PATH = /usr/include/gdal (venv)mgc@mgc:~$ export C_INCLUDE_PATH = /usr/include/gdal (venv)mgc@mgc:~$ pip3 install gdal==1.11.2 Umgebung installieren : (oder die Versionsnummer, die der auf Ihrem Computer installierten GDAL- Bibliothek entspricht).
mgc
5

Auf dieser Website finden Sie mehrere Lernprogramme , unter anderem eine Möglichkeit , Ihre Umgebung einzurichten. Ich benutze Pycripter über Crimson Editor, aber beide sollten funktionieren.

dslamb
quelle
4

Ich kenne keinen einfachen Weg, um es unter OS X zu installieren. Ich denke, Kyng Chaos ist das Beste, ebenso wie OSGEO4W unter Windows. Die Python-Bindungen sind nur Wrapper für den eigentlichen C / C ++ - Code. Sie können nicht davonkommen, ohne sie entweder aus dem Quellcode oder über Binärdateien zu installieren.

Pip oder easy_installkann den Trick machen, abhängig von der Python-Version und den vorhandenen Systembibliotheken. Hier ist zum Beispiel das PyPI-Verzeichnis für Python 2.5 . Die konsistente Installation von GDAL auf mehreren Plattformen und in mehreren Python-Versionen ist nicht trivial, aber in vielerlei Hinsicht sinnvoll: Es handelt sich möglicherweise um die Bibliothek, die den meisten Open-Source- und vielen proprietären GIS-Programmen zugrunde liegt und eine große Anzahl von Datenformatabhängigkeiten aufweist darunter.

scw
quelle
Wenn Sie sicherstellen möchten, dass nichts kaputt geht, sollten Sie sich virtualenv und virtualenvwrapper ansehen, um Ordnung zu schaffen.
Jacques Tardie
PyPI verfügt über Verzeichnisse für 2.4 (nur Win32, mit GDAL 1.5, 1.6), 2.5 (Mac / Win32 mit GDAL 1.5, 1.6) und 2.6 (nur Win32, mit GDAL 1.6). Keine haben GDAL 1.7. Wenn ich den Kern der Antwort richtig verstehe, sagen Sie hauptsächlich, dass es nicht einfach ist und dass Pip in einigen Fällen funktionieren könnte. Sollte ich mir überlegen, wie man es aus dem Quellcode erstellt?
BenjaminGolder
@BenjaminGolder: Richtig, meiner Erfahrung nach kann es schwierig sein, insbesondere wenn Sie versuchen, viele Plattformen / und Python-Versionen zu unterstützen. Das Bauen von der Quelle aus erfordert mehr Arbeit im Vorfeld, kann sich jedoch lohnen, wenn Sie versuchen, einen konsistenten Satz von Anweisungen zu entwickeln. Möglicherweise möchten Sie Ihre Frage auch auf der GDAL-Liste stellen, die von den Entwicklern selbst gelesen wird.
scw
4

Ich hatte genau dieses Problem bei der Installation von GDAL / OGR neben der ArcGIS-Python-Installation. Meine Lösung für Windows war:

  1. Laden Sie die Binärdateien für GDAL- und Python-Bindungen von http://www.gisinternals.com/sdk/ herunter . Dies umfasst Versionen der Python-Bindungen für verschiedene Python-Versionen.
  2. Aktualisieren Sie die Pfade in der Python-Datei manuell:

os.environ ['PATH'] = "C: / Programme (x86) / GDAL /;" + os.environ ['PATH']

oldpaths = sys.path

sys.path = ["C: / Programme (x86) / GDAL / python /",]

sys.path.extend (oldpaths)

von osgeo import ogr

aus osgeo import osr

aus gdalconst import *

aus osgeo import gdal

Dies ist nicht sehr hübsch, ermöglicht es Ihnen jedoch, verschiedene Installationen zu mischen. Sie wissen auch explizit, was Sie laden.

Edit: Syntaxfehler behoben

Matthew Snape
quelle
4

Verwenden Sie diese Option, wenn Sie ppa nicht interessieren.

$ sudo apt-add-repository ppa: ubuntugis / ubuntugis-unstable

$ sudo apt-get update

$ sudo apt-get installiere python-gdal


2019-04-19: Hinzufügen einer Ubuntu-Lösung, die für mich auf einem Cloud-Ubuntu-Server funktioniert hat, von /programming//a/41613466/4355695

sudo add-apt-repository -y ppa:ubuntugis/ppa
sudo apt update 
sudo apt install gdal-bin python-gdal python3-gdal

Ich bin nicht das Originalposter dieser Antwort, aber diese Frage ist gesperrt, daher muss eine vorhandene bearbeitet werden. Diese Quelle (ppa: ubuntugis / ppa) ist wahrscheinlich weniger "instabil" als die vorhergehende, und für ein Python2-Programm, das ich auf meinem Server ausführen wollte, hat es funktioniert .

Naren Yellavula
quelle
1

Wenn Sie ein Windows-Benutzer sind, finden Sie viele nützliche Binärdateien , mit denen ich arbeite und die sehr gut funktionieren ... Viel Glück, Prost

Raskar Kapak
quelle
Willkommen bei GIS @ SE. Es ist besser, mehr Informationen mit Ihrer Antwort zu versehen, z. B. bestimmte Binärdateien und Installationsschritte. Dies macht die Informationen für die Person, die die Frage stellt, und für zukünftige Personen, die die Frage anzeigen, viel nützlicher und Antworten.
Mark Cupitt
0

Auf CentOS:

yum install gdal-python
imos
quelle