Raster Solar Radiation (Spatial Analyst)

Summary

Calculates the incoming solar insolation for every raster cell of a digital surface model for Earth or the Moon.

Solar insolation is calculated as the amount of solar radiation energy received per unit area during an amount of time and is measured in units, kilowatt hours per square meter (kWh/m2).

Learn more about how Raster Solar Radiation works

Usage

  • Calculating insolation can be computationally intensive for large data extents and when calculating many time intervals. This may require a lot of computing power and hard disk space. You can perform preliminary runs with data at a coarser resolution or a subset of the data to ensure that the settings are correct before committing a run with the full-resolution data.

  • The defined spatial reference of the Input surface raster parameter specifies whether the analysis will be for Earth or the Moon.

  • The solar radiation computation requires the Output Coordinate System environment value to be in a projected coordinate system (PCS). It is recommended that the data be in a PCS with units of meters. If you run the analysis with a spherical coordinate system, you must set the Output Coordinate System environment to a valid PCS.

  • When the input raster needs to be resampled, the bilinear technique will be used. An example of when an input raster may be resampled is when the output coordinate system, extent, or cell size is different from that of the input.

  • Daylight saving time is supported for Earth only. For the Moon, times must be specified in UTC.

  • The End date and time parameter value must be equal to or greater than the start date. The total span of time must not be greater than one year. The start and end date times can cross the calendar year.

  • Output radiation values will be calculated for each respective time interval. If no solar radiation was received for a time interval, the result for that location will have a value of zero.

    If the total time specified between the start and end times is not equally divisible by the time interval, the total duration will be extended internally to provide the required number of time slices. For example, if the Time Interval parameter is set to cover three days but the difference between the specified start and end times covers eight days, the time interval will be extended to nine days. No partial results for times will be returned.

  • The minimum time interval for Earth data is 30 minutes and must be proportional to 30. The minimum time interval for Moon data is two hours and must be proportional to 2.

  • Use the Input analysis mask parameter (in_analysis_mask in Python) to limit the output raster to only the locations or cells defined by the mask area. Additionally, it is important to consider the effect of the surface outside your area of interest. The mask can be defined by raster or feature data.

    The analysis mask does not affect the analysis extent used for calculations. This means that the topography or potential obstructions outside the mask area will influence the solar radiation values that are calculated for the defined areas.

    If the mask input is a feature dataset, it will be converted to a raster internally using the cell size and cell alignment from the input surface raster value by default.

  • Specifying precomputed slope and aspect rasters as input will improve performance, especially if the tool will be run repeatedly or when analyzing larger datasets. If either the input slope or aspect raster values are not provided, values will be calculated from the input surface raster.

  • The Neighborhood Distance (neighborhood_distance in Python) parameter determines the neighborhood size and calculates the surface parameter over this distance from the target cell center. The value cannot be less than the input raster cell size.

    A small neighborhood distance captures more local variability in the landscape, such as characteristics of smaller landscape features. With high-resolution elevation data, larger distances may be more appropriate.

  • If the Use adaptive neighborhood parameter is checked (use_adaptive_neighborhood = "ADAPTIVE_NEIGHBORHOOD" in Python), the neighborhood distance will change with variability in the terrain. The neighborhood distance will shrink if there is too much variability in the calculation window.

  • Earth's Moon does not have an atmosphere; the radiation parameters diffuse proportion and transmittivity are not relevant during analysis. As a result, the incoming diffuse solar radiation is zero and the total radiation is equal to direct solar radiation.

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

  • Transmittivity is the ratio of the energy reaching Earth's surface to that which is received at the upper limit of the atmosphere. 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 a generally clear sky.

  • Transmittivity has an inverse relationship with the diffuse proportion parameter. Altering these values may affect the model result. Identifying the best values for the area of interest depends on several variables (such as location and time). You can change these values to compare how they affect the result.

  • The Sun Map Grid Level parameter controls the speed and accuracy of the computation. It adjusts the resolution of the hexagonal grid cells that will be used for the internal calculations, based on the H3 geospatial indexing system.

    A lower grid level creates fewer larger sun map areas and decreases tool run time. A higher grid level creates more smaller sun maps, improving the accuracy of the result.

    Valid values of the sun map grid level for Earth range from 5 to 7. For the Moon, the valid value range is from 4 to 6.

    The default level is determined by the input surface raster. When analyzing surface data on Earth, if the analysis cell size is less than or equal to 4 meters, the default grid level is 6. If the cell size is greater than 4 meters, the default grid level is 5. For analyzing surface data on the Moon, the default level is 6.

    The following table shows the average area of the hexagon grid cells for each sun map level, in units of square kilometers:

    LevelEarthMoon

    4

    Not applicable

    131.6

    5

    252.9 (default > 4m)

    18.8

    6

    36.1 (default < 4m)

    2.69 (default)

    7

    5.16

    Not applicable

  • This tool can be GPU accelerated, which means that if a compatible graphics processing unit (GPU) is available on your system, it will be used to enhance the performance of the tool. Use the Target device for analysis (analysis_target_device in Python) parameter to control whether the GPU or CPU will be used to run the tool.

    See GPU processing with Spatial Analyst for details on compatible GPUs, configuring and working with GPU devices, as well as troubleshooting tips.

  • When the output raster format is .crf, this tool supports the Pyramid raster storage environment. Pyramids will be created in the output by default. For any other output format, this environment is not supported, and pyramids will not be created.

  • See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.

  • Additional resources:

    Acton, Charles A. 1996. "Ancillary data services of NASA's Navigation and Ancillary Information Facility." Planetary and Space Science Volume 44, Issue 1, January 1996, pp. 65–70. https://doi.org/10.1016/0032-0633(95)00107-7

    Acton, Charles, Nathaniel Bachman, Boris Semenov, and Edward Wright. 2018. "A look towards the future in the handling of space science mission geometry." Planetary and Space Science Volume 150, January 2018, pp. 9–12. https://doi.org/10.1016/j.pss.2017.02.013

    Brodsky, Isaac. 2018. "Uber’s Hexagonal Hierarchical Spatial Index H3." Engineering (blog), June 27, 2018. https://www.uber.com/blog/h3/

