-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVisibility.py
60 lines (46 loc) · 2.87 KB
/
Visibility.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8 -*-
"""
Generated by ArcGIS ModelBuilder on : 2022-01-20 00:40:13
"""
import arcpy
def Model(): # Model
# To allow overwriting outputs change overwriteOutput option to True.
arcpy.env.overwriteOutput = False
# Check out any necessary licenses.
arcpy.CheckOutExtension("3D")
arcpy.CheckOutExtension("spatial")
arcpy.CheckOutExtension("ImageAnalyst")
Terrain = arcpy.Raster("Terrain")
Camera = "Camera"
Camera_range = "Camera range"
Source_points = "Source points"
# Process: Viewshed (Viewshed) (sa)
Viewshed_raster = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab Visibility\\Lab Visibility.gdb\\Viewshe_Terr1"
Viewshed = Viewshed_raster
Output_above_ground_level_raster = ""
with arcpy.EnvManager(mask=Camera_range):
Viewshed_raster = arcpy.sa.Viewshed(in_raster=Terrain, in_observer_features=Camera, z_factor=1, curvature_correction="FLAT_EARTH", refractivity_coefficient=0.13, out_agl_raster=Output_above_ground_level_raster)
Viewshed_raster.save(Viewshed)
# Process: Is Null (Is Null) (sa)
Viewshed_binary = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab Visibility\\Lab Visibility.gdb\\IsNull_Views1"
Is_Null = Viewshed_binary
Viewshed_binary = arcpy.sa.IsNull(in_raster=Viewshed_raster)
Viewshed_binary.save(Is_Null)
# Process: IDW (IDW) (sa)
IDW_raster = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab Visibility\\Lab Visibility.gdb\\Idw_Salzburg3"
IDW = IDW_raster
IDW_raster = arcpy.sa.Idw(in_point_features=Source_points, z_field="Visibility", cell_size="89.2111379999816", power=2, search_radius="VARIABLE 12", in_barrier_polyline_features="")
IDW_raster.save(IDW)
# Process: Clip IDW (Clip Raster) (management)
IDW_clipped = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab Visibility\\Lab Visibility.gdb\\Idw_Salzburg3_Clip"
arcpy.management.Clip(in_raster=IDW_raster, rectangle="1429558.7342 6061653.1219 1466802.9305 6089683.0556", out_raster=IDW_clipped, in_template_dataset=Camera_range, nodata_value="", clipping_geometry="NONE", maintain_clipping_extent="NO_MAINTAIN_EXTENT")
IDW_clipped = arcpy.Raster(IDW_clipped)
# Process: Con (Con) (sa)
Output_raster = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab Visibility\\Lab Visibility.gdb\\Con_IsNull_V3"
Con = Output_raster
Output_raster = arcpy.sa.Con(in_conditional_raster=Viewshed_binary, in_true_raster_or_constant=IDW_clipped, in_false_raster_or_constant="", where_clause="Value = 0")
Output_raster.save(Con)
if __name__ == '__main__':
# Global Environment settings
with arcpy.EnvManager(scratchWorkspace=r"C:\Users\max_a\Documents\ArcGIS\Projects\Lab Visibility\Lab Visibility.gdb", workspace=r"C:\Users\max_a\Documents\ArcGIS\Projects\Lab Visibility\Lab Visibility.gdb"):
Model()