Eingabe- und Ausgabedatentypen

Wie im Abschnitt Die wichtigsten Konzepte für Geoverarbeitungs-Services erläutert, können nur bestimmte Datentypen als Eingabe- und Ausgabeparameter für Geoverarbeitungs-Services verwendet werden.

HinweisHinweis:

Weil Prozesse in einem veröffentlichten Modell oder Skript auf dem Server ausgeführt werden, auf dem alle Datentypen verfügbar sind, können Sie für Modell- oder Skriptprozesse jeden Datentyp verwenden. Die Einschränkungen gelten nur für die Datentypen von Eingabe- und Ausgabeparametern.

Eingabe-/Ausgabedatentypen und Modellprozesse

Es gibt vier Ebenen der Unterstützung von Datentypen:

Modelle und Skripte, die in ArcGIS Desktop ausgeführt werden können, müssen möglicherweise so geändert werden, dass sie nur unterstützte Eingabe- und Ausgabedatentypen verwenden, bevor sie in ArcGIS Server veröffentlicht werden können.

Eingabedatentypen

Die folgende Tabelle bietet einen Überblick über die wichtigsten Eingabeparameter-Datentypen für die drei Clients.

Eingabeparameter-Datentyp

Für ArcGIS Desktop-Clients unterstützt?

Für ArcGIS Explorer-Client unterstützt?

Für Webanwendungs-Clients unterstützt?

Feature-Set

Ja

Ja

Ja

Datensatz

Ja

Ja

Ja

Feature-Class

Nein (Jedoch werden Feature-Class-Eingaben mit dem Datentyp "Feature-Set" indirekt unterstützt.)

Nein

Nein

Tabelle

Nein (Jedoch werden Tabelleneingaben mit dem Datentyp "Recordset" indirekt unterstützt.)

Nein

Nein

Raster

Ja

Nein

Nein

Standardtypen (z. B. "Long", "Double", "Boolean", "Date", "Zeichenfolge") und "Lineare Einheit" (z. B. "1000 Meter")

Ja

Ja

Ja

Datei (z. B. eine ZIP- oder XML- Datei)

Ja

Ja

Ja

Layer (beliebiger Typ von Layer, z. B. Feature-Layer, Raster-Layer, Network Analyst-Layer)

Nur Layer im Karten-Service des Ergebnisses oder Quellkartendokument

Nur Layer im Karten-Service des Ergebnisses oder Quellkartendokument

Nur Layer im Karten-Service des Ergebnisses oder Quellkartendokument

Eingabetypen für Geoverarbeitungs-Services

Bei allen Eingabedatentypen, die in obiger Liste nicht enthalten sind, tritt eines der folgenden beiden Ereignisse ein, wenn Sie das Modell oder Skript veröffentlichen:

Feature-Classes und Tabellen

Die Datentypen "Feature-Class" und "Tabelle" werden als Eingabeparameter nicht unterstützt, weil sie auf umfangreichen Softwarebibliotheken basieren, die nicht für kompakte Clients, z. B. ArcGIS Explorer und Webanwendungen, installiert werden können. Aus diesem Grund sind für die Geoverarbeitung zwei kompakte Datentypen, Feature-Set und Recordset, verfügbar, die Sie anstelle der Datentypen "Feature-Class" und "Tabelle" verwenden können.

Mithilfe von Feature-Sets können alle Web-Clients Features auf einer Karte interaktiv digitalisieren. In ArcGIS Desktop können Sie außerdem mit dem Datentyp "Feature-Set" eine vorhandene Feature-Class eingeben (siehe Abbildung unten). Feature-Classes sind in ArcGIS Desktop zulässig, weil die erforderlichen Softwarebibliotheken verfügbar sind. Ebenso können alle Clients mit Recordsets interaktiv Tabellendatensätze erstellen, und in ArcGIS Desktop können Sie außerdem eine vorhandene Tabelle angeben.

Für Feature-Sets und Recordsets ist eine Feature-Class zulässig

Raster-Datasets

Geoverarbeitungs-Services mit Raster-Dataset-Eingaben können nur auf ArcGIS Desktop-Clients ausgeführt werden. Auf einem ArcGIS Explorer-Client kann der Service nicht als Task hinzugefügt werden. In Webanwendungen gibt der Service einen Fehler zurück.

Ausgabedatentypen

Die folgende Tabelle bietet einen Überblick über die wichtigsten Ausgabeparameter-Datentypen für die drei Clients. Unter der Tabelle befinden sich Hinweise zu den einzelnen Datentypen.

