[mapserver-users] Conditional BANDS directive based on underlying data

Even Rouault even.rouault at spatialys.com
Mon Apr 29 10:23:41 PDT 2019


On lundi 29 avril 2019 10:40:32 CEST Peter Schmitt wrote:
> Hi,
> 
> When my data is 4-band (BGRN), I use the BANDS processing directive to
> yield RGB tiles, like so:
> 
>     PROCESSING    "BANDS=4,3,2"
> 
> Is there a way to have a single layer within a Mapfile that will set this
> directive to 4,3,2 when the underlying data has four bands and either skip
> the directive or set it to 1,2,3 when the underlying data is 3-band?
> 
> The only thing I can think of is it to try runtime substitution, where my
> request might include the band order like
> "REQUEST=WMS&the_band_order=4,3,2&...." and then configure my mapfile
> accordingly:
> 
>     PROCESSING    "BANDS=%the_band_order%"
> 
> Is there another way which doesn't require the client to know about the
> underlying data?  FWIW, my ultimate use-case serves mosaics using a tile
> index generated from Postgis. The Postgis table could have a column storing
> the band information, but I'm not sure how to extract that in my
> LAYER/BANDS Processing directive.

Use a VRT that does the band reordering, and use it in your tile index.

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the mapserver-users mailing list