Area Solar Radiation (Spatial Analyst)
Summary
Derives incoming solar radiation from a raster surface.
Usage

Because insolation calculations can be time consuming, it is important to be sure all parameters are correct. Calculation for a large digital elevation model (DEM) can take hours, and a very large DEM could take days.

The output radiation rasters will always be floatingpoint type and have units of watt hours per square meter (WH/m^{2}). The direct duration raster output will be integer with unit hours.

The latitude for the site area (units: decimal degree, positive for the north hemisphere and negative for the south hemisphere) is used in calculations such as solar declination and solar position.
The analysis is designed only for local landscape scales, so it is generally acceptable to use one latitude value for the whole DEM. With larger datasets (i.e., states, countries, or continents), the insolation results will differ significantly at different latitudes (greater than 1 degree). To analyze broader geographic regions, it is necessary to divide the study area into zones with different latitudes.

For multiday time configurations, the maximum range of days is a total of one year (365 days, or 366 days for leap years). If the start day is greater than the end day, the time calculations will proceed into the following year.
For example, [start day, end day] = [365, 31], represents December 31 to January 31 of the following year. The example of [1, 2], the time is inclusive for the first day from 0:00 hours (January 1) to 0:00 (January 2). The start day and end day cannot be equal.
The year value for time configuration is used to determine a leap year. It does not have any other influence on the solar radiation analysis as the calculations are a function of the time period determined by Julian days.

For withinday time configurations, the maximum range of time is one day (24 hours). Calculations will not be performed across days (for instance, from 12:00 p.m. to 12:00 p.m. the next day). The start time must be less than the end time.

For withinday time configurations, the start and end times are displayed as solar time (units: decimal hours). Use the time conversion dialog box window to convert the local standard time and local solar time (HMS). When converting local standard time to solar time, the program accounts for equation of time.

The use of a zfactor is essential for correcting calculations when the surface z units are expressed in units different from the ground x,y units. To get accurate results, the z units should be the same as the x,y ground units. If they are not the same, use a zfactor to convert z units to x,y units. For example, if your x,y units are meters and your z units are feet, you could specify a zfactor of 0.3048 to convert feet to meters.

It is recommended to have your data in a projection coordinate system (units meters). However, if you choose to run the analysis with a spherical coordinate system you will need to specify an appropriate zfactor for that latitude. If your x,y units are decimal degrees and your z units are meters, some appropriate zfactors for particular latitudes are:
Latitude Zfactor 0 0.00000898 10 0.00000912 20 0.00000956 30 0.00001036 40 0.00001171 50 0.00001395 60 0.00001792 70 0.00002619 80 0.00005156

The latitude for the site area (units: decimal degree, positive for the north hemisphere and negative for the south hemisphere) is used in calculations such as solar declination and solar position. Because the solar analysis is designed for landscape scales and local scales, it is acceptable to use one latitude value for the whole DEM. For broader geographic regions, it is necessary to divide the study area into zones with different latitudes.

For input surface rasters containing a spatial reference, the mean latitude is automatically calculated; otherwise, latitude will default to 45 degrees. When using an input layer, the spatial reference of the data frame is used.

Sky size is the resolution of the viewshed, sky map, and sun map rasters which are used in the radiation calculations (units: cells per side). These are upwardlooking, hemispherical raster representations of the sky and do not have a geographic coordinate system. These grids are square (equal number of rows and columns).
Increasing the sky size increases calculation accuracy but also increases calculation time considerably.

When the "day interval" setting is small (e.g., < 14 days) a larger sky size should be used. During analysis the sun map (determined by the sky size) is used to represent sun positions (tracks) for particular time periods to calculate direct radiation. With smaller day intervals, if the sky size resolution is not large enough, sun tracks may overlap, resulting in zero or lower radiation values for that track. Increasing the resolution provides a more accurate result.

The maximum sky size value is 4000. A value of 200 is default and is sufficient for whole DEMs with large day intervals (e.g., > 14 days). A sky size value of 512 is sufficient for calculations at point locations where calculation time is less of an issue. At smaller day intervals (e.g., < 14 days), it is recommended to use higher values. For example, to calculate insolation for a location at the equator with day interval = 1, it is recommended to use a sky size of 2800 or more.