Parameters

LabelExplanationData Type
Input Surface Raster

The input elevation surface raster.

Raster Layer
Start Date and Time

The start date and time for the analysis.

Date
End Date and Time

The end date and time for the analysis.

Date
Input Analysis Mask
(Optional)

The input data that defines the locations where the analysis will occur.

Composite Geodataset
Input Slope Raster
(Optional)

The input slope raster that will be used when calculating the output solar radiation.

If this input is not specified, the tool will calculate slope values internally from the input surface raster. Providing this value will improve performance, especially if the tool will be run repeatedly or when analyzing larger datasets.

Raster Layer
Input Aspect Raster
(Optional)

The input aspect raster that will be used when calculating the output solar radiation.

If this input is not specified, the tool will calculate aspect values internally from the input surface raster. Providing this value will improve performance, especially if the tool will be run repeatedly or when analyzing larger datasets.

Raster Layer
Output Direct Radiation Raster
(Optional)

The output raster representing the direct incoming solar radiation value for each location.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster Dataset
Output Diffuse Radiation Raster
(Optional)

The output raster representing the incoming solar radiation that is diffused by the sky, layers of atmosphere, and other surroundings.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster Dataset
Output Direct Duration Raster
(Optional)

The output raster representing the duration of direct incoming solar radiation.

The output has units of hours.

Raster Dataset
Time Zone
(Optional)

