- Beispiel: einfaches Angebots- und Nachfragemodell
- Beispiel: weitere Eingabemodi
- Eingabemodi
- Beispiel: Skriptwerkzeug
- Projektdaten und der Datenspeicher
- Einfache Dateneingabe, einfache Datenausgabe
- Zeichnen von Task-Ergebnissen mit einem Karten-Service
- Dokumentieren von Tasks
- Einstellungen für die Geoverarbeitungsumgebung
Um einen Geoverarbeitungsservice zu erstellen, müssen Sie zunächst die Tasks innerhalb des Service erstellen. Beim Erstellen eines Tasks wählen Sie ein Werkzeug aus oder erstellen es, definieren die Eingabe- und Ausgabeparameter des Tasks und geben den Speicherort der vom Task verwendeten Daten an. Diese Schritte werden hier detaillierter dargestellt:
- Wählen Sie ein oder mehrere Geoverarbeitungswerkzeuge aus, die die Tasks in Ihrem Service darstellen sollen. Sie können eines der zahlreichen Systemwerkzeuge von ArcGIS verwenden oder mit ModelBuilder bzw. Python-Skripten eigene Werkzeuge erstellen.
- Sammeln Sie die erforderlichen Eingabedaten zur Ausführung des Werkzeugs. In der Regel sind diese Datasets Layer im Inhaltsverzeichnis von ArcMap.
- Führen Sie das Werkzeug aus, um ein Ergebnis im Fenster Ergebnisse zu erzeugen.
- Definieren Sie die Symbolisierung der Eingabe- und Ausgabe-Datasets, falls erforderlich.
- Geben Sie das Ergebnis als Geoverarbeitungsservice frei. Wenn Sie ein Ergebnis freigeben, verwenden Sie den Service-Editor, um die Eingabemodi der Datasets (siehe unten) zusammen mit anderen Eigenschaften des Service und den zugehörigen Tasks zu definieren.
Beispiel: einfaches Angebots- und Nachfragemodell
Unten sehen Sie ein Beispiel für ein mit ModelBuilder erstelltes Werkzeug, das in einen Task umgewandelt werden soll. Das Modell (und der veröffentlichte Task) entsprechen einem ganz einfachen Angebots- und Nachfrage-Zuordnungsmodell. Ein Satz Punktpositionen stellt das Service-Angebot dar (z. B. Notdienststandorte oder Einzelhandelseinrichtungen), und ein weiterer Satz Punkte stellt den Bedarf dar (z. B. Haushalte oder Unternehmen, die diesen Service nutzen). Weisen Sie die Bedarfspunkte der nächstgelegenen Einrichtung zu, erstellen Sie ein Handelsbereichs-Polygon für jede Einrichtung, und fassen Sie den Bedarf innerhalb des Handelsbereichs der Einrichtung zusammen. Die Ausgabe ist eine Gruppe von Polygonen, jeweils ein Polygon für jede eingegebene Einrichtung mit einem Attribut, das den Gesamtbedarf innerhalb des Polygons enthält.
In dem oben beschriebenen Modell handelt es sich bei den Variablen Facilities, Demand und Output Thiessen Polygons um Modellparameter (neben ihnen ist ein P angegeben). Diese Modellparameter werden zu den Task-Argumenten, die von den Clients Ihres Tasks bereitgestellt werden, wenn sie den Task ausführen.
Modellparameter werden im Werkzeugdialogfeld angezeigt (siehe unten), wenn das Modellwerkzeug über das FensterKatalog in ArcMap geöffnet wird.
Wenn das Modell als Werkzeug ausgeführt wird, wird ein Ergebnis in das Fenster Ergebnisse geschrieben, wie unten dargestellt. Das Ergebnis enthält alle Informationen, die ArcGIS zur Task-Erstellung benötigt:
- der Name und Speicherort der Toolbox und des Werkzeugs, die das Ergebnis erzeugt haben
- die Ausgabe (ThiessenPolys1), die durch Ausführung des Werkzeugs erzeugt wurde
- das Schema (Feature-Typ und Attribute) der Ausgabe
- Die Symbolisierung der Ausgabe. In diesem Beispiel ist die Ausgabesymbolisierung ein abgestufter Farbverlauf basierend auf der Bedarfssumme in jedem Polygon.
- die Werkzeugeingaben (Layer "Fire Stations" und "Hazardous Material Sites")
- Das Schema (Feature-Typ und Attribute) der einzelnen Eingaben. In diesem Beispiel hat "Fire Stations" ein Textattribut: FacilityName. "Hazardous Material Sites" hat ebenfalls ein Attribut: "Demand" vom Typ "Long Integer".
- Die Symbolisierung der Eingabe. Im Beispiel wird der Layer "Fire Stations" mit einem Symbol für Feuerwachen an jedem Standort und "Demand" mit abgestuften Kreisen symbolisiert.
- Umgebungseinstellungen für die Geoverarbeitung, die bei der Ausführung des Werkzeugs verwendet wurden
Ein weiterer wichtiger Aspekt eines Ergebnisses ist, dass es Teil einer ArcMap-Sitzung ist und daher Zugriff auf alle Layer und Tabellen im Inhaltsverzeichnis hat und dass der veröffentlichte Task ebenfalls Zugriff auf diese Layer hat. Das oben dargestellte Inhaltsverzeichnis enthält nur die beiden Eingabe-Layer und die Ausgabe, aber es könnte noch viel mehr Layer enthalten (z. B. einen Layer von Einzelhandelsstandorten), die für Clients des Tasks zur Verfügung gestellt werden können.
Ein Geoverarbeitungsservice und sein erster Task werden durch Rechtsklick auf ein Ergebnis und Auswahl von Freigeben als > Geoverarbeitungsservice erstellt. Daraufhin wird der Assistent Als Service freigeben geöffnet, und nachdem Sie eine Serververbindung ausgewählt und einen Namen für den Service festgelegt haben, öffnet sich der Service-Editor. Im Service-Editor definieren Sie die Eigenschaften und Einstellungen des Service sowie die Eigenschaften für einzelne Task-Parameter. In der Abbildung unten sehen Sie die Einstellung des Eingabemodus des Parameters "Facilities". In diesem Beispiel ist der Eingabemodus auf Benutzerdefinierter Wert festgelegt, was bedeutet, dass der Client eine Gruppe von Punkten mit dem Textattribut "FacilityName" bereitstellen soll.
Der wichtigste Punkt ist hier, dass der Service-Editor die detaillierte Festlegung der Definition von Eingaben und Ausgaben für den Task ermöglicht. Obwohl dies während des Freigabevorgangs erfolgt, kann es sich darauf auswirken, wie Sie das Werkzeug erstellen.
Beispiel: weitere Eingabemodi
Das Werkzeug Near-Tabelle erstellen ist ein Systemwerkzeug, das die nächstgelegenen Features zu den Eingabe-Features berechnet und die Ergebnisse in einer Tabelle zurückgibt. In diesem Beispiel wird Near-Tabelle erstellen verwendet, um alle Grundschulen, Oberschulen, Feuerwachen, Lebensmittel- und Einzelhandelsgeschäfte innerhalb von fünf Meilen um einen Eingabepunkt herum zurückzugeben. In diesem Szenario werden die Eingabepunkte als zum Verkauf stehende Häuser betrachtet – dies ist ein einfacher Service, der Hauskäufern bei der Bewertung der zu verkaufenden Häuser hilft. Alle Dataset-Eingaben sind Layer im Inhaltsverzeichnis von ArcMap.
Wenn das Ergebnis als Geoverarbeitungs-Task freigegeben wird, können die Near-Features eine Auswahlliste nahe gelegener Features zum Durchsuchen sein, wie unten dargestellt. Der Client gibt einen oder mehrere dieser Layer an. Beispielsweise kann sich der Client nur für die nahe gelegenen Oberschulen oder Grundschulen interessieren, für die anderen dagegen nicht.
Alternativ können die Near-Features festgelegt sein (ein Konstanter Wert). In diesem Fall gibt es kein Argument für den Task mehr und hat der Client keine Kontrolle darüber, welche Near-Features zurückgegeben werden. Er erhält immer eine Tabelle aller nahe gelegenen Features.
Eingabemodi
In den oben angegebenen Beispielen haben Sie gesehen, welche wichtige Rolle der Eingabemodus beim Entwerfen und Erstellen von Tasks spielt. Sie legen den Eingabemodus im Service-Editor fest, da dies nur zu den Geoverarbeitungs-Tasks und nicht zum zugrunde liegenden Werkzeug gehört. Es gibt drei Eingabemodi für Eingabe-Features:
- Benutzerdefinierter Wert: Der Client erstellt ein Feature-Set, das über das Internet übertragen und dann vom Task gelesen wird. Wenn ein Benutzerdefinierter Wert angegeben wird, werden der Feature-Typ, die Attribute, der Raumbezug und die Symbolisierung des Eingabe-Layers zusammen mit dem Feature-Set gespeichert. Clients können dieses Schema abrufen und es verwenden, um Features in das Feature-Set zu digitalisieren oder um Features aus einer Datei auf dem Datenträger in das Feature-Set zu laden. Für Eingabetabellen gibt es ein entsprechendes Recordset, in dem das Attributschema der Tabelle gespeichert wird.
- Auswahlliste: Der Client kann die Namen von einem (oder mehreren) der Layer angeben, die Sie in der Liste der Layer aktivieren. Ob der Client einen oder mehrere Layer angeben kann, hängt vom Werkzeug ab. Das oben dargestellte Werkzeug Near-Tabelle erstellen ermöglicht die Eingabe von mehreren Layern. Andere Werkzeuge wie Puffer lassen nur die Auswahl eines Layers aus der Liste zu.
- Konstanter Wert: Der Task verwendet den Wert, den Sie beim Ausführen des Werkzeugs angegeben haben. Konstanter Wert funktioniert genauso wie das Entfernen des Parameters: Der Layer (das Dataset) wird intern vom Task verwendet und dem Client nicht angezeigt.
Beispiel: Skriptwerkzeug
Sie können auch mithilfe eines Skriptwerkzeugs einen Task erstellen. Die Abbildung unten zeigt die Eigenschaftenseite eines Skriptwerkzeugs, das dieselbe Aufgabe wie das oben dargestellte einfache Angebots- und Nachfragemodell erfüllt, nur anhand von Python statt ModelBuilder. Es weist dieselben Parameter wie das Modell auf, und es wird dasselbe Verfahren zur Task-Erstellung verwendet: Ausführen des Werkzeugs, um ein Ergebnis zu erzeugen, und Freigeben des Ergebnisses als Geoverarbeitungsservice.
Projektdaten und der Datenspeicher
Projektdaten werden in der Geoverarbeitung zur Beschreibung von Eingabedaten verwendet, bei denen es sich nicht um einen Parameter handelt. Die Daten werden also nicht vom Benutzer des Werkzeugs oder des Tasks bereitgestellt, sondern intern vom Werkzeug bzw. Task verwendet. Beispielsweise handelt es sich bei der Variable San Francisco Network Dataset im unten angegebenen Modell um Projektdaten, da sie vom Modell verwendet werden, aber nicht als Parameter angezeigt werden. Im Wesentlichen werden die Projektdaten eines Modells als blaues Oval ohne P daneben dargestellt.
Projektdaten können auch in Skripts auftreten, wie Sie in dem Python-Codeausschnitt unten sehen.
import arcpy
# The inputPoints variable is considered to be project data
# since it is not an input parameter.
#
inputPoints = r"c:\data\Toronto\residential.gdb\shelters"
arcpy.Buffer_analysis(inputPoints, 'shelterBuffers', '1500 Meters')
Im Service-Editor entspricht ein Eingabedaten-Parameter mit dem Eingabemodus Konstanter Wert den Projektdaten – die Daten werden vom Werkzeug verwendet, aber nicht als Task-Argument angezeigt. Der Eingabemodus Konstanter Wert ist genauso, als ob Sie das P neben der Variable in ModelBuilder entfernen würden.
Projektdaten sind eine wichtige Überlegung, wenn Sie einen Task erstellen und freigeben, da der Server auf die Projektdaten zugreifen muss, wenn der Task ausgeführt wird. Geoverarbeitungsservices verwenden meist viele verschiedene Daten aus unterschiedlichen Speicherorten. Es kommt durchaus vor, dass Probleme mit dem Service durch Probleme beim Zugriff auf die Projektdaten verursacht werden.
Wenn Sie Ihr Ergebnis veröffentlichen, überprüfen die Veröffentlichungsprozesse alle Modelle und Skripte, die zum Erstellen des Ergebnisses verwendet wurden, und führen eine Projektdatenerkennung durch. Anschließend wird entschieden, wie mit den Daten zu verfahren ist. Es gibt nur zwei Möglichkeiten:
- Wenn die Projektdaten im Datenspeicher des Servers gefunden wurden, verwendet der Veröffentlichungs-Task die Daten im Datenspeicher.
- Wenn die Projektdaten nicht im Datenspeicher des Servers gefunden wurden, werden sie auf den Server kopiert, an einem bekannten Speicherort platziert, auf den vom Server zugegriffen werden kann (das Eingabeverzeichnis des Servers), und der veröffentlichte Task verwendet die kopierten Daten. Die kopierten Daten werden nicht Teil des Datenspeichers auf dem Server. Wenn Sie den Task erneut veröffentlichen, werden die Daten erneut kopiert.
Datenspeicher
Jede ArcGIS Server-Installation enthält einen Datenspeicher. Der Datenspeicher ist eine Möglichkeit für Sie, dem Server eine Liste von Datenspeicherorten zu übergeben, auf die der Server zugreifen kann. Wenn der Server auf die Daten zugreifen kann, werden die auf Ihrem lokalen Computer gefundenen Daten beim Veröffentlichen nicht auf den Server kopiert.
Weitere Informationen über das Registrieren Ihrer Daten bei ArcGIS Server finden Sie hier:
Einfache Dateneingabe, einfache Datenausgabe
Ein GIS-Service muss mit dem einfachsten aller Clients arbeiten: einem Webbrowser, der auf einem Computer ausgeführt wird, der nicht über GIS-Funktionen verfügt. Solche einfachen Clients können nur Pakete einfacher Daten an einen Server senden, z. B. Text, Zahlen, Tabellen und einfache geographische Features sowie deren Attribute. Diese Clients kennen keine erweiterten geographischen Datenrepräsentationen, die Sie in ArcGIS Desktop verwenden, z. B. Netzwerk-Datasets, Topologien, TINs, Beziehungsklassen, geometrische Netzwerke usw. Diese Datasets werden als komplexe Datasets bezeichnet; sie modellieren komplexe Beziehungen zwischen einfachen Features. Im Unterschied zu einfachen Features, Tabellen, Rastern und Dateien können komplexe Datasets nicht über das Internet übertragen werden.
Beachten Sie bei der Task-Erstellung, dass alle Clients, egal ob es sich um Webanwendungen, Explorer for ArcGIS oder ArcGIS Desktop handelt, nur diese einfachen Datasets senden und empfangen (übertragen). Selbst wenn Sie wissen, dass Ihr Service nur von komplexen Clients wie ArcMap verwendet wird, müssen Sie sich bei der Task-Erstellung auf einfache Eingabedaten beschränken.
Weitere Informationen zu übertragbaren und nicht übertragbaren Datasets finden Sie unter Eingabemodi und Parameter-Datentypen.
Zeichnen von Task-Ergebnissen mit einem Karten-Service
Beim Veröffentlichen eines Geoverarbeitungsservice können Sie das Task-Ergebnis als Karte anzeigen lassen (zusätzlich zu den anderen Task-Ergebnissen). Die Karte wird auf dem Server mithilfe von ArcMap erstellt und dann zurück an den Client übertragen. Die Symbolisierung, Beschriftung, Transparenz und alle anderen Eigenschaften der zurückgegebenen Karte sind mit dem Ausgabe-Layer in der aktuellen ArcMap-Sitzung identisch. Der Workflow zum Erstellen eines Karten-Service des Ergebnisses ist einfach:
- Führen Sie das Werkzeug aus, um ein Ergebnis im Ergebnisfenster zu erzeugen. Die vom Werkzeug erstellten Daten werden dem ArcMap-Inhaltsverzeichnis als Layer hinzugefügt.
- Ändern Sie die Symbolisierung von Layern, die die Ausgabe des Werkzeugs sind.
- Klicken Sie mit der rechten Maustaste auf das Ergebnis, und geben Sie es als Geoverarbeitungsservice frei.
- Klicken Sie im Service-Editor auf Parameter, und aktivieren Sie Ergebnisse mit einem Kartenservice anzeigen.
Wenn der Ausgabe-Layer Einzelwerte zeichnet, müssen Sie ggf. <alle anderen Werte> in den Layer-Eigenschaften deaktivieren, um die Neuberechnung der Einzelwerte vor dem Zeichnen festzulegen. Weitere Informationen finden Sie im Thema Erstellen einer Layer-Symbolisierungsdatei.
Dokumentieren von Tasks
Es ist wichtig, eine gute Dokumentation Ihrer Services und Tasks bereitzustellen, wenn der Service von einem möglichst breiten Publikum entdeckt, verstanden und genutzt werden soll.
Eine gute Dokumentation beginnt mit dem Werkzeug, das Sie verwendet haben, um das zu veröffentlichende Ergebnis zu erstellen. Jedes Werkzeug im System weist eine Elementbeschreibung auf, die Sie anzeigen und bearbeiten können, indem Sie mit der rechten Maustaste im Fenster Katalog klicken und die Elementbeschreibung aufrufen.
Weitere Informationen zur Dokumentation von Geoverarbeitungsservices und Tasks
Einstellungen für die Geoverarbeitungsumgebung
Umgebungseinstellungen für die Geoverarbeitung sind zusätzliche Parameter, mit denen die Ergebnisse eines Werkzeugs beeinflusst werden können. Sie unterscheiden sich von den regulären Werkzeugparametern darin, dass sie in den Dialogfeldern der Werkzeuge (mit bestimmten Ausnahmen) nicht angezeigt werden. Vielmehr handelt es sich um Werte, die einmalig in einem eigenen Dialogfeld festgelegt und dann von Werkzeugen während der Ausführung verwendet werden.
Hierarchie der Umgebungseinstellungen
Es gibt mehrere Möglichkeiten zum Ändern der Umgebungseinstellungen; der Ort, an dem Sie die Änderungen vornehmen, kann als Ebene in einer Hierarchie betrachtet werden. Umgebungseinstellungen werden von Ebene zu Ebene weitergegeben. Auf jeder Ebene können Sie die nach unten übergebenen Umgebungseinstellungen mit einer anderen Einstellung überschreiben.
- Anwendungsebene: Klicken Sie im Hauptmenü auf Geoverarbeitung > Umgebung. Die hier vorgenommenen Änderungen wirken sich auf die Ausführung aller Werkzeuge aus.
- Werkzeugebene – Öffnen Sie das Werkzeugdialogfeld, und klicken Sie auf die Schaltfläche Umgebung. Dadurch wird das Dialogfeld Umgebungseinstellungen geöffnet. Alle Umgebungseinstellungen sind – unabhängig davon, ob das Werkzeug sie berücksichtigt oder nicht – im Dialogfeld Umgebungseinstellungen aufgelistet. Informationen zum Bestimmen der Umgebungen, die von einem Werkzeug berücksichtigt werden, finden Sie in der Referenzseite des Werkzeugs. Alle hier vorgenommenen Einstellungen haben Vorrang vor den auf Anwendungsebene festgelegten Einstellungen. Diese Einstellungen gelten nur für die Ausführung des Werkzeugs. Die Einstellungen auf Anwendungsebene werden nicht überschrieben.
- Modell-, Modellprozess- oder Skriptebene – In einem Modell oder Skript haben Sie umfangreichere Kontrolle über die Umgebungseinstellungen. Sie können die Umgebung für ein bestimmtes Werkzeug, einen Werkzeugsatz oder für jedes Werkzeug im Modell oder Skript ändern. Auf dieser Ebene vorgenommene Einstellungen haben Vorrang vor allen auf Werkzeug- oder Anwendungsebene festgelegten Einstellungen.
Umgebungseinstellungen werden in einem Ergebnis gespeichert
Ein Ergebnis im Fenster Ergebnisse speichert alle Umgebungseinstellungen, die auf Anwendungs- oder Werkzeugebene vorgenommen wurden. Wenn der Task auf dem Server ausgeführt wird, werden die Umgebungseinstellungen im Ergebnis während der Task-Ausführung verwendet. Die auf Modell- oder Skriptebene vorgenommenen Einstellungen werden jedoch nicht im Ergebnis angezeigt, sondern während der Task-Ausführung verwendet. Sie können es sich so vorstellen, dass die Umgebungseinstellungen im Ergebnis an das Modell- oder Skriptwerkzeug übergeben werden, wo die Einstellungen nach Belieben überschrieben werden können.