Sichtbarkeit (Spatial Analyst)
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.
Verwendung
-
Dieses Werkzeug unterstützt zwei Sichtbarkeitsanalysetypen, FREQUENCY und OBSERVERS, die durch den Werkzeugparameter Analysetyp gesteuert werden. Beim Analysetyp "FREQUENCY" bestimmt das Werkzeug, welche Raster-Oberflächenpositionen für verschiedene Beobachter sichtbar sind. Beim Analysetyp "OBSERVERS" 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.
Syntax
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 |
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. Hierbei handelt es sich um 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) |
Dieser Wert gibt eine vertikale Entfernung (in Oberflächeneinheiten) an, die dem Z-Wert jeder Zelle 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. 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 einer Konstante ü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. | Field | Constant |
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. 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 einer Konstante ü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. | Field | Constant |
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. 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 einer Konstante ü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. | Field | Constant |
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. Dabei kann es sich um positive oder negative Ganzzahl- 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. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 einer Konstante ü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. | Field | Constant |
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 Ganzzahl- 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. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 einer Konstante ü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. | Field | Constant |
horizontal_start_angle (optional) |
Dieser Wert definiert den Anfangswinkel des horizontalen Abtastbereichs. Der Wert sollte in Grad von 0 bis 360 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. 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 einer Konstante ü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. | Field | Constant |
horizontal_end_angle (optional) |
Dieser Wert definiert den Endwinkel des horizontalen Abtastbereichs. Der Wert sollte in Grad von 0 bis 360 angegeben (0 = Norden) werden. Der Standardwert ist 360. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 einer Konstante ü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. | Field | Constant |
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. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 einer Konstante ü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. | Field | Constant |
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. Dabei kann es sich um ein Feld im Eingabe-Dataset für Beobachter-Features oder um einen numerischen Wert handeln. 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 einer Konstante ü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. | Field | Constant |
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 (FREQUENCY-Option) sichtbar ist, oder welche Beobachterpositionen von jeder Zelle in der Raster-Oberfläche (OBSERVERS-Option) sichtbar sind. | Raster |
Codebeispiel
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")
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")