The time zone that will be used for the start and end time. The default is coordinated universal time (UTC).

  • UTCThe time zone will be UTC.
  • Dateline Standard TimeThe time zone will be Dateline Standard Time (UTC-12:00).
  • UTC-11The time zone will be UTC-11 (UTC-11:00).
  • Aleutian Standard TimeThe time zone will be Aleutian Standard Time (UTC-10:00).
  • Hawaiian Standard TimeThe time zone will be Hawaiian Standard Time (UTC-10:00).
  • Marquesas Standard TimeThe time zone will be Marquesas Standard Time (UTC-09:30).
  • Alaskan Standard TimeThe time zone will be Alaskan Standard Time (UTC-09:00).
  • UTC-09The time zone will be UTC-09 (UTC-09:00).
  • Pacific Standard Time (Mexico)The time zone will be Pacific Standard Time (Mexico) (UTC-08:00).
  • UTC-08The time zone will be UTC-08 (UTC-08:00).
  • Pacific Standard TimeThe time zone will be Pacific Standard Time (UTC-08:00).
  • US Mountain Standard TimeThe time zone will be US Mountain Standard Time (UTC-07:00).
  • Mountain Standard Time (Mexico)The time zone will be Mountain Standard Time (Mexico) (UTC-07:00).
  • Mountain Standard TimeThe time zone will be Mountain Standard Time (UTC-07:00).
  • Yukon Standard TimeThe time zone will be Yukon Standard Time (UTC-07:00).
  • Central America Standard TimeThe time zone will be Central America Standard Time (UTC-06:00).
  • Central Standard TimeThe time zone will be Central Standard Time (UTC-06:00).
  • Easter Island Standard TimeThe time zone will be Easter Island Standard Time (UTC-06:00).
  • Central Standard Time (Mexico)The time zone will be Central Standard Time (Mexico) (UTC-06:00).
  • Canada Central Standard TimeThe time zone will be Canada Central Standard Time (UTC-06:00).
  • SA Pacific Standard TimeThe time zone will be SA Pacific Standard Time (UTC-05:00).
  • Eastern Standard Time (Mexico)The time zone will be Eastern Standard Time (Mexico) (UTC-05:00).
  • Eastern Standard TimeThe time zone will be Eastern Standard Time (UTC-05:00).
  • Haiti Standard TimeThe time zone will be Haiti Standard Time (UTC-05:00).
  • Cuba Standard TimeThe time zone will be Cuba Standard Time (UTC-05:00).
  • US Eastern Standard TimeThe time zone will be US Eastern Standard Time (UTC-05:00).
  • Turks And Caicos Standard TimeThe time zone will be Turks And Caicos Standard Time (UTC-04:00).
  • Paraguay Standard TimeThe time zone will be Paraguay Standard Time (UTC-04:00).
  • Atlantic Standard TimeThe time zone will be Atlantic Standard Time (UTC-04:00).
  • Venezuela Standard TimeThe time zone will be Venezuela Standard Time (UTC-04:00).
  • Central Brazilian Standard TimeThe time zone will be Central Brazilian Standard Time (UTC-04:00).
  • SA Western Standard TimeThe time zone will be SA Western Standard Time (UTC-04:00).
  • Pacific SA Standard TimeThe time zone will be Pacific SA Standard Time (UTC-04:00).
  • Newfoundland Standard TimeThe time zone will be Newfoundland Standard Time (UTC-03:30).
  • Tocantins Standard TimeThe time zone will be Tocantins Standard Time (UTC-03:00).
  • E. South America Standard TimeThe time zone will be E. South America Standard Time (UTC-03:00).
  • SA Eastern Standard TimeThe time zone will be SA Eastern Standard Time (UTC-03:00).
  • Argentina Standard TimeThe time zone will be Argentina Standard Time (UTC-03:00).
  • Greenland Standard TimeThe time zone will be Greenland Standard Time (UTC-03:00).
  • Montevideo Standard TimeThe time zone will be Montevideo Standard Time (UTC-03:00).
  • Magallanes Standard TimeThe time zone will be Magallanes Standard Time (UTC-03:00).
  • Saint Pierre Standard TimeThe time zone will be Saint Pierre Standard Time (UTC-03:00).
  • Bahia Standard TimeThe time zone will be Bahia Standard Time (UTC-03:00).
  • UTC-02The time zone will be UTC-02 (UTC-02:00).
  • Mid-Atlantic Standard TimeThe time zone will be Mid-Atlantic Standard Time (UTC-02:00).
  • Azores Standard TimeThe time zone will be Azores Standard Time (UTC-01:00).
  • Cape Verde Standard TimeThe time zone will be Cape Verde Standard Time (UTC-01:00).
  • GMT Standard TimeThe time zone will be GMT Standard Time (UTC+00:00).
  • Greenwich Standard TimeThe time zone will be Greenwich Standard Time (UTC+00:00).
  • Sao Tome Standard TimeThe time zone will be Sao Tome Standard Time (UTC+00:00).
  • Morocco Standard TimeThe time zone will be Morocco Standard Time (UTC+00:00).
  • W. Europe Standard TimeThe time zone will be W. Europe Standard Time (UTC+01:00).
  • Central Europe Standard TimeThe time zone will be Central Europe Standard Time (UTC+01:00).
  • Romance Standard TimeThe time zone will be Romance Standard Time (UTC+01:00).
  • Central European Standard TimeThe time zone will be Central European Standard Time (UTC+01:00).
  • W. Central Africa Standard TimeThe time zone will be W. Central Africa Standard Time (UTC+01:00).
  • Jordan Standard TimeThe time zone will be Jordan Standard Time (UTC+02:00).
  • GTB Standard TimeThe time zone will be GTB Standard Time (UTC+02:00).
  • Middle East Standard TimeThe time zone will be Middle East Standard Time (UTC+02:00).
  • Egypt Standard TimeThe time zone will be Egypt Standard Time (UTC+02:00).
  • E. Europe Standard TimeThe time zone will be E. Europe Standard Time (UTC+02:00).
  • Syria Standard TimeThe time zone will be Syria Standard Time (UTC+02:00).
  • West Bank Standard TimeThe time zone will be West Bank Standard Time (UTC+02:00).
  • South Africa Standard TimeThe time zone will be South Africa Standard Time (UTC+02:00).
  • FLE Standard TimeThe time zone will be FLE Standard Time (UTC+02:00).
  • Israel Standard TimeThe time zone will be Israel Standard (UTC+02:00).
  • South Sudan Standard TimeThe time zone will be South Sudan Standard Time (UTC+02:00).
  • Kaliningrad Standard TimeThe time zone will be Kaliningrad Standard Time (UTC+02:00).
  • Sudan Standard TimeThe time zone will be Sudan Standard Time (UTC+02:00).
  • Libya Standard TimeThe time zone will be Libya Standard Time (UTC+02:00).
  • Namibia Standard TimeThe time zone will be Namibia Standard Time (UTC+02:00).
  • Arabic Standard TimeThe time zone will be Arabic Standard Time (UTC+03:00).
  • Turkey Standard TimeThe time zone will be Turkey Standard Time (UTC+03:00).
  • Arab Standard TimeThe time zone will be Arab Standard Time (UTC+03:00).
  • Belarus Standard TimeThe time zone will be Belarus Standard Time (UTC+03:00).
  • Russian Standard TimeThe time zone will be Russian Standard Time (UTC+03:00).
  • E. Africa Standard TimeThe time zone will be E. Africa Standard Time (UTC+03:00).
  • Volgograd Standard TimeThe time zone will be Volgograd Standard Time (UTC+03:00).
  • Iran Standard TimeThe time zone will be Iran Standard Time (UTC+03:30).
  • Arabian Standard TimeThe time zone will be Arabian Standard Time (UTC+04:00).
  • Astrakhan Standard TimeThe time zone will be Astrakhan Standard Time (UTC+04:00).
  • Azerbaijan Standard TimeThe time zone will be Azerbaijan Standard Time (UTC+04:00).
  • Russia Time Zone 3The time zone will be Russia Time Zone 3 (UTC+04:00).
  • Mauritius Standard TimeThe time zone will be Mauritius Standard Time (UTC+04:00).
  • Saratov Standard TimeThe time zone will be Saratov Standard Time (UTC+04:00).
  • Georgian Standard TimeThe time zone will be Georgian Standard Time (UTC+04:00).
  • Caucasus Standard TimeThe time zone will be Caucasus Standard Time (UTC+04:00).
  • Afghanistan Standard TimeThe time zone will be Afghanistan Standard Time (UTC+04:30).
  • West Asia Standard TimeThe time zone will be West Asia Standard Time (UTC+05:00).
  • Ekaterinburg Standard TimeThe time zone will be Ekaterinburg Standard Time (UTC+05:00).
  • Pakistan Standard TimeThe time zone will be Pakistan Standard Time (UTC+05:00).
  • Qyzylorda Standard TimeThe time zone will be Qyzylorda Standard Time (UTC+05:00).
  • India Standard TimeThe time zone will be India Standard Time (UTC+05:30).
  • Sri Lanka Standard TimeThe time zone will be Sri Lanka Standard Time (UTC+05:30).
  • Nepal Standard TimeThe time zone will be Nepal Standard Time (UTC+05:45).
  • Central Asia Standard TimeThe time zone will be Central Asia Standard Time (UTC+06:00).
  • Bangladesh Standard TimeThe time zone will be Bangladesh Standard Time (UTC+06:00).
  • Omsk Standard TimeThe time zone will be Omsk Standard Time (UTC+06:00).
  • Myanmar Standard TimeThe time zone will be Myanmar Standard Time (UTC+06:30).
  • SE Asia Standard TimeThe time zone will be SE Asia Standard Time (UTC+07:00).
  • Altai Standard TimeThe time zone will be Altai Standard Time (UTC+07:00).
  • W. Mongolia Standard TimeThe time zone will be W. Mongolia Standard Time (UTC+07:00).
  • North Asia Standard TimeThe time zone will be North Asia Standard Time (UTC+07:00).
  • N. Central Asia Standard TimeThe time zone will be N. Central Asia Standard Time (UTC+07:00).
  • Tomsk Standard TimeThe time zone will be Tomsk Standard Time (UTC+07:00).
  • China Standard TimeThe time zone will be China Standard Time (UTC+08:00).
  • North Asia East Standard TimeThe time zone will be North Asia East Standard Time (UTC+08:00).
  • Singapore Standard TimeThe time zone will be Singapore Standard Time (UTC+08:00).
  • W. Australia Standard TimeThe time zone will be W. Australia Standard Time (UTC+08:00).
  • Taipei Standard TimeThe time zone will be Taipei Standard Time (UTC+08:00).
  • Ulaanbaatar Standard TimeThe time zone will be Ulaanbaatar Standard Time (UTC+08:00).
  • Aus Central W. Standard TimeThe time zone will be Aus Central W. Standard Time (UTC+08:45).
  • Transbaikal Standard TimeThe time zone will be Transbaikal Standard Time (UTC+09:00).
  • Tokyo Standard TimeThe time zone will be Tokyo Standard Time (UTC+09:00).
  • North Korea Standard TimeThe time zone will be North Korea Standard Time (UTC+09:00).
  • Korea Standard TimeThe time zone will be Korea Standard Time (UTC+09:00).
  • Yakutsk Standard TimeThe time zone will be Yakutsk Standard Time (UTC+09:00).
  • Cen. Australia Standard TimeThe time zone will be Cen. Australia Standard Time (UTC+09:30).
  • AUS Central Standard TimeThe time zone will be AUS Central Standard Time (UTC+09:30).
  • E. Australia Standard TimeThe time zone will be E. Australia Standard Time (UTC+10:00).
  • AUS Eastern Standard TimeThe time zone will be AUS Eastern Standard Time (UTC+10:00).
  • West Pacific Standard TimeThe time zone will be West Pacific Standard Time (UTC+10:00).
  • Tasmania Standard TimeThe time zone will be Tasmania Standard Time (UTC+10:00).
  • Vladivostok Standard TimeThe time zone will be Vladivostok Standard Time (UTC+10:00).
  • Lord Howe Standard TimeThe time zone will be Lord Howe Standard Time (UTC+10:30).
  • Bougainville Standard TimeThe time zone will be Bougainville Standard Time (UTC+11:00).
  • Russia Time Zone 10The time zone will be Russia Time Zone 10 (UTC+11:00).
  • Magadan Standard TimeThe time zone will be Magadan Standard Time (UTC+11:00).
  • Norfolk Standard TimeThe time zone will be Norfolk Standard Time (UTC+11:00).
  • Sakhalin Standard TimeThe time zone will be Sakhalin Standard Time (UTC+11:00).
  • Central Pacific Standard TimeThe time zone will be Central Pacific Standard Time (UTC+11:00).
  • Russia Time Zone 11The time zone will be Russia Time Zone 11 (UTC+11:00).
  • New Zealand Standard TimeThe time zone will be New Zealand Standard Time (UTC+12:00).
  • UTC+12The time zone will be UTC+12 (UTC+12:00).
  • Fiji Standard TimeThe time zone will be Fiji Standard Time (UTC+12:00).
  • Kamchatka Standard TimeThe time zone will be Kamchatka Standard Time (UTC+12:00).
  • Chatham Islands Standard TimeThe time zone will be Chatham Islands Standard Time (UTC+12:45).
  • UTC+13The time zone will be UTC+13 (UTC+13:00).
  • Tonga Standard TimeThe time zone will be Tonga Standard Time (UTC+13:00).
  • Samoa Standard TimeThe time zone will be Samoa Standard Time (UTC+13:00).
  • Line Islands Standard TimeThe time zone will be Line Islands Standard Time (UTC+14:00).
