Function Repository Resource:

SolarIrradianceData

Source Notebook

Obtain wavelength-dependent solar irradiance data for the Earth

Contributed by: Jason Martinez

ResourceFunction["SolarIrradianceData"][type,λ]

gives solar irradiance data of the type type for wavelength λ.

ResourceFunction["SolarIrradianceData"][type,f]

gives solar irradiance data for frequency f.

ResourceFunction["SolarIrradianceData"][type,{λ1,λ2}]

gives the total solar irradiance within a wavelength range from λ1 to λ2.

ResourceFunction["SolarIrradianceData"][type,{f1,f2}]

gives the total solar irradiance within a frequency range from f1 to f2.

ResourceFunction["SolarIrradianceData"][type,format]

gives full solar irradiance data in the specified format.

Details

Solar irradiance is the spectral irradiance and provided in units of watts per square meter (of illuminated surface) per nm of wavelength or simply watts per square meter per nanometer. This is typical for solar irradiance data, such as the source, the 2000 ASTM Standard Extraterrestrial Spectrum Reference and similar products.
For pairs of wavelengths, solar irradiance over the wavelengths and returned in units of watts per square meter.
Frequency input is converted to wavelengths to find the irradiance or spectral irradiance. For a single frequency results are returned in units of watts per square meter per hertz. Pairs of frequencies are integrated like wavelengths with results in watts per square meter.
ResourceFunction["SolarIrradianceData"][] can be used to get a list of supported type values. Available values for type are:
"ExtraterrestrialIrradiance"solar irradiance incident on the Earth's atmosphere
"SurfaceIrradiance"solar irradiance incident on the Earth's surface
Wavelengths and frequencies should be given as Quantity expressions.
Quantities of intervals are integrated over like pairs of wavelengths or frequencies.
The value of format in ResourceFunction["SolarIrradianceData"][type,format] can be "Data" (the default) or "Interpolation". "Data" returns a QuantityArray of available data while "Interpolation" returns an InterpolatingFunction with the available data.

Examples

Basic Examples (3) 

Calculate the solar irradiance of 500 nanometers light on the Earth's surface:

In[1]:=
ResourceFunction["SolarIrradianceData"]["SurfaceIrradiance", Quantity[500, "Nanometers"]]
Out[1]=

Determine the solar irradiance of 500 THz light on the uppermost reaches of the Earth's atmosphere:

In[2]:=
ResourceFunction["SolarIrradianceData"]["ExtraterrestrialIrradiance", Quantity[500, "Terahertz"]]
Out[2]=

Compute the solar irradiance for green light on the earth's surface:

In[3]:=
wls = EntityValue[Entity["LightColor", "Green"], EntityProperty["LightColor", "Wavelength"]]
Out[3]=
In[4]:=
ResourceFunction["SolarIrradianceData"]["SurfaceIrradiance", wls]
Out[4]=

Scope (3) 

Specify frequencies to integrate solar irradiance over:

In[5]:=
ResourceFunction[
 "SolarIrradianceData"]["ExtraterrestrialIrradiance", {Quantity[500, "Terahertz"], Quantity[600, "Terahertz"]}]
Out[5]=

Obtain all the data for surface solar irradiance:

In[6]:=
data = ResourceFunction["SolarIrradianceData"]["SurfaceIrradiance", "Data"]
Out[6]=

Find the wavelength in the data set with the maximum solar irradiance:

In[7]:=
MaximalBy[data, Last] // Normal
Out[7]=

Retrieve an interpolating function for solar irradiance outside the atmosphere:

In[8]:=
f = ResourceFunction["SolarIrradianceData"][
  "ExtraterrestrialIrradiance", "Interpolation"]
Out[8]=
In[9]:=
f[Quantity[500, "Nanometers"]]
Out[9]=

Applications (1) 

Compare solar irradiance above and below the atmosphere:

In[10]:=
ListLinePlot[{ResourceFunction["SolarIrradianceData"][
   "SurfaceIrradiance", "Data"], ResourceFunction["SolarIrradianceData"][
   "ExtraterrestrialIrradiance", "Data"]}, Frame -> True, FrameLabel -> Automatic]
Out[10]=

Properties and Relations (1) 

Compare the peak wavelength in the data set for extraterrestrial irradiance to that predicted for a blackbody:

In[11]:=
data = ResourceFunction["SolarIrradianceData"][
   "ExtraterrestrialIrradiance", "Data"];
MaximalBy[Normal[data], Last]
Out[12]=
In[13]:=
PlanckRadiationLaw[
 Entity["Star", "Sun"][
  EntityProperty["Star", "EffectiveTemperature"]], "MaxWavelength"]
Out[13]=

Version History

  • 1.0.0 – 25 October 2022

Source Metadata

Related Resources

License Information