Ausgabeparameter-Datentyp

Für ArcGIS Desktop-Clients unterstützt?

Für ArcGIS Explorer-Client unterstützt?

Für Webanwendungs-Clients unterstützt?

Feature-Class

Ja

Ja

Ja

Feature-Layer

Ja

Ja

Ja

Raster

Ja

Nein. Kann nur mit einem Karten-Service des Ergebnisses angezeigt werden.

Nein. Kann nur mit einem Karten-Service des Ergebnisses angezeigt werden.

Raster-Layer

Ja

Nein

Nein

Geodataset (keine Feature-Class und kein Raster)

Nein. Kann nur mit einem Karten-Service des Ergebnisses angezeigt werden.

Nein. Kann nur mit einem Karten-Service des Ergebnisses angezeigt werden.

Nein. Kann nur mit einem Karten-Service des Ergebnisses angezeigt werden.

Tabelle

Ja

Nein (Services mit einem Ausgabeparameter vom Datentyp "Tabelle" werden in der Liste verfügbarer Tasks nicht angezeigt.)

Ja

Standardtypen (z. B. "Long", "Double", "Boolean", "Date", "Zeichenfolge") und "Lineare Einheit" (z. B. "1000 Meter")

Ja. Wird im Ergebnis des Service im Fenster Ergebnisse angezeigt.

Ja (wird im Fenster "Task-Ergebnis" angezeigt)

Ja

Datei

Ja

Ja

Ja

Ausgabedaten

Bei allen Datentypen, die in obiger Liste nicht enthalten sind, tritt eines der folgenden beiden Ereignisse ein, wenn Sie das Modell oder Skript veröffentlichen:

HinweisHinweis:

Wenn Sie die Ausgabedaten mit einem Karten-Service des Ergebnisses darstellen, kann der Task ein beliebiges Geodataset ausgeben, da der Karten-Service des Ergebnisses das Geodataset darstellt und eine Karte zurück an den Client sendet (statt das Datenset selbst).

Feature-Class

Der Datentyp "Feature-Class" wird als Ausgabedatentyp unterstützt. Wenn Sie ein Modell oder Skript veröffentlichen, wird das Werkzeug überprüft, und wenn eine Ausgabe-Feature-Class gefunden wird, wird sie in ein Ausgabe-Feature-Set umgewandelt, welches zurück auf den Client übertragen wird. Die Umwandlung erfolgt im Hintergrund. Das Modell oder Skript bleibt unverändert. Dies trifft nur für Ausgabe-Feature-Classes zu, weil die Umwandlung auf dem Server erfolgt, der über alle für die Umwandlung erforderlichen Softwarebibliotheken verfügt. Streng genommen wird daher die Ausgabe von Feature-Classes nicht unterstützt. Sie sind für die Ausgabe zulässig, weil sie von ArcGIS Server in den unterstützten Datentyp "Feature-Set" umgewandelt werden können.

Feature-Layer

Ein Feature-Layer verweist auf eine Feature-Class auf der Festplatte und unterstützt eine Reihe ausgewählter Features, die das Ergebnis einer Attributabfrage oder räumlichen Abfrage sind. Sie erstellen Feature-Layer mithilfe des Werkzeugs Feature-Layer erstellen und führen Abfragen mit den Werkzeugen Layer nach Attributen auswählen und Layer lagebezogen auswählen aus. Geoverarbeitungs-Tasks geben nicht selten Feature-Layer aus, die eine Auswahl enthalten.

Wenn ArcGIS Server einen Ausgabe-Feature-Layer erkennt, werden die ausgewählten Features in eine Feature-Class konvertiert, und nur die ausgewählten Features werden zurück auf den Client übertragen.

HinweisHinweis:

Ausgabe-Feature-Layer können in Karten-Services des Ergebnisses nicht verwendet werden.

