Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Hiermit werden die Raster-Oberflächenpositionen, die für eine Reihe von Beobachter-Features sichtbar sind, oder die Beobachterpunkte, die von jeder Raster-Oberflächenposition sichtbar sind, ermittelt.
Abbildung
Verwendung
Dieses Werkzeug unterstützt zwei Sichtbarkeitsanalysetypen, "Häufigkeit" und "Beobachter", die durch den Werkzeugparameter Analysetyp gesteuert werden. Beim ersten Typ bestimmt das Werkzeug, welche Raster-Oberflächenpositionen für verschiedene Beobachter sichtbar sind. Bei dem anderen wird ermittelt, welche Beobachter von jeder Raster-Oberflächenposition sichtbar sind.
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.
Die Sichtbarkeit aller Zellzentren wird bestimmt, indem der Höhenwinkel zum Zellzentrum mit dem Höhenwinkel zum lokalen Horizont verglichen wird. Der lokale Horizont wird durch Untersuchen des Zwischenterrains zwischen dem Beobachterpunkt und dem aktuellen Zellzentrum berechnet. Wenn der Punkt über dem lokalen Horizont liegt, gilt er als sichtbar.
Das Werkzeug stellt ein optionales AGL-Ausgabe-Raster (Above Ground Level, Ebene über Bodenoberfläche) bereit. Jede Zelle des AGL-Ausgabe-Rasters erfasst die Mindesthöhe, die dieser Zelle hinzugefügt werden muss, um sie zumindest durch einen Beobachter sichtbar zu machen.
Wenn die Eingabe-Beobachter-Features mehrere Beobachter enthalten, ist der Ausgabewert das Minimum der AGL-Werte der einzelnen Beobachter.
Verwenden Sie die Beobachterparameter, um Sichtbarkeitsanalysen besser steuern zu können. Durch den Beobachterversatz-Parameter können Sie in der Sichtbarkeitsanalyse beispielsweise einen Versatz für die Beobachterhöhe angeben.
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.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
Visibility (in_raster, in_observer_features, {out_agl_raster}, {analysis_type}, {nonvisible_cell_value}, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {outer_radius}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle})
Parameter | Erläuterung | Datentyp |
in_raster | Das Eingabe-Oberflächen-Raster. | Raster Layer |
in_observer_features | Die Feature-Class, die die Beobachterpositionen identifiziert. Bei der Eingabe kann es sich um Punkt- oder Polylinien-Features handeln. | Feature Layer |
out_agl_raster (optional) | Das AGL-Ausgabe-Raster. 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, haben in diesem Ausgabe-Raster den Wert 0. | Raster Dataset |
analysis_type (optional) | Der Sichtbarkeitsanalysetyp.
| String |
nonvisible_cell_value (optional) | Wert, der nicht sichtbaren Zellen zugewiesen wird.
| Boolean |
z_factor (optional) | Anzahl der XY-Geländeeinheiten in einer Z-Oberflächeneinheit. Durch den Z-Faktor werden die Maßeinheiten der Z-Einheiten angepasst, falls sie sich von den XY-Einheiten der Eingabe-Oberfläche unterscheiden. Die Z-Werte der Eingabe-Oberfläche werden bei der Berechnung der endgültigen Ausgabe-Oberfläche mit dem Z-Faktor multipliziert. Falls die XY-Einheiten und die Z-Einheiten in denselben Maßeinheiten ausgedrückt sind, lautet der Z-Faktor 1. Dies ist die Standardeinstellung. Wenn die XY- und Z-Einheiten unterschiedliche Maßeinheiten aufweisen, muss der Z-Faktor entsprechend festgelegt werden, da andernfalls falsche Ergebnisse erzielt werden. Beispiel: Wenn die Z-Einheiten in Fuß und die XY-Einheiten in Metern angegeben sind, müssen Sie den Z-Faktor "0,3048" wählen, um die Z-Einheiten von Fuß in Meter umzurechnen (1 Fuß = 0,3048 Meter). | Double |
curvature_correction (optional) | Ermöglicht eine Korrektur der Erdkrümmung.
| Boolean |
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. Standardmäßig wird ein numerisches OFFSETB-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 0 verwendet. | String |
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. Standardmäßig wird ein numerisches SPOT-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben und das Standardfeld nicht in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird er durch bilineare Interpolation mit den Oberflächenhöhenwerten in den benachbarten Zellen der Beobachterposition geschätzt. | String |
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. Standardmäßig wird ein numerisches OFFSETA-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 1 verwendet. | String |
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. Dabei kann es sich um positive oder negative ganzzahlige oder Gleitkommawerte handeln. Wenn der Wert positiv ist, wird er als dreidimensionale Sichtlinienentfernung interpretiert. Wenn der Wert negativ ist, wird er als zweidimensionale planimetrische Entfernung interpretiert. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Standardmäßig wird ein numerisches RADIUS1-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 0 verwendet. | String |
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 positive oder negative ganzzahlige oder Gleitkommawerte handeln. Wenn der Wert positiv ist, wird er als dreidimensionale Sichtlinienentfernung interpretiert. Wenn der Wert negativ ist, wird er als zweidimensionale planimetrische Entfernung interpretiert. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Standardmäßig wird ein numerisches RADIUS2-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert "unendlich" verwendet. | String |
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. Standardmäßig wird ein numerisches AZIMUTH1-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 0 verwendet. | String |
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. Standardmäßig wird ein numerisches AZIMUTH2-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 360 verwendet. | String |
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. Sie können ein Feld im Eingabe-Beobachter-Dataset auswählen oder einen numerischen Wert angeben. Standardmäßig wird ein numerisches VERT1-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert 90 verwendet. | String |
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. Standardmäßig wird ein numerisches VERT2-Feld verwendet, wenn es in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist. Es kann durch Angabe eines anderen numerischen Feldes oder Wertes überschrieben werden. Wenn dieser Parameter nicht angegeben ist und kein Standardfeld in der Attributtabelle der Eingabe-Beobachter-Features vorhanden ist, wird der Standardwert -90 verwendet. | String |
Rückgabewert
Name | Erläuterung | Datentyp |
out_raster | Das Ausgabe-Raster. Die Ausgabe erfasst die Häufigkeit, mit der jede Zellenposition im Eingabe-Oberflächenraster für Eingabe-Beobachterpositionen (der Analysetyp "Häufigkeit") sichtbar ist, oder welche Beobachterpositionen von jeder Zelle in der Raster-Oberfläche (der Beobachtertyp) sichtbar sind. | Raster |
Codebeispiel
Visibility – Beispiel 1 (Python-Fenster)
In diesem Beispiel werden Oberflächenpositionen bestimmt, die für verschiedene in einem Shapefile definierte Beobachter sichtbar sind.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "c:/sapyexamples/data"
outvis = arcpy.sa.Visibility("elevation", "observers.shp", "c:/sapyexamples/output/aglout1",
"FREQUENCY", "NODATA", "1", "CURVED_EARTH", "0.13",
"OFFSETB", "SPOT", "OFFSETA", "RADIUS1", "RADIUS2",
"AZIMUTH1", "AZIMUTH2", "VERT1", "VERT2")
outvis.save("c:/sapyexamples/output/visiout1")
Visibility – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel wird festgelegt, welche Beobachter an jeder Oberflächenposition sichtbar sind.
# Name: Visibility_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"
# set local variables
inRaster = "elevation"
inObserverFeatures = "observers.shp"
aglOutput = "c:/sapyexamples/output/aglout1"
analysisType = "OBSERVERS"
nonVisibleValue = "ZERO"
zFactor = 1
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.13
surfaceOffset = 500
observerElevation = 2000
observerOffset = 500
innerRadius = 20000
outerRadius = 100000
horizStartAngle = 45
horizEndAngle = 215
vertUpperAngle = 5
vertLowerAngle = -5
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
# Execute Visibility
outvis = arcpy.sa.Visibility(inRaster, inObserverFeatures, algOutput, analysisType,
nonVisibleValue, zFactor, useEarthCurvature,
refractivityCoefficient, surfaceOffset, observerElevation,
observerOffset, innerRadius, outerRadius, horizStartAngle,
horizEndAngle, vertUpperAngle, vertLowerAngle)
# Save the output
outvis.save("c:/sapyexamples/output/visiout1")
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