-
Notifications
You must be signed in to change notification settings - Fork 5
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
Review Z dimension for SpaceDomain
#28
Comments
SpaceDomain
SpaceDomain
Currently it looks like "divisions" can cope with things like veg types and even soil layers. The issues may come if things like altitude tiling is to be implemented in a similar way to JULES. In this case the meteorological driving data might vary depending on height. |
I guess another issue is if we have multiple dimensions. Soil layers and soil tiles in the same grid box. Can dimensions be a multiple value tuple? |
I think "divisions" should only be used for information that remains internal to the component. It is a value that is specific to a component, and potentially customisable (although not yet supported), but that should not be known by another component for these two reasons. So it would be fine for soil layers, but not for vegetation types - vegetation types is some information that we are likely to standardise so that it can be passed between components (i.e. subgrid heterogeneity) because it makes sense for two components to be aware of it (unlike soil layers to me).
Yes, if the
As I envisage it, soil layers would be under the "divisions" axis while soil tiles would be under the "area_type" axis (i.e. the subgrid heterogeneity one), so I think it should be fine once we have sorted out the subgrid heterogeneity aspect. E.g. the states of a |
I think a component needs to be offered 3 ways of having a vertical dimension:
Are there any other situations for the vertical dimension that need to be covered? We need to decide which situations (if not all) we want to support at this stage. |
Also, would this vertical dimension be used if we want to have both surface flow direction, and subsurface flow direction? And if so, how? |
After discussing with Rich, we have split what we think is required now for v0.1 and what will be required in a later version. For v0.1, we want to support two situations where a vertical dimension is involved:
For a later version, we want to support:
In any situation, we agree that transfers through the interface will always be 2D. At the moment, the user can define a Z dimension in their |
After thinking about this further, I think the two first situations mentioned in the previous post (i.e. those for v0.1) are a bit "hacky" and will need to be revised in a later iteration (in #70). For now and the imminent release of v0.1, I don't think a third dimension is required (beyond the divisions of states already supported), and so it is preferable to "deactivate" the vertical dimension of space domains altogether until a clean solution is found. |
At the moment, an optional Z dimension can be included in
SpaceDomain
. The original intention of adding it was to be able to check for the Z axis of a dataset provided to theComponent
(e.g. measurement level). But having a third dimension is problematic at the science level. The compoment developper may be given a 2D or a 3D array. If the Z dimension was limited to a size of 1, a systematic "squeeze" could be performed before giving the data array to the component, but there is no such enforcement for size 1 at the moment.This third dimension is important nonetheless. For instance, layers for taking into account different vegetation heights or soil moisture layers could be needed. When these are about holding multi-layer states, this is alredy accommodated for by using the 'divisions' key in _states_info (so no need for a Z dimension in
SpaceDomain
), if this is about getting multi-layer inputs, then there is a gap at the moment, and there may be a need for a Z dimension to remain inSpaceDomain
.This is also problematic for Fortran and C extensions if the rank of the array is varying between 2 and 3.
I am opening this issue to register the problem, and start a discussion on this. Until this problem is solved, it may be good to remove the possibility for a Z dimension in
SpaceDomain
to avoid problems when arriving in the science component code and assume only a 2D array can be given.The text was updated successfully, but these errors were encountered: