-
Notifications
You must be signed in to change notification settings - Fork 150
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
obs_def_land_mod and soil moisture #254
Comments
I have a few more thoughts on this ... I'll use CLM as the example, but it could happen with any land model. The number of soil layers before bedrock may be different in different columns in the same gridcell. There is at least one forward operator that tries to construct a soil moisture profile (obs_def_COSMOS_mod.f90:get_expected_neutron_intensity) that might need to know when to stop (since I am not sure what values are in the bedrock layers). Similarly, the values in the bedrock layers should probably be unaffected by the assimilation. Just as an example, CLM has a variable with 37 levels, 1-12 are for snow layers, 13-37 are for ground:
The value of 0.01 is neither the As a stopgap measure ... the forward operator requiring the soil moisture profile only needs the soil moisture for the first few meters - and even that is probably overkill - the cosmic ray probes are really only sensitive to the top 10 cm or so. |
I had a chat with Bill Sacks asking if there was some array to indicate what is bedrock, what is not,
So for column 3 to match the example above:
|
I created a test branch (clm_snow_layer_ignore) to to skip updating snow layers. The only modification is Updating the soil moisture or temperature is throwing 'soil balance error'. The observations are of SOIL_MOISTURE, MODIS_SNOWCOVER_FRAC, MODIS_LEAF_AREA_INDEX, and BIOMASS, the only soil variables being updated are H2OSOI_LIQ, H2OSOI_ICE and T_SOISNO. I believe get_close_state() is declaring all columns that are not vegetated_or_bare_soil or crop to be infinitely far away. Since the error seems to come immediately after: Erik Kluzek commented "Since you are triggering an urban issue you must be modifying something outside of what you intend to, based on your description of what you are doing." I have the model_mod.f90:related() function enabled such that |
Use case
The observation converters for soil moisture observations are not consistent. We may need to specify more DART QUANTITYs to cover the situation. Many NASA products use 'volumetric soil moisture percent', CLM uses both
'mm3/mm3' and 'kg/m2', NOAH uses 'm3/m3', so it is really difficult to write a forward operator to return
what is expected, and similarly the observation providers use an equally disparate set of units. Conversion between
many of these requires knowledge of soil properties.
Depending on what variables people use to include in the DART state, the units of the returned quantity are different.
If the CLM history file is used to provide H2OSOI as QTY_SOIL_MOISTURE, the units are mm3/mm3:
If the CLM restart file is used to provide the prognostic variables H2OSOI_LIQ, H2OSOI_ICE, the units are kg/m2:
So - if people specify H2OSOI from the history file as the source of QTY_SOIL_MOISTURE, they get soil moistures appropriate
for the obs_def_COSMOS_mod.f90 and maybe some other observations. The CLM model_mod currently tries to return H2OSOI if asked for a soil moisture and if it does not exist in the state, the soil moisture returned is the sum of H2OSOI_LIQ and H2OSOI_ICE .. which has units of kg/m2 and is NOT appropriate for the obs_def_COSMOS_mod, but is useful for
other soil moisture observations.
Is your feature request related to a problem?
We need to assimilate soil moisture observations - mostly from SMOS, SMAP - satellite observations.
Describe the your prefered solution
I don't have a preferred solution. More DART QUANTITYs? Force the obs_converters and model_interpolate routines to
return identical units?
Describe any alternatives you have considered
The CLM model_mod supports different units by including different variables in the DART vector. This is incredibly cryptic
and prone to error.
The text was updated successfully, but these errors were encountered: