This package provides the single, simple GridMap type. This type grants the ability to use an array of data as a continuous map of values across a designated rectangular region, interpolating values in between the known data points. It works with any number of dimensions. Its current interpolation method is a nearest-neighbor approximation, and it implicitly handles the calculation between map coordinates and array indices. A typical use of this package is to access values from a matrix as if it were a continuous 2D map with known bounds. See the documentation for details and usage examples.
This package is registered and can be installed using Julia's builtin package manager:
using Pkg; Pkg.add("GridMaps")
A number of other packages have types and methods that can achieve similar functionality (relevant as of Dec 19, 2024):
- AxisKeys -- Provides a
KeyedArray
and aNear
selector which does a nearest-neighbor look-up. In addition, allows the dimensions to be named through NamedDims.jl rather than solely accessing through indices. - DimensionalData -- Similar to the previous one: provides a
DimArray
and aNear
selector for a nearest-neighbor look-up. Performance of this and AxisKeys is on par with GridMaps. - Interpolations -- Fits the goal of this package closer. Can interpolate values over multidimensional grids through B-splines, which results in a choice of interpolations between nearest-neighbor, linear, quadratic, and cubic. Shows a slight performance improvement (though probably not enough to matter) over the previous two and GridMaps when testing the same functionality.
- GridInterpolations -- Can also do efficient interpolation (on par with Interpolations) of values over a multidimensional grid. Has linear and simplex interpolation (but no nearest-neighbor).
These other packages largely subsume what is achieved in this package, and it is recommended to consider them if more features are desired.