Cache unter Linux/Solaris erstellen und aktualisieren
Für ArcGIS Server unter Linux/Solaris werden Karten- und Globe-Service-Caches mit skriptfähigen Geoverarbeitungswerkzeugen erstellt. Für ArcGIS Server gibt es mehrere Skripte, die Ihnen bei der Verwaltung von Caches über die Befehlszeile helfen. Diese Skripte verwenden die Servertools in ArcToolbox.
Cachen von Skripten
Die Caching-Skripte befinden sich im Verzeichnis < ArcGIS Server-Installationsverzeichnis >/Server10.0 /java/tools/caching.
Skripte zum Cachen von Karten
- CreateMapServerCache.sh – Initialisiert den Cache und legt das Kachelschema fest. Dieses Werkzeug erstellt keine Kacheln. Zum Erstellen der Kacheln verwenden Sie ManageMapServerCacheTiles.sh.
- ManageMapServerCacheTiles.sh – Erstellt neue Kacheln, ersetzt alte Kacheln oder löscht Kacheln aus dem Cache.
- ManageMapServerCacheScales.sh – Fügt Maßstäbe hinzu oder entfernt Maßstäbe aus einem vorhandenen Cache.
- DeleteMapServerCache.sh—Löscht alle gecachten Kacheln und die Ordnerstruktur im Cache.
- GenerateMapServerCacheTilingScheme.sh – Erstellt ein gemeinsames Kachelschema für Ihr gesamtes Unternehmen. Dieses Werkzeug erstellt eine XML-Kachelschemadatei. Sie können dieses Kachelschema in einem freigegebenen Verzeichnis speichern und dann darauf verweisen, wenn Sie CreateMapServerCache.sh ausführen.
- ConvertMapServerCacheStorageFormat.sh kann alte Caches in das neue kompakte Format konvertieren, das in ArcGIS Server 10 eingeführt wurde. Dieses Werkzeug kann sogar zwischen beiden Formaten konvertieren, in das getrennte (vor ArcGIS 10) und das kompakte Format.
- ExportMapServerCache.sh – exportiert Teilmengen von Kacheln an eine andere Position in einem angegebenen Speicherformat. Dieses Verzeichnis kann dann mit einer anderen Organisation für einen gemeinsamen Cache verwendet werden, indem man in andere Caches importiert.
- ImportMapServerCache.sh – importiert Teilmengen von Kacheln zwischen Caches, wenn beide Schemata – importiertes und vorhandenes – übereinstimmen. Es ist nützlich, wenn mehrere Organisationen zusammenarbeiten, um einen großen Cache zu erstellen.
Skripte zum Cachen von Globes
- ManageGlobeServerCacheTiles.sh – Erstellt neue Kacheln, ersetzt alte Kacheln oder löscht Kacheln aus dem Globe-Cache.
- DeleteGlobeServerCache.sh – Löscht den Globe-Cache.
Ausführen der Skripte
Nachfolgend finden Sie einige Richtlinien zum Erstellen/Aktualisieren eines Karten- oder eines Globe-Caches mit diesen Werkzeugen.
Der ArcGIS Server Object Container-Prozess (SOC) wird als ArcGIS Server-Installationsbesitzer ausgeführt. Standardmäßig ist dieser Benutzer kein Mitglied der Gruppe agsadmin. Nur Mitglieder der Gruppe agsadmin können leere Kontexte auf dem Server erstellen und die Karten-Caching-Werkzeuge erfolgreich ausführen.
Der ArcGIS Server-Installationsbesitzer muss der agsadmin Gruppe hinzugefügt werden. Sie können dieses im Manager mithilfe der folgenden Schritte einstellen:
- Melden Sie sich bei ArcGIS Server Manager an.
- Klicken Sie auf die Registerkarte GIS-Server.
- Klicken Sie auf den Link Lokale GIS-Benutzer auf der linken Seite.
- Klicken Sie auf den Link Benutzer hinzufügen.
- Geben Sie dem Benutzer den Name 'ags' und richten Sie die Gruppe als 'agsadmin' (vorausgesetzt, ags ist als ArcGIS Server-Installationsbesitzer ausgewählt) ein.
- Klicken Sie auf Speichern.
- Stellen Sie sicher, dass im Cache-Verzeichnis ausreichend Speicherplatz vorhanden ist. Wenn nicht, ändern Sie das Standard-Cache-Verzeichnis in ein Verzeichnis, in dem ausreichend Speicherplatz verfügbar ist.
- Stellen Sie bei einer Bereitstellung auf mehreren Computern sicher, dass der ArcSOC-Prozess Schreibzugriff auf das Cache-Verzeichnis hat.
Jetzt können Sie das Skript ausführen, um den Cache von der Befehlszeile zu erstellen/aktualisieren; geben Sie als ArcGIS-Installationsbesitzer folgendes Verzeichnis an: <ArcGIS Server-Installationsverzeichnis>/Server10.0 /java/tools/caching. Sie werden vom Skript aufgefordert, aus der Liste der Variablen auszuwählen oder einen Wert für einen gegebenen Parameter einzugeben.
Wie zuvor beschrieben, gibt es zwei Schritte beim Generieren eines Karten-Caches, (1) das Festlegen von Karten-Cache-Eigenschaften und (2) das Erstellen/Aktualisieren von Karten-Cache-Kacheln. Karten-Cache-Eigenschaften können entweder mit dem ArcGIS Manager (navigieren Sie zum Fenster Services verwalten, wählen Sie einen Karten-Service aus und wählen Sie die Registerkarte Caching aus), oder durch das Ausführen des CreateMapServerCache-Skripts eingestellt werden.
Skript: CreateMapServerCache
- Domäne: Für ArcGIS Server auf Unix geben Sie den vollständig qualifizierten Hostnamen ein.
- Benutzername/Kennwort: Geben Sie Benutzername/Kennwort für eine Verbindung mit ArcGIS Server Manager ein. Standard-Benutzername und -Kennwort lauten admin/admin.
- server_name: Geben Sie den Namen von entweder dem Host-Computer, auf dem ArcGIS Server installiert ist, oder dem ArcGIS SOM-Computer, der den zu cachenden Service hostet, ein.
- object_name: Gibt Ihnen eine Liste von aktuellen Karten-Services, die die Anforderungen des ausgeführten Skripts erfüllen. Wenn zum Beispiel das Cache-Kachelschema für ein Karten-Service nicht konfiguriert ist, wird es nicht in den Optionen für das ManageMapServerCacheTiles-Skript aufgeführt, auch wenn der Service ausgeführt wird.
- data_frame: Listet die Namen von verfügbaren Datenrahmen für einen gegebenen Karten-Service auf. Drücken Sie die EINGABETASTE, um den Standarddatenrahmen anzunehmen.
- out_folder—Verzeichnis für Server-Cache: Wählen Sie das Cache-Verzeichnis aus, in dem der Daten-Cache erstellt werden soll. Wenn Sie ein anderes Verzeichnis hinzufügen möchten, müssen Sie im ArcGIS Manager in der Liste ein neues Cache-Verzeichnis hinzufügen.
- tiling_scheme_type – Kachelschema: Definiert die Cache-Eigenschaften, z. B. Anzahl von Maßstäben und ihren Wert.
- [Neu] * Standard: Erstellt ein neues Kachelschema.
Vordefiniert: Wird verwendet, um innerhalb einer Organisation ein Standardkachelschema beizubehalten oder mit vorhandenen Onlinediensten z. B. ArcGIS Online/Bing Maps/Google Earth ein kompatibles Kachelschema zu haben.
- tiling_schema: Diese Option ist verfügbar, wenn ein vordefinierter Kachelschematyp verwendet wird und erfordert den Pfad zum Kachelschema.
- scales_type – Maßstäbe:
- [Standard] * Standard: Bei Auswahl schlägt das Skript Maßstabswerte für eine gegebene Anzahl von Maßstäben vor, auf Grundlage der vollen Ausdehnung der Karte und seiner Auflösung.
- Benutzerdefiniert: Wenn ausgewählt, müssen Sie eine Liste von benutzerdefinierten Maßstabswerten für die gegebenen Kartendaten auf Grundlage der besten Anzeigeeinstellungen eingeben.
- num_of_scales: Diese Option ist verfügbar, wenn der Standardmaßstabstyp ausgewählt wird. Geben Sie die Anzahl der Maßstäbe zum Vergrößern von Cache-Ebenen ein. Im Allgemeinen sollten Sie die Anzahl der vorgeschlagenen Maßstäbe auf etwa 20 oder weniger begrenzen.
- dpi – Punkte pro Zoll (Pixel): Wählen Sie höhere Werte für klarere Auflösung aus. Der Standardwert 96 ist normalerweise ausreichend, außer wenn Sie hauptsächlich in einem Netzwerk arbeiten, wo die Mehrheit der Client-Computer einen anderen DPI-Wert hat.
- tile_width und tile_height—Kachelbreite und Kachelhöhe (in Pixeln): Wenn Sie eine kleinere Kachelbreite und -höhe auswählen, wird möglicherweise die Performance der Anwendung verbessert, die Kacheln vom Cache anfordert, weil weniger Daten übertragen werden müssen. Bei kleineren Kachelgrößen steigt jedoch die Cache-Größe, und die Erstellung dauert länger.
- map_or_layers – Cache-Typ: Eine erweiterte Cache-Einstellung.
- [Fused] * Standard: Alle Layer in der Karte sind in einem verschmolzenem Bild enthalten und müssen gemeinsam aktiviert oder deaktiviert werden.
- Multi_layer: Satz gecachter Bilder für jeden Layer, der vom Benutzer aktiviert oder deaktiviert werden kann. Diese Option ist für .msd-basierte Karten-Services deaktiviert.
- tile_origin: Kachelursprung in Karteneinheiten.
- Ebenen: Diese Option ist verfügbar, wenn der 'scales_type' als 'Benutzerdefiniert' festgelegt wird. Geben Sie die Liste der benutzerdefinierten Maßstabswerte durch Seimkolon getrennt ein.
- Layer: Diese Option ist verfügbar, wenn die 'map_or_layers'-Variable auf 'Multilayer' festgelegt wird. Geben Sie die Liste des Layers mit Semikolon getrennt ein, für den der Cache erstellt werden muss
- Antialiasing:
- [None]* Standard
- Antialiasing: Glättet die Kanten von Beschriftungen und Linien für eine bessere Anzeigequalität.
- cache_format – Cache-Kachel Bildformat: [Png8, Png24, Png32, JPEG, Mixed] Wählen Sie das Ausgabebildformat aus, das zum erstellen der Cache-Kacheln verwendet werden soll. Das Bildformat bestimmt die Cachegröße auf dem Datenträger, die Bildqualität und die Unterstützung von Hintergrundtransparenz. Raster-Daten sollten am besten im Bildformat JPEG oder MIXED bereitgestellt werden.
- tile_compression_quality: Die Komprimierung wird nur für das JPEG-Format unterstützt. Geben Sie einen Wert zwischen 1 und 100 für die JPEG-Komprimierungsqualität ein. Der Standardwert für das JPEG-Kachelformat ist 75, für die anderen Formate beträgt er null. Ein höherer Wert führt zu einem höherwertigen Bild und einer größeren Dateigröße, während ein niedrigerer Wert zu einer geringeren Bildqualität und einer kleineren Dateigröße führt. Wenn Sie JPEG oder MIXED in Verbindung mit Vektorkarten verwenden, können Sie einen hohen Wert für die Komprimierungsqualität (z. B. 90) verwenden, um das Verwischen von Linien und Text zu reduzieren.
- storage_format—Cache-Kachel-Speicherformat:
- Komprimieren: Gruppiert Cache-Kacheln für effizienteren Speicher und Mobilität
- Erweitert: Speichert jede Kachel als einzelne Datei.
- use_local_cache_dir-—Lokale Cache-Verzeichnisse auf dem Server: Wählen Sie aus, ob Paketdateien beim Erstellen eines kompakten Caches in ein lokales Verzeichnis auf dem Server, und nicht direkt in das freigegebene Cache-Verzeichnis geschrieben werden sollen. Wenn Sie diese Option auswählen, werden die Paketdateien in das freigegebene Cache-Verzeichnis kopiert, wenn sie erstellt wurden. Diese Option verbessert die Performance, wenn mehrere Computer am Caching-Vorgang arbeiten.
- [True]* Dies ist die Standardeinstellung, wenn das Cache-Speicherformat "Komprimieren" lautet. In Paketen gespeicherte Kacheln werden in ein lokales Cache-Verzeichnis geschrieben und dann in das freigegebene Cache-Verzeichnis kopiert, wenn die Pakete erstellt wurden. Hinweis: Diese Option ist nicht verfügbar, wenn das Speicherformat "Erweitert" ist.
- False: Kacheln werden direkt in das freigegebene Cache-Verzeichnis geschrieben. Dies ist die einzige gültige Option, wenn das Speicherformat "Erweitert" ist.
Skript: ManageMapServerCacheTile
- Layer: Diese Option ist verfügbar, wenn die 'map_or_layers'-Variable auf 'Multilayer' im Cache-Schema festgelegt wird. Geben Sie die Liste des Layers mit Semikolon getrennt ein, für den die Cache-Kacheln erstellt/aktualisiert werden müssen.
- Ebenen: Maßstäbe bieten die Möglichkeit, Maßstäbe aus der Liste der gegebenen Maßstäbe für ein beliebiges der folgenden Werkzeuge auszuwählen: ManageMapServerCacheTiles, ExportMapServerCache, oder ImportMapServerCache.
- update_mode—Aktualisierungsmodus:
- Recreate Empty Tiles (Fehlende Kacheln erstellen): Verwenden Sie diese Option, wenn Sie sicherstellen möchten, dass der Cache für die fehlenden Kacheln erstellt wird. Hinweis: Dies dauert länger für große Cache-Aufträge, da die Ordner des Cache überprüft und fehlende Kacheln erstellt werden, damit die Qualität des Caches sichergestellt wird.
- Recreate All Tiles (Alle Kacheln neu erstellen): Verwenden Sie diese Option, wenn Sie einen Cache zum ersten Mal erstellen, oder wenn Sie den vorhandenen Cache verwerfen und auf Grundlage eines aktualisierten Karten-Services einen neuen Cache erstellen möchten.
- Delete Tiles (Kacheln löschen): Löscht die vorhandenen Cache-Kacheln unter Beibehaltung des Cache-Schemas.
- constraining_extent – Ausdehnung aktualisieren: Wenn Sie Kacheln für eine rechteckige Fläche in der Karte erstellen möchten, können Sie die Standardaktualisierungsausdehnung ändern und eine benutzerdefinierte rechteckige Ausdehnung eingeben; dies kann beim Erstellen von Caches für eine Testfläche nützlich sein.
- thread_count – Anzahl von Kartenserverinstanzen
- update_feature_class – Aktualisieren des Cache mit Feature-Class-Ausdehnungen: Stellen Sie den Pfad zum Verzeichnis bereit, in dem die Feature-Class vorhanden ist, um die Kachelerstellung auf die Grenzen einer Feature-Class räumlich einzuschränken und leere oder nicht erforderliche Flächen zu vermeiden. Dies erleichtert auch das Verwalten und Verfolgen von Caching-Aufträgen.
- ignore_status:
- Status der Ausführung verfolgen: Wird verwendet um zu markieren, welche Features über ihren Flächen Kacheln erhalten. Ein gecachtes Fest wird der Feature-Class, die gecacht wird, hinzugefügt. Wurden Kacheln für die Ausdehnung eines Features erstellt, lautet der Wert im Feld "Gecacht" dieses Features Ja. Die Felder können angezeigt werden, indem die Feature-Class-Tabelle in ArcCatalog geöffnet wird.
- [Statusfeld ignorieren] * Standard: Gecachte Felder werden nicht hinzugefügt oder aktualisiert.
- Antialiasing: Ist in diesem Werkzeug schreibgeschützt. Sie basiert auf dem Wert, den Sie in der Registerkarte Caching des Dialogfelds Service-Eigenschaften eingegeben haben.
Befolgen Sie die Anweisungen, während das Skript Sie durch den Cache-Erstellungs-/Aktualisierungsprozess führt.
Wenn der Prozess beendet ist, befindet sich die Ausgabe im Cache-Verzeichnis. Das Standard-Cache-Verzeichnis ist <ArcGIS Server-Installationsverzeichnis >/server/serverdir/arcgiscache.
Skript: ManageMapServerCacheScales
Ebenen: lässt Sie den Satz von Maßstäben definieren, und löscht oder fügt Maßstäbe, sofern erforderlich, hinzu, um das Cache-Schema zu aktualisieren. Geben Sie die aktuelle Liste der Maßstabswerte durch Seimkolon getrennt ein.
Skript: GenerateMapServerCacheTilingScheme
- map_document: Geben Sie den Pfad zum Kartendokument auf Grundlage der Position für das neue Cache-Kachelschema an.
- tiling_schema: Geben Sie den Pfad an, in dem Sie das Ausgabekachelschema speichern würden. Stellen Sie sicher, den Namen des neuen Schemas mit einer Erweiterung .xml zu schreiben.
- cache_levels: Geben Sie die Anzahl der Maßstäbe ein, die das neue Kachelschema erhalten soll.
- Ebenen: Standardmäßig schlägt das Skript entsprechende Maßstabswerte für die gegebene Anzahl von Cache-Ebenen auf Grundlage von Kartenausdehnungen vor. Sie können die vorgeschlagenen Werte auszuwählen oder eigene benutzerdefinierte Maßstabswerte definieren, indem Sie neue Werte durch Semikolon getrennt eingeben.
Skript: ExportMapServerCache und ImportMapServerCache
- target_cache_path: Geben Sie den Pfad zum Ordner an, in den Sie ausgewählte Cache-Daten exportieren möchten. Stellen Sie sicher, dass der Ordner vorhanden ist und ArcSOC Schreibzugriff darauf hat.
- storage_format_type: Stellt die Option bereit, um den Speicherformattyp des exportierten Caches auszuwählen. Dieser kann sich vom übergeordneten Cache unterscheiden. Hinweis: Das Werkzeug "Map-Server-Cache importieren" übernimmt standardmäßig das Speicherformat des Zielordners.
- export_extent/import_extent: Stellt die Option bereit, um nur einen Teil der gecachten Daten in der gegebenen Ausdehnung zu exportieren/importieren. Geben Sie die benutzerdefinierte rechteckige Ausdehnung ein, um Cache-Daten zu exportieren oder importieren.
- Ebenen: Bietet die Möglichkeit, Maßstäbe aus der Liste der gegebenen Maßstäbe für den Export/Import auszuwählen.
- export_feature_class / import_feature_class: Bietet die Möglichkeit, den Cache-Kachelexport auf die Grenzen einer Feature-Class räumlich einzuschränken und vermeidet uninteressante Flächen. Geben Sie den Pfad zum Verzeichnis ein, in dem die Feature-Class vorhanden ist.
- source_cache_dataset: stellt den Pfad zur Layer-Datei im Ordner bereit, aus dem Sie Cache-Daten importieren möchten. Zum Beispiel, /net/plotemy/arcgiscache/sandiego/Layers.
Skript: ManageGlobeServerCacheTiles
- in_layers:Auswahl der Layer zur Aufnahme in den Layer-Cache.
- Level From: Wählen Sie das Maßstabsdetail aus, mit dem das Layer-Caching begonnen werden soll. Wenn die kleinste und die größte Detaillierungsebene des Maßstabes als Minimum und Maximum verwendet werden, wird ein vollständiger Cache für den Layer erstellt.
- Level_To: Wählen Sie das Maßstabsdetail aus, mit dem das Layer-Caching begonnen werden soll. Wenn die kleinste und die größte Detailebene des Maßstabes als Minimum und Maximum verwendet werden, wird ein vollständiger Cache für den Layer erstellt.
So automatisieren Sie die Cache-Erstellung von Befehlszeile
Wenn Sie Cache-Werkzeuge mit Skripten versehen möchten, die keine Benutzerinteraktion erfordern, geben Sie den folgenden Code als ArcGIS-Installationsbesitzer in der Befehlszeile ein. Geben Sie die Werte für die Parameter ein, die oben beschrieben wurden, und in der angezeigten Reihenfolge.
CreateMapServerCache .sh
./CreateMapServerCache.sh -u <username> -d <hostname> -p <passwd> -args <server_name> <object_name> <out_folder> <tiling_scheme_type> <scales_type> <num_of_scales> <dpi> <tile_width> <tile_height> <data_frame> <map_or_layers> <tiling_schema> <tile_origin> <'levels;customScale1'> <'layers;multiLayer1'> <antialiasing> <cache_format> <tile_compression_quality> <storage_format> <use_local_cache_dir> For example: To generate cache using New Tiling scheme Type & Standard scales ./CreateMapServerCache.sh -u admin -d hostname -p admin -args myserver Rainfall Layers /path/to/arcgiscache/ NEW STANDARD 4 96 512 512 FUSED '#' '-400 400' '#' '#' ANTIALIASING MIXED 75 Compact True Note: 1. Based on the chosen parameters, the depended properties will get enabled or disabled. 2. To enter default values or null values use # sign inside quotes.For example '#' 3. To enter multiple values for a parameter separate each value using semicolon (;) 4. Use single quotes('') when providing values that require a semi-colon(;) or a space as a separator. For example: 'scale1;scale2', 'layer1;layer2'
ManageMapServerCache.sh.
./ManageMapServerCacheTiles.sh -u <username> -d <hostname> -p <passwd> -args <server_name> <object_name> <data_frame> <'layers;multiLayer1'> <'levels;levels'> <update_mode> <constraining_extent> <thread_count> <Antialiasing> <update_feature_class> <ignore_status> For example: ./ManageMapServerCacheTiles.sh -u ags -d hostname -p ags -args myserver Rainfall Layers '#' '64000000;32000000' 'Recreate Empty Tiles' '-183.780014728684 16.3007091216187 -61.4068546696843 74.030308030969' 5 NONE /path/to/feature_class IGNORE_COMPLETION_STATUS_FIELD
So planen Sie die Ausführung eines Cache-Skriptes zu bestimmten Zeiten
# 1. Set the environment variable to point to an editor of choice (the example below uses vi) EDITOR=/usr/bin/vi; export EDITOR # 2. Bring up the crontab in the editor using the command crontab -e # 3. Add a line to crontab # <min> <hour> <day of month> <month> <day of week> <script to be executed> # Allowed values # <0-60> <0-23> <1-31> <1-12> <0-6> </path/to/customised_ManageMapServerCache.sh> 0 10 * * 0 /path/to/customised_Cache.sh # To run every Sunday at 10 AM 0 18 * * * /path/to/updatecache.sh # To run every day at 6 PM 0 0 1 * * /path/to/updatecache.sh # To run at midnight on the first of every month # 4. Save and exit the editor # 5. Verify that the cron job has been added to the list of cron tasks crontab -l Note: Do not use statements following '#' sign, these are comments for understanding the commands.