Unmap data from pseudocolor images, with or without knowledge of the colourmap. This tool has 2 main components:
- Guess the colourmap that was used for a pseudocolour visualization, in cases where it's unknown and a colourbar is not included in the image.
- 'Unmap' a pseudocolour visualization, separating the data from the image; essentially this is the opposite of what
plt.imshow()
does.
There are some other approaches to both Task 1 (above) and Task 2:
unmap
(I swear I didn't know about this tool when I named mine!) — does the data ripping part. The colourmap must be provided, but the tool also provides a way to interactively identify a colourbar in the image.- Poco et al. (GitHub) attempts to both find the colourbar in a visualization, then use it to perform Task 2. The visualization must contain a colourbar.
- Yuan et al. attempts Task 1 using deep learning. The prediction from a CNN is refined with either Laplacian eigenmapping (manifold+based dimensionality reduction, for continuous colourmaps) or DBSCAN (for categorical colourmaps).
Of these projects, only Yuan et al. ('deep colormap extraction') requires no a priori knowledge of the colourmap.
- Can I get numeric data from a color map?
- How to extract a colormap from a colorbar image and use it in a heatmap?
- Given a JPG of 2D colorplot colorbar how can I sample the image to extract data?
- How to reverse a colormap image to scalar values?
- Extract color table values?
- Invert not reverse a colormap in maptplotlib
You can install this package with pip
:
pip install unmap
There are dev
, test
and docs
options for installing dependencies for those purposes, eg pip install unmap[dev]
.
Read the documentation, especially the examples.
Take a look at CONTRIBUTING.md
.
After cloning this repository and installing the dependencies required for testing, you can run the tests (requires pytest
and pytest-cov
) with
pytest
This repo uses PEP 517-style packaging, with the entire build system and requirements defined in the pyproject.toml
file. Read more about this and about Python packaging in general.
Building the project requires build
, so first:
pip install build
Then to build unmap
locally:
python -m build
The builds both .tar.gz
and .whl
files, either of which you can install with pip
.