Day intervals greater than 3 are recommended as sun tracks within three days typically overlap, depending on sky size and time of year. For calculations of the whole year with monthly interval, day interval is disabled and the program internally uses calendar month intervals. The default value is 14.

Because the viewshed calculation can be highly intensive, horizon angles are only traced for the number of calculation directions specified. Valid values must be multiples of 8 (8, 16, 24, 32, and so on). Typically, a value of 8 or 16 is adequate for areas with gentle topography, whereas a value of 32 is adequate for complex topography. The default value is 32.

The number of calculation directions needed is related to the resolution of the input DEM. Natural terrain at 30m resolution is usually quite smooth so fewer directions are sufficient for most situations (16 or 32). With finer DEMs, and particularly with manmade structures incorporated in the DEMs, the number of directions needs to increase. Increasing the number of directions will increase accuracy but will also increase calculation time.

The Create outputs for each interval check box provides the flexibility to calculate insolation integrated over a specified time period or insolation "for each interval" in a time series. For example, for the withinday time period with an hour interval of one, checking this box will create hourly insolation values; otherwise, insolation integrated for the entire day is calculated.

The For each interval check box parameter affects the format and number of output radiation files. For area analysis, always verify that sufficient disk space is available before initiating calculations, because it creates multiple outputs. When checked, the default output format is an ESRI GRID stack containing multiple bands that correspond to the radiation or duration values for each time interval (hour interval when time configuration is less than one day, or day interval when multiple days).

The diffuse proportion is the fraction of global normal radiation flux that is diffuse. Values range from 0 to 1. This value should be set according to atmospheric conditions. Typical values are 0.2 for very clear sky conditions and 0.3 for generally clear sky conditions.

The amount of solar radiation that is received by the surface is only a portion of what would be received outside the atmosphere. Transmittivity is a property of the atmosphere and is the ratio of the energy received at the upper edge of the atmosphere to that reaching the earths's surface by the shortest path (in the direction of the zenith), averaged over all wavelengths. Values range from 0 (no transmission) to 1 (complete transmission). Typically observed values are 0.6 or 0.7 for very clear sky conditions and 0.5 for only a generally clear sky.
Because the algorithms corrects for elevation effects, transmittivity should always be given for sea level. Transmittivity has an inverse relation with the diffuse proportion parameter.
Syntax
Parameter  Explanation  Data Type 
in_surface_raster 
Input elevation surface raster.  Raster Layer 
latitude (Optional) 
The latitude for the site area. The units are decimal degrees, with positive values for the northern hemisphere and negative for the southern. For input surface rasters containing a spatial reference, the mean latitude is automatically calculated; otherwise, latitude will default to 45 degrees.  Double 
sky_size (Optional) 
The resolution or sky size for the viewshed, sky map, and sun map grids. The units are cells. The default creates a raster of 200 x 200 cells.  Long 
time_configuration (Optional) 
Specifies the time configuration (period) used for calculating solar radiation. The Time class objects are used to specify the time configuration. The different types of time configurations available are TimeWithinDay, TimeMultiDays, TimeSpecialDays, and TimeWholeYear. The following are the forms:
The default time_configuration is TimeMultiDays with the start_day of 5 and end_day of 160, for the current Julian year.  Time configuration 
day_interval (Optional) 
The time interval through the year (units: days) used for calculation of sky sectors for the sun map. The default value is 14 (biweekly).  Long 
hour_interval (Optional) 
Time interval through the day (units: hours) used for calculation of sky sectors for sun maps. The default value is 0.5.  Double 
each_interval (Optional) 
Specifies whether to calculate a single total insolation value for all locations or multiple values for the specified hour and day interval.
 Boolean 
