Mit der Spatial Analyst-Lizenz verfügbar.
Mit der 3D Analyst-Lizenz verfügbar.
Zusammenfassung
Bestimmt anhand geodätischer Methoden die Gitternetz-Oberflächenpositionen, die für eine Reihe von Beobachter-Features sichtbar sind.
Abbildung
Verwendung
Mit diesem Werkzeug werden zwei Sichtbarkeitsanalysetypen durchgeführt, "Häufigkeit" und "Beobachter". Diese können mit dem Parameter Analysetyp festgelegt werden.
Um die Genauigkeit der Ausgabe sicherzustellen, weisen Sie dem Eingabe-Raster ein vertikales Koordinatensystem zu, wenn es noch über keines verfügt.
Sichtfeld 2 erfordert keinen Parameter "Z-Faktor". Der Z-Faktor wird intern anhand der vertikalen Einheit (Z) und den Karteneinheiten (XY) aus dem Raumbezug des Eingabe-Rasters berechnet.
-
Bei Eingabe-Rastern, in denen Rauschen auftritt (am häufigsten in Daten mit hoher Auflösung), kann es zu unerwarteten Ergebnissen kommen. Vor der Ausführung dieses Werkzeugs können Sie die Daten in einem Vorverarbeitungsschritt korrigieren. Wenn die ArcGIS-Erweiterung Spatial Analyst verfügbar ist, können Sie die Auswirkungen des Fehlers verringern, indem Sie zuerst das Werkzeug Focal Statistics oder Filter ausführen und danach den Vorgang "Sichtfeld" auswählen.
Wenn das Eingabe-Raster neu berechnet werden muss, wird die bilineare Technik verwendet. Ein Eingabe-Raster muss beispielsweise dann neu berechnet werden, wenn das Ausgabe-Koordinatensystem, die Ausdehnung oder die Zellengröße sich von dem entsprechenden Wert der Eingabe unterscheidet.
Zur Verbesserung der Performance können Sie für den Parameter Äußerer Radius explizit einen Wert festlegen, mit dem die maximale Betrachtungsentfernung dargestellt wird, die für die Analyse von Interesse ist.
Standardmäßig verwendet der Parameter Analysemethode die Option ALL_SIGHTLINES, mit der die genaueste Ausgabe erzeugt wird. Verwenden Sie zur Steigerung der Performance in puncto Verarbeitungszeit die Option PERIMETER_SIGHTLINES.
Die Beobachterparameter im Zusammenhang mit der Höhe, z. B. Oberflächenversatz, Beobachterhöhe und Beobachterversatz, können als lineare Einheit oder als Feld angegeben werden. Während der Berechnung wird der Wert der linearen Einheit intern in die Z-Einheit des Eingabe-Rasters konvertiert. Wenn die lineare Einheit jedoch unbekannt ist oder ein numerisches Feld angegeben wurde, wird davon ausgegangen, dass der Wert sich in der Z-Einheit des Eingabe-Rasters befindet.
Die Beobachterparameter im Zusammenhang mit der Betrachtungsentfernung, z. B. Innerer Radius und Äußerer Radius, können als lineare Einheit oder als Feld angegeben werden. Während der Berechnung wird der Wert der linearen Einheit intern in die XY-Einheiten des Eingabe-Rasters konvertiert. Wenn die lineare Einheit jedoch unbekannt ist oder ein numerisches Feld angegeben wurde, wird davon ausgegangen, dass der Wert sich in der XY-Einheit des Eingabe-Rasters befindet.
Für einen Beobachterparameter angegebene Felder, z. B. Oberflächenversatz oder Beobachterversatz, können Zeichenfolgenfelder mit einem numerischen Wert und einer numerischen Einheit sein. Beispiel: Wenn für Versatz der Beobachterposition das Feld obs_height angegeben ist, kann es Werte wie "6 Meter" enthalten.
Bei der Skripterstellung können die Beobachterparameter wie observer_offset in verschiedenen Formen von Zeichenfolgen angegeben werden. In jeder Form werden ein Wert und eine lineare Einheit aus der Zeichenfolge gelesen. In der folgenden Tabelle werden einige Beispieleingabezeichenfolgen aufgeführt, und es wird angegeben, wie die jeweilige lineare Einheit ermittelt wird. Bei anderen Parametern können Sie demselben Muster folgen.
Beispiel einer Eingabezeichenfolge für den Beobachterversatz Verwendete lineare Einheit ' ' oder '#'
Standardwert und -einheit werden verwendet, in diesem Fall 1 Meter.
'6'
Der Beobachterversatz ist 6, und da keine Einheit angegeben ist, wird die Standardeinheit Meter verwendet.
'6 Feet'
Der Beobachterversatz ist 6 Fuß.
'6 Unknown'
Der Beobachterversatz ist 6, und da keine Einheit angegeben ist, wird die Standardeinheit Meter verwendet.
Beispiele für Eingabezeichenfolgen und lineare Einheiten Dieses Werkzeug nutzt automatisch den Grafikprozessor, um die Performance des Werkzeugs zu verbessern, falls vorhanden und ordnungsgemäß konfiguriert.
Weitere Informationen zum Konfigurieren Ihres GPU-Geräts finden Sie in der Hilfe der Erweiterung "Spatial Analyst" im Thema GPU-Verarbeitung mit Spatial Analyst.
Wenn das Werkzeug die im System installierten GPU-Geräte nicht verwenden soll, erstellen Sie eine Umgebungsvariable CUDA_VISIBLE_DEVICES, legen Sie als Wert dafür -1 fest, und starten Sie die Anwendung neu. Das Werkzeug verwendet bei der Ausführung dann nur die CPU. Um die Verwendung eines GPU-Geräts wieder zu aktivieren, löschen Sie entweder die Umgebungsvariable CUDA_VISIBLE_DEVICES im System, oder legen Sie als Wert der Umgebungsvariable den Indexwert des GPU-Geräts fest, das Sie verwenden möchten (0 für das erste Gerät, 1 für das zweite usw.) Starten Sie die Anwendung dann neu.
Syntax
arcpy.ddd.Viewshed2(in_raster, in_observer_features, out_raster, {out_agl_raster}, {analysis_type}, {vertical_error}, {out_observer_region_relationship_table}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {inner_radius_is_3d}, {outer_radius}, {outer_radius_is_3d}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle}, {analysis_method})
Parameter | Erklärung | Datentyp |
in_raster | Das Eingabe-Oberflächen-Raster. Das Raster kann ein ganzzahliges oder ein Gleitkomma-Raster sein. Das Eingabe-Raster wird im Zuge der Sichtbarkeitsberechnung in ein geozentrisches 3D-Koordinatensystem umgewandelt. Die Bestimmung der Sichtbarkeit wird durch NoData-Zellen im Eingabe-Raster nicht versperrt. | Raster Layer |
in_observer_features | Die Eingabe-Feature-Class, die die Beobachterpositionen identifiziert. Dabei kann es sich um Punkt-, Multipoint- oder Polylinien-Features handeln. Im Zuge der Sichtbarkeitsberechnung wird die Eingabe-Feature-Class in ein geozentrisches 3D-Koordinatensystem umgewandelt. Beobachter, die sich außerhalb der Ausdehnung des Oberflächen-Rasters oder auf NoData-Zellen befinden, werden bei der Berechnung ignoriert. | Feature Layer |
out_raster | Das Ausgabe-Raster. Beim Analysetyp FREQUENCY, bei dem der Parameter für einen vertikalen Fehler 0 (Null) beträgt oder nicht angegeben ist, erfasst das Ausgabe-Raster die Häufigkeit, mit der jede Zellenposition im Eingabe-Oberflächen-Raster für die Eingabe-Beobachterpositionen sichtbar ist. Ist der Parameter für den vertikalen Fehler größer als 0 (Null), wird in jeder Zelle des Ausgabe-Rasters die Summe der Wahrscheinlichkeiten erfasst, mit der die Zelle für einen der Betrachter sichtbar ist. Beim Analysetyp OBSERVERS erfasst das Ausgabe-Raster die eindeutigen Regionen-IDs für die sichtbaren Flächen, die anhand der Ausgabetabelle für Beobachter-Regionen-Beziehungen mit den Beobachter-Features in Bezug gesetzt werden kann. | Raster Dataset |
out_agl_raster (optional) | Das Ausgabe-Raster der Ebene über Bodenoberfläche (AGL). Das AGL-Ergebnis ist ein Raster, bei dem jeder Zellenwert der Mindesthöhe entspricht, die einer ansonsten nicht sichtbaren Zelle hinzugefügt werden muss, um sie zumindest durch einen Beobachter sichtbar zu machen. Zellen, die bereits sichtbar waren, wird in diesem Ausgabe-Raster der Wert 0 zugewiesen. Wenn der Parameter für den vertikalen Fehler 0 beträgt, ist das AGL-Ausgabe-Raster ein Einband-Raster. Wenn der vertikale Fehler größer als 0 ist, wird das AGL-Ausgabe-Raster unter Berücksichtigung der Zufallseffekte aus dem Eingabe-Raster als Dreiband-Raster erstellt. Das erste Band stellt die mittleren, das zweite Band die minimalen und das dritte Band die maximalen AGL-Werte dar. | Raster Dataset |
analysis_type (optional) | Wählen Sie aus, welcher Typ von Sichtbarkeitsanalyse durchgeführt werden soll, indem Sie festlegen, wie sichtbar jede Zelle für die Beobachter ist, oder indem Sie für jede Oberflächenposition ermitteln, welche Beobachter sichtbar sind.
| String |
vertical_error (optional) | Der Unsicherheitsfaktor (Root-Mean-Square Error oder RMSE) in den Oberflächenhöhenwerten. Der erwartete Fehler der Eingabe-Höhenwerte wird durch einen Gleitkommawert dargestellt. Wird diesem Parameter ein Wert größer 0 zugewiesen, ist das Ausgabe-Sichtbarkeitsraster ein Gleitkommawert. In diesem Fall stellt jeder Zellenwert des Ausgabe-Sichtbarkeitsrasters die Summe der Wahrscheinlichkeiten dar, mit der die Zelle für einen der Beobachter sichtbar ist. Lautet der Analysetyp OBSERVERS oder die Analysemethode PERIMETER_SIGHTLINES, ist dieser Parameter deaktiviert. | Linear Unit |
out_observer_region_relationship_table (optional) | Gibt die für den jeweiligen Beobachter sichtbaren Regionen in Tabellenform aus. Diese Tabelle kann mit der Eingabe-Beobachter-Feature-Class und dem Ausgabe-Sichtbarkeitsraster in Beziehung gebracht werden, um die für die Beobachter sichtbaren Regionen zu identifizieren. Diese Ausgabe wird nur dann erstellt, wenn der Analysetyp OBSERVERS lautet. | Table |
refractivity_coefficient (optional) | Koeffizient der Brechung sichtbaren Lichts in der Atmosphäre. Der Standardwert ist 0,13. | Double |
surface_offset (optional) | Dieser Wert gibt eine vertikale Entfernung an, die zum Z-Wert jeder Zelle hinzugefügt werden soll, um die Sichtbarkeit anzuzeigen. Er sollte als positive Ganzzahl oder als Gleitkommawert vorliegen. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. Der Standardwert ist 0. | Linear Unit; Field |
observer_elevation (optional) | Dieser Wert wird herangezogen, um die Oberflächenhöhen der Beobachterpunkte oder Stützpunkte zu definieren. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Wird für den Parameter kein Wert angegeben, wird die Beobachterhöhe mittels bilinearer Interpolation dem Oberflächen-Raster entnommen. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. | Linear Unit; Field |
observer_offset (optional) | Dieser Wert gibt eine vertikale Entfernung an, die der Beobachterhöhe hinzugefügt werden soll. Er sollte als positive Ganzzahl oder als Gleitkommawert vorliegen. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. Der Standardwert ist 1 Meter. | Linear Unit; Field |
inner_radius (optional) | Dieser Wert definiert die Anfangsentfernung, von der aus die Sichtbarkeit bestimmt wird. Zellen mit einem Wert unter dieser Entfernung sind für die Ausgabe nicht sichtbar, können aber dennoch die Sichtbarkeit der Zellen zwischen innerem und äußerem Radius behindern. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. Der Standardwert ist 0. | Linear Unit; Field |
inner_radius_is_3d (optional) | Entfernungstyp für den Parameter "Innerer Radius"
| Boolean |
outer_radius (optional) | Dieser Wert definiert die maximale Entfernung, von der aus die Sichtbarkeit bestimmt wird. Zellen außerhalb dieser Entfernung werden von der Analyse ausgeschlossen. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. | Linear Unit; Field |
outer_radius_is_3d (optional) | Entfernungstyp für den Parameter "Äußerer Radius"
| Boolean |
horizontal_start_angle (optional) | Dieser Wert definiert den Anfangswinkel des horizontalen Abtastbereichs. Der Wert sollte in Grad von 0 bis 360 angegeben werden, ganzzahlig oder als Gleitkommawert, (0 = Norden). Der Standardwert ist 0. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. | Double; Field |
horizontal_end_angle (optional) | Dieser Wert definiert den Endwinkel des horizontalen Abtastbereichs. Der Wert sollte in Grad von 0 bis 360 angegeben werden, ganzzahlig oder als Gleitkommawert, (0 = Norden). Der Standardwert ist 360. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. | Double; Field |
vertical_upper_angle (optional) | Dieser Wert definiert die Grenze für den vertikalen oberen Winkel des Scanbereichs im Verhältnis zur horizontalen Ebene. Der Wert wird in Grad als Ganzzahl- oder Gleitkommawert angegeben. Der zulässige Bereich liegt zwischen -90 und 90 (einschließlich). Der Wert dieses Parameters muss größer als der Parameter Vertikaler unterer Winkel sein. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. Der Standardwert ist 90 (senkrecht nach oben). | Double; Field |
vertical_lower_angle (optional) | Dieser Wert definiert die Grenze für den vertikalen unteren Winkel des Scanbereichs im Verhältnis zur horizontalen Ebene. Der Wert wird in Grad als Ganzzahl- oder Gleitkommawert angegeben. Der zulässige Bereich liegt zwischen -90 und 90 (ausschließlich). Der Wert dieses Parameters muss kleiner als der Parameter Vertikaler oberer Winkel sein. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Ist dieser Parameter auf einen Wert festgelegt, wird dieser Wert auf alle Beobachter angewendet. Um für jeden Beobachter unterschiedliche Werte anzugeben, legen Sie diesen Parameter auf ein Feld im Eingabe-Beobachter-Features-Dataset fest. Der Standardwert ist -90 (senkrecht nach unten). | Double; Field |
analysis_method (optional) | Legen Sie fest, mit welcher Methode die Sichtbarkeit berechnet wird. Mit dieser Option tauschen Sie ein wenig Genauigkeit gegen eine erhöhte Performance ein.
| String |
Codebeispiel
Viewshed2 – Beispiel 1 (Python-Fenster)
In diesem Beispiel werden die Oberflächenpositionen, die verschiedene Beobachter sehen können, ohne Verwendung von Beobachterparametern bestimmt.
import arcpy
from arcpy import env
env.workspace = "C:/data"
result = arcpy.Viewshed2_3d("elevation", "obser1.shp", "C:/output/outvwshd01",
"", "OBSERVERS", "", "C:/output/obstable01.dbf")
Viewshed2 – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel werden die Oberflächenpositionen, die verschiedene Beobachter sehen können, mithilfe von Attributen in der Eingabe-Feature-Class als Beobachterparameter bestimmt.
# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
inRaster = "elevation"
inObservers = "obser2.shp"
outRaster = "c:/output/outvshd02"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/output/obser_region2.dbf"
refractCoeff = ""
surfaceOffset = "offsetb"
observerElevation = "spot"
observerOffset = "offseta"
innerRadius = "radius1"
innerIs3D = "False"
outerRadius = "radius2"
outerIs3D = "True"
horizStartAngle = "azimuth1"
horizEndAngle = "azimuth2"
vertUpperAngle = "vert1"
vertLowerAngle = "vert2"
analysisMethod = "ALL_SIGHTLINES"
# Execute Viewshed2
result = arcpy.Viewshed2_3d(inRaster, inObservers, outRaster, outAGL,
analysisType, verticalError,
outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst oder Spatial Analyst
- Standard: Erfordert 3D Analyst oder Spatial Analyst
- Advanced: Erfordert 3D Analyst oder Spatial Analyst