Leaflet WMS with custom evalscript

Is it possible to pass a “custom evalscript” as base64 encoded parameter in a OGC WMS request within a leaflet webmap?

If yes, then please assist.

At the moment I have reference to this FAQ link that says this is possible, but I am struggling a little. I’m not quite sure how to structure the request for this to work.

Below is my attempt, but the response is 400.

const sentine2RGBLayer = L.tileLayer.wms(`${sentinelHubWMSBaseUrl}/${sentinel2InstanceID}`, {
        tileSize: 512,
        maxcc: 50,
        preset: "CUSTOM",
        datasource: "Sentinel-2 L1C",
        layers: "B01,B02,B03",
        evalscript: "cmV0dXJuIFtCMDgqMi41LEIwNCoyLjUsQjAzKjIuNV07",
        time: `2023-01-28`,
        transparent: "true",
        format: "image/png",
        crs: L.CRS.EPSG4326,
    });

Why do I need this? I would like to built custom script client side and then submit to Sentinel Hub as a WMS request.
I am specifically interested in rescaling and alternate color ramp changes to a layer (or custom script) for the visualization of data retrieved.
At the moment I succeed with calling configured layers, with preset color maps.

const sentine2RGBLayer = L.tileLayer.wms(`${sentinelHubWMSBaseUrl}/${sentinel2InstanceID}`, {
        tileSize: 512,
        maxcc: 50,
        layers: "TRUE-COLOR-S2-L1C",
        transparent: "true",
        format: "image/png",
        crs: L.CRS.EPSG4326,
    });

Thank you in advance.

Hi @jens.hiestermann ,

Could you please share your evalscript and the raw wms url for the request? Thank you.

@chung.horng

https://services.sentinel-hub.com/ogc/wms/e3***********************************66?service=WMS&request=GetMap&layers=B01%2CB02%2CB03&styles=&format=image%2Fpng&transparent=true&version=1.1.1&maxcc=50&preset=CUSTOM&datasource=Sentinel-2%20L1C&evalscript=cmV0dXJuIFtCMDgqMi41LEIwNCoyLjUsQjAzKjIuNV07&time=2023-01-28&width=512&height=512&srs=EPSG%3A4326&bbox=30.547485351562504,-29.44438130948882,30.552978515625004,-29.439597566602902

Base64 decoding of evalscript “cmV0dXJuIFtCMDgqMi41LEIwNCoyLjUsQjAzKjIuNV07”:

return [B08*2.5,B04*2.5,B03*2.5];

Hi @jens.hiestermann ,

Sorry for the confusion. The LAYERS parameter should be set as one of the layers in your configuration, e.g., TRUE-COLOR-S2-L1C.

The correct url for your wms request would be the following:

https://services.sentinel-hub.com/ogc/wms/e3***********************************66?service=WMS&request=GetMap&layers=TRUE-COLOR-S2-L1C&styles=&format=image%2Fpng&transparent=true&version=1.1.1&maxcc=50&preset=CUSTOM&datasource=Sentinel-2%20L1C&evalscript=cmV0dXJuIFtCMDgqMi41LEIwNCoyLjUsQjAzKjIuNV07&time=2023-01-28&width=512&height=512&srs=EPSG%3A4326&bbox=30.547485351562504,-29.44438130948882,30.552978515625004,-29.439597566602902

Changing the layer to one that is set in the configurator worked, thank you!

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.