A while back I wrote a GRASS GIS addon to calculate the Multivariate Environmental Similarity index (MES; see below for a short description). The addon was written as a shell script and R script and only runs on GRASS GIS 6.
I finally got around rewriting the addon in Python. This should make it easier to install (using the g.extension function) and it does not depend on R any more. You can install the addon from the g.extension menu or you can go here.
It currently only works in GRASS 7, but it shouldn’t be too hard to make it work for GRASS 6 too. On the other hand, with the first release candidate of GRASS 7 around the corner you really should consider jumping on the GRASS 7 band wagon (this really should convince you).
The addon computes the Multivariate Environmental Similarity (MES) index (Elith et al 2010). It’s an index that “represents how similar a point is to a reference set of points, with respect to a set of predictor variables (V1, V2, …)”.
The reference points can be a binary raster layer (1 = presence, 0 = absence) or a vector point layer as reference points. They could represent for example occurrence records for the species or areas that represent protected areas.
They can be used to compare current and future environmental conditions in an area (e.g., to identify areas with novel future climates. This requires a reference set of environmental variables (env_old) and a set of future environmental variables (env_new). You can also test how similar conditions are in two different areas. This requires as input a set of environmental variables (env_old) for the area covered by your reference layer and a second set of environmental variables for the area you want to compare to (env_new). Make sure in this case that the region (g.region) is set to the reference layer / env_old.
To compute the MES, the addon first computes for each input variable a similarity layer (IES). These layers are subsequently combined by taking for each raster cell the minimum value across the IES layers. Keeping the individual similarity layers is optionally. You can furthermore create layers showing:
- The area where for at least one of the variables has a value that falls outside the range of values found in the reference set
- The most dissimilar variable (MoD)
- The mean of the IES layers where IES < 0
- The number of layers with negative values