Hi Freddy, Hi all,

A great idea to brake down the calculations into more steps than we discussed in Hamburg. A general OK to your plans, but I think we need to establish what terminology to use in ARTS before discussing the details. I got dizzy when reading your plan ...

In ARTS we call spectral radiance for intensity, i for short. "Intensity" is a vague name, but it would be a big thing to change this nomenclature now. But I think we should use more clear names when adding new WSVs. On the same time, we have discussed to rename doit_i_field, as well as having i_field for both total atmosphere and cloudbox.

I have quickly tried to make a naming suggestion of main WSVs, found below. (It seems we both have looked at Wikipedia). I picked flux density (fluxd) in favor for irradiance to have a more distinct difference to radiance. Can be discussed.

I am not clear about where we need to keep upward and downward streams separated in these new WSVs. So I am not sure about the exact tensor dimensions needed yet. For example, it seems that you have a directional dimension for heating rates. That I don't get? By the way, what unit shall we use for heating rates? SI should be K/s!?

Regarding "IfieldFromIycalc1DPP". I have long planned to make a ppath1DPP. Would fit well here. The new iyEmissionStandard will make this very easy. You will just need to do calculations at TOA and surface. (In principle only TOA could suffice with a limitation to specular surfaces, but I think it is better to be general despite a bit slower)

All written very quickly. Let's discuss during the video con later today.

Bye,

Patrick


Name: Spectral radiance
Unit: W/(m2 Hz sr)
ARTS: i_field [Tensor 7]
ARTS: cloudbox_i_field [Tensor 7]

Name: Radiance
Unit: W/(m2 sr)
ARTS: radiance_field [Tensor 6]

Name: Spectral irradiance
Name: Spectral flux density
Unit: W/(m2 Hz)
ARTS: spectral_fluxd_field [Tensor 5]

Name: Irradiance
Name: Flux density
Unit: W/m2
ARTS: fluxd_field [Tensor 4]

Name: Heating rate
Unit: ?
ARTS: heating rate [Tensor 3]

Angular grids:
field_za_grid
field_aa_grid
cloudbox_field_za_grid
cloudbox_field_aa_grid





On 2017-11-30 14:35, Manfred Brath wrote:
Hello all,*

*I plan to implement functions in ARTS to calculate monochromatic (spectral) radiatiative fluxes also called as monochromatic (spectral) irradiance, radiatiative fluxes also called irradiance, radiance and heating rates from the radiation field. Any comments, suggestions are welcome. For that purpose I would like to implement five new workspace methods, which will be explained below.


          RFAngularGridsSet

This method will be similar to DOAngularGridsSet and set up the angular grids for the flux calculation but it also calculate the integration weights for the zenith angle integration. (Maybe this function can be included in a revised version of DOAngularGridsSet)

Input:

n_za
    Number of grid points in zenith direction per hemisphere (Index)
n_aa
    Number of grid points in azimuth direction per hemisphere (Index,
    default=1)
gridtype_az
    Defines the type of azimuth grid (string):

      * double_gauss, double gauss in μ =cos θ
      * linear_mu, linear in μ =cos θ
      * linear, linear in θ

Output:

doit_za_grid_size
    Number of equidistant grid points of the zenith angle grid, defined
    from 0° to 180°, for the scattering integral calculation.
scat_aa_grid
    Azimuth angle grid (Vector)
scat_za_grid
    Zenith angle grid (Vector)
za_grid_weights
    integration weights for zenith angle integration (Vector, new
    workspace variable///
    1
    Italics indicate new workspace variables
    /)


          IrradianceFromIfield

This method will calculate the monochromatic (spectral) irradiance and irradiance (radiatiative fluxes). Important, this function will only use the first Stokes component of the doit_i_field and iy_unit must be “1”.

Input:

doit_i_field
    Radiation field (Tensor7)
scat_aa_grid
    Azimuth angle grid (Vector)
scat_za_grid
    Zenith angle grid (Vector)
f_grid
    Frequency grid (Vector)
Output:

sir_field
    spectral irradiance (radiative flux) (Tensor5, new workspace
    variable)) [Wm -2 Hz -1 ]. Size: [Nf, size(doit_i_field, dim=1) ,
    size(doit_i_field, dim=2), size(doit_i_field, dim=3), 2 ], last
    dimension is upward and downward direction.
ir_field
    //irradiance (radiative flux) (Tensor4, new workspace variable)) [Wm
    -2 ]. Size: [size(doit_i_field, dim=1) , size(doit_i_field, dim=2),
    size(doit_i_field, dim=3), 2 ]


          RadianceFromIfield

This method will calculate the radiance and irradiance (radiatiative fluxes). Important, this function will only use the first Stokes component of the doit_i_field and the iy_unitmust be “1”.

Input:

doit_i_field
    Radiation field (Tensor7)
scat_aa_grid
    Azimuth angle grid (Vector)
scat_za_grid
    Zenith angle grid (Vector)
f_grid
    Frequency grid (Vector)
Output:

r_field
    radiance (Tensor6, new workspace variable)) [Wm -2 sr -1 ]. Size:
    [Nf, size(doit_i_field, dim=1) , size(doit_i_field, dim=2),
    size(doit_i_field, dim=3), N_za, N_aa ]
ir_field
    //irradiance (radiative flux) (Tensor4, new workspace variable)) [Wm
    -2 ]. Size: [size(doit_i_field, dim=1) , size(doit_i_field, dim=2),
    size(doit_i_field, dim=3), 2 ]


          HeatingRatesFromIRField

This method will calculate heating rates from irradiance (radiative flux).

Input:

ir_field
    irradiance (radiative flux) (Tensor4, new workspace variable)
p_grid
    pressure grid (Vector)
Output:

heating_rates
    heating rates (Tensor4, new workspace variable) [Ks -1 ]. Size:
    [size(doit_i_field, dim=1) , size(doit_i_field, dim=2),
    size(doit_i_field, dim=3), 2 ]


          IfieldFromIycalc1DPP

This method will calculate the radiation field using iyCalcfor several directions. This method will work only for clearsky cases and 1D atmospheres. It internally assumes a plane parallel atmosphere and therefore sets internally the earth radius to 1 0 15 m to mimic a plane parallel atmosphere.

Input:

scat_za_grid
    Zenith angle grid (Vector)

The other inputs are similar to iyCalc, except that rte_pos, rte_pos2 are set internally and rte_los is set internally by scat_za_grid.

Output:

doit_i_field
    Radiation field (Tensor7)




Cheers,
Freddy



_______________________________________________
arts_dev.mi mailing list
arts_dev.mi@lists.uni-hamburg.de
https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_dev.mi

_______________________________________________
arts_dev.mi mailing list
arts_dev.mi@lists.uni-hamburg.de
https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_dev.mi

Reply via email to