String
Adjust times for daylight saving time
(Optional)

Specifies whether the input time configuration will be adjusted for daylight saving time.

This parameter is not applicable for analysis on the Moon.

  • Unchecked—The input time values will not be adjusted for daylight saving time. This is the default.
  • Checked—The input time values will be adjusted for daylight saving time.
Boolean
Calculate insolation for time intervals
(Optional)

Specifies whether a single total insolation value will be calculated for the entire time configuration or multiple radiation values will be calculated for the specified interval.

  • Unchecked—A single total radiation value will be calculated for the entire time configuration. This is the default.
  • Checked—Multiple radiation values will be calculated for each time interval over the entire time configuration. The number of outputs depends on the interval value. For example, for a whole year with monthly intervals, the result will contain 12 output radiation values for each location.
Boolean
Time Interval Unit
(Optional)

Specifies the time unit that will be used for calculating solar radiation values over the entire time configuration.

This parameter is only available when the Calculate insolation for time intervals parameter is checked.

  • MinuteThe interval unit will be minutes. This option is only available for Earth-based data.
  • HourThe interval unit will be hours.
  • DayThe interval unit will be days. This is the default
  • WeekThe interval unit will be weeks.
String
Time Interval
(Optional)

The value of the duration or time between intervals.

The default value is dependent on the interval unit specified. The default value for each of the available units are listed below.

  • Minute—60
  • Hour—4
  • Day—14
  • Week—2
Long
Neighborhood Distance
(Optional)

The distance from the target cell center for which the output insolation value will be calculated. It determines the size of the neighborhood.

The default value is the input surface raster cell size, resulting in a 3 by 3 neighborhood.

Linear Unit
Use adaptive neighborhood
(Optional)

Specifies whether neighborhood distance will vary with landscape changes (adaptive). The maximum distance is determined by the neighborhood distance. The minimum distance is the input raster cell size.

  • Unchecked—A single (fixed) neighborhood distance will be used at all locations. This is the default.
  • Checked—An adaptive neighborhood distance will be used at all locations.
Boolean
Diffuse Model Type
(Optional)

Specifies the type of diffuse radiation model that will be used.

  • Uniform skyThe uniform diffuse model will be used. The incoming diffuse radiation is the same from all sky directions. This is the default.
  • Standard overcast skyThe standard overcast diffuse model will be used. The incoming diffuse radiation flux varies with the zenith angle.
String
Diffuse Proportion
(Optional)

The proportion of global normal radiation flux that is diffuse. Values range from 0 to 1.

