#1119 closed enhancement (wontfix)
[raster] Modify ST_MapAlgebra so that expressions can refer to any band
Reported by: | pracine | Owned by: | pracine |
---|---|---|---|
Priority: | low | Milestone: | PostGIS Fund Me |
Component: | raster | Version: | master |
Keywords: | Cc: |
Description (last modified by )
This could be useful for:
-Writing expressions (like 'average') involving any band of the raster
-Refer to weighted information created by ST_AsRaster() (the length or the area of the geometry intersecting with the pixel
In the one raster version of MapAlgebra one could refer to the second band like this: 'rast[2]'.
In the two rasters version of MapAlgebra one could refer to the second band like this: 'rast1[2] + rast2[2]'.
'rast', 'rast1' and 'rast2' should by default refer to the value of the first band.
Out of bound band references should be clamped to the existing band range.
This change means that we MUST remove the function's band parameters since they are not useful anymore.
Change History (9)
comment:1 by , 13 years ago
Description: | modified (diff) |
---|
comment:2 by , 13 years ago
Summary: | [raster] Modify ST_Mapalgebra so that the expression can refer to any band → [raster] Modify ST_MapAlgebra so that expressions can refer to any band |
---|
comment:3 by , 13 years ago
Description: | modified (diff) |
---|
comment:4 by , 13 years ago
comment:6 by , 13 years ago
This is a big change that we should definitely be postpone to future version.
-It requires to remove the band parameter to every sT_MapAlgebra: since we can invoke any band in the expression, there is no need to pass a band number to the function.
-As commented previously in this ticket, it drastically changes the meaning of the nodata alternate expression. The nodata expressions are there to tell what to do when the pixel iterator meet a nodata value. If there is no more band parameter, which pixel of which band we must consider as a nodata value?
I think more and more that the way ST_MapAlgebra was designed must stick with dealing with one band at a time. We should design new map algebra function to deal with 1) expressions referencing multiple bands (this is the possibility invoked in this ticket) and 2) map algebra for multiple band raster applying the same expression to every bands of a raster.
So please think twice before implementing this feature. We need new ST_MapAlgebra variants with specific behaviors.
comment:7 by , 13 years ago
Milestone: | PostGIS Raster Future → PostGIS Future |
---|
comment:8 by , 12 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
I'm closing this ticket since the functionality required is now possible with n-raster ST_MapAlgebra (#2030).
Important to note that as soon as references are made to other band than 1, nodata value alternative expressions should be used when ANY of the raster value used in the expression is nodata. E.g. if the expression is 'rast1[2] + rast1[1] * rast2' in the two rasters ST_Mapalgebra(), then 'nodata1expr' is used instead of 'expression' as soon as one of 'rast1[2]' OR 'rast1[1]' is nodata and 'nodatanodataexpr' is used as soon as ('rast1[2]' OR 'rast1[1]' is nodata) AND 'rast1[1]' is nodata.