Raster_merge - ObjectVision/GeoDMS GitHub Wiki
Grid functions raster_merge
- raster_merge(target_grid_domain, valuesunit,sub_grid_data_item_1, ..., sub_grid_data_item_n)
- raster_merge(indexmap, valuesunit, valuesunit,sub_grid_data_item_1, ..., sub_grid_data_item_n)
raster_merge(target_grid_domain, valuesunit, sub_grid_data_item_1,..., sub_grid_data_item_n) results in raster-data merged from the given sub_grid_data_items.
- The domain unit of the resulting data item is configured as first argument.
- The values unit of the resulting data item is configured as second argument.
This variant can be used if the projection information can be derived from the domain units of the sub_grid domains and the cell size of the target_grid_domain equals the cell size of the sub_grid domains. This raster_merge variant can be used both to merge data from smaller sub_grid domains to a larger target grid domains or vice versa.
raster_merge(indexmap, valuesunit, valuesunit, sub_grid_data_item_1, ..., sub_grid_data_item_n) results in raster-data merged from the given sub_grid_data_items.
- The domain unit of the resulting item is equal to the domain unit of the first argument indexmap. This indexmap argument contains sequence numbers of the configured sub_grid_data_items, 0 refers to sub_grid_data_item_1, 1 to sub_grid_data_item_1, ..., n-1 tosub_grid_data_item_n..
- The values unit of the resulting data item is configured as second argument.
At locations with indexmap values >= n or outside the range of the domain unit of the indicated sub_grid, the result will be null.
- attribute indexmap with uint16 value type
- valuesunit must have a numeric value type
- sub_grid_data_item_1, ..., sub_grid_data_item_n must have the same values unit
- The value type of the target_grid_domain and the sub_grids must match.
- The indexmap argument must have a domain unit with a Point value type of the group CanBeDomainUnit.
- all sub_grid_data_items must have a domain unit with a Point value type of the group CanBeDomainUnit.
- all sub_grids must have a compatible projections as the target_grid_domain and the domain unit of the indexmap argument.
- raster_merge(target_domain, valuesunit, subgrid_1, ..., subgrid_n): 7.101
- raster_merge(indexmap, valuesunit, subgrid_1, ..., subgrid_n): 7.013
attribute<uint16> indexmap (DomainM) :=
switch(
case(pointRow(id(DomainM)) < 2s && pointCol(id(DomainM)) < 2s, 0)
,case(pointRow(id(DomainM)) >= 2s && pointCol(id(DomainM)) < 2s, 1)
,case(pointRow(id(DomainM)) >= 2s && pointCol(id(DomainM)) >= 2s, 2)
,3
);
container SubGrids
{
unit<spoint> DomainA := range(DomainM, point(0s,0s), point(2s,2s));
unit<spoint> DomainB := range(DomainM, point(2s,0s), point(5s,2s));
unit<spoint> DomainC := range(DomainM, point(3s,2s), point(5s,5s));
unit<spoint> DomainD := range(DomainM, point(0s,2s), point(3s,5s));
}
unit<uint8> codes;
attribute<codes> ToBeMergedI (SubGrids/DomainA) := const(10, SubGrids/DomainA, codes);
attribute<codes> ToBeMergedII (SubGrids/DomainB) := const(20, SubGrids/DomainB, codes);
attribute<codes> ToBeMergedIII (SubGrids/DomainC) := const(30, SubGrids/DomainC, codes);
attribute<codes> ToBeMergedIV (SubGrids/DomainD) := const(40, SubGrids/DomainD, codes);
Example I:
attribute<codes> raster_merged (DomainM) :=
raster_merge(DomainM, codes, ToBeMergedI, ToBeMergedII, ToBeMergedIII, ToBeMergedIV);
Example II:
attribute<codes> raster_merged (DomainM) :=
raster_merge(indexmap,codes, ToBeMergedI, ToBeMergedII, ToBeMergedIII, ToBeMergedIV);
indexmap
0 | 0 | 3 | 3 | 3 |
0 | 0 | 3 | 3 | 3 |
1 | 1 | 3 | 3 | 3 |
1 | 1 | 2 | 2 | 2 |
1 | 1 | 2 | 2 | 2 |
DomainM, nr of rows = 5, nr of cols = 5
ToBeMergedI
10 | 10 |
10 | 10 |
DomainA, nr of rows = 2, nr of cols = 2
ToBeMergedII
20 | 20 |
20 | 20 |
20 | 20 |
DomainB, nr of rows = 3, nr of cols = 2
ToBeMergedIII
30 | 30 | 30 |
30 | 30 | 30 |
DomainC, nr of rows = 2, nr of cols = 3
ToBeMergedIV
40 | 40 | 40 |
40 | 40 | 40 |
40 | 40 | 40 |
DomainD, nr of rows = 3, nr of cols = 3
raster_merged
10 | 10 | 40 | 40 | 40 |
10 | 10 | 40 | 40 | 40 |
20 | 20 | 40 | 40 | 40 |
20 | 20 | 30 | 30 | 30 |
20 | 20 | 30 | 30 | 30 |
DomainM, nr of rows = 5, nr of cols = 5