smrt-model / smrt

Snow Microwave Radiative Transfert model to compute thermal emission and backscatter from snowpack
Other
49 stars 20 forks source link

Diagonalisation problem in SMRT, active microwave mode #25

Closed carlettif closed 3 months ago

carlettif commented 7 months ago

Good morning everyone,

I write here because I have problems making use of the new DORT solver feature to ease diagonalisation problems in active microwave modelling with SMRT. In this doc https://github.com/smrt-model/smrt/blob/master/smrt/rtsolver/dort.py, I read: _"Two new diagonalisation approches were added in Jan 2024. They are activated by setting the diagonalization_method optional argument (see :py:meth:smrt.core.make_model)"_. So, this is how I tried to make use of this new feature in my code:

model = make_model("symsce_torquato21", "dort", rtsolver_options=dict(error_handling="nan", diagonalization_method="shur_forcedtriu")) sensor = sensor_list.sentinel1(theta=constants["incidence_angle_theta"]) results = model.run(sensor, snowpacks, snowpack_dimension=("date", dates)) results_array = results.sigmaVV_dB()

However, I get the following error message:

TypeError: DORT.__init__() got an unexpected keyword argument 'diagonalization_method'

I've already made sure to pull all the new changes in SMRT code. I can build the model without problems, the warning comes when I run it. For sure I am doing something wrong. Could you help me solving this issue?

Thank you and have a good day,

Francesca Carletti

ghislainp commented 7 months ago

It is likely a SMRT version and installation issue. Can you check:

from smrt.rtsolver import dort
dort.DORT??

in ipython or in a notebook.

It should show the path to the dort.py file and the argument for the initialization. diagonalization_method must appear here. If not reinstall SMRT.

carlettif commented 7 months ago

It worked, thank you very much for the fast reply!

Francesca