Set this value 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 overall wavelengths). Values range from 0 (no transmission) to 1 (all transmission).

The default is 0.5 for a generally clear sky.

Double
Target Device for Analysis
(Optional)

Specifies the device that will be used to perform the calculation.

  • GPU then CPUIf a compatible GPU is found, it will be used to perform the calculation. Otherwise, the CPU will be used. This is the default.
  • CPU onlyThe calculation will only be performed on the CPU.
  • GPU onlyThe calculation will only be performed on the GPU.
String
Sun Map Grid Level
(Optional)

The resolution that will be used to generate the H3 hexagonal grid cells used for internal calculations. A lower grid level value creates fewer, larger sun map areas and decreases tool run time. A higher grid level creates more smaller sun maps improving the accuracy of the result.

Valid values of the sun map grid level for Earth range from 5 to 7. For the Moon, the valid value range is from 4 to 6.

By default, the grid level is determined by the input surface raster. When analyzing surface data on Earth, if the analysis cell size is less than or equal to 4 meters, the default grid level is 6. If the analysis cell size is greater than 4 meters, the default grid level is 5. For analyzing surface data on the Moon, the default grid level is 6.

Long

Return Value

LabelExplanationData Type
Output Solar Radiation Raster

The output raster representing the total amount of solar radiation received per unit area across the input surface.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster

RasterSolarRadiation(in_surface_raster, start_date_time, end_date_time, {in_analysis_mask}, {in_slope_raster}, {in_aspect_raster}, {out_direct_radiation_raster}, {out_diffuse_radiation_raster}, {out_duration_raster}, {time_zone}, {adjust_DST}, {use_time_interval}, {interval_unit}, {interval}, {neighborhood_distance}, {use_adaptive_neighborhood}, {diffuse_model_type}, {diffuse_proportion}, {transmittivity}, {analysis_target_device}, {sunmap_grid_level})
NameExplanationData Type
in_surface_raster

The input elevation surface raster.

Raster Layer
start_date_time

The start date and time for the analysis.

Date
end_date_time

The end date and time for the analysis.

Date
in_analysis_mask
(Optional)

The input data that defines the locations where the analysis will occur.

Composite Geodataset
in_slope_raster
(Optional)

The input slope raster that will be used when calculating the output solar radiation.

If this input is not specified, the tool will calculate slope values internally from the input surface raster. Providing this value will improve performance, especially if the tool will be run repeatedly or when analyzing larger datasets.

Raster Layer
in_aspect_raster
(Optional)

The input aspect raster that will be used when calculating the output solar radiation.

If this input is not specified, the tool will calculate aspect values internally from the input surface raster. Providing this value will improve performance, especially if the tool will be run repeatedly or when analyzing larger datasets.

Raster Layer
out_direct_radiation_raster
(Optional)

The output raster representing the direct incoming solar radiation value for each location.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster Dataset
out_diffuse_radiation_raster
(Optional)

The output raster representing the incoming solar radiation that is diffused by the sky, layers of atmosphere, and other surroundings.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster Dataset
out_duration_raster
(Optional)

The output raster representing the duration of direct incoming solar radiation.

The output has units of hours.

Raster Dataset
time_zone
(Optional)

