Available with 3D Analyst license.
Summary
Shows areas visible to one or more observer locations.
Usage
A viewshed is created by finding the areas visible from one or more specified observer locations.
Intermediate datasets are projected to a localized Azimuthal Equidistant projection to maintain fidelity of distance and direction.
The output area polygons will have a Visibility field containing the number of observers that can view a given area.
Using a surface and one or more observer locations, the tool will create areas that are visible to one or more of the observers, or not visible to any.
The tool uses earth curvature and refractivity calculations if the input surface supports them.
Syntax
arcpy.defense.RadialLineOfSight(in_observer_features, in_surface, out_feature_class, {radius}, {observer_height_above_surface})
Parameter | Explanation | Data Type |
in_observer_features | The input observer points. | Feature Set |
in_surface | The input elevation raster surface. | Raster Layer |
out_feature_class | The output polygon feature class showing visible and nonvisible surface areas. | Feature Class |
radius (Optional) | The radius of the analysis area from the observer. | Double |
observer_height_above_surface (Optional) | The height added to the surface elevation of the observer. The default is 2. | Double |
Code sample
The following Python window script demonstrates how to use the RadialLineOfSight function.
import arcpy
arcpy.env.workspace = r"C:\Data.gdb"
arcpy.RadialLineOfSight_defense(r"C:/RLOS_Observers",
"Elevation_Dataset",
"RLOS_Output", 5000, 2)
The following example uses the RadialLineOfSight function in a sample workflow script.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = r"C:/Data.gdb"
arcpy.env.overwriteOutput = True
# Select points from observers from input
observers = "Observers"
branch = "Branch"
whereClause = "Marines = 'Yes'"
arcpy.Select_analysis(branch, Marines, whereClause)
# Create Radial Line Of Sight using Marine observers
in_observer_features = "Observers"
in_surface = "Elevation_Dataset"
out_feature_class = "RLOS_Observers_Marines"
radius = "METERS"
observer_height_above_surface = "METERS"
arcpy.RadialLineOfSight_defense(Observers,
Elevation_Dataset,
RLOS_Observers_Marines,
1000,
2)
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes