Manipulate and display in-memory rasters


Using the latest Cesium-1.62.

What is the best practice to manipulate and display in-memory client side rasters, as in the following scenario:

1. the client asks a service for some float32/paletted/RGB raster data (which the server will make specifically for that request)

2. the client needs to display the rasters on Cesium (with a given palette or as RGB image)

3. the client can manipulate the rasters (combining them in some way, for instance) and display the result on Cesium.

Methods I used but don’t give optimal results:

1. use WMS layers - these rasters which were produced as per the client request. if they need to be kept and serve in the server side that would be a problem.

2. calculate the pixel color and make a rectangle for each pixel - too slow for large rasters

**3. SingleTileImageryProvider - work for ****jpg, png, but **cannot display GeoTiff or other geospacial raster, and work only for RGB raster (and not with a given palette)

I read about gdal-js and loam, but I’m not sure if that could be helpful.

Please advise.

This sounds like an interesting application! What kind of project is this for?

There was a recent discussion on the forum about enabling something like this. There’s a feature request for it here: I think the easiest way to do this might be with post processing shaders, but OpenLayers does have a way of doing it on the CPU side as linked in the issue.