The time zone that will be used for the start and end time. The default is coordinated universal time (UTC).

  • UTCThe time zone will be UTC.
  • Dateline_Standard_TimeThe time zone will be Dateline Standard Time (UTC-12:00).
  • UTC-11The time zone will be UTC-11 (UTC-11:00).
  • Aleutian_Standard_TimeThe time zone will be Aleutian Standard Time (UTC-10:00).
  • Hawaiian_Standard_TimeThe time zone will be Hawaiian Standard Time (UTC-10:00).
  • Marquesas_Standard_TimeThe time zone will be Marquesas Standard Time (UTC-09:30).
  • Alaskan_Standard_TimeThe time zone will be Alaskan Standard Time (UTC-09:00).
  • UTC-09The time zone will be UTC-09 (UTC-09:00).
  • Pacific_Standard_Time_(Mexico)The time zone will be Pacific Standard Time (Mexico) (UTC-08:00).
  • UTC-08The time zone will be UTC-08 (UTC-08:00).
  • Pacific_Standard_TimeThe time zone will be Pacific Standard Time (UTC-08:00).
  • US_Mountain_Standard_TimeThe time zone will be US Mountain Standard Time (UTC-07:00).
  • Mountain_Standard_Time_(Mexico)The time zone will be Mountain Standard Time (Mexico) (UTC-07:00).
  • Mountain_Standard_TimeThe time zone will be Mountain Standard Time (UTC-07:00).
  • Yukon_Standard_TimeThe time zone will be Yukon Standard Time (UTC-07:00).
  • Central_America_Standard_TimeThe time zone will be Central America Standard Time (UTC-06:00).
  • Central_Standard_TimeThe time zone will be Central Standard Time (UTC-06:00).
  • Easter_Island_Standard_TimeThe time zone will be Easter Island Standard Time (UTC-06:00).
  • Central_Standard_Time_(Mexico)The time zone will be Central Standard Time (Mexico) (UTC-06:00).
  • Canada_Central_Standard_TimeThe time zone will be Canada Central Standard Time (UTC-06:00).
  • SA_Pacific_Standard_TimeThe time zone will be SA Pacific Standard Time (UTC-05:00).
  • Eastern_Standard_Time_(Mexico)The time zone will be Eastern Standard Time (Mexico) (UTC-05:00).
  • Eastern_Standard_TimeThe time zone will be Eastern Standard Time (UTC-05:00).
  • Haiti_Standard_TimeThe time zone will be Haiti Standard Time (UTC-05:00).
  • Cuba_Standard_TimeThe time zone will be Cuba Standard Time (UTC-05:00).
  • US_Eastern_Standard_TimeThe time zone will be US Eastern Standard Time (UTC-05:00).
  • Turks_And_Caicos_Standard_TimeThe time zone will be Turks And Caicos Standard Time (UTC-04:00).
  • Paraguay_Standard_TimeThe time zone will be Paraguay Standard Time (UTC-04:00).
  • Atlantic_Standard_TimeThe time zone will be Atlantic Standard Time (UTC-04:00).
  • Venezuela_Standard_TimeThe time zone will be Venezuela Standard Time (UTC-04:00).
  • Central_Brazilian_Standard_TimeThe time zone will be Central Brazilian Standard Time (UTC-04:00).
  • SA_Western_Standard_TimeThe time zone will be SA Western Standard Time (UTC-04:00).
  • Pacific_SA_Standard_TimeThe time zone will be Pacific SA Standard Time (UTC-04:00).
  • Newfoundland_Standard_TimeThe time zone will be Newfoundland Standard Time (UTC-03:30).
  • Tocantins_Standard_TimeThe time zone will be Tocantins Standard Time (UTC-03:00).
  • E._South_America_Standard_TimeThe time zone will be E. South America Standard Time (UTC-03:00).
  • SA_Eastern_Standard_TimeThe time zone will be SA Eastern Standard Time (UTC-03:00).
  • Argentina_Standard_TimeThe time zone will be Argentina Standard Time (UTC-03:00).
  • Greenland_Standard_TimeThe time zone will be Greenland Standard Time (UTC-03:00).
  • Montevideo_Standard_TimeThe time zone will be Montevideo Standard Time (UTC-03:00).
  • Magallanes_Standard_TimeThe time zone will be Magallanes Standard Time (UTC-03:00).
  • Saint_Pierre_Standard_TimeThe time zone will be Saint Pierre Standard Time (UTC-03:00).
  • Bahia_Standard_TimeThe time zone will be Bahia Standard Time (UTC-03:00).
  • UTC-02The time zone will be UTC-02 (UTC-02:00).
  • Mid-Atlantic_Standard_TimeThe time zone will be Mid-Atlantic Standard Time (UTC-02:00).
  • Azores_Standard_TimeThe time zone will be Azores Standard Time (UTC-01:00).
  • Cape_Verde_Standard_TimeThe time zone will be Cape Verde Standard Time (UTC-01:00).
  • GMT_Standard_TimeThe time zone will be GMT Standard Time (UTC+00:00).
  • Greenwich_Standard_TimeThe time zone will be Greenwich Standard Time (UTC+00:00).
  • Sao_Tome_Standard_TimeThe time zone will be Sao Tome Standard Time (UTC+00:00).
  • Morocco_Standard_TimeThe time zone will be Morocco Standard Time (UTC+00:00).
  • W._Europe_Standard_TimeThe time zone will be W. Europe Standard Time (UTC+01:00).
  • Central_Europe_Standard_TimeThe time zone will be Central Europe Standard Time (UTC+01:00).
  • Romance_Standard_TimeThe time zone will be Romance Standard Time (UTC+01:00).
  • Central_European_Standard_TimeThe time zone will be Central European Standard Time (UTC+01:00).
  • W._Central_Africa_Standard_TimeThe time zone will be W. Central Africa Standard Time (UTC+01:00).
  • Jordan_Standard_TimeThe time zone will be Jordan Standard Time (UTC+02:00).
  • GTB_Standard_TimeThe time zone will be GTB Standard Time (UTC+02:00).
  • Middle_East_Standard_TimeThe time zone will be Middle East Standard Time (UTC+02:00).
  • Egypt_Standard_TimeThe time zone will be Egypt Standard Time (UTC+02:00).
  • E._Europe_Standard_TimeThe time zone will be E. Europe Standard Time (UTC+02:00).
  • Syria_Standard_TimeThe time zone will be Syria Standard Time (UTC+02:00).
  • West_Bank_Standard_TimeThe time zone will be West Bank Standard Time (UTC+02:00).
  • South_Africa_Standard_TimeThe time zone will be South Africa Standard Time (UTC+02:00).
  • FLE_Standard_TimeThe time zone will be FLE Standard Time (UTC+02:00).
  • Israel_Standard_TimeThe time zone will be Israel Standard (UTC+02:00).
  • South_Sudan_Standard_TimeThe time zone will be South Sudan Standard Time (UTC+02:00).
  • Kaliningrad_Standard_TimeThe time zone will be Kaliningrad Standard Time (UTC+02:00).
  • Sudan_Standard_TimeThe time zone will be Sudan Standard Time (UTC+02:00).
  • Libya_Standard_TimeThe time zone will be Libya Standard Time (UTC+02:00).
  • Namibia_Standard_TimeThe time zone will be Namibia Standard Time (UTC+02:00).
  • Arabic_Standard_TimeThe time zone will be Arabic Standard Time (UTC+03:00).
  • Turkey_Standard_TimeThe time zone will be Turkey Standard Time (UTC+03:00).
  • Arab_Standard_TimeThe time zone will be Arab Standard Time (UTC+03:00).
  • Belarus_Standard_TimeThe time zone will be Belarus Standard Time (UTC+03:00).
  • Russian_Standard_TimeThe time zone will be Russian Standard Time (UTC+03:00).
  • E._Africa_Standard_TimeThe time zone will be E. Africa Standard Time (UTC+03:00).
  • Volgograd_Standard_TimeThe time zone will be Volgograd Standard Time (UTC+03:00).
  • Iran_Standard_TimeThe time zone will be Iran Standard Time (UTC+03:30).
  • Arabian_Standard_TimeThe time zone will be Arabian Standard Time (UTC+04:00).
  • Astrakhan_Standard_TimeThe time zone will be Astrakhan Standard Time (UTC+04:00).
  • Azerbaijan_Standard_TimeThe time zone will be Azerbaijan Standard Time (UTC+04:00).
  • Russia_Time_Zone_3The time zone will be Russia Time Zone 3 (UTC+04:00).
  • Mauritius_Standard_TimeThe time zone will be Mauritius Standard Time (UTC+04:00).
  • Saratov_Standard_TimeThe time zone will be Saratov Standard Time (UTC+04:00).
  • Georgian_Standard_TimeThe time zone will be Georgian Standard Time (UTC+04:00).
  • Caucasus_Standard_TimeThe time zone will be Caucasus Standard Time (UTC+04:00).
  • Afghanistan_Standard_TimeThe time zone will be Afghanistan Standard Time (UTC+04:30).
  • West_Asia_Standard_TimeThe time zone will be West Asia Standard Time (UTC+05:00).
  • Ekaterinburg_Standard_TimeThe time zone will be Ekaterinburg Standard Time (UTC+05:00).
  • Pakistan_Standard_TimeThe time zone will be Pakistan Standard Time (UTC+05:00).
  • Qyzylorda_Standard_TimeThe time zone will be Qyzylorda Standard Time (UTC+05:00).
  • India_Standard_TimeThe time zone will be India Standard Time (UTC+05:30).
  • Sri_Lanka_Standard_TimeThe time zone will be Sri Lanka Standard Time (UTC+05:30).
  • Nepal_Standard_TimeThe time zone will be Nepal Standard Time (UTC+05:45).
  • Central_Asia_Standard_TimeThe time zone will be Central Asia Standard Time (UTC+06:00).
  • Bangladesh_Standard_TimeThe time zone will be Bangladesh Standard Time (UTC+06:00).
  • Omsk_Standard_TimeThe time zone will be Omsk Standard Time (UTC+06:00).
  • Myanmar_Standard_TimeThe time zone will be Myanmar Standard Time (UTC+06:30).
  • SE_Asia_Standard_TimeThe time zone will be SE Asia Standard Time (UTC+07:00).
  • Altai_Standard_TimeThe time zone will be Altai Standard Time (UTC+07:00).
  • W._Mongolia_Standard_TimeThe time zone will be W. Mongolia Standard Time (UTC+07:00).
  • North_Asia_Standard_TimeThe time zone will be North Asia Standard Time (UTC+07:00).
  • N._Central_Asia_Standard_TimeThe time zone will be N. Central Asia Standard Time (UTC+07:00).
  • Tomsk_Standard_TimeThe time zone will be Tomsk Standard Time (UTC+07:00).
  • China_Standard_TimeThe time zone will be China Standard Time (UTC+08:00).
  • North_Asia_East_Standard_TimeThe time zone will be North Asia East Standard Time (UTC+08:00).
  • Singapore_Standard_TimeThe time zone will be Singapore Standard Time (UTC+08:00).
  • W._Australia_Standard_TimeThe time zone will be W. Australia Standard Time (UTC+08:00).
  • Taipei_Standard_TimeThe time zone will be Taipei Standard Time (UTC+08:00).
  • Ulaanbaatar_Standard_TimeThe time zone will be Ulaanbaatar Standard Time (UTC+08:00).
  • Aus_Central_W._Standard_TimeThe time zone will be Aus Central W. Standard Time (UTC+08:45).
  • Transbaikal_Standard_TimeThe time zone will be Transbaikal Standard Time (UTC+09:00).
  • Tokyo_Standard_TimeThe time zone will be Tokyo Standard Time (UTC+09:00).
  • North_Korea_Standard_TimeThe time zone will be North Korea Standard Time (UTC+09:00).
  • Korea_Standard_TimeThe time zone will be Korea Standard Time (UTC+09:00).
  • Yakutsk_Standard_TimeThe time zone will be Yakutsk Standard Time (UTC+09:00).
  • Cen._Australia_Standard_TimeThe time zone will be Cen. Australia Standard Time (UTC+09:30).
  • AUS_Central_Standard_TimeThe time zone will be AUS Central Standard Time (UTC+09:30).
  • E._Australia_Standard_TimeThe time zone will be E. Australia Standard Time (UTC+10:00).
  • AUS_Eastern_Standard_TimeThe time zone will be AUS Eastern Standard Time (UTC+10:00).
  • West_Pacific_Standard_TimeThe time zone will be West Pacific Standard Time (UTC+10:00).
  • Tasmania_Standard_TimeThe time zone will be Tasmania Standard Time (UTC+10:00).
  • Vladivostok_Standard_TimeThe time zone will be Vladivostok Standard Time (UTC+10:00).
  • Lord_Howe_Standard_TimeThe time zone will be Lord Howe Standard Time (UTC+10:30).
  • Bougainville_Standard_TimeThe time zone will be Bougainville Standard Time (UTC+11:00).
  • Russia_Time_Zone_10The time zone will be Russia Time Zone 10 (UTC+11:00).
  • Magadan_Standard_TimeThe time zone will be Magadan Standard Time (UTC+11:00).
  • Norfolk_Standard_TimeThe time zone will be Norfolk Standard Time (UTC+11:00).
  • Sakhalin_Standard_TimeThe time zone will be Sakhalin Standard Time (UTC+11:00).
  • Central_Pacific_Standard_TimeThe time zone will be Central Pacific Standard Time (UTC+11:00).
  • Russia_Time_Zone_11The time zone will be Russia Time Zone 11 (UTC+11:00).
  • New_Zealand_Standard_TimeThe time zone will be New Zealand Standard Time (UTC+12:00).
  • UTC+12The time zone will be UTC+12 (UTC+12:00).
  • Fiji_Standard_TimeThe time zone will be Fiji Standard Time (UTC+12:00).
  • Kamchatka_Standard_TimeThe time zone will be Kamchatka Standard Time (UTC+12:00).
  • Chatham_Islands_Standard_TimeThe time zone will be Chatham Islands Standard Time (UTC+12:45).
  • UTC+13The time zone will be UTC+13 (UTC+13:00).
  • Tonga_Standard_TimeThe time zone will be Tonga Standard Time (UTC+13:00).
  • Samoa_Standard_TimeThe time zone will be Samoa Standard Time (UTC+13:00).
  • Line_Islands_Standard_TimeThe time zone will be Line Islands Standard Time (UTC+14:00).
