python-visualization / python-visualization/branca

Is it normal for `branca.utilities.write_png` function to normalize its values?

Ouverte
#195 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
134
Forks
69
Merge moyen
1 h 10 min
PR mergées (30 j)
1

Description

I may be wrong, but I find it weird the way branca.utilities.write_png function normalize its values.
See https://github.com/python-visualization/branca/blob/v0.8.1/branca/utilities.py#L324.

>>> import io
>>>
>>> import numpy as np
>>> import PIL.Image
>>>
>>> import branca.utilities
>>>
>>> data = np.array([[[0.74901961, 0.50196078, 1.0, 1.0], [0.25098039, 1.0, 0.74901961, 1.0]]])
>>>
>>> # Current result
>>> png_bytes = branca.utilities.write_png(data)
>>> with PIL.Image.open(io.BytesIO(png_bytes)) as image:
...     np.asarray(image)
array([[[255, 127, 255, 255],
        [ 85, 255, 191, 255]]], dtype=uint8)
>>>
>>> # What I expected
>>> np.rint(data * 255.0).astype(np.uint8)
array([[[191, 128, 255, 255],
        [ 64, 255, 191, 255]]], dtype=uint8)

As a result, folium layers like folium.raster_layers.ImageOverlay appear brighter than I expected when passing image as an array because of the normalization.
I guess this allows users to automatically display mono rasters with a scale from minimum value as black to maximum value as white. However, for non-mono and mono rasters with a colormap, the normalization seems undesirable.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans branca/utilities.py, au niveau de write_png, en utilisant la ligne liée et l’exemple NumPy/PIL fourni pour reproduire la sortie actuelle. Le travail est terminé lorsqu’il a été décidé et vérifié quel est le comportement de normalisation attendu pour les rasters mono, non mono et avec palette de couleurs, y compris l’effet de luminosité signalé dans les couches ImageOverlay de folium.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
numpy, python
Domaine
data-visualization
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.