Verwenden der Umgebungseinstellungen "Aktueller Workspace" und "Scratch-Workspace"

Fast alle Geoverarbeitungswerkzeuge verwenden als Eingabe Datasets und erstellen neue Datasets. Bei der Verwendung von Geoverarbeitungswerkzeugen sollten Sie die Eingabe langer Dataset-Namen vermeiden, wie:

E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst

Die Eingabe eines solchen langen Dataset-Namens ist mühsam, langwierig und fehleranfällig. Daher ermöglicht die Geoverarbeitung das Ziehen von Datasets und Layern in ein Werkzeug-Dialogfeld. Verwenden Sie die Schaltfläche "Durchsuchen" Öffnen , um zu einem Dataset zu navigieren oder einen Layer aus einer Dropdown-Liste auszuwählen. Darüber hinaus wurden zwei Funktionen entwickelt, um die Angabe von Eingabe- und Ausgabe-Datasets viel einfacher zu gestalten: die Umgebungseinstellungen Aktueller Workspace und Scratch-Workspace.

Im Folgenden finden Sie die wichtigsten Punkte zu "Aktueller Workspace" und "Scratch-Workspace":

Festlegen der Umgebungseinstellung für den aktuellen Workspace

Schritte:
  1. Klicken Sie in ArcMap auf Geoverarbeitung > Umgebung. Das Fenster Umgebungseinstellungen wird geöffnet.
  2. Erweitern Sie die Kategorie Workspace und geben Sie den Pfad zum Workspace ein. In der Abbildung unten wird gezeigt, wie der aktuelle Workspace auf D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase festgelegt wird. Der Workspace ist also ein Feature-Dataset innerhalb der Geodatabase.

    Festlegen der Umgebungseinstellung für den aktuellen Workspace

    Sie können den aktuellen Workspace auf einen Systemordner, eine Geodatabase oder ein Feature-Dataset innerhalb einer Geodatabase festlegen.

  3. Klicken Sie auf OK.
  4. Sie können auch zu einer Geodatabase im Fenster Katalog navigieren, klicken Sie anschließend mit der rechten Maustaste auf die Geodatabase und dann auf Als Standard-Geodatabase definieren. Der aktuelle und der Scratch-Workspace werden auf diese Standard-Geodatabase festgelegt.

Es gibt verschiedene Umgebungseinstellungen. Sie können Umgebungen für die Anwendung auf alle Werkzeuge, für die Ausführung eines Werkzeugs, für ein Modell, für einen Modellprozess oder für ein Skript einstellen.

Weitere Informationen zu Umgebungseinstellungen

Verwenden von Basisnamen

Der Vorteil des aktuellen Workspace besteht vor allem darin, dass der Workspace nur einmal festgelegt werden muss und anschließend bei der Angabe von Eingabe- und Ausgabepfaden nur noch der Basisname erforderlich ist. Ein Dataset-Name besteht aus zwei Komponenten: dem Workspace- und dem Basisnamen, die ebenfalls nachfolgend darstellt sind.

Dataset-Name
Der Katalogpfad, der Pfad, der Speicherort und der Dataset-Name. In der Praxis bedeuten all diese Definitionen dasselbe: die zum Angeben eines Datasets verwendete Zeichenfolge.

Verwendungsbeispiele von Basisnamen

In der folgenden Abbildung wird eine Beispiel-Geodatabase dargestellt, die als aktueller Workspace verwendet wird. Der aktuelle Workspace ist festgelegt auf D:\BuildingaGeodatabase\Montgomery.gdb\Landbase.

Inhalte von Montgomery.gdb

Nachdem der Workspace festgelegt wurde, müssen Sie nur noch den Basisnamen eingeben, wenn der Dataset-Name benötigt wird. Das Beispiel unten zeigt die Verwendung des Werkzeugs Ausschneiden.

  • Der Basisname (Blocks) wird mit dem aktuellen Workspace verbunden und bildet den Dataset-Namen (D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks). Der Parameter Eingabe-Features wird dann durch den Dataset-Namen ersetzt.
  • Es wird automatisch ein eindeutiger Ausgabe-Dataset-Name generiert. Der Basisname entspricht dem Eingabebasisnamen (Blocks), an den ein Unterstrich und der Name des Werkzeugs (in diesem Beispiel Ausschneiden) und gegebenenfalls eine Nummer angehängt wird, um sicherzustellen, dass der Name eindeutig ist.
    Eingeben eines Basisnamens für die Eingabe.
  • Wenn Sie den automatisch generierten Ausgabenamen nicht verwenden möchten, können Sie den automatisch generierten Namen löschen und einen Basisnamen eingeben, der zu einem Dataset-Namen erweitert wird, wie nachfolgend dargestellt.

    Verwenden eines Basisnamens für das Ausgabe-Dataset

Nach der Ausführung des Werkzeugs kann es sein, dass sich die Ausgabe nicht dort befindet, wo Sie sie erwartet haben – vielleicht haben Sie bei der Eingabe des Ausgabenamens einen Fehler gemacht, oder Sie haben einfach vergessen, wohin die Ausgabe geschrieben wurde. Öffnen Sie in diesem Fall das Fenster Ergebnisse, es enthält den Datensatz des ausgeführten Werkzeugs, zusammen mit den zugehörigen Eingabe- und Ausgabe-Datasets.