String
adjust_DST
(Optional)

Specifies whether the input time configuration will be adjusted for daylight saving time.

This parameter is not applicable for analysis on the Moon.

  • NOT_ADJUSTED_FOR_DSTThe input time values will not be adjusted for daylight saving time. This is the default.
  • ADJUSTED_FOR_DSTThe input time values will be adjusted for daylight saving time.
Boolean
use_time_interval
(Optional)

Specifies whether a single total insolation value will be calculated for the entire time configuration or multiple radiation values will be calculated for the specified interval.

  • NO_INTERVALA single radiation value will be calculated for the entire time configuration. This is default.
  • INTERVALMultiple radiation values will be calculated for each time interval over the entire time configuration.
Boolean
interval_unit
(Optional)

Specifies the time unit that will be used for calculating solar radiation values over the entire time configuration.

This parameter is only supported when the use_time_interval parameter is set to INTERVAL.

  • MINUTEThe interval unit will be minutes. This option is only available for Earth-based data.
  • HOURThe interval unit will be hours.
  • DAYThe interval unit will be days. This is the default
  • WEEKThe interval unit will be weeks.
String
interval
(Optional)

The value of the duration or time between intervals.

The default value is dependent on the interval unit specified. The default value for each of the available units are listed below.

  • MINUTE—60
  • HOUR—4
  • DAY—14
  • WEEK—2
