Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Bestimmt anhand geodätischer Methoden die Raster-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 entweder die Daten in einem Vorverarbeitungsschritt korrigieren oder den Effekt des Fehlers verringern, indem Sie zuerst das Werkzeug Focal Statistics oder Filtern 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 Beobachterversatz 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.
Beispiele für Eingabezeichenfolgen und lineare EinheitenBeispiel 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.
Dieses Werkzeug nutzt automatisch den Grafikprozessor, um die Performance des Werkzeugs zu verbessern, falls vorhanden und ordnungsgemäß konfiguriert.
Weitere Informationen zum Konfigurieren des GPU-Geräts finden Sie im Hilfethema 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.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
Viewshed2 (in_raster, in_observer_features, {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 | Erläuterung | 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_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, werden 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) | This value indicates a vertical distance to be added to the z-value of each cell as it is considered for visibility. 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) | This value indicates a vertical distance to be added to the observer elevation. 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. Cells closer than this distance are not visible in the output but can still block visibility of the cells between inner radius and outer radius. 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 obere vertikale Winkelgrenze des Scanbereichs über einer horizontalen Ebene. Der Wert sollte in Grad von 0 bis 90, als Ganzzahl- oder Gleitkommawert, angegeben werden. 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. | Double; Field |
vertical_lower_angle (optional) | Dieser Wert definiert die untere vertikale Winkelgrenze des Scanbereichs unter einer horizontalen Ebene. Der Wert sollte in Grad von -90 bis 0, als Ganzzahl- oder Gleitkommawert, angegeben werden. 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. | 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 |
Rückgabewert
Name | Erläuterung | Datentyp |
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 Beobachter 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 |
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
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outViewshed2 = Viewshed2("elevation", "obser1.shp", "", "OBSERVERS", "",
"C:/sapyexamples/output/obstable01.dbf",
analysis_method="ALL_SIGHTLINES")
outViewshed2.save("C:/sapyexamples/output/outvwshd2_01")
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: Viewshed2_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
inRaster = "elevation"
inObservers = "obser2.shp"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/sapyexamples/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
outViewshed2 = Viewshed2(inRaster, inObservers, outAGL, analysisType,
verticalError, outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
# Save the output
outViewshed2.save("C:/sapyexamples/output/outvwshd2_02")
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst oder 3D Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst oder 3D Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst oder 3D Analyst