>From the perspective of computing scattering (or absorption) properties
for a given location in the atmosphere there are two types of required data:

- constant data describing the scatterer (single scattering data for particles, 
- atmospheric input: These are quantities that vary with position (pressure, 
temperature, vmr, etc.)

The interface I described needs to handle only the second kind of data. This is 
because it's the key to decoupling the different scatterers from the RT methods 
use them.

The handling of the constant data is completely up to the implementation of the 
specific scatterers.
For the ScatteringParticle class, for example, this is provided when the object 
is constructed.
So when the ARTS user calls:


an object is created which will hold the scattering data. It will then use it 
when asked to
compute the bulk scattering properties. Since the 
calculate_bulk_properties(...) method
is called on this object, it automatically has access to the required data.

However, what this data is and how it is handled is completely up to the 
specific class.
For molecular scattering your would probably only need to know the atmospheric

The key here is the object oriented approach: By defining the interface through 
a class
hierarchy the interface needs to handle only the atmospheric input but can 
leave the
handling of ancillary data that doesn't vary to each class.
From: Stefan Buehler <stefan.bueh...@uni-hamburg.de>
Sent: Monday, February 1, 2021 12:07:56 PM
To: Simon Pfreundschuh
Cc: ARTS Developers List
Subject: Re: Simon plans for scattering properties

Dear Simon,

how will you manage communication? I’m asking because there is a
related issue in computing absorption. It is easy to define a common
interface with respect to what the functions have to provide. But in
that case (and perhaps also in your case) a problem is that they require
quite different input, in addition to the atmosphere. (In the case of
absorption for example spectral line data for LBL functions, or a table
with measured cross-section data for other functions.)

Best wishes,


On 31 Jan 2021, at 10:53, Simon Pfreundschuh wrote:

> Dear Stefan,
> If there's no user-configurable parameters required for molecular
> scattering then
> using it in a control file would be trivial:
> scattering_species_AddMolecularScattering()
> The iy method would then just need to check if the sun is on and
> calculate
> the bulk scattering properties for the first order scattering. In this
> way particles
> and molecules would be handle in a consistent way.
> What is required for this to work is of course a class that implements
> the interface
> defined by the ScatteringSpeciesImpl class (as indicated in the PDF).
> I also would really like to highlight the following, which you seem to
> have
> misunderstood:
> The interface that I described makes no assumptions whatsoever on the
> scattering
> species being either particles or a gas. It essentially already
> implements what
> you described but is even less restrictive. It only requires that a
> scattering species
> is able to provide bulk scattering data from an atmospheric state
> following the
> protocol defined by the ScatteringSpeciesImpl class.
> I am quite sure that with this system molecular and particle
> scattering can
> be handled consistently and the need for a molecular_scattering flag.
> However,
> I also agree that it would probably be inappropriate to  require Jon
> to use this
> system considering that he's just a Master's student and that this is
> still under
> development.
> Kind regards,
> Simon
> ________________________________
> From: arts_dev.mi-boun...@mailman.rrz.uni-hamburg.de
> <arts_dev.mi-boun...@mailman.rrz.uni-hamburg.de> on behalf of Stefan
> Buehler <stefan.bueh...@uni-hamburg.de>
> Sent: Friday, January 29, 2021 8:42:21 AM
> To: Simon Pfreundschuh
> Cc: ARTS Developers List
> Subject: Re: Simon plans for scattering properties
> Hej Simon,
> can you help me understand it then, please? I do want to find the best
> solution, not necessarily the quickest. (But simplicity is part of the
> criteria for “best”.)
> /Stefan
> On 29 Jan 2021, at 7:11, Simon Pfreundschuh wrote:
>> Dear Stefan,
>> I guess all I can say is that I am quite confident that you didn't
>> properly
>> understand my proposal, which could quite easily handle the pressure
>> dependency. Anyhow, it's quite clear that you are searching for a
>> quick
>> solution and I won't be able to provide that. So let's just cut this
>> short.
>> /s
>> ________________________________
>> From: Stefan Buehler <stefan.bueh...@uni-hamburg.de>
>> Sent: Thursday, January 28, 2021 5:02:28 PM
>> To: Simon Pfreundschuh
>> Cc: ARTS Developers List
>> Subject: Re: Simon plans for scattering properties
>> Dear Simon,
>> thanks for the summary!
>> I think I understand more or less how this works now. A bit
>> unfortunate
>> that so much information has to be moved around at the controlfile
>> level. (The copying of grids from one variable to the other, the
>> copying
>> of the scattering data themselves.) Is the idea that you would then
>> in
>> practise store and load directly the ScatteringHabits, in order to
>> make
>> this easier?
>> On where the Rayleigh scattering fits in: Patrick suggested when we
>> talked yesterday that perhaps a more logical way to think about this
>> is
>> to distinguish between *gases* and *particles*, rather than between
>> *absorption* and *scattering*. (Including Rayleigh scattering with
>> the
>> PND system really does not work, as it turns out, as it depends on
>> pressure.)
>> Perhaps we should move towards a *gas* / *particle* division in ARTS.
>> That would mean including the Liebe rain absorption in the particle
>> part. It would also affect your nomenclature, since one should then
>> preferably talk about *ParticleSpecies* rather than
>> *ScatteringSpecies*.
>> (And *gas_species* instead of *absorption_species*.)
>> All the best,
>> Stefan
>> On 26 Jan 2021, at 22:10, Simon Pfreundschuh wrote:
>>> Dear Stefan,
>>> I attach the description of the new scattering system that you
>>> requested.
>>> I tried to keep it general to avoid getting lost in technicalities.
>>> If
>>> you have
>>> more specific questions please let me know.
>>> Kind regards,
>>> Simon
>>> ________________________________
>>> From: arts_dev.mi-boun...@mailman.rrz.uni-hamburg.de
>>> <arts_dev.mi-boun...@mailman.rrz.uni-hamburg.de> on behalf of Stefan
>>> Buehler <stefan.bueh...@uni-hamburg.de>
>>> Sent: Monday, January 25, 2021 9:36:33 AM
>>> To: ARTS Developers List
>>> Subject: Simon plans for scattering properties
>>> Dear all,
>>> one thing I took home from the developer meeting on Friday is that I
>>> would like to better understand Simon’s plans for the scattering
>>> properties. We need this to make a good decision on how to proceed
>>> with
>>> the Rayleigh scattering (incorporate it into the existing scattering
>>> data framework, or make a special case for this analytical
>>> scattering
>>> matrix). Simon, can you please summarize your concept briefly?
>>> All the best,
>>> Stefan

Reply via email to