Giter VIP home page Giter VIP logo

Comments (1)

ghislainp avatar ghislainp commented on June 4, 2024

Since the Vant formulation is an effective permittivity formulation, the procedure is very different from a raw material permittivity that is used to describe background and scatterers's permittivity. In fact, you need to 1) move this formulation in a file with a name stating that it is a mixing formula, for instance saline_ice_mixing_formula.py (based on the file permittivities/snow_mixing_formula.py for an example) and 2) redefine a new electromagnetic model (emmodel) which is possible in SMRT, but a detailed understanding of the implications is first necessary.

  1. In principle, IBA, DMRT and SCE, the three main theory-based "emmodels" in SMRT are tied to a specific mixing formulation. This is indeed a part of the theoretical derivation of these models. This is why changing how these models do their mixing (by using an empirical mixing formula ) is a bit odd, and in fact is changing the model itself, and may break the consistency of the model. This is not a minor operation, and I'd recommend to make it clear in any publication that a change has been done, and also in the way to name the model in the figure legend for instance to avoid misunderstanding by the readers. For instance, Because of this tight link between the electromagnetic model and its effective permittivity, the latter is actually computed in the emmodels in SMRT, and can not be defined as input in make_medium (as opposed to the raw material permittivities for the background and the scatterers).

  2. Nevertheless, SMRT is flexible, it allows to change the effective permittivity because there may be good reasons to use a measured effective permittivity, for instance when it provides an increased accuracy that is greater than the damage caused by the inconsistency described in point 1. L-band is certainly the domain where this makes more sense, but I don't know how to evaluate the inconsistency. Whatever the reasons, it is feasible in SMRT by defining a new emmodel.

2a) One approach consists in really creating a new emmodel. For that copy a file like iba.py -> my-iba-derived-model.py and edit as much as you want. Then use this new model with:

make_model("my-iba-derived-model", "dort")

2b) The second approach uses a function called "derived_IBA" (defined in emmodels/iba.py, and the same apply to SCE) and more generally derived_EMModel (defined in emmodels/common.py) which automatically creates a derived IBA model using a different effective_permittivity_model function.
You can use it like this:

make_model(derived_IBA(my_empiricall_mixing_formula), "dort") or more generally
make_model(derived_EMModel(WhateverModelClass, my_empiricall_mixing_formula), "dort")

  1. But... this is really tricky. Indeed, the effective permittivity drives the absorption, but the computation of scattering requires the background and scatterer permittivities. It means that even if you set an empirical effective permittivity using either points 2a or 2b, the emmodel still uses the background and scatterer permittivities to compute scattering! This is why these two permittivity must be provided as input and are used for the scattering. It is not an issue when working at L-band, because scattering is usually negligible. Conversely playing with the effective permittivity is not recommended at high frequencies !

  2. Now, if/when scattering is negligible, why use IBA or SCE or whatever complex models in an inconsistent way ? It is clearer imho to use the NonScattering emmodel (see directory emmodel)

In your case, I'd recommend to use:

make_model(derived_EMModel(NonScattering, my_empiricall_mixing_formula), "dort")

from smrt.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.