Long
neighborhood_distance
(Optional)

The distance from the target cell center for which the output insolation value will be calculated. It determines the size of the neighborhood.

The default value is the input surface raster cell size, resulting in a 3 by 3 neighborhood.

Linear Unit
use_adaptive_neighborhood
(Optional)

Specifies whether neighborhood distance will vary with landscape changes (adaptive). The maximum distance is determined by the neighborhood distance. The minimum distance is the input raster cell size.

  • FIXED_NEIGHBORHOODA single (fixed) neighborhood distance will be used at all locations. This is the default.
  • ADAPTIVE_NEIGHBORHOODAn adaptive neighborhood distance will be used at all locations.
Boolean
diffuse_model_type
(Optional)

Specifies the type of diffuse radiation model that will be used.

  • UNIFORM_SKYThe uniform diffuse model will be used. The incoming diffuse radiation is the same from all sky directions. This is the default.
  • STANDARD_OVERCAST_SKYThe standard overcast diffuse model will be used. The incoming diffuse radiation flux varies with the zenith angle.
String
diffuse_proportion
(Optional)

The proportion of global normal radiation flux that is diffuse. Values range from 0 to 1.

Set this value 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 overall wavelengths). Values range from 0 (no transmission) to 1 (all transmission).

The default is 0.5 for a generally clear sky.

Double
analysis_target_device
(Optional)

Specifies the device that will be used to perform the calculation.

  • GPU_THEN_CPUIf a compatible GPU is found, it will be used to perform the calculation. Otherwise, the CPU will be used. This is the default.
  • CPU_ONLYThe calculation will only be performed on the CPU.
  • GPU_ONLYThe calculation will only be performed on the GPU.
String
sunmap_grid_level
(Optional)

The resolution that will be used to generate the H3 hexagonal grid cells used for internal calculations. A lower grid level value creates fewer, larger sun map areas and decreases tool run time. A higher grid level creates more smaller sun maps improving the accuracy of the result.

Valid values of the sun map grid level for Earth range from 5 to 7. For the Moon, the valid value range is from 4 to 6.

By default, the grid level is determined by the input surface raster. When analyzing surface data on Earth, if the analysis cell size is less than or equal to 4 meters, the default grid level is 6. If the analysis cell size is greater than 4 meters, the default grid level is 5. For analyzing surface data on the Moon, the default grid level is 6.

Long

Return Value

NameExplanationData Type
out_solar_radiation_raster

The output raster representing the total amount of solar radiation received per unit area across the input surface.

The output has units of kilowatt hours per square meter (kWh/m2).

Raster

Code sample

RasterSolarRadiation example 1 (Python window)

The following Python window script demonstrates how to use the RasterSolarRadiation function.

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "C:/sapyexamples/data"
out_raster = arcpy.sa.RasterSolarRadiation("dsm30m_CA.tif", "9/1/2023 06:00:00 AM","9/30/2023 06:30:00 PM",
                                           time_zone="Pacific_Standard_Time")
out_raster.save("C:/sapyexamples/output/dsm30_total_radiation_092023.tif")
RasterSolarRadiation example 2 (stand-alone script)

Calculate the solar insolation of the input surface for the year 2023 at one-month time intervals. Return all output radiation rasters.

# Name: RasterSolarRadiation_standalone.py
# Description: Calculate solar insolation for the year 2023 at one month 
#  time intervals. Return all output radiation rasters.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Run RasterSolarRadiation
out_solar_radiation_raster = arcpy.sa.RasterSolarRadiation(
	in_surface_raster="dsm30m_CA.tif",
	start_date_time="1/1/2023",
	end_date_time="12/31/2023",
	in_analysis_mask=None,
	in_slope_raster=None,
	in_aspect_raster=None,
	out_direct_radiation_raster=r"C:\sapyexamples\output\dsm30_direct_radiation_2023_1mo.crf",
	out_diffuse_radiation_raster=r"C:\sapyexamples\output\dsm30_diffuse_radiation_2023_1mo.crf",
	out_duration_raster=r"C:\sapyexamples\output\dsm30_duration_radiation_2023_1mo.crf",
	time_zone="Pacific_Standard_Time",
	adjust_DST="ADJUSTED_FOR_DST",
	use_time_interval="INTERVAL",
	interval_unit="MONTH",
	interval="1",
	neighborhood_distance="",
	use_adaptive_neighborhood="",
	diffuse_model_type="UNIFORM_SKY",
	diffuse_proportion=0.3,
	transmittivity=0.5,
	analysis_target_device="GPU_THEN_CPU"
)

# Save the output 
out_solar_radiation_raster.save(r"C:\sapyexamples\output\dsm30_total_radiation_2023_1mo.crf")

Related topics