-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSunshine.py
More file actions
66 lines (52 loc) · 4.95 KB
/
Sunshine.py
File metadata and controls
66 lines (52 loc) · 4.95 KB
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
61
62
63
64
65
66
# -*- coding: utf-8 -*-
"""
Generated by ArcGIS ModelBuilder on : 2022-01-30 22:23:04
"""
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("spatial")
arcpy.CheckOutExtension("3D")
Terrain = arcpy.Raster("Terrain")
In_situ_instruments = "In-situ instruments"
cloud2D = "cloud2D"
Cloud_polygon = "Cloud polygon"
# Process: Buffer (Buffer) (analysis)
AOI = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab sunshine\\Lab sunshine.gdb\\Insituinstruments_Buffer"
arcpy.analysis.Buffer(in_features=In_situ_instruments, out_feature_class=AOI, buffer_distance_or_field="2 Kilometers", line_side="FULL", line_end_type="ROUND", dissolve_option="NONE", dissolve_field=[], method="GEODESIC")
# Process: Area Solar Radiation (Area Solar Radiation) (sa)
Output_global_radiation_raster = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab sunshine\\Lab sunshine.gdb\\AreaSol_Terr1"
Area_Solar_Radiation = Output_global_radiation_raster
Output_direct_radiation_raster = ""
Output_diffuse_radiation_raster = ""
Output_direct_duration_raster = ""
with arcpy.EnvManager(mask=AOI):
Output_global_radiation_raster = arcpy.sa.AreaSolarRadiation(in_surface_raster=Terrain, latitude=-2.7123164159092994e-08, sky_size=200, time_configuration="MultiDays 2022 5 160", day_interval=14, hour_interval=0.5, each_interval="NOINTERVAL", z_factor=1, slope_aspect_input_type="FROM_DEM", calculation_directions=32, zenith_divisions=8, azimuth_divisions=8, diffuse_model_type="UNIFORM_SKY", diffuse_proportion=0.3, transmittivity=0.5, out_direct_radiation_raster=Output_direct_radiation_raster, out_diffuse_radiation_raster=Output_diffuse_radiation_raster, out_direct_duration_raster=Output_direct_duration_raster)
Output_global_radiation_raster.save(Area_Solar_Radiation)
# Process: Feature To 3D By Attribute (Feature To 3D By Attribute) (3d)
cloud2D_FeatureTo3DByAttribu_shp = "C:\\Users\\max_a\\AppData\\Local\\Temp\\ArcGISProTemp15340\\cloud2D_FeatureTo3DByAttribu.shp"
arcpy.ddd.FeatureTo3DByAttribute(in_features=cloud2D, out_feature_class=cloud2D_FeatureTo3DByAttribu_shp, height_field="cbh", to_height_field="")
# Process: Layer 3D To Feature Class (Layer 3D To Feature Class) (3d)
cloud3dim = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab sunshine\\Lab sunshine.gdb\\cloud3dim"
arcpy.ddd.Layer3DToFeatureClass(in_feature_layer=Cloud_polygon, out_feature_class=cloud3dim, group_field="", disable_materials="ENABLE_COLORS_AND_TEXTURES")
# Process: Sun Shadow Volume (Sun Shadow Volume) (3d)
Output_Feature_Class = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab sunshine\\Lab sunshine.gdb\\cloud3dim_SunShadowVolume"
arcpy.ddd.SunShadowVolume(in_features=[cloud3dim], start_date_and_time="1/30/2022 10:20:49 PM", out_feature_class=Output_Feature_Class, adjusted_for_dst="ADJUSTED_FOR_DST", time_zone="Central_Europe_Standard_Time", end_date_and_time="", iteration_interval=0, iteration_unit="DAYS")
# Process: Area Solar Radiation (2) (Area Solar Radiation) (sa)
Output_global_radiation_raster_2_ = "C:\\Users\\max_a\\Documents\\ArcGIS\\Projects\\Lab sunshine\\Lab sunshine.gdb\\AreaSol_Terr2"
Area_Solar_Radiation_2_ = Output_global_radiation_raster_2_
Output_direct_radiation_raster_2_ = ""
Output_diffuse_radiation_raster_2_ = ""
Output_direct_duration_raster_2_ = ""
with arcpy.EnvManager(mask=cloud2D):
Output_global_radiation_raster_2_ = arcpy.sa.AreaSolarRadiation(in_surface_raster=Terrain, latitude=-2.7123164159092994e-08, sky_size=200, time_configuration="MultiDays 2022 5 160", day_interval=14, hour_interval=0.5, each_interval="NOINTERVAL", z_factor=1, slope_aspect_input_type="FROM_DEM", calculation_directions=32, zenith_divisions=8, azimuth_divisions=8, diffuse_model_type="UNIFORM_SKY", diffuse_proportion=0.3, transmittivity=0.5, out_direct_radiation_raster=Output_direct_radiation_raster_2_, out_diffuse_radiation_raster=Output_diffuse_radiation_raster_2_, out_direct_duration_raster=Output_direct_duration_raster_2_)
Output_global_radiation_raster_2_.save(Area_Solar_Radiation_2_)
# Process: Mosaic (Mosaic) (management)
Updated_Target_Raster = arcpy.management.Mosaic(inputs=[Output_global_radiation_raster_2_], target=Output_global_radiation_raster, mosaic_type="LAST", colormap="FIRST", background_value=None, nodata_value=None, onebit_to_eightbit="NONE", mosaicking_tolerance=0, MatchingMethod="NONE")[0]
Updated_Target_Raster = arcpy.Raster(Updated_Target_Raster)
if __name__ == '__main__':
# Global Environment settings
with arcpy.EnvManager(scratchWorkspace=r"C:\Users\max_a\Documents\ArcGIS\Projects\Lab sunshine\Lab sunshine.gdb", workspace=r"C:\Users\max_a\Documents\ArcGIS\Projects\Lab sunshine\Lab sunshine.gdb"):
Model()