Wenn Sie Karten-Services des Ergebnisses verwenden, muss beachtet werden, dass zwei Services vorhanden sind – der Geoverarbeitungs-Service und der Karten-Service des Ergebnisses. Diese beiden Services werden unabhängig voneinander ausgeführt. Beim Ausführen des Tasks führt ArcGIS Server zunächst den Geoverarbeitungs-Task und dann den Karten-Service des Ergebnisses aus, um die Ausgabe des Geoverarbeitungs-Services darzustellen. Feature-Layer sind temporäre Objekte, die für die Dauer der Task-Ausführung im Arbeitsspeicher vorhanden sind. Nach Abschluss des Tasks werden die In-Memory-Feature-Layer entfernt. Wenn der Karten-Service des Ergebnisses auf dieselbe Feature-Class im Layer verweist, sind beim Darstellen durch den Karten-Service alle Informationen zu den ausgewählten Features (d. h. das Ergebnis des Tasks) nicht mehr vorhanden, und der Karten-Service des Ergebnisses stellt alle Features dar. Wenn ein Karten-Service ausgewählte Features in einem Layer darstellen soll, müssen Sie zunächst die ausgewählten Features mit dem Werkzeug Features kopieren in einer Feature-Class speichern und dabei den Feature-Layer als Eingabe verwenden. Mit "Features kopieren" werden nur die ausgewählten Features im Layer kopiert. Anschließend können Sie die kopierten Features mit einem Karten-Service des Ergebnisses darstellen.

Raster-Datasets

Raster-Datasets werden nur für ArcGIS Desktop-Clients als Ausgabe unterstützt.

Raster-Layer

Raster-Layer können Sie wie Feature-Layer nur auf ArcGIS Desktop-Clients ausgeben. Wenn ArcGIS Server einen Ausgabe-Raster-Layer erkennt, wird das Raster zurück auf den Client übertragen. Ausgabe-Raster-Layer können in Karten-Services des Ergebnisses aus demselben Grund nicht verwendet werden, aus dem Feature-Layer nicht verwendet werden können (siehe oben).

Andere Layer

Es wird nur die Ausgabe von Feature-Layern und Raster-Layern unterstützt (und Raster-Layer werden, wie erwähnt, nur für ArcGIS Desktop-Clients unterstützt). Alle anderen Arten von Layern, z. B. NetCDF-Layer, Netzwerkanalyse-Layer und Geostatistical Analyst-Layer, werden nicht unterstützt.

Andere Geodatasets

Bei Ausgabe-Geodataset-Datentypen, außer "Feature-Class" und "Raster" (z. B. "TIN" oder "Terrain"), können die Daten nicht zurück auf den Client übertragen werden. Jedoch kann der Geoverarbeitungs-Service über einen Karten-Service des Ergebnisses zum Anzeigen der Daten verfügen, und das Ergebnis des Geoverarbeitungs-Services ist ein Karten-Service-Layer, der auf jedem Client dargestellt werden kann.

Tabelle

Der Datentyp "Tabelle" wird wie der Datentyp "Feature-Class" ebenfalls unterstützt. Er wird in ein Recordset umgewandelt, um zurück auf den Client übertragen zu werden.

Strategien für nicht unterstützte Datentypen

Wenn das zu veröffentlichende Modell oder Skript nicht unterstützte Eingabe- oder Ausgabedatentypen aufweist oder wenn der Datentyp in eine Zeichenfolge konvertiert wird, müssen Sie das Modell bzw. Skript ändern, sodass nur die unterstützten Eingabe- und Ausgabedatentypen verwendet werden. Sie können zwei allgemeine Strategien nutzen:

Verwenden der Zeichenfolgendarstellung

Jeder Datentyp verfügt über eine Zeichenfolgendarstellung. Weitere Informationen zu Datenzeichenfolgendarstellungen finden Sie unter Datentypen für Parameter für Geoverarbeitungswerkzeuge.

Wenn eine Eingabe des Modells von einem Datentyp ist, der beim Veröffentlichen auf ArcGIS Server in eine Zeichenfolge konvertiert wird, können Sie das Modell ändern, sodass Zeichenfolgeneingaben akzeptiert werden. Anschließend kann die Zeichenfolge in den gewünschten Datentyp konvertiert werden. In der folgenden Darstellung wird veranschaulicht, wie Sie diese Konvertierung durchführen. In dem Beispiel wird zunächst ein Wert eines Datentyps in eine Zeichenfolge konvertiert. Sie müssen für das Modell umgekehrt vorgehen, doch wird hierdurch ein wichtiges Konzept erläutert: Alle Datentypen verfügen über eine Zeichenfolgendarstellung. Im zweiten Teil des Beispiels wird das Konvertieren einer Zeichenfolge in einen Datentypwert veranschaulicht. Dies ist die Methode, die Sie für den Service verwenden.

Für die Darstellung wird der Datentyp "Flächeneinheit" verwendet.

