Anhang
Anhang 1: Probleme mit Conda: Umlaute im Bentzernamen
Alle conda environments werden an einem zentralen Ort gespeichert. Typischerweise im folgenden Verzeichnis: C:\Users\DEIN-WINDOWS-BENUTZERNAME\AppData\Local\ESRI\conda\envs\
. Wenn ihr Umlaute in eurem Windows Benutzernamen habt, findet conda
eure environment möglicherweise nicht. Eine Möglichkeit, dieses Problem zu beheben, ist einen alternativen Speicherort für eure conda environments zu definieren. Dazu geht ihr wie folgt vor1:
Überlege dir eine Location, wo du deine conda nvironments abspeichern möchtest (z.B.
C:\conda-envs
). Erstelle diesen Ordnerpfad und prüfe ob du dort Schreibrechte hast indem du in diesem OrnerC:\conda-envs
eine Dateie erstellst. Wenn das klappt, hast du Schreibrechte.Füge diesen Pfad deiner conda configuration hinzu:
-append envs_dirs C:\conda-envs conda config -
Prüfe ob der letzte Schritt funktioniert hat indem du folgendem Befehl laufen lässt und prüfst, ob
C:\conda-envs
vorkommt:-show envs_dirs conda config -
Erstelle eine neue conda environment in dieser neu erstellten directory:
-prefix=C:\conda-envs\geopython conda create -
Prüfe, ob das geklappt hat, indem du die verfügbaren environments auflistest.
-envs conda info -
Wenn das geklappt hat, kannst du nun deine environment aktivieren
conda activate geopython
Anhang 2: Conda und arcpy
Um die ganzen Befehle von ArcGIS direkt in Python ansteuern zu können, muss das package arcpy installiert werden. Bisher haben wir alle unsere Packages mit conda installiert, z.B:
conda install -c conda-forge geopandas
Mit arcpy
geht dies leider nicht, weil arcpy
ein kostenpflichtiges Modul ist welches eine ArcGIS Lizenz benötigt. Glücklicherweise nutzt ArcGIS aber auch Conda Environments. Wir müssen also nur bewerkstelligen, das Juypter Lab die gleiche Conda environment verwendet wie ArcGIS. Dazu gehen wir wie folgt vor:
- Schritt 1: ArcGIS Python Umgebung Klonen
- Schritt 2: Die neue Environment aktivieren
- Schritt 3: weitere Module installieren
Schritt 1: ArcGIS Python Umgebung Klonen
Zuerst prüfen wir die Python Umgebung in ArcGIS. Diese findet man in ArcGIS unter Project > Python
Hier ist einerseits die Project Environement ersichtlich (1), andererseits steht aber auch, dass diese Environment “read only” ist (2). Das bedeutet, dass wir keine neuen module installieren können, wenn wir diese Environment benutzen. Wir folgen deshalb den Vorschlag “Clone and activate a new environment”. Dazu klicken wir auf “Manage Environment” (3). Übrigens: Das ArcGIS Conda benutzt sehen wir an (4).
Klicke hier auf “Clone Default” um die Umgebung zu kopieren. Das dauert eine Weile, danach kann man die neue Environment auswählen (Klick auf den Button “Active”). Notiert dir den Namen der neuen Environment, speichere das ArcGIS Projekt ab und starte das ArcGIS neu
Schritt 2: Die neue Environment aktivieren
Nun haben wir uns eine wunderschöne Python Umgebung parat gemacht und können diese jetzt in CMD aktivieren. Starte dazu Command Prompt / CMD und schaue dir die verfügbaren environments an:
conda env list
Bei mir sieht der output folgendermassen aus:
# conda environments:
#
arcgisonline C:\Users\rata\AppData\Local\ESRI\conda\envs\arcgisonline
arcgisonline2 C:\Users\rata\AppData\Local\ESRI\conda\envs\arcgisonline2
arcgispro-py3-clone C:\Users\rata\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone
arcgispro-py3-clone1 C:\Users\rata\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone1
cameratraps-detector C:\Users\rata\AppData\Local\ESRI\conda\envs\cameratraps-detector
geopython C:\Users\rata\AppData\Local\ESRI\conda\envs\geopython
test C:\Users\rata\AppData\Local\ESRI\conda\envs\test
arcgispro-py3 * C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3 root C:\Program Files\ArcGIS\Pro\bin\Python
Aktiviere nun die eben erstelle environment mit folgendem code (ersetzte name-der-environment
mit dem tatsächlichen Namen deiner neuen environment aus dem letzten Schritt.
activate name-der-environment
Schritt 3: weitere Module installieren
Glücklicherweise ist jupyterlab
bereits in der arcgis
environment installiert, dies können wir mit folgendem code überprüfen:
conda list
# packages in environment at C:\Users\rata\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone1:
#
affine 2.3.0 py_0 anaconda
arcgis 1.8.2 py36_1275 esri
arcgispro 2.6 0 esri
.
.
.
jupyterlab 2.2.9 py_0 conda-forge
jupyterlab_pygments 0.1.2 pyh9f0ad1d_0 conda-forge
jupyterlab_server 1.2.0 py_0 conda-forge
.
. .
Wenn jetzt aber noch module fehlen (wie z.B. geopandas
), dann können wir diese wie gewohnt installieren.
Schritt 4: arcpy
verwenden
Wenn alles gewünschten Module installiert sind können wir nun JupyterLab starten.
Sobald JupyterLab gestartet ist, können wir innerhalb einer cell das Modul arcpy
mit import arcpy
importieren und nun auch verwenden. Zum Beispiel folgendermassen:
import arcpy
from arcpy import env
# Set environment settings
= "C:/data/Habitat_Analysis.gdb"
env.workspace
# Select suitable vegetation patches from all vegetation
= "vegtype"
veg = "C:/output/Output.gdb/suitable_vegetation"
suitableVeg = "HABITAT = 1"
whereClause arcpy.Select_analysis(veg, suitableVeg, whereClause)
Der Syntax ist auf jeder jeweiligen Tool Beschreibung gut dokumentiert (Abschnitt “Code Sample”, z.B. hier)
Anhang 3: JupyterLab mit R
Einige von euch kennen JupyterLab bereits aus dem Statistik Unterricht. Dort habt ihr JupyterLab mit R
benutzt, dabei habt ihr aber nicht auf eurem lokalen PC, sondern auf einer gehosteten Version von JupyterLab gearbeitet, also auf einem Server. Dieser Server kann jeder Zeit wieder Offline geschaltet werden oder ihr könnt euren Zugriff darauf verlieren. Wenn ihr JupyterLab mit R
lokal nutzen wollt, geht ihr wie folgt vor (Anleitung in Anlehnung an diesen Blogpost):
In eurem Python Command Prompt erstellt ihr eine neue
conda
environment, aktiviert diese und installiertjuypterlab
sowier-ikernel
(letzteres aus dem channelr
, nicht wie gewohntconda-forge
).conda create --name r-env conda activate r-env conda install -c conda-forge jupyterlab conda install -c r r-irkernel
Nun ist
R
in eurer conda environment aktiviert. Nun könnt ihr mit folgenden Befehlen das PackageIRkernel
installieren sowie den Kernel für JuypterLab verfügbar machen.Rscript -e "install.packages('IRkernel', repos = 'https://cloud.r-project.org')" Rscript -e "IRkernel::installspec(user = FALSE)"
Optional: Wenn ihr ein paar nützliche shortcuts für
R
haben wollt, könnt ihr die extensiontechrah/text-shortcuts
mit folgender Zeile installieren.jupyter labextension install @techrah/text-shortcuts
Nun könnt ihr JupyterLab starten und sollet nun einen R-Kernel zur Verfügung haben:
jupyter lab