Cells over Map (CelloMap) uses HTML5 (HTML) to present a planar mapping of datapoints in rectangular cells laid over the map. See an example at <https://jpiitula.github.io/CellsOverMap/>. Input is the dataset as a single JSON array, in UTF-8, in which each datapoint is an array containing four (4) items: - a label, a string which CelloMap displays in the corresponding cell; - two floating point literals, which CelloMap maps to a row and a column of the cell grid; - a mapping of arbitrary key-strings to value-strings, which CelloMap can display for a selected point in a separate info box. Output is a single HTML page that contains the dataset together with styling and behaviour in CSS and JavaScript: - the position of the grid of cells on the map can be adjusted, with points outside the grid always clamped in; - the number of rows and columns (granularity) can be adjusted; - metadata of two selected points at a time can be displayed. The transformation of the dataset into the HTML page is carried out by a Python script that basically checks some properties of the input, computes the overall coordinates of the data, and fills a template. Two improvements are in the mind of the developer: simple random sampling of the data (in the map or in the cells) to reduce clutter, and maybe highlighting the labels of the points that are clamped in from outside the grid. CelloMap was originally written from scratch by Jussi Piitulainen (jpiitula) in April 2017, out of general interest and for use in a certain computational platform. CelloMap is made available as Free Software, with the Python script under GPL 3.0 or later (GPLv3+), and the JavaScript code that is embedded in the result under the Lesser GPL 3.0 or later (LGPLv3+). These licenses do not cover the dataset that is also embedded in the resulting HTML. Note that the covered script is embedded in the HTML as source code, which makes it particularly easy to provide the source code to any recipient of the page: they have it.
jpiitula/CellsOverMap
Make an HTML5 display of datapoints on a planar map (square grid of cells)
JavaScriptNOASSERTION