org.mbari.model.solar
Class FrouinIrradianceModel

java.lang.Object
  extended byorg.mbari.model.solar.FrouinIrradianceModel

public class FrouinIrradianceModel
extends java.lang.Object


Constructor Summary
FrouinIrradianceModel(double[] lambda)
           
 
Method Summary
 double[] calcIrradiance(int year, int month, int day, double time, double lat, double lon)
          Haven't checked this yet
 double[] calcIrradiance(long millis, double lat, double lon)
           
 double[] calcIrradiance(long millis, double lat, double lon, double TauA865, double Angstrom, double Dobson)
          This subroutine calculates the incoming clear-sky solar irradiance just above the surface at SeaWiFS wavelengths (412, 443, 490, 510, 555, 670 nm), using this equation: E = E0 * ESfactor * COS(SolZen) * TransG * TransA / (1 - (Sa * As)) where: E0 = extra-terrestrial solar irradiance (mW/cm^2/um) ESfactor = Earth-Sun distance factor SolZen = solar zenith angle (deg).
 double[] getWavelength()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FrouinIrradianceModel

public FrouinIrradianceModel(double[] lambda)
Method Detail

calcIrradiance

public double[] calcIrradiance(long millis,
                               double lat,
                               double lon,
                               double TauA865,
                               double Angstrom,
                               double Dobson)
This subroutine calculates the incoming clear-sky solar irradiance just above the surface at SeaWiFS wavelengths (412, 443, 490, 510, 555, 670 nm), using this equation: E = E0 * ESfactor * COS(SolZen) * TransG * TransA / (1 - (Sa * As)) where: E0 = extra-terrestrial solar irradiance (mW/cm^2/um) ESfactor = Earth-Sun distance factor SolZen = solar zenith angle (deg). TransG = gaseous transmittance TransA = diffuse atmospheric transmittance Sa = spherical albedo of the atmosphere As = albedo of the ocean [note: Routine estimates SolZen from input parameters. Valid for 0 -- 90 deg, but for SolZen > 80 deg, the above formula and the approximations used for the various atmospheric functions are not very accurate.] Routine Inputs: year: 4-digit integer (y2k compliant ;-) month: 2-digit integer day: 2-digit integer hour: decimal GMT hours, 24-hour clock lat: latitude (deg) lon: longitude (deg) TauA865 *: aerosol optical thickness, 865 nm Angstrom *: Angstrom coefficient ( convention: Angstrom > 0 ) Dobson *: ozone amount in Dobson units [note: inputs labelled with '*' may be missing. If so, they should be given values of -999 or less. The subroutine will fill in appropriate default values.] Output: E: surface solar irradiance (mW/cm^2/um) [note: if the SolZen is found to be > 90 deg (sun below horizon), then routine fails cleanly. Output 'E' values set to missing value -999 or less. This should be checked for in the calling program.] Sample run input (from a MOBY site): 1998 3 16 23.0 20.83 -157.19 0.08 0.5 325. Output: year, month, day, GMT time, lat, lon, sun zenith angle, and the 6 E's. 1998 3 16 23.000 20.830 -157.190 23.1 133.52 154.19 162.95 159.29 156.78 135.45 Authors: Robert Frouin , scientific algorithms John McPherson , program structure References: Frouin, R., D. W. Ligner, and C. Gautier, 1989: A Simple analytical formula to compute clear sky total and photosynthetically available solar irradiance at the ocean surface. J. Geophys. Res., 94, 9731-9742. Tanre, D., M. Herman, P.-Y. Deschamps, and A. De Leffe, 1979: Atmospheric modeling for Space measurements of ground reflectances, including bi-directional properties. Appl. Optics, 18, 21,3587-21,3597.


calcIrradiance

public double[] calcIrradiance(long millis,
                               double lat,
                               double lon)

calcIrradiance

public double[] calcIrradiance(int year,
                               int month,
                               int day,
                               double time,
                               double lat,
                               double lon)
Haven't checked this yet


getWavelength

public double[] getWavelength()