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
Es gibt zwei Arten von Sichtbarkeitsanalysen, die von diesem Werkzeug durchgeführt werden können und über den Parameter Analysetyp gesteuert werden. Beim ersten Typ, FREQUENCY, bestimmt das Werkzeug, welche Raster-Oberflächenpositionen für verschiedene Beobachter sichtbar sind. Bei dem anderen Typ, OBSERVERS, wird ermittelt, welche Beobachter von jeder Raster-Oberflächenposition sichtbar sind.
Dieses Werkzeug lässt sich mit GPU beschleunigen, d. h. wenn sich ein GPU-Gerät (Grafikprozessor) auf Ihrem System befindet, lässt sich damit die Leistung des Werkzeugs verbessern.
Derzeit werden von diesem Werkzeug nur NVIDIA-Grafikkarten mit CUDA-Compute Capability Version 2.0 oder OpenCL 1.2 unterstützt. Seine Funktion hängt davon ab, ob in Ihrem System eine entsprechende Karte installiert ist. Um die ordnungsgemäße Ausführung des Werkzeugs zu gewährleisten, informieren Sie sich bitte auf der Aktualisierungsseite für NVIDIA-Treiber über den aktuellsten Treiber.
Dieses Werkzeug gibt möglicherweise einen GPU-Fehler zurück und ist nicht ausführbar, wenn der Windows-Registrierschlüssel "TdrDelay" (Timeout-Erkennung und Wiederherstellungsverzögerung) einen zu niedrigen Wert für den Vorgang aufweist. Der Standardwert für "TdrDelay" ist 2 Sekunden, Sie müssen ihn jedoch möglicherweise in einen größeren Wert, z. B. 60 Sekunden, ändern. Der Registry-Pfad für den Schlüssel TdrDelay lautet in den meisten Windows-Systemen HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Sollte der Schlüssel TdrDelay nicht vorhanden sein, müssen Sie ihn in diesem Pfad anlegen und ihm den höheren Wert zuweisen. Starten Sie den Computer neu, damit die Änderung wirksam wird. Näheres zur Festlegung des Registrierschlüssels "TdrDelay" erfahren Sie auf der Webseite "TDR Registry Keys" von .
Im Gegensatz zu anderen Werkzeugen weist Sichtfeld 2 keinen Z-Faktor auf. Um die Korrektheit des Ausgabe-Sichtbarkeitsrasters sicherzustellen, weisen Sie dem Eingabe-Raster ein sphäroides vertikales Koordinatensystem zu, wenn es noch über keines verfügt.
Die Sichtbarkeit jedes einzelnen Zellenmittelpunkts wird durch einen Sichtlinientest zwischen dem Ziel und dem jeweiligen Beobachter ermittelt. Wenn ein Beobachter das Ziel im Zellenmittelpunkt sehen kann, wird die Zelle als sichtbar erachtet. Bei der Ermittlung der Sichtbarkeit wird stets die Erdkrümmung berücksichtigt.
Nicht sichtbaren Zellen wird im Ausgabe-Raster der Wert "NoData" zugewiesen.
Für den Analysetyp OBSERVERS liegt die maximal zulässige Zahl an Eingabe-Beobachterpunkten bei 32.
Wenn das Eingabe-Raster aufgrund von Fehlern bei der Referenzpunkterfassung nicht erwünschte Informationen enthält, können Sie das Raster mit einem Tiefpassfilter wie der Option "Mittelwert" der Funktion Focal Statistics glätten, bevor Sie dieses Werkzeug ausführen.
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.
Das Sichtfeld wird standardmäßig auf die maximale Ausdehnung des Eingabe-Datasets berechnet. Zur Verbesserung der Performance empfiehlt es sich, den Parameter Äußerer Radius explizit auf die maximale Entfernung festzulegen, die für die Analyse von Interesse ist. Mit diesem Parameter kann das Werkzeug seine Berechnungen ausschließlich für die Zellen ausführen, die sich in einer bestimmten Entfernung von den Beobachtern befinden.
Sie können den Parameter Analysemethode verwenden, um die Qualität eines Ergebnisses und die Zeit zu steuern, die das Abrufen eines Ergebnisses in Anspruch nimmt. Die Methode PERIMETER_SIGHTLINES ist für untersuchende Analysen vorgesehen, da sie eine schnellere Performance auf Kosten der Ausgabequalität erzielt. Die genaueste Ausgabe liefert die Methode ALL_SIGHTLINES.
Weitere Informationen zu technischen Aspekten der Umsetzung dieses Werkzeugs können Sie der nachfolgenden Quelle entnehmen:
http://support.esri.com/en/knowledgebase/techarticles/detail/42804
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 Ganzzahl- 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, 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 |
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 (in Oberflächeneinheiten) an, die dem Z-Wert jeder Zielzelle hinzugefügt wird, wenn dieser für die Sichtbarkeit berücksichtigt wird. Er sollte als positive Ganzzahl oder als Gleitkommawert vorliegen. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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_elevation (optional) | Dieser Wert wird herangezogen, um die Oberflächenhöhen der Beobachterpunkte oder Stützpunkte zu definieren. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 (in Oberflächeneinheiten) an, die der Beobachterhöhe hinzugefügt werden soll. Er sollte als positive Ganzzahl oder als Gleitkommawert vorliegen. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 |
inner_radius (optional) | Dieser Wert definiert die Anfangsentfernung (minimal), von der aus die Sichtbarkeit bestimmt wird. Zellen mit einem Wert unter dieser Entfernung werden in der Ausgabe als nicht sichtbar betrachtet, können aber dennoch die Sichtbarkeit der Zellen zwischen dem inneren und äußeren Radius behindern. Der Standardwert ist 0. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 |
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. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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.0 angegeben (0 = Norden) werden. Der Standardwert ist 0. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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. | Constant | Field |
horizontal_end_angle (optional) | Dieser Wert definiert den Endwinkel des horizontalen Abtastbereichs. Der Wert sollte in Grad von 0 bis 360.0 angegeben (0 = Norden) werden. Der Standardwert ist 360.0. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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. | Constant | 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.0, als Ganzzahl- oder Gleitkommawert, angegeben werden. Der Standardwert ist 90.0. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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. | Constant | 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.0 bis 0, als Ganzzahl- oder Gleitkommawert, angegeben werden. Der Standardwert ist -90,0. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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. | Constant | 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 bestimmt, die verschiedene Beobachter ohne Verwendung von Beobachterparametern sehen können.
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 bestimmt, die verschiedene Beobachter mithilfe von Attributen in der Eingabe-Feature-Class als Beobachterparameter sehen können.
# 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