Weighing constants for PyDDA

Hi. Is there additional documentation or guidance on how to determine the appropriate weights or what is an appropriate range for the weights to use in PyDDA besides Welcome to the PyDDA documentation! — PyDDA 1.2.0 documentation? The case I am looking at right now uses NEXRAD/s-band data. Thanks.

We are currently working on updating the user guide with more detailed documentation on each step in the wind retrieval process. What I would suggest is that you tune the weights so that the magnitude of each cost function is about the same. For two radars, this amounts to Co = 1.0 and Cm in the range of 1 to 1024. For smoothing, background, and model constraints, coefficient values of 1e-5 to 1e-4 typically work best.

In addition, the ‘auglag’ engine works for two radars and if you are using the mass continuity and radar observational constraints. This engine uses an Augmented Lagrangian technique that will automatically determine the weights for you and adjust them with each iteration.

Hope this helps.

Bobby

2 Likes

Thanks Bobby. Should the magnitude of the cost functions be the same when the retrieval starts or when it finishes? Also, is there a way I can print out a list of which variables are in the pyart.core.Grid object created and to exact specific variables out of that object? Thanks.

To print out the variables created, you would just do:

print(list(grid.variables.keys()))

You would aim to have the cost functions be around the same magnitude at the end of the retrieval. You also may have to do several experiments with each of the weights to get the retrieval to converge to something physically realistic.

Hi, are we also able to use the “jax” engine or just the “tensorflow”?

You can use the “jax” engine if you have Jax installed.