Closed ferranhema closed 3 months ago
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")
3) 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 !
4) 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")
In order to include the Vant effective permittivity formulation for sea ice (Vant et al. 1978, "The complex-dielectric constant of sea ice at frequencies in the range 0.1–40 GHz", only for L-band as it employs distinct coefficients for each frequency), I'm facing some difficulties. I have successfully incorporated the permittivity function into the saline_ice.py file. However, I'm encountering some ambiguity regarding its usage within the make_medium function. After reviewing the code, it seems that both the "ice_permittivity_model" (for firstyear ice) and the "saline_ice_permittivity" (for multiyear ice) determine the background permittivity, which is then mixed with the scatterers. The Vant formulation is empirical, and it computes the permittivity of the saline ice by itself (it doesn't have to be then mixed).