Im ersten Teil der Darstellung wird das Zeichenfolgenformat einer Variablen vom Datentyp "Flächeneinheit" bestimmt.

  1. Erstellen Sie ein neues Modell.
  2. Erstellen Sie eine Variable mit dem Datentyp "Flächeneinheit", und benennen Sie sie in Input AU um.
  3. Fügen Sie das Werkzeug Wert berechnen hinzu.
  4. Doppelklicken Sie auf Wert berechnen, um das zugehörige Dialogfeld zu öffnen. Geben Sie für den Parameter Ausdruck den Text %Input AU% ein. Hierdurch erhält Wert berechnen die Anweisung, den Inhalt der Variablen Input AU zu lesen. Wählen Sie "Zeichenfolge" für den Parameter "Datentyp" aus (siehe Abbildung unten). Bestimmen des Zeichenfolgenformats eines Datentyps
  5. Optional können Sie die Variable Input AU als Vorbedingung für Wert berechnen festlegen. Eine Variable als Vorbedingung bedeutet, dass die Variable einen Wert enthalten muss, damit das Werkzeug ausgeführt wird. Vorbedingungskonnektoren werden als gestrichelte Linien angezeigt (siehe Abbildung unten).
  6. Doppelklicken Sie auf die Variable Input AU, und legen Sie ihren Wert auf 1000 Square Meters fest.
  7. Klicken Sie auf OK.
  8. Führen Sie das Modell in ModelBuilder aus. Doppelklicken Sie auf output_value, und überprüfen Sie den Wert. Der Wert ist die Zeichenfolgendarstellung von "Flächeneinheit" (siehe Abbildung unten). Beachten Sie, dass in der Zeichenfolgendarstellung kein Leerzeichen zwischen Square und Meters vorhanden ist.
    Bestimmen des Zeichenfolgenformats von "1000 Square Meters"

Wie oben veranschaulicht, verfügen alle Datentypenwerte über eine Zeichenfolgendarstellung. Mit Wert berechnen können Sie die Zeichenfolgendarstellung von jedem Datentyp anzeigen. Beispielsweise können Sie in Wert berechnen eine Variable vom Datentyp "Raumbezug" eingeben, um ihre Zeichenfolgendarstellung anzuzeigen.

In den folgenden Schritten wird gezeigt, wie Sie eine Zeichenfolgenvariable in einen anderen Datentyp konvertieren. Die Schritte sind dieselben wie weiter oben, mit der Ausnahme, dass die Eingabevariable vom Datentyp "Zeichenfolge" und die Ausgabe vom Datentyp "Flächeneinheit" ist.

  1. Erstellen Sie ein neues Modell.
  2. Erstellen Sie eine Variable mit dem Datentyp "Zeichenfolge", und benennen Sie sie in Input AU String um (siehe Abbildung unten).
  3. Fügen Sie das Werkzeug Wert berechnen hinzu.
  4. Doppelklicken Sie auf Wert berechnen, um das zugehörige Dialogfeld zu öffnen. Geben Sie für den Parameter Ausdruck den Text %Input AU String% ein. Hierdurch erhält Wert berechnen die Anweisung, den Inhalt der Variablen Input AU String zu lesen.

    Wählen Sie "Flächeneinheit" für den Parameter "Datentyp" aus (siehe Abbildung unten).

    Konvertieren einer Zeichenfolge in Flächeneinheit

  5. Optional können Sie die Variable Input AU String als Vorbedingung für Wert berechnen festlegen. Eine Variable als Vorbedingung bedeutet, dass die Variable einen Wert enthalten muss, damit das Werkzeug ausgeführt wird. Vorbedingungskonnektoren werden als gestrichelte Linien angezeigt (siehe Abbildung unten).
  6. Doppelklicken Sie auf die Variable Input AU String, und legen Sie ihren Wert auf 1000 squaremeters fest.
  7. Klicken Sie auf OK.
  8. Führen Sie das Modell in ModelBuilder aus. Doppelklicken Sie auf output_value, und überprüfen Sie den Wert. Der Wert ist eine Flächeneinheit (siehe Abbildung unten). Der Datentyp von output_value ist "Beliebiger Wert" und nicht "Flächeneinheit". "Beliebiger Wert" ist ein generischer Datentyp, der mit jedem Werkzeugparameter verbunden werden kann.
    Konvertieren einer Zeichenfolge in Flächeneinheit

Dieses Konvertierungsverfahren wird auch im Modell "Select Layer By Area" unter Beispiel für GP-Service: Auswählen von Daten veranschaulicht.

