Leaflet.Multispectral
This Leaflet plugin provides multispectral channel manipulation and processing tools (such as NDVI or other remote sensing methods) for Leaflet tile and image layers using pure client-side JavaScript. It uses image-sequencer and was developed by Public Lab.
It is available as a node module as leaflet-multispectral
.
Also see Leaflet.TileLayer, which is a re-implementation of this library for on-the-fly TileLayer filtering.
This library was made possible in part by NASA's AREN project.
Usage
See the demo for basic usage: https://publiclab.github.io/leaflet-multispectral/
// create an imagevar img = L; // apply NDVI equation to the image, and then a colormap:img; img;
To revert the image to it's previous state, use:
img;
For more complex commands, you can use JavaScript expresssions, in the following format:
img;
In this example, we're using Image Sequencer's dynamic
module to set the displayed RGB values individually, with the expressions R*2
, B
, and B/2
, respectively.
Image Sequencer
Commands you can pass into the filter are extremely flexible; they are Image Sequencer string syntax (full object notation coming soon). Read about Image Sequencer and how to use it here:
https://github.com/publiclab/image-sequencer
Using the visual editor, you can develop a command string to pass into this filter:
https://sequencer.publiclab.org
Image Sequencer is implemented in pure JavaScript, and is under development; we expect optimizations as well as worker threads and WebAssembly to improve performance in upcoming versions.
About Multispectral imagery
Learn about multi-band imagery, some of it's uses at this great blog post by Charlie Lloyd of Mapbox:
https://blog.mapbox.com/putting-landsat-8s-bands-to-work-631c4029e9d1
Here's some sources of Landsat 8 data:
Here's more on NDVI and DIY techniques to collect multi-band imagery: https://publiclab.org/infragram