Konturlinie mit Barrieren (Spatial Analyst)
Zusammenfassung
Hiermit werden Konturlinien aus einer Raster-Oberfläche erstellt. Durch die Aufnahme von Barrieren-Features können Konturlinien auf beiden Seiten einer Barriere unabhängig erstellt werden.
Verwendung
-
Die aktuelle Version des Werkzeugs Konturlinie mit Barrieren unterstützt nur die Polylinienausgabe. Wenn die Option für Polygonausgaben verwendet wird, wird sie ignoriert, und eine Polylinienausgabe wird erstellt.
Glattere, aber weniger genaue Konturlinien erhalten Sie, indem Sie das Eingabe-Raster mit einer Focal_Statistics-Operation und der Option "MEAN" oder mit dem Werkzeug Filter und der Option "LOW" vorverarbeiten.
-
Die Konturlinien werden in die NoData-Zelle des Rasters um eine Entfernung verlängert, die der Hälfte der Zellengröße des Rasters entspricht. Die Konturlinien werden also über einzelne NoData-Zellen erzeugt. Die Konturlinie wird jedoch nur um eine Entfernung entsprechend der Hälfte der Zellengröße in einen Bereich mit 3 Zellen mal 3 Zellen von NoData verlängert.
-
Das Feld "Typ" in der Feature-Class der Ausgabe-Konturlinie weist Werte auf:
1 for contours 2 for indexed contours 3 for explicit contours
-
Mit einem indizierten Konturlinienintervall können weitere Konturlinien erzeugt werden. Deren Typwert wird in der Ausgabe-Feature-Class als 2 kodiert.
-
Eine Basiskonturlinie wird z. B. verwendet, wenn Sie Konturlinien alle 15 Meter beginnend bei 10 Metern erstellen möchten. Hierfür müssen Sie 10 als Basiskonturlinie und 15 als Konturlinienintervall wählen. Die Konturlinienwerte lauten dann 10, 25, 40, 55 usw.
-
Durch das Angeben einer Basiskonturlinie wird das Erstellen von Konturlinien über oder unter diesem Wert nicht verhindert.
-
Eine Textdatei mit Spezifikationen für Konturlinienwerte kann Folgendes enthalten:
- Alle Zeilen, die nicht mit einem numerischen Wert beginnen, werden ignoriert und als Kommentar behandelt.
- Eine Zeile mit einem Wert wird als expliziter Konturlinienwert behandelt.
- Eine Zeile mit drei Werten wird als Basiskonturlinie, Konturlinienintervall und als indizierte Konturlinie behandelt.
- Eine Zeile mit vier Werten wird als Von-, Bis-, Nach- und als indizierte Konturlinie behandelt.
Wenn beispielsweise ein Raster einen Minimalwert von 102 und einen Maximalwert von 500 hat, dann erzeugt eine Textdatei mit:
# contour values and ranges 122.75 485 500 5 12 4 100 99
Konturlinien bei:
122.75 104, 204, 304, 404 103, 202, 301, 400, 499 485, 490, 495, 500 497
-
Befinden sich Zellenwerte des Rasters in einem Barrieren-Polygon-Feature, dann werden die Konturlinien an der Barriere geteilt. Sollen die Zellenwerte innerhalb des Polygon-Features ignoriert werden, ändern Sie diese Zellenwerte in NoData.
-
Wenn die Oberfläche des Eingabe-Rasters sehr groß ist oder wenn viele Ausgabe-Features angefordert werden, wird eine große Anzahl temporärer Dateien am Speicherort für temporäre Dateien des Betriebssystems erstellt. Sollten dadurch Probleme auftreten, führen Sie einen der folgenden Schritte aus:
- Vergrößern Sie den verfügbaren Speicherplatz für temporäre Dateien auf der Festplatte.
- Reduzieren Sie die Anzahl angegebener Konturlinien, oder teilen Sie den Konturlinienbereich auf, verarbeiten Sie jede Gruppe getrennt, und kombinieren Sie die Ergebnisse für die einzelnen Bereiche in einem Endergebnis.
- Verarbeiten Sie die Eingabedaten in Abschnitten (Kacheln), und führen Sie die einzelnen Ergebnisse in einem Dataset zusammen.
Die Ausgabe-Konturlinien-Features können mit dem Werkzeug Konturlinien-Annotation beschriftet werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_raster |
Das Eingabe-Oberflächen-Raster. | Raster Layer |
out_contour_feature_class |
Ausgabe-Konturlinien-Features. | Feature Class |
in_barrier_features (optional) |
Eingabe-Barrieren-Features. | Feature Layer |
in_contour_type (optional) |
Der Typ der Konturlinie, die erstellt werden soll.
Die aktuelle Version von "Konturlinie mit Barrieren" unterstützt nur Polylinienausgaben. Wenn die Option für Polygonausgaben verwendet wird, wird sie ignoriert, und eine Polylinienausgabe wird erstellt. | String |
in_contour_values_file (optional) |
Die Basiskonturlinie, das Konturlinienintervall, das indizierte Konturlinienintervall und explizite Konturlinienwerte können ebenfalls über eine Textdatei angegeben werden. | File |
explicit_only (optional) |
Nur explizite Konturlinienwerte werden verwendet. Die Basiskonturlinie, das Konturlinienintervall und das indizierte Konturlinienintervall werden nicht angegeben.
| Boolean |
in_base_contour (optional) |
Basiskonturlinienwert. Konturlinien werden ober- und unterhalb dieses Wertes den Anforderungen entsprechend erstellt, um den gesamten Wertebereich des Eingabe-Rasters abzudecken. Die Standardeinstellung ist 0. | Double |
in_contour_interval (optional) |
Das Intervall bzw. der Abstand zwischen Konturlinien. Dies kann eine beliebige positive Zahl sein. | Double |
in_indexed_contour_interval (optional) |
Für dieses Intervall werden auch Konturlinien erstellt und entsprechend in der Ausgabe-Feature-Class gekennzeichnet. | Double |
in_contour_list [in_explicit_contour,...] (optional) |
Explizite Werte, bei denen Konturlinien erstellt werden. | Double |
in_z_factor (optional) | Der Einheit-Konvertierungsfaktor, der beim Erstellen von Konturlinien verwendet wird. Der Standardwert ist 1. Die Konturlinien werden basierend auf den Z-Werten im Eingabe-Raster erstellt, die oft in den Maßeinheiten Meter oder Fuß gemessen werden. Mit dem Standardwert 1 werden die Konturlinien in den gleichen Einheiten wie die Z-Werte im Eingabe-Raster angegeben. Um Konturlinien in einer anderen Einheit als derjenigen der Z-Werte zu erstellen, legen Sie den entsprechenden Wert für den Z-Faktor fest. Beachten Sie, dass für dieses Werkzeug die XY-Geländeeinheiten und die Z-Oberflächeneinheit nicht einheitlich sein müssen. Wenn z. B. die Höhenwerte im Eingabe-Raster in Fuß angegeben sind, aber die Konturlinien basierend auf Metern erstellt werden sollen, setzen Sie den Z-Faktor auf 0,3048 fest (da 1 ft = 0,3048 m). | Double |
Codebeispiel
In diesem Beispiel werden Konturlinien mit einem Eingabe-Barrieren-Feature sowie festgelegten Basis- und Intervallparametern aus einem Esri Grid-Raster erstellt. Die Ausgabe konturiert die Fläche als Polylinien in einem Shapefile.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" ContourWithBarriers("elevation", "C:/sapyexamples/output/outcontourwithbarriers.shp", "elevation_barrier.shp", "POLYLINES", "", "", 0, 300)
In diesem Beispiel werden Konturlinien mit einem Eingabe-Barrieren-Feature sowie festgelegten Basis- und Intervallparametern aus einem Esri Grid-Raster erstellt. Die Ausgabe konturiert die Fläche als Polylinien in einem Shapefile.
# Name: ContourWithBarriers_Ex_02.py # Description: Creates contours from a raster surface. # The inclusion of barrier features will allow one to independently generate contours on either side of a barrier. # Requirements: Spatial Analyst Extension # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inRaster = "elevation" inBarrier = "elevation_barrier.shp" inTextFile = "" explicitValues = "NO_EXPLICIT_VALUES_ONLY" contourInterval = 200 contourList = [600, 935, 1237.4] baseContour = 0 outContours = "C:/sapyexamples/output/outcontourwithbarriers02.shp" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute Contour ContourWithBarriers(inRaster, outContours, inBarrier, "POLYLINES", inTextFile, explicitValues, baseContour, contourInterval, "", contourList, "")