In der Abbildung unten wird ein Modell dargestellt, in dem das Werkzeug Gebäude vereinfachen verwendet wird, das eine Flächeneinheit als Eingabe akzeptiert. Weil "Flächeneinheit" als Eingabeparameter-Datentyp für Geoverarbeitungs-Services nicht unterstützt wird, ist der Eingabeparameter Minimumfläche des Modells vom Datentyp "Zeichenfolge", der mit der oben beschriebenen Methode in "Flächeneinheit" konvertiert wird. Die Variable output_value wird mithilfe des Werkzeugs "Verbindung hinzufügen" von ModelBuilder mit dem Parameter Minimumfläche von Gebäude vereinfachen verbunden.Verbindung hinzufügen).

Verwenden von "Wert berechnen" in einem Geoverarbeitungs-Service

Dieses Verfahren erfordert, dass der Benutzer des Werkzeugs die richtige Zeichenfolge eingibt. Wenn beispielsweise 1000 square meters (statt 1000 squaremeters) in Wert berechnen eingegeben wird, ist die resultierende Flächeneinheit leer. Die Groß-/Kleinschreibung wird nicht berücksichtigt, d. h., SquareMETERS und squareMeters sind äquivalent.

Wenn das Konvertieren einer Zeichenfolge in einen Datentyp zusätzliche Überprüfungen auf Fehler enthalten soll, können Sie ein Skriptwerkzeug für die Datentypkonvertierung erstellen und dem Skript Fehlerüberprüfungsfunktionen hinzufügen. Im folgenden Python-Code wird das Grundkonzept veranschaulicht.

import arcpy

# Get the string and call SetParameterAsText on the output
#
in_string = arcpy.GetParameterAsText(0)

# Do error checking/conversion here, converting "meters squared" 
#   to "squaremeters" for example

# Set the output parameter
#
arcpy.SetParameterAsText(1, in_string)

Wie unten dargestellt, ist der Eingabedatentyp des Werkzeugs "Zeichenfolge", und der Ausgabedatentyp ist der Zieldatentyp (z. B. "Flächeneinheit"). Der Ausgabeparametertyp ist "Abgeleitet".

Skriptwerkzeugparameter zum Konvertieren von Datentypen

Konvertieren von Daten in eine Datei

Für ordnerbasierte Workspaces (File-Geodatabase, Coverages und Shapefiles) können Sie den Benutzer anweisen, mit dem ZIP-Komprimierungsprogramm eine ZIP-Datei aus einem Workspace zu erstellen. Anschließend kann die ZIP-Datei in das Werkzeug eingegeben werden. Sie können im Geoverarbeitungs-Service das Dekomprimierungsskript (siehe unten) verwenden, um die Datei in einen Workspace zu dekomprimieren und damit weiter zu arbeiten. Dasselbe gilt auch für Ausgaben: Sie können eine .zip-Datei aus einem Workspace erstellen und diese als Ausgabe verwenden.

Im Folgenden finden Sie Links zu den beiden Python-Skripten zip.py und unzip.py.

  • Das Skript zip.py akzeptiert einen Eingabe-Workspace (File-Geodatabase, einen Ordner mit Coverages oder mit Shapefiles, also alle Formate außer einer Personal- oder Enterprise-Geodatabase) sowie einen Ausgabedateinamen und erstellt eine komprimierte ZIP-Datei. Fügen Sie das Suffix .zip an den Ausgabedateiname an, da das Skript dies nicht automatisch durchführt.

    Die Parametereigenschaften lauten folgendermaßen:

    Beschriftung

    Datentyp

    Type

    Richtung

    Eingabe-Workspace

    Workspace

    Erforderlich

    Eingabe

    Ausgabedatei

    Datei

    Erforderlich

    Ausgabe

    Parameter von "Zip.py"

  • Das Skript unzip.py akzeptiert eine ZIP-Datei, einen Ausgabespeicherort (einen vorhandenen Ordner) sowie einen Ausgabenamen (der als neuer Ordner erstellt wird) und schreibt den Inhalt in den neuen Ordner. Wenn die ZIP-Datei eine File-Geodatabase enthält, fügen Sie die Erweiterung .gdb an den Ausgabenamen an.

Beschriftung

Datentyp

Type

Richtung

Eingabe-ZIP-Datei.

Datei

Erforderlich

Eingabe

Ausgabespeicherort

Workspace

Erforderlich

Eingabe

Ausgabename

Zeichenfolge

Erforderlich

Eingabe

Ausgabepfad

Workspace

Abgeleitet

Ausgabe

Eigenschaften von "unzip.py"

Beispiele für die Verwendung der Komprimierungsprogramme finden Sie unter Beispiel für GP-Service: Ausschneiden und senden und unter Beispiel für GP-Service: Bedarfsgesteuerte Daten.

Verwandte Themen


3/6/2012