The SEDRIS Data Representation Model
APPENDIX A - Classes Grid Overlap |
---|
An instance of this DRM class specifies how the data provider intended the consumer to resolve data ambiguity at a location falling within a grid cell for two or more <Property Grid> instances, such that the ambiguity cannot be resolved by other means.
An ambiguity occurs at a location L lying within two <Property Grid> instances A and B if all four of the following conditions hold.
A and B are not disjoint due to any higher-level organizing structure in the transmittal, such as membership under different branches of an <Alternate Hierarchy Related Geometry>, or disjoint <Time Constraints Data>.
A and B have matching <Classification Data>.
At least one <Table Property Description> in A has a meaning matching a <Table Property Description> in B.
Both A and B actually have data for that matching <Table Property Description> at L.
When such an ambiguity occurs, <Grid Overlap> instance(s) indicate how the data provider intended the consumer to calculate the <Table Property Description> value intended at each such location.
When <Grid Overlap> instances are required and are present, resolution only occurs within an overlay group. The resolution process is performed on data from <Property Grid> cells that contain a given location (choose the first priority group that includes all relevant grids.) The resolution process is as follows:
STEP 1:
Start with priority 0. Each priority group shall have exactly one <Grid Overlap> instance with priority 0. The <Property Grid> instance for this <Grid Overlap> instance shall overlap the other <Property Grid> instances in the given priority group. The operation for priority 0 shall be SE_GRD_OVRLP_OP_BASE.
Extract cell data from the <Property Grid> instance that has this <Grid Overlap> instance as a component; this becomes the current data.
STEP 2:
Find the next priority. Priorities within an overlay group need not be consecutive, but they shall be unique. Extract the cell data from the <Property Grid> that has this <Grid Overlap> as a component. Operate on this and the current data according to the <Grid Overlap> operation. The result of the operation becomes the current data for the next step.
SE_GRD_OVRLP_OP_REPLACE means that this data overrides the current data from the last step.
SE_GRD_OVRLP_OP_ADD and SE_GRD_OVRLP_OP_MEAN can only be applied to numeric data.
SE_GRD_OVRLP_OP_MERGE operations are dependent on the classification of the <Property Grids>, and use methods documented outside SEDRIS.
STEP 3:
Look for next priority. If found, goto step 2. Otherwise use the current data.
Low resolution grid A covers a large area, and contains smaller (but higher resolution) grids B, C, and D. The <Grid Overlap> scheme is:
<Property Grid> | overlay_group | priority | operation |
---|---|---|---|
A | 10 | 0 | SE_GRD_OVRLP_OP_BASE |
B | 10 | 1 | SE_GRD_OVRLP_OP_REPLACE |
A | 20 | 0 | SE_GRD_OVRLP_OP_BASE |
C | 20 | 1 | SE_GRD_OVRLP_OP_REPLACE |
D | 20 | 2 | SE_GRD_OVRLP_OP_REPLACE |
In intersection A & B, B data overrides A.
In intersection A & C, C data overrides A.
In intersection A & D, D data overrides A.
In intersection A & C & D, D data overrides others.
B should not intersect either C or D as this scheme will not provide ambiguity resolution.
A seamount is modeled as a grid M of elevation offsets above the underlying bathymetry in grids A and B. The <Grid Overlap> scheme is:
<Property Grid> | overlay_group | priority | operation |
---|---|---|---|
A | 1 | 0 | SE_GRD_OVRLP_OP_BASE |
B | 1 | 1 | SE_GRD_OVRLP_OP_MEAN |
M | 1 | 999 | SE_GRD_OVRLP_OP_ADD |
B | 2 | 0 | SE_GRD_OVRLP_OP_BASE |
M | 2 | 999 | SE_GRD_OVRLP_OP_ADD |
In intersection A & M and outside of B, add M offsets to A bathymetry values.
In intersection B & M and outside of A, add M offsets to B bathymetry values.
In intersection A & B, average A and B bathymetry values.
In intersection A & B & M, first average A and B bathymetry values, and then add offsets from M to the average.
There are numerous numerical models in the atmosphere and ocean community that start by computing a coarse grid over a large area, then use this grid as boundary and initial conditions for calculating a more finely-sampled grid over a smaller area. In many cases, the process is repeated several times, producing a "nest" of grids that all cover the same area. It is also possible to implement variable-resolution grids in SEDRIS by constructing a base grid covering a large region at a coarse sample spacing suitable for describing "ambient" conditions, and then to inset finer grids at locations with detailed features of interest.
A <Grid Overlap> is required whenever multiple grids contain values for the same <Table Property Description> at the same location within the simulated environment.
If their absence will not cause ambiguity in the transmittal, <Grid Overlap> instances are not needed. If the <Property Grids> are explicitly disjoint due to some higher organizing structure, such as mutually exclusive branches of an <Aggregate Geometry>, there is no ambiguity and a <Grid Overlap> is not required. If grids covering the same location have no common <Table Property Description> contents, they do not create ambiguity and do not need a <Grid Overlap>.
Yes. A base <Property Grid> could have disjoint overlaps with several different "insets". Although it is usually possible to choose priority levels within a single group to resolve the ambiguities, use of multiple groups may make the situation clearer and easier for the consumer. There are also less common situations of multiple overlaps that can't be resolved using a single group.
The operation rules described in the definition apply at a single point location, so alignment of cells is not strictly required. However, it is likely that combining values from misaligned cells will not produce a sensible value. As basic guidance, preparers of transmittals should avoid this situation when possible, since it is confusing to consumers. Grids should be resampled before preparing the transmittal so as to achieve alignment whenever possible.
SE_Short_Integer_Positive | overlay_group; | (notes) |
---|---|---|
SE_Short_Integer_Unsigned | priority; | (notes) |
SE_Grid_Overlap_Operator | operation; | (notes) |
The overlay_group field specifies the overlay group within which the resolution process is to occur.
The priority field specifies a priority that is meaningful within the specified overlay_group.
The operation field specifies the operation to be performed on the data during the resolution process.
|