Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem of Diagonalisation Error #18

Open
cryptomare opened this issue Aug 11, 2022 · 3 comments
Open

Problem of Diagonalisation Error #18

cryptomare opened this issue Aug 11, 2022 · 3 comments

Comments

@cryptomare
Copy link

Hi all,

I am working on the implementation of SMRT for a wet snowpack. First, I made the snowpack by giving the desired inputs, i.e. density, thickness, stickiness, liquid water content, temperature, and grain size, with "Sticky Hard Spheres" microstructure model. Next, I made the model using IBA and DORT, after which the model is implemented under active sensor configuration. However, I got an error of "Diagonalisation". I would be grateful if you could help me in understanding the error and what can be done in order to eliminate this.

Thanks a lot for your time,

Cheers,
Shashwat

@ghislainp
Copy link
Member

Hi Shashwat,

In general the diagonalisation error in DORT is due to two cases:

1 - a layer with grains of large size compared to the wavelength. I can not give a precise limit, because it depends on the EM theory (IBA and SCE are much less subject to this problem than DMRT), but in general reducing the grain size avoid the problem. For wet snow, because scattering is enhanced, it is also possible to get this error. Reducing wetness should avoid the problem.

Avoiding the problem is useful as a diagnostic but does not mean the problem is solved.

How to solves the problem ? Sometimes it is easy. A frequent problem occurs when running SMRT on ice-sheet where the snowpack is deep, the grains tend to grow with depth, and when the range of frequency is wide (e.g. 6-37 GHz). A deep snowpack (>20m) is needed to simulate the 6 GHz but may lead to the diagonalisation error at 37 GHz (grains are bigger relative to the wavelength). In this case, I recommend to remove the deep layers (below 2-3 m) for the 37 GHz simulation only because these layers won't contribute anyway to the signal. Even though they don't contribute to the signal, SMRT must compute the diagonalisation in these layers and may fail due to the large grains there.

Sometimes it is impossible to solve the problem, because the grains near the surface are actually large with respect to the wavelength. This situation hits the limit of the EM theories in SMRT which assume small grains (see e.g. https://tc.copernicus.org/preprints/tc-2022-63/ for details). To my experience this should not occur at 89 GHz and below, for realistic microwave grain size (see doi:10.1029/2021AV000630).

2- it also occurs in active mode more than in passive mode for the same grain size. The reason is because the DORT method requires to compute the diagonalisation not only for all the layers but also for many azimuth “modes”. In general accurate active mode calculations require to compute many modes (up to 10 for instance) but the problem of diagonalisation increases a lot in this case to my experience. I suspect numerical issues but I don’t know exactly. Maybe a more stable solution exist, I don’t know. DORT is a great method, but other simpler (thouhg less accurate methods) do not suffer from this problem (I'm expecting funding to implement them in the near future). The default value in SMRT for the number of modes is actually m_max=2, which is very small. It is possible to change it:

make_snowpack(emmodel, “dort”, rtsolver_options=dict(m_max=4))

How to solve the problem ? I don’t know except by reducing the number of modes. Reducing the grain size will certainly also reduce the problem, and again: don’t prescribe layers very deep if running at high frequencies. You can try also with to another EM model, for instance SCE instead of IBA, you might be lucky.

I’d like to learn what is the problem in your case if you investigate a bit the effect of grain size, wetness and mode.

@cryptomare
Copy link
Author

Hi Ghislain,

Thanks a lot for your time and for the clear, detailed and concise explanation. Much appreciate it. In my case, I am working with C-band (so < 6 GHz), which essentially mean to consider the snowpack > 20 m. But I would definitely investigate the effect of grain size, wetness and mode as you suggested and will let you know on the progress of that. I have not yet tried the SCE, will look into that as well.

Regards,
Shashwat

@cryptomare
Copy link
Author

I have a small doubt on SCE. I was thinking of employing the SCE emmodel instead of IBA, to see the differences. So, from where can I use the SCE model instead of IBA in SMRT?

Thanks,
Shashwat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants