Radiation: Calculate solar radiation on topography given latitude, date, and time#

class Radiation(*args, **kwds)[source]#

Bases: Component

Compute 1D and 2D total incident shortwave radiation.

Landlab component that computes 1D and 2D total incident shortwave radiation. This code also computes relative incidence shortwave radiation compared to a flat surface. Ref: Bras, Rafael L. Hydrology: an introduction to hydrologic science. Addison Wesley Publishing Company, 1990.

Code author: Sai Nudurupati & Erkan Istanbulluoglu

Examples

>>> from landlab import RasterModelGrid
>>> from landlab.components import Radiation
>>> import numpy as np
>>> grid = RasterModelGrid((5, 4), xy_spacing=(0.2, 0.2))
>>> z = grid.add_zeros("node", "topographic__elevation")
>>> rad = Radiation(grid)
>>> rad.name
'Radiation'
>>> rad.input_var_names
('topographic__elevation',)
>>> sorted(rad.output_var_names) 
['radiation__incoming_shortwave_flux',
 'radiation__net_shortwave_flux',
 'radiation__ratio_to_flat_surface']
>>> sorted(rad.units) 
[('radiation__incoming_shortwave_flux', 'W/m^2'),
 ('radiation__net_shortwave_flux', 'W/m^2'),
 ('radiation__ratio_to_flat_surface', 'None'),
 ('topographic__elevation', 'm')]
>>> rad.grid.number_of_node_rows
5
>>> rad.grid.number_of_node_columns
4
>>> rad.grid is grid
True
>>> np.all(grid.at_cell['radiation__ratio_to_flat_surface'] == 0.)
True
>>> np.all(grid.at_node['topographic__elevation'] == 0.)
True
>>> grid['node']['topographic__elevation'] = np.array([
...       0., 0., 0., 0.,
...       1., 1., 1., 1.,
...       2., 2., 2., 2.,
...       3., 4., 4., 3.,
...       4., 4., 4., 4.])
>>> rad.current_time = 0.5
>>> rad.update()
>>> np.all(grid.at_cell['radiation__ratio_to_flat_surface'] == 0.)
False

References

Required Software Citation(s) Specific to this Component

None Listed

Additional References

Bras, R. L.: Hydrology: an introduction to hydrologic science, Addison Wesley Publishing Company, Boston, Mass., USA, 643 pp., 1990.

Parameters:
  • grid (RasterModelGrid) – A grid.

  • method ({'Grid'}, optional) – Currently, only default is available.

  • cloudiness (float, optional) – Cloudiness.

  • latitude (float, optional) – Latitude (radians).

  • albedo (float, optional) – Albedo.

  • solar_constant (float, optional) – Solar Constant (W/m^2).

  • clearsky_turbidity (float, optional) – Clear sky turbidity.

  • opt_airmass (float, optional) – Optical air mass.

  • current_time (float) – Current time (years).

  • hour (float, optional) – Hour of the day. Default is 12 (solar noon)

__init__(grid, method='Grid', cloudiness=0.2, latitude=34.0, albedo=0.2, solar_constant=1366.67, clearsky_turbidity=2.0, opt_airmass=0.0, current_time=0.0, hour=12.0)[source]#
Parameters:
  • grid (RasterModelGrid) – A grid.

  • method ({'Grid'}, optional) – Currently, only default is available.

  • cloudiness (float, optional) – Cloudiness.

  • latitude (float, optional) – Latitude (radians).

  • albedo (float, optional) – Albedo.

  • solar_constant (float, optional) – Solar Constant (W/m^2).

  • clearsky_turbidity (float, optional) – Clear sky turbidity.

  • opt_airmass (float, optional) – Optical air mass.

  • current_time (float) – Current time (years).

  • hour (float, optional) – Hour of the day. Default is 12 (solar noon)

property hour#

Hour of the day.

Default is 12 (solar noon).

update()[source]#

Update fields with current loading conditions.

This method looks to the properties current_time and hour and uses their values in updating fields.