z_factor (Optional) 
The number of ground x,y units in one surface z unit. The zfactor adjusts the units of measure for the z units when they are different from the x,y units of the input surface. The zvalues of the input surface are multiplied by the zfactor when calculating the final output surface. If the x,y units and z units are in the same units of measure, the zfactor is 1. This is the default. If the x,y units and z units are in different units of measure, the zfactor must be set to the appropriate factor, or the results will be incorrect. For example, if your z units are feet and your x,y units are meters, you would use a zfactor of 0.3048 to convert your z units from feet to meters (1 foot = 0.3048 meter).  Double 
slope_aspect_input_type (Optional) 
How slope and aspect information are derived for analysis.
 String 
calculation_directions (Optional) 
The number of azimuth directions used when calculating the viewshed. Valid values must be multiples of 8 (8, 16, 24, 32, and so on). The default value is 32 directions, which is adequate for complex topography.  Long 
zenith_divisions (Optional) 
The number of divisions used to create sky sectors in the sky map. The default is eight divisions (relative to zenith). Values must be greater than zero and less than half the sky size value.  Long 
azimuth_divisions (Optional) 
The number of divisions used to create sky sectors in the sky map. The default is eight divisions (relative to north). Valid values must be multiples of 8. Values must be greater than zero and less than 160.  Long 
diffuse_model_type (Optional) 
Type of diffuse radiation model.
 String 
diffuse_proportion (Optional) 
The proportion of global normal radiation flux that is diffuse. Values range from 0 to 1. This value should be set according to atmospheric conditions. The default value is 0.3 for generally clear sky conditions.  Double 
transmittivity (Optional) 
The fraction of radiation that passes through the atmosphere (averaged over all wavelengths). Values range from 0 (no transmission) to 1 (all transmission). The default is 0.5 for a generally clear sky.  Double 
out_direct_radiation_raster (Optional) 
The output raster representing the direct incoming solar radiation for each location. The output has units of watt hours per square meter (WH/m^{2}).  Raster Dataset 
out_diffuse_radiation_raster (Optional) 
The output raster representing the diffuse incoming solar radiation for each location. The output has units of watt hours per square meter (WH/m^{2}).  Raster Dataset 
out_direct_duration_raster (Optional) 
The output raster representing the duration of direct incoming solar radiation. The output has units of hours.  Raster Dataset 
Return Value
Name  Explanation  Data Type 
out_global_radiation_raster 
The output raster representing the global radiation or total amount of incoming solar insolation (direct + diffuse) calculated for each location of the input surface. The output has units of watt hours per square meter (WH/m^{2}).  Raster 
Code Sample
The following Python Window script demonstrates how to use the AreaSolarRadiation tool.
import arcpy from arcpy.sa import * from arcpy import env env.workspace = "C:/sapyexamples/data" outGlobalRadiation = AreaSolarRadiation("dem30", "", "400", TimeMultipleDays(2008,91,152)) outGlobalRadiation.save("C:/sapyexamples/output/glob_rad")
Calculate the amount of incoming solar radiation over a geographic area.
# Name: AreaSolarRadiation_example02.py # Description: Derives incoming solar radiation from a raster surface. # Outputs a global radiation raster and optional direct, diffuse and direct duration rasters # for a specified time period. (April to July). # # Requirements: Spatial Analyst Extension # Author: ESRI # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/output" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Set local variables inRaster = "C:/sapyexamples/data/solar_dem" latitude = 35.75 skySize = 400 timeConfig = TimeMultipleDays(2008, 91, 212) dayInterval = 14 hourInterval = 0.5 zFactor = 0.3048 calcDirections = 32 zenithDivisions = 16 azimuthDivisions = 16 diffuseProp = 0.7 transmittivity = 0.4 outDirectRad = "" outDiffuseRad = "" outDirectDur = Raster("C:/sapyexamples/output/dir_dur") # Execute AreaSolarRadiation outGlobalRad = AreaSolarRadiation(inRaster, latitude, skySize, timeConfig, dayInterval, hourInterval, "NOINTERVAL", zFactor, "FLAT_SURFACE", calcDirections, zenithDivisions, azimuthDivisions, "UNIFORM_SKY", diffuseProp, transmittivity, outDirectRad, outDiffuseRad, outDirectDur) # Save the output outGlobalRad.save("C:/sapyexamples/output/glob_rad")