Sie können außerdem einen Basisnamen in der Stapeltabelle verwenden, wie nachfolgend dargestellt.

Verwenden des aktuellen Workspace mit der Stapeltabelle

Weitere Informationen zur Stapelverarbeitung

Anzeigen des Workspace in einem Werkzeugdialogfeld

Wenn Sie den Zeiger über die Schaltfläche "Durchsuchen" Öffnen positionieren, wird der zuletzt durchsuchte Workspace angezeigt, wie nachfolgend dargestellt.

Anzeigen des Workspace zum Durchsuchen in einem Werkzeugdialogfeld

Wenn Sie auf die Schaltfläche "Durchsuchen" klicken, öffnet sich im aktuellen Workspace das Dialogfeld "Durchsuchen".

Aktueller Workspace und Basisname in der Skripterstellung

Im Fenster Python wird in der Umgebungseinstellung für den Workspace der aktuelle Workspace festgelegt. Nachdem der Workspace festgelegt wurde, können Sie den Basisnamen eines beliebigen Datasets im Workspace verwenden, wie nachfolgend dargestellt.

>> import arcpy
>> arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"
>> arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")

Das folgende Beispiel eines Python-Skripts veranschaulicht die Verwendung des Workspace-Befehls:

# Purpose: Determine the type of vegetation within 100 meters of all stream crossings

# Import the ArcPy site-package
import arcpy

try:
    # Set the workspace (to avoid having to type in the full path to the data every time)
    arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"

    # Process: Find all stream crossings (points)
    arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")

    # Process: Buffer all stream crossings by 100 meters
    arcpy.Buffer_analysis("stream_crossings","stream_crossings_100m", "100 meters")

    # Process: Clip the vegetation feature class to stream_crossings_100m
    arcpy.Clip_analysis("vegetation", "stream_crossings_100m", "veg_within_100m_of_crossings")

    # Process: Summarize how much (area) of each type of vegetation is found within 100 meters of the stream crossings
    arcpy.Statistics_analysis("veg_within_100m_of_crossings", "veg_within_100m_of_crossings_stats","shape_area sum","veg_type")

except:
    # If an error occurred while running a tool print the messages
    print arcpy.GetMessages()

Die Umgebungseinstellung für den Scratch-Workspace

Zusätzlich zum aktuellen Workspace ist eine Umgebungseinstellung für den Scratch-Workspace verfügbar. Auf die Einstellungen für den Scratch-Workspace wird genauso zugegriffen und sie werden ebenso festgelegt wie der aktuelle Workspace.

Die Scratch-Workspace-Umgebung ist vor allem für die Verwendung durch ModelBuilder vorgesehen. ModelBuilder benötigt einen Workspace, um Zwischen-Datasets zu schreiben – Datasets, die nach dem Ausführen eines Modells nicht mehr benötigt werden. Er ist zwar vor allem für ModelBuilder vorgesehen, jedoch können Sie ihn auch für Werkzeug-Dialogfelder festlegen. Oder Sie haben den Scratch-Workspace für die Verwendung in ModelBuilder festgelegt und vergessen, ihn vor dem Ausführen eines Werkzeugs mithilfe des Dialogfeldes zurückzusetzen.

Wenn Sie eine Scratch-Workspace-Umgebung festlegen, wird diese von allen Werkzeugen verwendet, um automatisch Ausgabe-Dataset-Namen anstelle des aktuellen Workspace zu generieren, wie nachfolgend dargestellt.

Beispiel von automatisch generierten Ausgaben mithilfe des Scratch-Workspace
AchtungAchtung:

Wenn Sie einen Basisnamen für eine Ausgabe eingeben, wird zur Bildung des Dataset-Namens nicht der Scratch-Workspace, sondern der aktuelle Workspace verwendet.

Jedes Mal, wenn ein Basisname verwendet wird, wird dieser mit dem aktuellen Workspace verbunden und nicht mit dem Scratch-Workspace. Dies ist beim Schreiben von Skripten zu berücksichtigen. Im folgenden Codeausschnitt wird das Ausgabe-Dataset "stream_crossings" in den aktuellen Workspace und nicht in den Scratch-Workspace geschrieben.

arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"
arcpy.env.scratchWorkspace = "c:/projects/Scratch/scratch.gdb"
arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
AchtungAchtung:

Da der Scratch-Workspace für temporäre Daten bestimmt ist, sollte keine ArcSDE-Geodatabase dafür festgelegt werden. Es könnten temporäre Scratch-Daten in eine Enterprise-Geodatabase geschrieben werden, was möglicherweise zu Performance-Einbußen führen kann. Es wird empfohlen, stets eine File-Geodatabase als Scratch-Workspace zu verwenden. Von der Verwendung einer Personal-Geodatabase oder eines Shapefile-Workspace wird abgeraten.

Automatisch generierte Ausgabe-Dataset-Namen

Alle Werkzeuge erstellen automatisch einen Ausgabe-Dataset-Namen. Beim Generieren des Ausgabenamens gelten folgende Regeln:

Verwandte Themen

9/11/2013