Zusammenfassung
Erstellt Flächen, in denen ein Beobachter Objekte auf dem Boden erkennen kann. Die Eingabe-Beobachterpunkte können entweder Beobachter (z. B. Personen am Boden oder Beobachter in einem Feuerwachturm) oder beobachtete Objekte (z. B. Windkraftanlagen, Wassertürme, Fahrzeuge oder Personen) sein.
Sowohl Beobachter als auch beobachtete Objekte können sich in einer bestimmten Höhe über dem Boden befinden. Diese Höhen werden zur Ermittlung der Sichtbarkeit verwendet. So wird beispielsweise ein Sichtfeld, das für 90 Meter hohe Windkraftanlagen und eine 1,80 Meter große, am Boden stehende Person berechnet wird, üblicherweise größer sein als ein Sichtfeld für 60 Meter hohe Windkraftanlagen und eine 1,50 Meter große Person.
Der Ergebnis-Layer zeichnet auf, wie oft jede Zellenposition im Eingabe-Oberflächen-Raster von den Eingabe-Beobachterpunkten aus gesehen werden kann. Nicht sichtbare Zellen erhalten den Wert "NoData".
Abbildung
Verwendung
Dieses Portal-Werkzeug für die Raster-Analyse ist verfügbar, wenn Sie bei einem ArcGIS Enterprise -Portal mit einem konfigurierten ArcGIS Image Server für die Raster Analysis angemeldet sind. Beim Aufruf des Werkzeugs dient ArcGIS Pro als Client. Die Verarbeitung erfolgt auf den Servern, die mit ArcGIS Enterprise verbunden sind. Das Portal-Werkzeug akzeptiert Layer aus dem Portal als Eingabe und erstellt die Ausgabe im Portal.
Als Eingabe-Raster-Layer kann ein Layer aus dem Portal, ein URI bzw. eine URL zu einem Image-Service oder die Ausgabe des Werkzeugs Image Server-Layer erstellen verwendet werden. Bei dem Eingabe-Feature-Layer kann es sich um einen Layer aus dem Portal oder ein URI bzw. eine URL zu einem Feature-Service handeln. Lokale Raster-Daten oder -Layer werden von diesem Werkzeug nicht unterstützt. Obwohl Sie lokale Feature-Daten und Layer als Eingabe für dieses Portal verwenden können, empfiehlt es sich, Layer aus Ihrem Portal als Eingabe zu nutzen.
Die Sichtbarkeit jedes einzelnen Zellenmittelpunkts wird durch einen Sichtlinientest zwischen dem Ziel und dem jeweiligen Beobachter ermittelt.
Syntax
arcpy.ra.CreateViewshed(inputElevationSurface, inputObserverFeatures, outputName, {optimizeFor}, {maximumViewingDistanceType}, {maximumViewingDistance}, {maximumViewingDistanceField}, {minimumViewingDistanceType}, {minimumViewingDistance}, {minimumViewingDistanceField}, {viewingDistanceIs3D}, {observersElevationType}, {observersElevation}, {observersElevationField}, {observersHeightType}, {observersHeight}, {observersHeightField}, {targetHeightType}, {targetHeight}, {targetHeightField}, {aboveGroundLevelOutputName})
Parameter | Erklärung | Datentyp |
inputElevationSurface | Die Höhenoberfläche für die Berechnung des Sichtfeldes. Wenn sich die vertikale Einheit der Eingabe-Oberfläche von der horizontalen Einheit unterscheidet, beispielsweise, wenn die Höhenwerte in Fuß angegeben werden, das Koordinatensystem aber in Metern ist, muss für die Oberfläche ein vertikales Koordinatensystem definiert werden. Das Werkzeug verwendet nämlich die vertikalen (Z) und horizontalen (XY) Einheiten, um einen z-Faktor für die Sichtfeldanalyse zu berechnen. Ohne ein vertikales Koordinatensystem ist keine Z-Einheit verfügbar. Das Werkzeug geht dann davon aus, dass die Z-Einheit mit der XY-Einheit identisch ist. Das hat zur Folge, dass für die Analyse ein interner Z-Faktor von 1,0 verwendet wird. Dies kann die Ergebnisse verfälschen. Die Oberflächenhöhe kann ein Integer oder eine Gleitkommazahl sein. | Raster Layer; Image Service; String |
inputObserverFeatures | Die Punkt-Features, die die Beobachterpositionen beim Berechnen der Sichtfelder identifizieren. | Feature Set |
outputName | Der Name des Ausgabe-Raster-Service. Der Standardname basiert auf dem Werkzeugnamen und dem Namen des Eingabe-Layers. Wenn der Layer-Name bereits vorhanden ist, werden Sie dazu aufgefordert, einen anderen Namen einzugeben. | String |
optimizeFor (optional) | Die Optimierungsmethode für die Berechnung des Sichtfeldes.
| String |
maximumViewingDistanceType (optional) | Die Methode, mit der die maximale Betrachtungsentfernung ermittelt wird.
| String |
maximumViewingDistance (optional) | Hierbei handelt es sich um einen Entfernungsgrenzwert, bis zu dem sichtbare Flächen berechnet werden. Ob jenseits dieser Entfernung die weiteren Objekte von den Beobachterpunkten aus sichtbar sind, ist nicht bekannt. Die Einheiten können Kilometer, Meter, Meilen, Yard oder Fuß sein. Der Standardwert ist "Meilen". | Linear Unit |
maximumViewingDistanceField (optional) | In diesem Feld können Sie die maximale Betrachtungsentfernung für jeden Beobachter angeben. Die Werte in dem Feld müssen dieselbe Einheit wie die XY-Einheit der Eingabe-Höhenoberfläche aufweisen. Die maximale Betrachtungsentfernung ist ein Entfernungsgrenzwert, bis zu dem sichtbare Flächen berechnet werden. Ob jenseits dieser Entfernung die weiteren Objekte von den Beobachterpunkten aus sichtbar sind, ist nicht bekannt. | Field |
minimumViewingDistanceType (optional) | Wählen Sie die Methode aus, mit der die minimale sichtbare Betrachtungsentfernung ermittelt wird.
| String |
minimumViewingDistance (optional) | Hierbei handelt es sich um eine Entfernung, ab der die sichtbaren Flächen berechnet werden. Zellen auf der Oberfläche, die innerhalb dieser Entfernung liegen, sind in der Ausgabe nicht sichtbar, können aber dennoch die Sichtbarkeit der Zellen zwischen der minimalen und der maximalen Betrachtungsentfernung behindern. Die Einheiten können Kilometer, Meter, Meilen, Yard oder Fuß sein. Die Standardeinheiten lauten Meter. | Linear Unit |
minimumViewingDistanceField (optional) | In diesem Feld können Sie die minimale Betrachtungsentfernung für jeden Beobachter angeben. Die Werte in dem Feld müssen dieselbe Einheit wie die XY-Einheit der Eingabe-Höhenoberfläche aufweisen. Die minimale Betrachtungsentfernung legt die Entfernung fest, ab der die sichtbaren Flächen berechnet werden. Zellen auf der Oberfläche, die innerhalb dieser Entfernung liegen, sind in der Ausgabe nicht sichtbar, können aber dennoch die Sichtbarkeit der Zellen zwischen der minimalen und der maximalen Betrachtungsentfernung behindern. | Field |
viewingDistanceIs3D (optional) | Geben Sie an, ob die Parameter für minimale und maximale Betrachtungsentfernung dreidimensional oder zweidimensional (einfacher) gemessen werden. Eine 2D-Entfernung ist eine einfache lineare Distanz zwischen einem Beobachter und dem Ziel, die anhand der projizierten Position auf Höhe des Meeresspiegels ermittelt wird. Der Wert einer 3D-Distanz ist realistischer, da auch die relativen Höhen berücksichtigt werden.
| Boolean |
observersElevationType (optional) | Die Methode, mit der die Höhe der Beobachter ermittelt wird.
| String |
observersElevation (optional) | Hierbei handelt es sich um die Höhe der Beobachterpositionen. 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 in den Eingabe-Beobachter-Features fest. Die Einheiten können Kilometer, Meter, Meilen, Yard oder Fuß sein. Die Standardeinheiten lauten Meter. | Linear Unit |
observersElevationField (optional) | In diesem Feld können Sie die Höhe für die Beobachter angeben. Der Wert in dem Feld muss dieselbe Einheit wie die Z-Einheit der Eingabe-Höhenoberfläche aufweisen. Wird für den Parameter kein Wert angegeben, wird die Beobachterhöhe mittels bilinearer Interpolation dem Oberflächen-Raster entnommen. | Field |
observersHeightType (optional) | Die Methode, mit der die Höhe der Beobachter ermittelt wird.
| String |
observersHeight (optional) | Hierbei handelt es sich um die Höhe, die für Beobachterpositionen verwendet wird. Die Einheiten können Kilometer, Meter, Meilen, Yard oder Fuß sein. Die Standardeinheiten lauten Meter. | Linear Unit |
observersHeightField (optional) | In diesem Feld können Sie die Höhe für die Beobachter angeben. Der Wert in dem Feld muss dieselbe Einheit wie die Z-Einheit der Eingabe-Höhenoberfläche aufweisen. | Field |
targetHeightType (optional) | Die Methode, mit der die Höhe der Ziele ermittelt wird.
| String |
targetHeight (optional) | Hierbei handelt es sich um die Höhe von Strukturen oder Personen am Boden, die verwendet werden, um die Sichtbarkeit einzurichten. Das sich hieraus ergebende Sichtfeld umfasst diejenigen Flächen, von denen aus ein Beobachterpunkt diese anderen Objekte sehen kann. Umgekehrt können die anderen Objekte auch einen Beobachterpunkt sehen. Die Einheiten können Kilometer, Meter, Meilen, Yard oder Fuß sein. Die Standardeinheiten lauten Meter. | Linear Unit |
targetHeightField (optional) | Hierbei handelt es sich um ein Feld, mit dem die Höhe für die Ziele angegeben wird. Der Wert in dem Feld muss dieselbe Einheit wie die Z-Einheit der Eingabe-Höhenoberfläche aufweisen. | Field |
aboveGroundLevelOutputName (optional) | Der Name des AGL-Ausgabe-Rasters (Above Ground Level). 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. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
outputRaster | Das Ausgabe-Raster für das Sichtfeld. | Raster-Layer |
outputAboveGroundLevelRaster | Das Ausgabe-Raster der Ebene über Bodenoberfläche. | Raster-Layer |
Codebeispiel
In diesem Beispiel wird mithilfe vorgegebener Oberflächen- und Beobachterpunkte ein Sichtfeld-Image-Service erstellt.
import arcpy
arcpy.CreateViewshed_ra(
"https://myserver/rest/services/elevation/ImageServer",
"https://myserver/rest/services/destination/FeatureServer/0",
"outview1", "SPEED", "DISTANCE", "9 Miles", "#", "DISTANCE",
"0 Meters", "#", "2D", "ELEVATION", "#", "#", "HEIGHT",
"6 Feet", "#", "HEIGHT", "3 Feet", "#", "outagl1")
In diesem Beispiel wird mithilfe vorgegebener Oberflächen- und Beobachterpunkte ein Sichtfeld-Image-Service erstellt.
#---------------------------------------------------------------------------
# Name: CreateViewshed_example02.py
# Description: Creates a viewshed image service raster from given surface
# and observer points.
#
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inSurface = "https://myserver/rest/services/elevation/ImageServer"
inObservers = "https://myserver/rest/services/destination/FeatureServer/0"
outputViewshed = "outview1"
optimizeFor = "Speed"
maxDistType = "Distance"
maxDist = "9 Miles"
maxDistField = "#"
minDistType = "Distance"
minDist = "0 Miles"
minDistField = "#"
distanceIs3D = "2D"
obsElevationType = "Elevation"
obsElevation = "#"
obsElevationField = "#"
obsOffsetType = "Height"
obsOffset = "6 Feet"
obsOffsetField = "#"
surfOffsetType = "Height"
surfOffset = "3 Feet"
surfOffsetField = "#"
outputAgl = "outagl1"
# Execute Create Viewshed raster analysis tool
arcpy.CreateViewshed_ra(
inSurface, inObservers, outputViewshed, optimizeFor,
maxDistType, maxDist, maxDistField, minDistType, minDist,
minDistField, distanceIs3D, obsElevationType, obsElevation,
obsElevationField, obsOffsetType, obsOffset, obsOffsetField,
surfOffsetType, surfOffset, surfOffsetField, outputAgl)
Umgebungen
Lizenzinformationen
- Basic: Erfordert ArcGIS Image Server
- Standard: Erfordert ArcGIS Image Server
- Advanced: Erfordert ArcGIS Image Server