Este é um módulo Python para criar mapas de cores com tamanho praticamente arbitrário de acordo com o trabalho de Kenneth Moreland, conforme descrito em
http://www.kennethmoreland.com/color-maps/
Esses mapas de cores permitem mapear um valor escalar de uma faixa finita para uma cor. Isso é útil em mapas de calor ou curvas de preenchimento de espaço.
Objetos com os parâmetros predefinidos podem ser criados usando as funções make_* como esta:
map = moreland.make_kindlmann()
Esses objetos devem ser feitos para agora
Use o script get-color-map.py para obter arquivos CSV individuais que descrevem o mapa colorido selecionado:
python3 get-color-map.py viridis 256 byte
Isso criará o mapa de cor viridis sagrado com 256 entradas. Também é possível criar a versão real do mapa usando float em vez de byte . Ou use ambos.
A saída do comando acima está no arquivo viridis-table-byte-0256.csv que inicia/termina com as seguintes linhas:
scalar,RGB_r,RGB_g,RGB_b
0.0,72,0,84
0.00392156862745098,73,0,86
0.00784313725490196,73,0,87
0.011764705882352941,74,0,89
0.01568627450980392,74,1,90
...
0.9882352941176471,236,232,21
0.9921568627450981,238,232,24
0.996078431372549,241,232,26
1.0,243,233,28
O primeiro valor é o valor escalar, variando de 0 a 1. Mapeando o intervalo [a, b] dos valores que devem ser representados como cor do intervalo [0,1], seleciona a cor com o valor escalar mais próximo do valor mapeado. Os valores são distância igual, o que significa que o valor escalar na primeira coluna não precisa ser usado, o índice na tabela pode para um valor v pode ser calculado com (vA)/(BA) .
Os valores de cor são neste caso, dados como um triplo de bytes. Se o último parâmetro do script get-color-maps.py estiver float em vez de byte , a cor será dada como um triplo de valores de ponto flutuante.
O script gen-svg.py pode ser usado para gerar um arquivo SVG para visualizar mapas de cores. Funciona apenas para mapas de bytes com 256 cores. Como exemplo, o mapa do corpo preto no black-body-table-byte-0256.csv pode ser visualizado com
./gen-svg.py black-body-table-byte-0256.csv > black-body-256.svg
O resultado é assim:
Com o parâmetro --fine adicional, cada linha diagonal tem a mesma cor. O resultado é uma imagem com uma resolução muito maior:
Nos sistemas Fedora, nem todos os pacotes de python usados são embalados a partir do Fedora 33. Instale explicitamente os pacotes primeiro com
pip install colormath toyplot