A Python CLI tool for creating and exporting colormaps for data visualization and mapping applications.
Project description
Palettize
🎨 A Python utility and CLI tool for generating, previewing, and exporting colormaps.
Palettize helps create colormaps for data visualization, GIS, and web mapping. It provides a simple command-line interface to:
- Generate colormaps from a list of colors or from built-in presets.
- Preview colormaps directly in the terminal.
- Export colormaps to various formats suitable for different applications.
- Customize interpolation color space, data scaling, and slicing.
Installation
uv pip install palettize
Or install from source:
git clone https://github.com/kovaca/palettize.git
cd palettize
uv pip install .
Usage
palettize --help
Key Commands
palettize show: Render a colormap preview in your terminal.palettize create: Export a colormap to one or more file formats.palettize list: List availablepresetsorexporters.
Examples
-
Show a built-in preset colormap:
palettize show viridis
-
Show a custom gradient made of three colors:
palettize show --colors "midnightblue,orange,gold"
-
Export the 'viridis' preset to a GDAL color ramp file: The
--domainflag maps the colormap to your data's range.palettize create viridis --format gdal --output viridis_gdal.txt --domain 0,255
-
Create a custom colormap and export it to multiple formats: Use
--stepsto define the number of discrete colors in the output.palettize create -c "blue,white,red" --format qgis,mapgl \ --output "output/rwb_{format}.{ext}" --steps 11 --name "RedWhiteBlue"
This creates
output/rwb_qgis.xmlandoutput/rwb_mapgl.json. -
List all available built-in presets:
palettize list presets
-
Pass format-specific options during export: Use the
-Oor--optionflag to pass key-value pairs to an exporter.# Tell the 'observable' exporter to create a diverging scale with a pivot palettize create RdBu -f observable --domain -5,10 -o plot.json \ -O type=diverging -O pivot=0
Programmatic usage
You can also use Palettize from Python by importing the library.
from palettize import (
create_colormap,
list_available_presets,
get_scaler_by_name,
)
# Inspect presets
print(list_available_presets()[:5])
# Create from preset
cmap = create_colormap(preset="custom/grayscale", name="Grayscale", cut_start=0.1, cut_end=0.9)
print(cmap.get_color(0.5)) # hex string
print(cmap.get_color(0.5, output_format="rgb_tuple"))
# Create from a list of colors
cmap2 = create_colormap(colors=["#0000ff", "white", "#ff0000"], name="BlueWhiteRed")
# Use a scaler to map data values onto the colormap
scaler = get_scaler_by_name("symlog", domain_min=-10, domain_max=10, linthresh=1, base=10)
print(cmap2.apply_scaler(3.2, scaler))
Features
- Flexible Colormap Creation: Generate colormaps from lists of colors (hex, RGB, named) or use built-in presets.
- Advanced Interpolation: Supports various color spaces for interpolation via the ColorAide library (e.g., Oklch, sRGB, LAB).
- Terminal Preview: Instantly visualize any colormap in your terminal.
- Multiple Export Formats: Supports common formats for GIS (GDAL, QGIS, SLD, Titiler) and web (MapLibre GL, Observable Plot).
- Customizable Scaling: Apply linear, power, sqrt, or log scaling to map your data domain to the colormap.
- Plugin System for Exporters: Easily extendable with new export formats.
- CLI with Rich Output: User-friendly command-line interface with clear help messages and rich formatting.
Available Presets
The incredibly useful cmap library is a core dependency used for presets. To see a list of colormap presets, run:
palettize list presets
Available Export Formats
To see a list of all currently registered and available export formats, run:
palettize list exporters
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file palettize-0.0.1a3.tar.gz.
File metadata
- Download URL: palettize-0.0.1a3.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fe034eaac0212680c6c3216cc0aa5d26462bcd8ed6629ce55bd426cbc6a18ae
|
|
| MD5 |
613ecc943a96b05e09b248f669f8cd04
|
|
| BLAKE2b-256 |
1feb25b40dec0238a0194662a7d0f458e62ba38862f75db80589f35ae64a5428
|
Provenance
The following attestation bundles were made for palettize-0.0.1a3.tar.gz:
Publisher:
release.yml on kovaca/palettize
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
palettize-0.0.1a3.tar.gz -
Subject digest:
4fe034eaac0212680c6c3216cc0aa5d26462bcd8ed6629ce55bd426cbc6a18ae - Sigstore transparency entry: 546630692
- Sigstore integration time:
-
Permalink:
kovaca/palettize@b15a1c8055f11d30e443f0877b79fef0c9c53b84 -
Branch / Tag:
refs/tags/v0.0.1a3 - Owner: https://github.com/kovaca
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b15a1c8055f11d30e443f0877b79fef0c9c53b84 -
Trigger Event:
push
-
Statement type:
File details
Details for the file palettize-0.0.1a3-py3-none-any.whl.
File metadata
- Download URL: palettize-0.0.1a3-py3-none-any.whl
- Upload date:
- Size: 43.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5acf19d4a48cc09d43dc1b3f2c50a98d3313e0f5d4fd3055d4553214951ef058
|
|
| MD5 |
d4926b1d439dae173da8249031a47ffa
|
|
| BLAKE2b-256 |
5ccc9d8f21b3e54448f7bf6ab5f840f36a5a215a34b05829d76f7a7d65670307
|
Provenance
The following attestation bundles were made for palettize-0.0.1a3-py3-none-any.whl:
Publisher:
release.yml on kovaca/palettize
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
palettize-0.0.1a3-py3-none-any.whl -
Subject digest:
5acf19d4a48cc09d43dc1b3f2c50a98d3313e0f5d4fd3055d4553214951ef058 - Sigstore transparency entry: 546630717
- Sigstore integration time:
-
Permalink:
kovaca/palettize@b15a1c8055f11d30e443f0877b79fef0c9c53b84 -
Branch / Tag:
refs/tags/v0.0.1a3 - Owner: https://github.com/kovaca
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b15a1c8055f11d30e443f0877b79fef0c9c53b84 -
Trigger Event:
push
-
Statement type: