Schauen Sie sich das Python Tips and Tricks for ArcGIS Training-Seminar an, in dem @DerekNelson1 und ich dutzende Strategien vorstellen, die Ihnen helfen, repetitive Aufgaben und komplexe Workflows zu automatisieren.<\/SPAN><\/P>Suchen Sie nach bestehenden Lösungen, bevor Sie von Grund auf neu beginnen.<\/STRONG><\/P>Die Chancen stehen sehr gut, dass jemand anderes ein ähnliches Problem hatte und ein Python-Modul erstellt hat, das Sie zur Lösung des Problems verwenden können. <\/P>ArcPy ist für die Arten von Aufgaben gedacht, die Sie in ArcGIS Pro ausführen würden.<\/STRONG><\/P>Wenn Sie Geoverarbeitungsaufgaben automatisieren oder mit lokalen Dateien und Datenbanken arbeiten möchten, bietet die ArcPy-Bibliothek Python-Funktionen, die die Dinge replizieren, die Sie manuell in der grafischen Benutzeroberfläche tun können.<\/P>Die ArcGIS API for Python ist für die Arten von Aufgaben gedacht, die Sie in Ihrem Portal ausführen würden.<\/STRONG><\/P>Die Automatisierung der Verwaltung von Benutzern, Gruppen und Inhalten in Ihrem ArcGIS Online- oder ArcGIS Enterprise-Portal ist ein großartiger Anwendungsfall für die ArcGIS API for Python. Die Python-API verfügt auch über Werkzeuge zum Erstellen eines Spatially Enabled DataFrame entweder aus lokalen Daten oder Feature-Services. Dies ist eine Erweiterung eines Pandas DataFrame und bietet daher alle Vorteile der tabellarischen Datenmanipulation von Pandas zusammen mit räumlichen Eigenschaften und Methoden zur Handhabung geografischer Daten.<\/P>Notebooks sind hervorragend zum Lehren, Teilen und Erzählen mit Code geeignet.<\/STRONG><\/P>Die Möglichkeit, Code in Zellen zu unterteilen, Markdown hinzuzufügen, um den Code zu erklären, und die Ausgabe im Notebook einzuschließen, macht sie zu leistungsstarken Werkzeugen, um Ihren Code iterativ zu verbessern und anderen zu helfen, den Kontext und die Bedeutung der im Notebook dargestellten Arbeit zu verstehen.<\/P>Eine IDE verfügt über leistungsstarke Werkzeuge, die das Schreiben von Code erleichtern.<\/STRONG><\/P>Eine integrierte Entwicklungsumgebung wie PyCharm oder VS Code enthält ausgefeilte Debugging-Werkzeuge, Fehler- und Warnungserkennung, automatisches Linting und hilfreiche Codevervollständigungswerkzeuge, um das Schreiben umfangreichen Codes zu erleichtern. Es wird sogar immer üblicher, dass IDEs KI-Codeassistenten integrieren, um die Entwicklung weiter zu beschleunigen.<\/P>Die Verwaltung einer Python-Umgebung ist schwierig. Erwarten Sie Herausforderungen.<\/STRONG><\/P>Jedes Modul in einer Python-Umgebung muss mit jeder anderen Umgebung kompatibel sein. Es kann leicht passieren, dass Ihre Umgebung auf subtile Weise beschädigt wird.<\/P>Verwenden Sie die Standard-Python-Umgebung von ArcGIS Pro, um Herausforderungen zu minimieren.<\/STRONG><\/P>Glücklicherweise verfügt die mit ArcGIS Pro gelieferte arcgispro-py3-Umgebung über ein von Esri-Entwicklern kuratiertes Paketset mit den Bibliotheken, die Sie für den Großteil der GIS-Aufgaben benötigen. Da Sie diese Standardumgebung nicht ändern können, haben Sie immer mindestens eine funktionierende Python-Umgebung, wenn Sie mit ArcGIS Pro arbeiten.<\/P>Klonen Sie die Standardumgebung, um eine benutzerdefinierte Umgebung zu erstellen.<\/STRONG><\/P>Für Fälle, in denen Sie zusätzliche Bibliotheken benötigen, die nicht in arcgispro-py3 enthalten sind, können Sie die Standardumgebung klonen und diese Bibliotheken über den Paketmanager im Projekt-Tab von ArcGIS Pro hinzufügen. Ihnen stehen Tausende von Python-Bibliotheken über conda zur Verfügung, die Sie über die Benutzeroberfläche installieren können.<\/P>Verwenden Sie conda für fortgeschrittenes Umweltmanagement. Vermeiden Sie pip wenn möglich.<\/STRONG><\/P>Einige fortgeschrittene Aufgaben erfordern komplexeres Umweltmanagement als über die ArcGIS Pro-Oberfläche möglich ist. Für solche Aufgaben können Sie conda über die Eingabeaufforderung aufrufen, z.B. um einen bestimmten Kanal für ein Paket anzugeben oder Ihre Umgebung als Textdatei zu exportieren. Obwohl es möglich ist, Pakete mit pip zu installieren, besteht das Risiko der Installation inkompatibler Pakete, da pip nicht alle Abhängigkeiten in Ihrer Umgebung vollständig löst. Manchmal müssen Sie pip verwenden, wenn ein benötigtes Paket in keinem conda-Kanal verfügbar ist; es ist jedoch besser, dies wenn möglich zu vermeiden.<\/P>Achten Sie auf Paket-/Bibliotheksabhängigkeiten und Lizenzen im Paketmanager.<\/STRONG><\/P>Der Paketmanager hilft Ihnen dabei, Abhängigkeiten aller installierten Bibliotheken zu identifizieren. Er verlinkt auch auf die Lizenz für alle zur Installation verfügbaren Pakete, sodass Sie sicherstellen können, dass die Lizenzanforderungen mit Ihrem Anwendungsfall kompatibel sind.<\/P>An Python-Fenster/Notebook senden.<\/STRONG><\/P>Sie können ein Werkzeug aus dem Geoverarbeitungsfenster per Drag & Drop in das Python-Fenster ziehen, um die korrekte Syntax für das Werkzeug zu erhalten. In neueren Versionen von ArcGIS Pro können Sie es auch in ein ArcGIS Notebook ziehen.<\/P>Nutzen Sie vorhandene Ressourcen wie ModelBuilder-Modelle.<\/STRONG><\/P>Wenn Sie bereits ein Modell haben, das eine Aufgabe ausführt, müssen Sie es nicht neu schreiben, um es in einem Python-Skript zu verwenden. Sie können das Modell als Geoverarbeitungswerkzeug in Ihrem Skript aufrufen. Außerdem haben Sie die Möglichkeit, dass ArcGIS Pro Ihr Modell als Python-Code exportiert.<\/P>Überprüfen Sie vor der Ausführung des Codes, ob Dateien und Feature-Klassen existieren.<\/STRONG><\/P>Die Exists-Funktion prüft, ob ein bestimmtes Datenobjekt tatsächlich existiert oder nicht. Wenn nicht, können Sie einen Teil des Codes überspringen. Strategien für frühe Rückgaben helfen Ihrem Code schneller zu laufen.<\/P>Überprüfen Sie vor der Ausführung Zeilen/Werte auf Existenz.<\/STRONG><\/P>Auch wenn ein Datenobjekt existiert, kann es leere Daten enthalten. Mit der GetCount-Funktion können Sie feststellen, ob eine Tabelle leer ist und gegebenenfalls die Codeausführung überspringen.<\/P>Modell-Elemente parametrisieren, um Benutzereingaben zu ermöglichen.<\/STRONG><\/P>Modelle mit Parametern lassen sich leichter in Skripte integrieren, da unterschiedliche Eingabewerte programmatisch eingefügt werden können.<\/P>Kopieren Sie den Python-Befehl aus der grafischen Benutzeroberfläche in ArcGIS Pro.<\/STRONG><\/P>Wenn Sie ein Werkzeug im Geoverarbeitungsfenster öffnen, gibt es neben der Schaltfläche "Ausführen" einen kleinen Aufwärtspfeil. Eine Option ist "Python-Befehl kopieren". Dies kopiert einen Python-Codeabschnitt mit den Parametern zur Replikation der im UI eingegebenen Werte. Dies ist unser wirkungsvollster Tipp für Nutzer mit Erfahrung in Geoverarbeitungsaufgaben in ArcGIS Pro aber neuen bei Python. So sehen Sie den Zusammenhang zwischen den gewählten Parametern im vertrauten Interface und den Argumentwerten der Python-Funktion. Zusätzlich zum Kopieren des Befehls aus dem Geoverarbeitungsfenster können Sie auch jeden Eintrag in Ihrer Geoverarbeitungshistorie rechtsklicken und denselben Ausschnitt erhalten.<\/P>Verwenden Sie Pfad kopieren in der ArcGIS Pro-Benutzeroberfläche.<\/STRONG><\/P>Dateipfade sind mühsam einzutippen und Fehler passieren leicht. Im Katalogfenster von ArcGIS Pro können Sie ein Datenobjekt rechtsklicken und Pfad kopieren wählen – so müssen Sie ihn nicht tippen. <\/P>Überprüfen Sie regelmäßig während der Entwicklung Ihres Codes dessen erwartete Ergebnisse.<\/STRONG><\/P>Sie möchten keine Stunden damit verbringen Code zu schreiben ohne zwischendurch zu prüfen ob er funktioniert. Je mehr Code zwischen Tests geschrieben wird desto mehr müssen sie bei einem Fehler überprüfen. Häufige Prüfungen helfen problematischen Code frühzeitig zu erkennen.<\/P>Seaborn ist hervorragend für Diagramme/Grafiken geeignet.<\/STRONG><\/P>Grafische Visualisierungen helfen Ihnen (und anderen), Ihre Daten besser zu verstehen. Seaborn ist eine gute Bibliothek zur Erstellung solcher Visualisierungen; wenn sie in einem Notebook ausgeführt wird sehen sie direkt zusammen mit dem Code das Ergebnis.<\/P> <\/P>import seaborn as sns
# Wörterbuch der Werte
cryptid_data = {
"Lochness Monster":LochnessMonsterCount,
"Chupacabra":ChupacabraCount,
"Bigfoot":BigfootCount
}
# Balkendiagramm aus dem Wörterbuch
cryptid_plot = sns.barplot(
x=list(cryptid_data.keys()),
y=list(cryptid_data.values())
)<\/code></pre><p> <p/><p></p></p>P<p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><strong>Niemals Login-Daten im Code speichern.</strong></p>
<p>Dies stellt ein großes Sicherheitsrisiko dar. Die ArcGIS API for Python ermöglicht es Ihnen jedoch,<|vq_lbr_audio_108549|><|vq_lbr_audio_105600|>-login-Daten Ihrer Umgebung zu nutzen wenn sie in ArcGIS Pro arbeiten oder Notebook Server oder ArcGIS Online. Notebook. Sie können auch Profile verwenden, die Ihre Betriebssystem-Geheimnisverwaltungswerkzeuge nutzen, oder PKI, das Sicherheitszertifikate verwendet. Schauen Sie sich die <A href="https://developers.arcgis.com/python/guide/working-with-different-authentication-schemes/" target="_blank" rel="noopener nofollow noreferrer">Dokumentation zum Arbeiten mit verschiedenen Authentifizierungsschemata</A> für Details an.<\/P><P><STRONG>Notebooks haben reichhaltige Ausgaben, die Bilder, Hyperlinks und formatierten Text enthalten können.<\/STRONG><\/P><P>Dies ist ein Teil dessen, was ein Notebook so großartig zum Lehren und Teilen macht. Die reichhaltige Ausgabe hilft den Menschen, die Ergebnisse der Arbeit, die Sie in Ihrem Code geleistet haben, besser zu verstehen.<\/P><P><STRONG>Verwenden Sie zusätzliche Parameter, um Ihre Suche in der ArcGIS API for Python einzuschränken.<\/STRONG><\/P><P>Die <A href="https://developers.arcgis.com/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.search" target="_blank" rel="noopener nofollow noreferrer">Suchmethode des ContentManager</A> kann nach Kategorien oder item_type oder durch eine Abfrage auf mehreren Feldern suchen. Einige Beispielabfragen finden Sie in <A href="https://support.esri.com/en-us/knowledge-base/how-to-find-specific-items-using-queries-in-the-arcgis--000024383" target="_blank" rel="noopener nofollow noreferrer">diesem Knowledge Base-Artikel</A>.<\/P><P><STRONG>Weisen Sie den Objekten, mit denen Sie arbeiten, aussagekräftige Variablennamen zu.<\/STRONG><\/P><P>Das Zuweisen von Variablennamen ermöglicht es Ihnen, Werte zu verwenden, die Sie erstellen. Ihnen aussagekräftige Namen zu geben hilft Ihnen zu verstehen, was diese Werte bedeuten. <\/P><P> <\/P><pre class="lia-code-sample language-python"><code>x = 2405<\/code><\/pre><P> <\/P><P>Bedeutet eigentlich nichts.<\/P><P> <\/P><pre class="lia-code-sample language-python"><code>population = 2405<\/code><\/pre><P> <\/P><P>Bietet den relevanten Kontext für den Wert innerhalb des Skripts.<\/P><P><STRONG>Seien Sie sich des spezifischen Objekttyps bewusst, mit dem Sie arbeiten.<\/STRONG><\/P><P>Verschiedene Objekte haben unterschiedliche Eigenschaften und Methoden. Es ist leicht, bei ähnlichen Objekttypen wie <A href="https://developers.arcgis.com/python/api-reference/arcgis.features.toc.html#featurelayercollection" target="_blank" rel="noopener nofollow noreferrer">FeatureLayerCollection</A>, <A href="https://developers.arcgis.com/python/api-reference/arcgis.features.toc.html#featurelayer" target="_blank" rel="noopener nofollow noreferrer">FeatureLayer</A> und <A href="https://developers.arcgis.com/python/api-reference/arcgis.features.toc.html#featureset" target="_self" rel="nofollow noopener noreferrer">FeatureSet</A> durcheinander zu kommen. Verwenden Sie Typüberprüfung, um zu bestätigen, womit Sie arbeiten, und die Dokumentation, um zu prüfen, was Sie mit einem bestimmten Objekt tun können.<\/P><P><STRONG>Suchen Sie nach 22arcpy <Ding, das Sie tun mf6chten>22.<\/STRONG><\/P><P>Suchmaschinen wie Google und Bing liefern fast immer die richtige Dokumentation in den ersten Suchergebnissen zurück. Ergebnisse aus der Esri Community und Stack Exchange sind ebenfalls wertvolle Ressourcen, da sie von Menschen stammen, die Fragen stellen. Es besteht eine sehr gute Chance, dass jemand anderes bereits dieselbe Frage gestellt hat wie Sie und Sie sehen können, was für sie funktioniert hat.<\/P><P><STRONG>Die Docs sind Ihr bester Freund<\/STRONG><\/P><P>Niemand erinnert sich an all diese Dinge. Die wichtigste Fähigkeit, die Sie entwickeln können, ist Vertrautheit mit der Dokumentation. Verwenden Sie den Beispielcode, um zu sehen, wie verschiedene Funktionen und Objekte funktionieren.<\/P><P><STRONG>Verwenden Sie Schlüsselwort-<A href="https://docs.python.org/3/glossary.html#term-argument" target="_blank" rel="noopener nofollow noreferrer">Argumente</A> anstelle nur positionsabhängiger Argumente.<\/STRONG><\/P><P>Die Verwendung von Schlüsselwörtern beim Aufrufen von Funktionen anstelle des bloßen Verlassens auf die Argumentreihenfolge macht Ihren Code lesbarer. Es ermöglicht Ihnen, einige optionale Parameter zu überspringen und macht es für Personen, die Ihren Code später lesen, offensichtlicher, wofür die verschiedenen Werte sind.<\/P><P><STRONG>Nutzen Sie help() oder ?<\/STRONG><\/P><P>Übergeben Sie ein Objekt an die help-Funktion, um Zugriff auf die Dokumentation für diese Funktion zu erhalten, ohne Ihre Entwicklungsumgebung verlassen zu müssen. Das reduziert die kognitive Belastung durch Kontextwechsel und erleichtert das Zurückkehren zum Schreiben von Code. In einer Notebook-Umgebung können Sie auch ein ? an ein Objekt anhängen, um schön formatierte Dokumentation zu erhalten.<\/P><P><STRONG>Verwenden Sie Listen und Schleifen zur Stapelverarbeitung von Daten.<\/STRONG><\/P><P>ArcPy verfügt über eine Reihe verschiedener Listenfunktionen wie ListWorkspaces oder ListFiles, die automatisch Listen von Datenobjekten generieren. Sobald Sie eine Liste haben, können Sie über alle Elemente in dieser Liste iterieren, um eine Aufgabe auszuführen.<\/P><P> <\/P><pre class="lia-code-sample language-python"><code># Setzen des Arbeitsbereichs
arcpy.env.workspace = r"C:\Input_Data"
# Alle File-Geodatabases in diesem Arbeitsbereich auflisten
fgdbs = arcpy.ListWorkspaces(workspace_type="FileGDB")
# Modell für jede File-Geodatabase im Arbeitsbereich ausführen
for gdb in fgdbs:
arcpy.PythonTipsandTricksatbx.Model1(Database=gdb)<\/code><\/pre><P> <\/P><P><STRONG>Planen Sie periodische Aufgaben<\/STRONG><\/P><P>Wenn ein Prozess jeden Monat, jede Woche oder sogar jede Minute ausgeführt werden muss, können Sie diese Aufgabe planen. Lokale Werkzeuge können <A href="https://pro.arcgis.com/en/pro-app/latest/help/analysis/geoprocessing/basics/schedule-geoprocessing-tools.htm" target="_blank" rel="noopener nofollow noreferrer">über die ArcGIS Pro-Oberfläche geplant werden</A>. Sie können auch Notebooks planen lassen, die in <A href="https://enterprise.arcgis.com/en/notebook/10.9.1/use/windows/prepare-a-notebook-for-automated-execution.htm" target="_blank" rel="noopener nofollow noreferrer">ArcGIS Notebook Server</A> oder in <A href="https://doc.arcgis.com/en/arcgis-online/create-maps/prepare-a-notebook-for-automated-execution.htm" target="_blank" rel="noopener nofollow noreferrer">ArcGIS Online</A> ausgeführt werden.<\/P><P><STRONG>Legen Sie <A href="https://pro.arcgis.com/en/pro-app/latest/arcpy/classes/env.htm" target="_blank" rel="noopener nofollow noreferrer">Umgebungsvariablen</A> fest, um zu steuern, wie arcpy Geoverarbeitungswerkzeuge arbeiten<\/STRONG><\/P><P>Wenn Sie einen Arbeitsbereich festlegen müssen, sicherstellen wollen, dass Ausgaben überschrieben werden können, eine Ausgabe-Raumbezugssystemspezifizieren oder eine andere Geoverarbeitungsumgebungsvariable setzen möchten, können Sie diese mit der <A href="https://pro.arcgis.com/en/pro-app/latest/arcpy/classes/env.htm" target="_blank" rel="noopener nofollow noreferrer">env-Klasse</A> in ArcPy deklarieren. Nicht jedes Werkzeug berücksichtigt jede Umgebungsvariable; prüfen Sie daher unbedingt die spezifische Dokumentation für dieses Werkzeug, um zu sehen, welche Umgebungen es unterstützt.<\/P><P><STRONG>Verwenden Sie Variablen für Dateipfade; codieren Sie sie nicht fest in Funktionsparameter.<\/STRONG><\/P><P>Dateipfade sind lang, schwer lesbar und spiegeln oft nicht den Zweck oder die Bedeutung der Daten wider, die sie repräsentieren. Indem Sie sie Variablennamen zuweisen, können Sie den Verweis auf Daten am Pfad vereinfachen und den Daten einen Namen geben, der den richtigen Kontext für die Daten bietet.<\/P><P><STRONG>Verwenden Sie die Describe-Funktion, um Informationen über ein Datenelement zu erhalten.<\/STRONG><\/P><P>In der Benutzeroberfläche können Sie normalerweise mit der rechten Maustaste klicken und Eigenschaften auswählen, wenn Sie Informationen über ein Datenelement erhalten möchten. In einem Skript können Sie jedoch nichts mit der rechten Maustaste anklicken. Die Describe-Funktion kann ein Objekt erstellen, das alle Eigenschaften dieses Datenelements enthält. Diese Eigenschaften können im Skript abgerufen und verwendet werden. <\/P><P> <\/P><pre class="lia-code-sample language-python"><code>import pandas as pd
import arcpy
# ArcPy-Werkzeuge berücksichtigen die Arbeitsbereichsumgebung; pandas jedoch nicht
# Verwenden Sie Describe zum Extrahieren des vollständigen Dateipfads eines Elements
arcpy.env.workspace = r"C:\Data"
delays = "AA_delays_jan_2023.csv"
desc = arcpy.Describe(delays)
delays_df = pd.read_csv(desc.catalogPath)<\/code><\/pre><P> <\/P><P><STRONG>Verwenden Sie die pandas-Bibliothek zur tabellarischen Datenmanipulation.<\/STRONG><\/P><P>Das Einlesen von Tabellen oder Feature-Classes in ein pandas DataFrame ermöglicht es Ihnen, die leistungsstarken Werkzeuge dieser Bibliothek zum Bereinigen, Zusammenfassen, Gruppieren und Aggregieren Ihrer Daten (und mehr!) zu verwenden. Die Spatially Enabled DataFrame-Erweiterung für pandas wurde von der ArcGIS API for Python erstellt und ermöglicht es Ihnen, die Standard-pandas-Werkzeuge mit zusätzlicher räumlicher Funktionalität für geografische Daten zu kombinieren.<\/P><P> <\/P><pre class="lia-code-sample language-python"><code>delays_df.fillna(0, inplace=True)
airport_group = delays_df.groupby(['ORIGIN_AIRPORT_SEQ_ID'])
delays_by_airport_df = airport_group.agg({'WEATHER_DELAY': 'mean'})<\/code><\/pre><P> <\/P><P><STRONG>Koppeln (Join) von nicht-räumlichen Daten mit räumlichen Daten zur Nutzung räumlicher Analysewerkzeuge.<\/STRONG><\/P><P>Datenmengen, mit denen Sie arbeiten werden oft implizit räumlich sein aber keine tatsächliche Geometrie besitzen. Zum Beispiel Daten über einen bekannten Ort oder Daten mit Adressen statt Koordinaten. Diese Datensätze können in Ihre räumliche Analyse eingebunden werden wenn sie mit Geometrien dieser Orte mittels Werkzeugen wie Join, Spatial Join oder Geocoding verknüpft werden können. Wenn Sie ein Spatially Enabled DataFrame haben, können sie die merge-Funktion in pandas verwenden um räumliche und nicht-räumliche Daten in einem neuen Spatially Enabled DataFrame zusammenzuführen.<\/P><P> <\/PAKEDPRE class=\"lia-code-sample language-c\"><code>airports_sdf = pd.DataFrame.spatial.from_featureclass(airports_fc)
airport_delays_sdf = airports_sdf.merge(
right=delays_by_airport_df,
how='inner',
left_on='AIRPORT_SEQ_ID',
right_on='ORIGIN_AIRPORT_SEQ_ID'
)<\/code></pre></p>
<p> </p>
<p>
<strong>
Spatially Enabled DataFrames kf6nnen Eingaben ffcr viele Geoverarbeitungswerkzeuge sein.
</strong>
</p>
<p>
Obwohl ein DataFrame keine Feature-Class ist,
kf6nnen sie es ffcr viele Werkzeuge als Feature-Class behandeln.
Das ist nfctzlich,
da sie das DataFrame nicht erst exportieren mfcssen,
um weitere Verarbeitungsschritte durchzuffchren.
</p>
<p> </p>
<pre class=\"lia-code-sample language-python\"><code># Spatially join a DataFrame to a feature class
arcpy.analysis.SpatialJoin(
airport_delays_sdf,
climate_data,
delays_by_airport_weather,
match_option=\"CLOSEST\"
)
Verwenden sie Variablen um es einfacher, Geoverarbeitungswerkzeuge miteinander zu verketten.<\/STRONG><\/P>Bei komplexen Analysen möchten Sie oft die Ausgabe eines Werkzeugs als Eingabe für ein anderes Werkzeug verwenden. Variablen erleichtern das Schreiben flexibler Codes, da Sie den Wert der Variable ändern können, ohne den gesamten von Ihnen geschriebenen Geoverarbeitungswerkzeug-Code anpassen zu müssen. <\/P> <\/P># Räumliches Verbinden eines DataFrame mit einer Feature-Class
arcpy.analysis.SpatialJoin(
airport_delays_sdf,
climate_data,
delays_by_airport_weather,
match_option="CLOSEST"
)
# Übergabe der Ausgabe von Spatial Join als Eingabe für GLR
arcpy.GeneralizedLinearRegression_stats(
in_features=delays_by_airport_weather,
dependent_variable="WEATHER_DELAY",
explanatory_variables= ["Mean_T_f_01_Jan", "Mean_mmPr_01_Jan"],
model_type="CONTINUOUS",
output_features="delay_climate_glr",
)<\/code><\/pre> <\/P>Verwenden Sie Variablen, um das Iterieren und Experimentieren mit Parameterwerten zu erleichtern.<\/STRONG><\/P>Oft möchten Sie bei einer komplexen Aufgabe verschiedene Werte für einige Parameter ausprobieren. Oder Sie möchten diese Parameter benutzerdefiniert machen, damit das Skript unterschiedliche Benutzereingaben verarbeiten kann. Das harte Kodieren der Werte in die Parameter erschwert dies. Die Zuweisung von Variablen zu diesen Werten und deren Herausnahme aus dem Funktionsaufruf macht es einfacher.<\/P> <\/P># Werte aus dem Funktionsaufruf herausnehmen
dependent_variable = "WEATHER_DELAY"
explanatory_variables = [
"Mean_T_f_01_Jan",
"Mean_mmPr_01_Jan"
]
arcpy.GeneralizedLinearRegression_stats(
in_features=delays_by_airport_weather,
dependent_variable=dependent_variable,
explanatory_variables=explanatory_variables,
model_type="CONTINUOUS",
output_features=delay_climate_glr
)<\/code><\/pre> <\/P>Lernen Sie die Produktivitätskürzel Ihrer Entwicklungsumgebung kennen<\/STRONG><\/P>Sie kennen wahrscheinlich Werkzeuge wie Strg+C zum Kopieren oder Strg+Z zum Rückgängig machen. Verschiedene Entwicklungsumgebungen haben auch eigene Tastenkombinationen und Makros, die Ihre Produktivität steigern. Es kann einige Zeit dauern, diese Kürzel zu lernen, aber je mehr Code Sie schreiben, desto mehr Zeit sparen Sie letztlich durch deren Nutzung. In einer Notebook-Umgebung können Sie auf die Befehlsübersicht rechts in der Symbolleiste klicken, um alle Kürzel zu sehen.<\/P>Wenn Sie einen frustrierenden Fehler erhalten, legen Sie eine Pause ein.<\/STRONG><\/P>Die mit Abstand beste Debugging-Strategie ist eine Pause. Machen Sie einen Spaziergang. Trinken Sie etwas Wasser. Arbeiten Sie an etwas anderem. Gehen Sie schlafen. Wenn Sie zum Problem zurückkehren, haben Sie oft eine andere Perspektive, die Ihnen hilft, das Problem zu lösen. Wenn Sie wütend oder frustriert werden, wissen Sie, dass es Zeit für eine Pause ist.<\/P>Holen Sie sich einen Partner zur Hilfe.<\/STRONG><\/P>Die zweitwichtigste Debugging-Strategie ist es, um Hilfe zu bitten. Versuchen Sie zunächst einige Zeit, das Problem selbst zu lösen, aber behalten Sie das Problem nicht ewig für sich. Manchmal erkennt ein Partner sehr schnell ein Problem, das Ihnen entgangen ist. Und wenn Ihr Partner ein Problem hat, kann er sich an Sie wenden.<\/P>Beginnen Sie am Ende der Fehlermeldung.<\/STRONG><\/P>Eine Fehlermeldung ist kein Roman. Lesen Sie sie nicht zum Vergnügen von Anfang bis Ende. Es ist ein Krimi. Springen Sie ans Ende, um den Schuldigen zu finden. Die letzten Zeilen einer Fehlermeldung sind meist am hilfreichsten.<\/P>Erfolg beim Debuggen bedeutet, einen anderen Fehler als zuvor zu erhalten.<\/STRONG><\/P>Dies ist ein wichtiger Tipp zur Steuerung Ihres emotionalen Zustands während einer Debugging-Sitzung. Wenn Sie Erfolg als Perfektion Ihres Codes definieren, werden Sie nie gewinnen. Denn Code, der etwas Interessantes tut, ist immer unvollkommen. Aber wenn Sie Erfolg als schrittweises Annähern an Perfektion sehen, werden Sie viele Erfolge erleben. <\/P>Verwenden Sie print-Anweisungen, um Werte und Datentypen zu überprüfen.<\/STRONG><\/P>Python-Variablen können Werte und sogar Datentypen ändern. Das macht es extrem flexibel, aber diese Flexibilität ist auch Quelle vieler Fehler. Der einfachste Weg zu prüfen, ob eine Variable den richtigen Wert oder Typ hat, ist sie auszugeben.<\/P> <\/P># Ausgabe des Werts von csv_list zur Überprüfung
arcpy.env.workspace = r"C:\LTS"
csv_list = arcpy.ListFiles("*.csv")
print(csv_list)<\/code><\/pre> <\/P>Falsche Dateipfade sind eine häufige Fehlerquelle.<\/STRONG><\/P>Kopieren/Einfügen von Dateipfaden kann Probleme durch Tippfehler reduzieren. Aber man kann trotzdem den falschen Pfad kopieren. Oder jemand anderes verwendet Ihr Skript und hat die Daten nicht am gleichen Pfad wie im Skript fest kodiert. Wenn es Probleme beim Zugriff oder Laden von Daten gibt, sollten Dateipfade als Erstes überprüft werden.<\/P>Tippfehler sind eine weitere häufige Fehlerquelle.<\/STRONG><\/P>Eine lustige Sache am menschlichen Gehirn ist: Man weiß was man tippen wollte und sieht deshalb das Gewollte statt das Getippte. Dateipfade, lange Funktionsnamen oder Sonderzeichen sind häufige Quellen für Tippfehler. Tippfehler zu finden ist ein guter Grund für einen Partner zur Hilfe – denn der sieht nur das tatsächlich Getippte.<\/P>Code-Vervollständigung kann Tippfehler vermeiden helfen.<\/STRONG><\/P>Eine IDE verfügt über ausgeklügelte Code-Vervollständigungswerkzeuge, die Ihnen helfen können, den richtigen Funktions- oder Parameternamen zu finden. Es spart nicht nur Zeit durch intensive Nutzung der Autovervollständigung, sondern reduziert auch drastisch das Risiko falscher Eingaben. Diese Werkzeuge sollten Sie als Erstes üben, um Ihre Entwicklungsumgebung voll auszunutzen.<\/P>Python ergänzt Ihre Fachkenntnisse; es ersetzt sie nicht.<\/STRONG><\/P>Perfekter Code ohne Fehler, der aber das falsche Problem löst, ist wertlos. Ihre Fachkenntnisse in Klimatologie, Demografie, Verkehr oder einem anderen Bereich mit räumlichen Daten sind enorm wichtig. Python ist ein zusätzliches Werkzeug zur Multiplikation des Werts dieser Expertise.<\/P>Zusätzliche Ressourcen<\/STRONG><\/P>Für weiterführende Python-Schulungen besuchen Sie den Kurs Creating Python Scripts for ArcGIS von Esri: https:\/\/go.esri.com\/python-course<\/A>.<\/SPAN><\/SPAN><\/LI>Stellen und beantworten Sie Fragen in den Esri Communities für Python\/rcPy<\/A> und die ArcGIS API for Python<\/A>. <\/SPAN><\/SPAN><\/LI><\/UL>