Renderer

class Renderer[source]

Bases: object

Créateur de graphiques avec Plotly.

Méthodes

Divers

Renderer.set_size(width: int, height: int, ratio: int)[source]

Mets à jour les tailles pour le rendu

Parameters:
  • width (int) – Largeur de l’image.

  • height (int) – Hauteur de l’image.

  • ratio (int) – Ratio d’agrandissement de l’image. Les coordonnées sont multipliées par ce facteur.

Renderer.localizations(loc: ndarray) ndarray[source]

Construit une image Haute résolution (uint16) en fonction des éléments localisés.

Parameters:

loc (ndarray) – Position des points à représenter sous forme de tableau 2D de N lignes et 3 colonnes (X, Y, Couleur).

Returns:

Nouvelle image en uint16 de forme (height*ratio, width*ratio).

Return type:

ndarray

Renderer.tracks(trc: ndarray) ndarray[source]

Construit une image haute résolution (uint16) à partir de trajectoires localisées. Chaque trajectoire est tracée par segments (P0→P1, P1→P2, …).

Colonnes attendues dans tracks :
  • “Track” : identifiant de la trajectoire (int)

  • “X”, “Y” : coordonnées (float, en pixels dans l’image de base)

  • “Color” : intensité à tracer (0..65535). Toute valeur hors bornes est tronquée.

Parameters:

trc (ndarray) – Tableau des points de trajectoires sous forme de tableau 2D de N lignes et 4 colonnes (Track, X, Y, Couleur).

Returns:

Nouvelle image en uint16 de forme (height*ratio, width*ratio).

Return type:

ndarray

Tools

static Renderer.get_localization_colors(loc: DataFrame, col: str = '', max_value: float = 0) ndarray[source]

Construit un tableau numpy contenant les coordonnées des localisations et une valeur scalaire associée à utiliser comme intensité/couleur.

Le tableau retourné est de forme (N, 3) et contient, dans l’ordre : X, Y et Color.

  • Les colonnes X et Y sont toujours extraites du DataFrame.

  • La colonne Color provient de col si elle existe.

  • Si col est absente, la colonne Color est remplie avec la valeur 1.

  • Si la valeur minimale de Color est négative, toutes les valeurs sont décalées afin que le minimum devienne nul. \(C_{Shifted} = C - C_{min}\)

  • Si max_value > 0, les valeurs de Color sont normalisées linéairement dans l’intervalle [0, max_value]. \(C_{Norm} = C_{Shifted} \times \frac{C}{C_{max}}\)

La fonction ne modifie pas le DataFrame d’origine.

Parameters:
  • loc (DataFrame) – DataFrame contenant au minimum les colonnes X et Y.

  • col (str) – Nom de la colonne à utiliser pour calculer la composante Color.

  • max_value (float) – Valeur maximale cible pour la normalisation. Si max_value <= 0, aucune normalisation n’est appliquée.

Returns:

Tableau numpy de forme (N, 3) de type float64 contenant X, Y et Color.

Raises:

KeyError – Si les colonnes X ou Y sont absentes.

Return type:

ndarray

Note

La normalisation n’est appliquée que si le maximum de la colonne Color après décalage est strictement positif. Cela évite une division par zéro lorsque toutes les valeurs sont nulles.

static Renderer.get_tracks_colors(trc: DataFrame, source: str = '', max_value: float = 0) ndarray[source]

Construit un tableau numpy contenant les numéros, plans et coordonnées des trajectoires ainsi qu’une valeur scalaire associée à utiliser comme intensité/couleur.

Le tableau retourné est de forme (N, 5) et contient, dans l’ordre : Track, Plane, X, Y et Color.

  • Les colonnes Track, Plane, X`, ``Y et ``Integrated Intensity``sont toujours extraites du DataFrame.

  • La colonne Color est défini selon la source, si la source n’est pas prévu, la colonne Color est remplie avec la valeur 1.

  • Si la valeur minimale de Color est négative, toutes les valeurs sont décalées afin que le minimum devienne nul. \(C_{Shifted} = C - C_{min}\)

  • Si max_value > 0, les valeurs de Color sont normalisées linéairement dans l’intervalle [0, max_value]. \(C_{Norm} = C_{Shifted} \times \frac{C}{C_{max}}\)

Parameters:
  • trc (DataFrame) – DataFrame contenant au minimum les colonnes Track, Plane, X, Y et Integrated Intensity.

  • source (str) – Type de données à utiliser pour calculer la composante Color.

  • max_value (float) – Valeur maximale cible pour la normalisation. Si max_value <= 0, aucune normalisation n’est appliquée.

Returns:

Tableau numpy de forme (N, 5) de type float64 contenant Track, Plane, X, Y et Color.

Raises:

KeyError – Si les colonnes X ou Y sont absentes.

Return type:

ndarray

Note

La normalisation n’est appliquée que si le maximum de la colonne Color après décalage est strictement positif. Cela évite une division par zéro lorsque toutes les valeurs sont nulles.

static Renderer.draw_line(img: ndarray, x0: int, y0: int, x1: int, y1: int, color: uint16)[source]

Trace une ligne discrète entre deux points dans une image 2D en utilisant l’algorithme de Bresenham (version entière, sans flottants).

La ligne est rasterisée en parcourant les pixels entre les coordonnées (x0, y0) et (x1, y1), avec une gestion robuste de toutes les pentes (horizontales, verticales, diagonales, fortes et faibles).

Pour chaque pixel visité, la valeur est mise à jour uniquement si la nouvelle couleur est strictement supérieure à la valeur déjà présente. Cela permet de conserver l’intensité maximale (utile par exemple pour des accumulations de tracés ou des cartes d’intensité).

Parameters:
  • img (ndarray) – Image 2D (numpy.ndarray) modifiée in-place. Doit être indexable sous la forme img[y, x].

  • x0 (int) – Coordonnée X du point de départ.

  • y0 (int) – Coordonnée Y du point de départ.

  • x1 (int) – Coordonnée X du point d’arrivée.

  • y1 (int) – Coordonnée Y du point d’arrivée.

  • color (uint16) – Intensité à écrire dans les pixels traversés.