NCAR / DART

Data Assimilation Research Testbed
https://dart.ucar.edu/
Apache License 2.0
189 stars 142 forks source link

Feature request: the states can be accessed in the localization mod #513

Closed hgrhgy closed 9 months ago

hgrhgy commented 1 year ago

Use case

the current localization method in DART can not be customized for high-resolution(1km or less) atmosphere assimilation and flux inversion case. I want to calculate the localization factors according to the atmospheric states.

Is your feature request related to a problem?

The shape of the location has a great impact on the assimilation performance. The current localization cannot customize factors or shapes based on the DART states, e.g. winds, pressure, or temperature. For high-resolution atmosphere assimilation cases, the current location method may introduce less effective information and easily introduce errors.

Describe your preferred solution

the ability to access the states in localization mod.

Describe any alternatives you have considered

or read from an external file for a specific target variable.

nancycollins commented 1 year ago

hello - i have 2 comments about this request.

  1. the actual impact of an observation on the surrounding state depends not only on the localization distance but also on the correlation between the array of state values and the array of expected observation values. if there is high correlation then the impact is larger; if there is less correlation then the impact is lower. so the shape of the impact of an observation is more complex than simply the localization distance. are you taking that effect into your results?

  2. if you do need to have additional information about the data state, would the ensemble mean be sufficient? a single mean state is already available in the get_close_state() and get_close_obs() routines. it is most frequently used when doing conversion of vertical coordinates, but it could be used for other purposes if needed.

hgrhgy commented 1 year ago

Thanks for your comment.

for comment 1: Yes, the correlation can control the impact on the states. The correlations are calculated using the ensembles and observations, and the ensembles are generated through perturbation. The states are perturbed using the same distribution in my case, the state - state_mean is probably similar[code update_from_obs_inc ]. There could be a better way to do perturbation. but it seems difficult, because for different combinations of obs and state in different conditions the correlations may be different. In some specific conditions, some surrounding states may be not correlated to the observation. But we can not simply perturb the ensembles in small variances in these positions, because they may have a strong relation to the observations in other positions. The ensembles are generated only once for all observations in one timestep.

for comment 2: The get_close_state could be helpful. But how to use get_close_state in cutoff_mod. It seems I need to add the assim_model_mod into the cutoff_mod and call the get_close_state(). I am not quite sure it is the right way to do.