Modèle de données (cdl.obj)#

Le module cdl.obj fournit les classes et fonctions nécessaires pour créer et manipuler des objets signal et image.

Ces classes et fonctions sont définies dans d’autres modules :
  • cdl.core.model.base

  • cdl.core.model.image

  • cdl.core.model.signal

  • cdl.core.io

Le module cdl.obj est donc un moyen pratique d’importer tous les objets en une seule fois. En fait, l’instruction d’importation suivante est équivalente à la précédente :

# Original import statement
from cdl.core.model.signal import SignalObj
from cdl.core.model.image import ImageObj

# Equivalent import statement
from cdl.obj import SignalObj, ImageObj

Objets communs#

class cdl.obj.ResultProperties(title: str, array: ndarray, labels: list[str] | None, item_json: str = '')[source]#

Object representing properties serializable in signal/image metadata.

Result array is a NumPy 2-D array: each row is a list of properties, optionnally associated to a ROI (first column value).

L’index de la ROI commence à 0 (ou est simplement 0 s’il n’y a pas de ROI).

Paramètres:
  • title – properties title

  • array – properties array

  • labels – properties labels (one label per column of result array)

  • item_json – JSON string of label item associated to this obj

Note

The array argument can be a list of lists or a NumPy array. For instance, the following are equivalent:

  • array = [[1, 2], [3, 4]]

  • array = np.array([[1, 2], [3, 4]])

Or for only one line (one single result), the following are equivalent:

  • array = [1, 2]

  • array = [[1, 2]]

  • array = np.array([[1, 2]])

property category: str#

Return result category

property headers: list[str] | None#

Return result headers (one header per column of result array)

property shown_array: ndarray#

Return array of shown results, i.e. including complementary array (if any)

Renvoie:

Tableau des résultats affichés

update_obj_metadata_from_item(obj: BaseObj, item: LabelItem | None) None[source]#

Update object metadata with label item

Paramètres:
  • obj – object (signal/image)

  • item – label item

property label_contents: tuple[tuple[int, str], ...]#

Return label contents, i.e. a tuple of couples of (index, text) where index is the column of raw_data and text is the associated label format string

create_label_item(obj: BaseObj) LabelItem | None[source]#

Create label item

Paramètres:

obj – object (signal/image)

Renvoie:

Label item

Note

The signal or image object is required as argument to create the label item because the label text may contain format strings that need to be filled with the object properties. For instance, the label text may contain the signal or image units.

get_label_item(obj: BaseObj) LabelItem | None[source]#

Return label item associated to this result

Paramètres:

obj – object (signal/image)

Renvoie:

Label item

Note

The signal or image object is required as argument to eventually create the label item if it has not been created yet. See create_label_item().

class cdl.obj.ResultShape(title: str, array: ndarray, shape: Literal['rectangle', 'circle', 'ellipse', 'segment', 'marker', 'point', 'polygon'], item_json: str = '', add_label: bool = False)[source]#

Objet représentant une forme géométrique sérialisable dans les métadonnées du signal/image.

Le tableau de résultats array est un tableau NumPy 2-D : chaque ligne est un résultat, éventuellement associé à une ROI (valeur de la première colonne).

L’index de la ROI commence à 0 (ou est simplement 0 s’il n’y a pas de ROI).

Paramètres:
  • title – result shape title

  • array – coordonnées de la forme (plusieurs formes : une forme par ligne), la première colonne est l’index de la ROI (0 s’il n’y a pas de ROI)

  • shape – shape kind

  • item_json – JSON string of label item associated to this obj

  • add_label – if True, add a label item (and the geometrical shape) to plot (default to False)

Lève:

AssertionError – argument invalide

Note

The array argument can be a list of lists or a NumPy array. For instance, the following are equivalent:

  • array = [[1, 2], [3, 4]]

  • array = np.array([[1, 2], [3, 4]])

Or for only one line (one single result), the following are equivalent:

  • array = [1, 2]

  • array = [[1, 2]]

  • array = np.array([[1, 2]])

property category: str#

Return result category

check_array() None[source]#

Check if array attribute is valid

Lève:

AssertionError – invalid array

property headers: list[str] | None#

Return result headers (one header per column of result array)

property shown_array: ndarray#

Return array of shown results, i.e. including complementary array (if any)

Renvoie:

Tableau des résultats affichés

property label_contents: tuple[tuple[int, str], ...]#

Return label contents, i.e. a tuple of couples of (index, text) where index is the column of raw_data and text is the associated label format string

create_label_item(obj: BaseObj) LabelItem | None[source]#

Create label item

Renvoie:

Label item

merge_with(obj: BaseObj, other_metadata: dict[str, Any]) None[source]#

Merge object resultshape with another’s metadata (obj <– other obj’s metadata)

Paramètres:
  • obj – object (signal/image)

  • other_metadata – other object metadata

transform_coordinates(func: Callable[[ndarray], None]) None[source]#

Transforme les coordonnées de la forme.

Paramètres:

func – fonction pour transformer les coordonnées

iterate_plot_items(fmt: str, lbl: bool, option: Literal['s', 'i']) Iterable[source]#

Itère sur les éléments de tracé de la forme de métadonnées.

Paramètres:
  • fmt – format numérique (par exemple « %.3f »)

  • lbl – si True, affiche les étiquettes de forme

  • option – shape style option (« s » for signal, « i » for image)

Produit (yield):

Item graphique

create_shape_item(coords: np.ndarray, fmt: str, lbl: bool, option: Literal['s', 'i']) AnnotatedPoint | Marker | AnnotatedRectangle | AnnotatedCircle | AnnotatedSegment | AnnotatedEllipse | PolygonShape | None[source]#

Make geometrical shape plot item adapted to the shape type.

Paramètres:
  • coords – données de forme

  • fmt – format numérique (par exemple « %.3f »)

  • lbl – si True, affiche les étiquettes de forme

  • option – shape style option (« s » for signal, « i » for image)

Renvoie:

Item graphique

class cdl.obj.ShapeTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Types de formes pour les métadonnées d’image

RECTANGLE = '_rec_'#

Forme rectangulaire

CIRCLE = '_cir_'#

Forme circulaire

ELLIPSE = '_ell_'#

Forme elliptique

SEGMENT = '_seg_'#

Forme segment

MARKER = '_mar_'#

Forme marqueur

POINT = '_poi_'#

Forme point

POLYGON = '_pol_'#

Forme polygonale

class cdl.obj.UniformRandomParam(title=None, comment=None, icon='')[source]#

Paramètres de signal/image aléatoire de loi uniforme

apply_integer_range(vmin, vmax)[source]#

Fait quelque chose en cas de plage min-max entière

class cdl.obj.NormalRandomParam(title=None, comment=None, icon='')[source]#

Paramètres de signal/image aléatoire de loi normale

apply_integer_range(vmin, vmax)[source]#

Fait quelque chose en cas de plage min-max entière

class cdl.obj.BaseProcParam(title=None, comment=None, icon='')[source]#

Base class for processing parameters

apply_integer_range(vmin, vmax)[source]#

Fait quelque chose en cas de plage min-max entière

apply_float_range(vmin, vmax)[source]#

Do something in case of float min-max range

set_from_datatype(dtype)[source]#

Set min/max range from NumPy datatype

Modèle de signal#

class cdl.obj.SignalObj[source]#

Objet signal

uuid#

Par défaut : None.

Type:

guidata.dataset.dataitems.StringItem

xydata#

Données. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatArrayItem

metadata#

Métadonnées. Par défaut : {}.

Type:

guidata.dataset.dataitems.DictItem

title#

Titre du signal. Par défaut : “Sans titre”.

Type:

guidata.dataset.dataitems.StringItem

xlabel#

Titre. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

xunit#

Unité. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

ylabel#

Titre. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

yunit#

Unité. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

autoscale#

Par défaut : True.

Type:

guidata.dataset.dataitems.BoolItem

xscalelog#

Par défaut : False.

Type:

guidata.dataset.dataitems.BoolItem

xscalemin#

Borne inférieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

xscalemax#

Borne supérieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

yscalelog#

Par défaut : False.

Type:

guidata.dataset.dataitems.BoolItem

yscalemin#

Borne inférieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

yscalemax#

Borne supérieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(uuid: str, xydata: numpy.ndarray, metadata: dict, title: str, xlabel: str, xunit: str, ylabel: str, yunit: str, autoscale: bool, xscalelog: bool, xscalemin: float, xscalemax: float, yscalelog: bool, yscalemin: float, yscalemax: float) cdl.core.model.signal.SignalObj#

Renvoie une nouvelle instance de SignalObj avec les champs initialisés aux valeurs données.

Paramètres:
  • uuid (str) – Par défaut : None.

  • xydata (numpy.ndarray) – Données. Par défaut : None.

  • metadata (dict) – Métadonnées. Par défaut : {}.

  • title (str) – Titre du signal. Par défaut : “Sans titre”.

  • xlabel (str) – Titre. Par défaut : “”.

  • xunit (str) – Unité. Par défaut : “”.

  • ylabel (str) – Titre. Par défaut : “”.

  • yunit (str) – Unité. Par défaut : “”.

  • autoscale (bool) – Par défaut : True.

  • xscalelog (bool) – Par défaut : False.

  • xscalemin (float) – Borne inférieure. Par défaut : None.

  • xscalemax (float) – Borne supérieure. Par défaut : None.

  • yscalelog (bool) – Par défaut : False.

  • yscalemin (float) – Borne inférieure. Par défaut : None.

  • yscalemax (float) – Borne supérieure. Par défaut : None.

Renvoie:

Nouvelle instance de SignalObj.

static get_roi_class() Type[SignalROI][source]#

Return ROI class

regenerate_uuid()[source]#

Regénère l’UUID

Cette méthode est utilisée pour régénérer l’UUID après avoir chargé l’objet à partir d’un fichier. Cela est nécessaire pour éviter les conflits d’UUID lors du chargement d’objets à partir d’un fichier sans effacer l’espace de travail au préalable.

copy(title: str | None = None, dtype: dtype | None = None) SignalObj[source]#

Copie l’objet.

Paramètres:
  • title – titre

  • dtype – type de données

Renvoie:

Objet copié

set_data_type(dtype: dtype) None[source]#

Change le type de données.

Paramètres:

type (Data)

set_xydata(x: ndarray | list, y: ndarray | list, dx: ndarray | list | None = None, dy: ndarray | list | None = None) None[source]#

Définit les données xy

Paramètres:
  • x – données x

  • y – données y

  • dx – données dx (optionnel : barres d’erreur)

  • dy – données dy (optionnel : barres d’erreur)

property x: ndarray | None#

Récupère les données x

property y: ndarray | None#

Récupère les données y

property data: ndarray | None#

Récupère les données y

property dx: ndarray | None#

Récupère les données dx

property dy: ndarray | None#

Récupère les données dy

get_data(roi_index: int | None = None) tuple[ndarray, ndarray][source]#

Renvoie les données originales (si la ROI n’est pas définie ou si l”roi_index est None), ou les données de la ROI (si la ROI et l”roi_index sont définis).

Paramètres:

roi_index – index de la ROI

Renvoie:

Données

update_plot_item_parameters(item: CurveItem) None[source]#

Met à jour les paramètres de l’élément de tracé à partir des données/métadonnées de l’objet

Prend en compte un sous-ensemble de paramètres d’élément de tracé. Ces paramètres peuvent avoir été remplacés par des entrées de métadonnées d’objet ou d’autres données d’objet. Le but est de mettre à jour l’élément de tracé en conséquence.

C’est presque l’opération inverse de update_metadata_from_plot_item.

Paramètres:

item – élément de tracé

update_metadata_from_plot_item(item: CurveItem) None[source]#

Met à jour les métadonnées à partir de l’élément de tracé.

Prend en compte un sous-ensemble de paramètres d’élément de tracé. Ces paramètres peuvent avoir été modifiés par l’utilisateur via l’interface graphique de l’élément de tracé. Le but est de mettre à jour les métadonnées en conséquence.

C’est presque l’opération inverse de update_plot_item_parameters.

Paramètres:

item – élément de tracé

make_item(update_from: CurveItem | None = None) CurveItem[source]#

Crée un élément de tracé à partir des données.

Paramètres:

update_from – élément de tracé à mettre à jour à partir de

Renvoie:

Item graphique

update_item(item: CurveItem, data_changed: bool = True) None[source]#

Met à jour l’élément de tracé à partir des données.

Paramètres:
  • item – élément de tracé

  • data_changed – si True, les données ont changé

physical_to_indices(coords: list[float] | ndarray) ndarray[source]#

Convert coordinates from physical (real world) to (array) indices (pixel)

Paramètres:

coords – coordonnées

Renvoie:

Indices

indices_to_physical(indices: list[int] | ndarray) ndarray[source]#

Convert coordinates from (array) indices to physical (real world)

Paramètres:

indices – indices

Renvoie:

Coordinates

add_label_with_title(title: str | None = None) None[source]#

Ajouter une étiquette avec une annotation de titre

Paramètres:

title – titre (si None, utiliser le titre du signal)

accept(vis: object) None#

Fonction d’aide qui transmet le visiteur aux méthodes accept des éléments dans cet ensemble de données

Paramètres:

vis (object) – objet visiteur

add_annotations_from_file(filename: str) None#

Ajouter des annotations d’objet à partir d’un fichier (JSON).

Paramètres:

filename – nom du fichier

add_annotations_from_items(items: list) None#

Ajouter des annotations d’objet (éléments de tracé d’annotation).

Paramètres:

items – éléments de tracé d’annotation

property annotations: str#

Obtenir les annotations d’objet (chaîne JSON décrivant les éléments de tracé d’annotation)

check() list[str]#

Vérifier les valeurs des éléments de l’ensemble de données

Renvoie:

liste des erreurs

Type renvoyé:

list[str]

check_data()#

Vérifier si les données sont valides, lever une exception si ce n’est pas le cas

Lève:

TypeError – si le type de données n’est pas pris en charge

delete_results() None#

Delete all object results (shapes and properties)

deserialize(reader: HDF5Reader | JSONReader | INIReader) None#

Désérialiser l’ensemble de données

Paramètres:

reader (HDF5Reader | JSONReader | INIReader) – objet lecteur

edit(parent: QWidget | None = None, apply: Callable | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None) DataSetEditDialog#

Ouvrir une boîte de dialogue pour modifier l’ensemble de données

Paramètres:
  • parent – widget parent (par défaut, None signifie pas de parent)

  • apply – callback d’application (par défaut, None)

  • wordwrap – si True, le texte du commentaire est enveloppé

  • size – taille de la boîte de dialogue (objet QSize ou tuple d’entiers (largeur, hauteur))

get_comment() str | None#

Renvoyer le commentaire de l’ensemble de données

Renvoie:

commentaire

Type renvoyé:

str | None

get_icon() str | None#

Renvoyer l’icône de l’ensemble de données

Renvoie:

icône

Type renvoyé:

str | None

get_items(copy=False) list[DataItem]#

Renvoie tous les objets DataItem de l’instance DataSet. Ignore les objets privés qui ont un nom commençant par un tiret bas (par exemple “_private_item = …”)

Paramètres:
  • copy – Si True, effectue une copie profonde de la liste DataItem, sinon renvoie l’original.

  • False. (Defaults to)

Renvoie:

_description_

get_masked_view() MaskedArray#

Retourne une vue masquée des données

Renvoie:

Vue masquée

get_metadata_option(name: str) Any#

Renvoyer la valeur de l’option de métadonnées

Une option de métadonnées est une entrée de métadonnées commençant par un underscore. C’est un moyen de stocker des options spécifiques à l’application dans les métadonnées de l’objet.

Paramètres:

name – nom de l’option

Renvoie:

Valeur de l’option

Noms d’options valides :

“format”: chaîne de format “showlabel”: afficher l’étiquette

get_title() str#

Renvoyer le titre de l’ensemble de données

Renvoie:

titre

Type renvoyé:

str

classmethod get_valid_dtypenames() list[str]#

Obtenir les noms de types de données valides

Renvoie:

Noms de types de données valides pris en charge par cette classe

invalidate_maskdata_cache() None#

Invalider le cache des données masquées : force la reconstruction

iterate_resultproperties() Iterable[ResultProperties]#

Iterate over object result properties.

Produit (yield):

Result properties

iterate_resultshapes() Iterable[ResultShape]#

Itérer sur les formes de résultat de l’objet.

Produit (yield):

Forme résultat

iterate_roi_indices() Generator[int | None, None, None]#

Iterate over object ROI indices (if there is no ROI, yield None)

iterate_shape_items(editable: bool = False)#

Iterate over shape items encoded in metadata (if any).

Paramètres:

editable – if True, annotations are editable

Produit (yield):

Item graphique

property maskdata: ndarray#

Renvoie les données masquées (zones en dehors des régions d’intérêt définies)

Renvoie:

Données masquées

property number: int#

Renvoyer le numéro de l’objet (utilisé pour l’ID court)

read_config(conf: UserConfig, section: str, option: str) None#

Lire la configuration à partir d’une instance UserConfig

Paramètres:
  • conf (UserConfig) – instance UserConfig

  • section (str) – nom de la section

  • option (str) – nom de l’option

remove_all_shapes() None#

Supprimer les formes de métadonnées et les ROI

reset_metadata_to_defaults() None#

Réinitialiser les métadonnées aux valeurs par défaut

restore_attr_from_metadata(attrname: str, default: Any) None#

Restore attribute from metadata

Paramètres:
  • attrname – attribute name

  • default – default value

property roi: TypeROI | None#

Return object regions of interest object.

Renvoie:

Regions of interest object

roi_has_changed() bool#

Renvoie True si la ROI a changé depuis le dernier appel à cette méthode.

Le premier appel à cette méthode renverra True si la ROI n’a pas encore été définie, ou si la ROI a été définie et a changé depuis le dernier appel à cette méthode. Le prochain appel à cette méthode renverra toujours False si la ROI n’a pas changé entre-temps.

Renvoie:

True si la ROI a changé

save_attr_to_metadata(attrname: str, new_value: Any) None#

Save attribute to metadata

Paramètres:
  • attrname – attribute name

  • new_value – new value

serialize(writer: HDF5Writer | JSONWriter | INIWriter) None#

Sérialiser le jeu de données

Paramètres:

writer (HDF5Writer | JSONWriter | INIWriter) – objet écrivain

set_defaults() None#

Définir les valeurs par défaut

classmethod set_global_prop(realm: str, **kwargs) None#

Définir les propriétés globales pour tous les éléments de données du jeu de données

Paramètres:
  • realm (str) – nom du domaine

  • kwargs (dict) – propriétés à définir

set_metadata_option(name: str, value: Any) None#

Définir la valeur de l’option de métadonnées

Une option de métadonnées est une entrée de métadonnées commençant par un underscore. C’est un moyen de stocker des options spécifiques à l’application dans les métadonnées de l’objet.

Paramètres:
  • name – nom de l’option

  • value – valeur de l’option

Noms d’options valides :

“format”: chaîne de format “showlabel”: afficher l’étiquette

property short_id: str#

ID court de l’objet

text_edit() None#

Modifier le jeu de données avec une saisie de texte uniquement

to_string(debug: bool | None = False, indent: str | None = None, align: bool | None = False, show_hidden: bool | None = True) str#

Renvoie une représentation lisible du jeu de données. Si debug est True, ajoute plus de détails sur les éléments de données

Paramètres:
  • debug (bool) – si True, ajoute plus de détails sur les éléments de données

  • indent (str) – chaîne d’indentation (par défaut, None signifie aucune indentation)

  • align (bool) – si True, aligne les éléments de données (par défaut, False)

  • show_hidden (bool) – si True, affiche les éléments de données masqués (par défaut, True)

Renvoie:

représentation sous forme de chaîne du jeu de données

Type renvoyé:

str

transform_shapes(orig, func, param=None)#

Appliquer la fonction de transformation aux coordonnées de la forme / des annotations du résultat.

Paramètres:
  • orig – objet d’origine

  • func – fonction de transformation

  • param – paramètre de la fonction de transformation

update_metadata_from(other_metadata: dict[str, Any]) None#

Update metadata from another object’s metadata (merge result shapes and annotations, and update the rest of the metadata).

Paramètres:

other_metadata – other object metadata

update_metadata_view_settings() None#

Mettre à jour les paramètres d’affichage des métadonnées à partir de Conf.view

update_resultshapes_from(other: TypeObj) None#

Mettre à jour la forme géométrique à partir d’un autre objet (fusionner les métadonnées).

Paramètres:

other – autre objet, à partir duquel mettre à jour cet objet

view(parent: QWidget | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None) None#

Ouvrir une boîte de dialogue pour afficher le jeu de données

Paramètres:
  • parent – widget parent (par défaut, None signifie pas de parent)

  • wordwrap – si True, le texte du commentaire est enveloppé

  • size – taille de la boîte de dialogue (objet QSize ou tuple d’entiers (largeur, hauteur))

write_config(conf: UserConfig, section: str, option: str) None#

Écrire la configuration dans une instance UserConfig

Paramètres:
  • conf (UserConfig) – instance UserConfig

  • section (str) – nom de la section

  • option (str) – nom de l’option

cdl.obj.read_signal(filename: str) SignalObj[source]#

Lire un signal à partir d’un fichier.

Paramètres:

filename – Nom de fichier.

Renvoie:

Signal.

cdl.obj.read_signals(filename: str) list[SignalObj][source]#

Lire une liste de signaux à partir d’un fichier.

Paramètres:

filename – Nom de fichier.

Renvoie:

Liste de signaux.

cdl.obj.create_signal_roi(coords: ndarray | list[float, float] | list[list[float, float]], indices: bool = False, singleobj: bool | None = None, inverse: bool = False, title: str = '') SignalROI[source]#

Create Signal Regions of Interest (ROI) object. More ROIs can be added to the object after creation, using the add_roi method.

Paramètres:
  • coords – single ROI coordinates [xmin, xmax], or multiple ROIs coordinates [[xmin1, xmax1], [xmin2, xmax2], …] (lists or NumPy arrays)

  • indices – if True, coordinates are indices, if False, they are physical values (default to False for signals)

  • singleobj – if True, when extracting data defined by ROIs, only one object is created (default to True). If False, one object is created per single ROI. If None, the value is get from the user configuration

  • inverse – if True, ROI is outside the region

  • title – titre

Renvoie:

Regions of Interest (ROI) object

Lève:

ValueError – if the number of coordinates is not even

cdl.obj.create_signal(title: str, x: ndarray | None = None, y: ndarray | None = None, dx: ndarray | None = None, dy: ndarray | None = None, metadata: dict | None = None, units: tuple[str, str] | None = None, labels: tuple[str, str] | None = None) SignalObj[source]#

Créer un nouvel objet Signal.

Paramètres:
  • title – titre du signal

  • x – données X

  • y – données Y

  • dx – données dX (facultatif : barres d’erreur)

  • dy – données dY (facultatif : barres d’erreur)

  • metadata – métadonnées du signal

  • units – unités X, Y (tuple de chaînes)

  • labels – étiquettes X, Y (tuple de chaînes)

Renvoie:

Objet signal

cdl.obj.create_signal_from_param(newparam: NewSignalParam, addparam: DataSet | None = None, edit: bool = False, parent: QWidget | None = None) SignalObj | None[source]#

Créer un nouvel objet Signal à partir d’une boîte de dialogue.

Paramètres:
  • newparam – nouveaux paramètres du signal

  • addparam – paramètres supplémentaires

  • edit – Ouvrir une boîte de dialogue pour modifier les paramètres (par défaut : False)

  • parent – widget parent

Renvoie:

Objet Signal ou None si annulé

cdl.obj.new_signal_param(title: str | None = None, stype: str | None = None, xmin: float | None = None, xmax: float | None = None, size: int | None = None) NewSignalParam[source]#

Créer une nouvelle instance de jeu de données Signal.

Paramètres:
  • title – titre du jeu de données (par défaut : None, utilise le titre par défaut)

  • stype – type de signal (par défaut : None, utilise le type par défaut)

  • xmin – X min (par défaut : None, utilise la valeur par défaut)

  • xmax – X max (par défaut : None, utilise la valeur par défaut)

  • size – taille du signal (par défaut : None, utilise la valeur par défaut)

Renvoie:

nouvelle instance de jeu de données signal

Type renvoyé:

NewSignalParam

class cdl.obj.SignalTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Types de signal

ZEROS = 'zéros'#

Signal rempli de zéros

GAUSS = 'gaussienne'#

Fonction gaussienne

LORENTZ = 'lorentzienne'#

Fonction lorentzienne

VOIGT = 'Voigt'#

Fonction de Voigt

UNIFORMRANDOM = 'aléatoire (loi uniforme)'#

Signal aléatoire (loi uniforme)

NORMALRANDOM = 'aléatoire (loi normale)'#

Signal aléatoire (loi normale)

SINUS = 'sinus'#

Fonction sinus

COSINUS = 'cosinus'#

Fonction cosinus

SAWTOOTH = 'dent de scie'#

Fonction en dents de scie

TRIANGLE = 'triangle'#

Fonction triangle

SQUARE = 'carré'#

Fonction carrée

SINC = 'sinus cardinal'#

Sinus cardinal

STEP = 'échelon'#

Fonction échelon

EXPONENTIAL = 'exponentielle'#

Exponential function

PULSE = 'impulsion'#

Pulse function

POLYNOMIAL = 'polynomial'#

Polynomial function

EXPERIMENTAL = 'expérimental'#

Experimental function

class cdl.obj.NewSignalParam[source]#

Nouveau jeu de données signal

title#

Titre. Par défaut : None.

Type:

guidata.dataset.dataitems.StringItem

xmin#

Par défaut : -10.0.

Type:

guidata.dataset.dataitems.FloatItem

xmax#

Par défaut : 10.0.

Type:

guidata.dataset.dataitems.FloatItem

size#

Taille. Nombre de points. Entier supérieur à 1. Par défaut : 500.

Type:

guidata.dataset.dataitems.IntItem

stype#

Sélection unique parmi : SignalTypes.ZEROS, SignalTypes.GAUSS, SignalTypes.LORENTZ, SignalTypes.VOIGT, SignalTypes.UNIFORMRANDOM, SignalTypes.NORMALRANDOM, SignalTypes.SINUS, SignalTypes.COSINUS, SignalTypes.SAWTOOTH, SignalTypes.TRIANGLE, SignalTypes.SQUARE, SignalTypes.SINC, SignalTypes.STEP, SignalTypes.EXPONENTIAL, SignalTypes.PULSE, SignalTypes.POLYNOMIAL, SignalTypes.EXPERIMENTAL. Par défaut : SignalTypes.ZEROS.

Type:

guidata.dataset.dataitems.ChoiceItem

classmethod create(title: str, xmin: float, xmax: float, size: int, stype: cdl.core.model.signal.SignalTypes) cdl.core.model.signal.NewSignalParam#

Renvoie une nouvelle instance de NewSignalParam avec les champs initialisés aux valeurs données.

Paramètres:
  • title (str) – Titre. Par défaut : None.

  • xmin (float) – Par défaut : -10.0.

  • xmax (float) – Par défaut : 10.0.

  • size (int) – Taille. Nombre de points. Entier supérieur à 1. Par défaut : 500.

  • stype (cdl.core.model.signal.SignalTypes) – Sélection unique parmi : SignalTypes.ZEROS, SignalTypes.GAUSS, SignalTypes.LORENTZ, SignalTypes.VOIGT, SignalTypes.UNIFORMRANDOM, SignalTypes.NORMALRANDOM, SignalTypes.SINUS, SignalTypes.COSINUS, SignalTypes.SAWTOOTH, SignalTypes.TRIANGLE, SignalTypes.SQUARE, SignalTypes.SINC, SignalTypes.STEP, SignalTypes.EXPONENTIAL, SignalTypes.PULSE, SignalTypes.POLYNOMIAL, SignalTypes.EXPERIMENTAL. Par défaut : SignalTypes.ZEROS.

Renvoie:

Nouvelle instance de NewSignalParam.

class cdl.obj.GaussLorentzVoigtParam[source]#

Paramètres pour les fonctions gaussiennes et lorentziennes

a#

Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

ymin#

Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

sigma#

σ. Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

mu#

μ. Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(a: float, ymin: float, sigma: float, mu: float) cdl.core.model.signal.GaussLorentzVoigtParam#

Renvoie une nouvelle instance de GaussLorentzVoigtParam avec les champs initialisés aux valeurs données.

Paramètres:
  • a (float) – Par défaut : 1.0.

  • ymin (float) – Par défaut : 0.0.

  • sigma (float) – σ. Par défaut : 1.0.

  • mu (float) – μ. Par défaut : 0.0.

Renvoie:

Nouvelle instance de GaussLorentzVoigtParam.

class cdl.obj.StepParam[source]#

Paramètres pour la fonction d’étape

a1#

Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

a2#

Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

x0#

Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(a1: float, a2: float, x0: float) cdl.core.model.signal.StepParam#

Renvoie une nouvelle instance de StepParam avec les champs initialisés aux valeurs données.

Paramètres:
  • a1 (float) – Par défaut : 0.0.

  • a2 (float) – Par défaut : 1.0.

  • x0 (float) – Par défaut : 0.0.

Renvoie:

Nouvelle instance de StepParam.

class cdl.obj.PeriodicParam[source]#

Paramètres pour les fonctions périodiques

a#

Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

ymin#

Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

freq#

Fréquence. Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

freq_unit#

Unité. Sélection unique parmi : FreqUnits.HZ, FreqUnits.KHZ, FreqUnits.MHZ, FreqUnits.GHZ. Par défaut : FreqUnits.HZ.

Type:

guidata.dataset.dataitems.ChoiceItem

phase#

Flottant, unité : °. Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(a: float, ymin: float, freq: float, freq_unit: cdl.core.model.signal.FreqUnits, phase: float) cdl.core.model.signal.PeriodicParam#

Renvoie une nouvelle instance de PeriodicParam avec les champs initialisés aux valeurs données.

Paramètres:
  • a (float) – Par défaut : 1.0.

  • ymin (float) – Par défaut : 0.0.

  • freq (float) – Fréquence. Par défaut : 1.0.

  • freq_unit (cdl.core.model.signal.FreqUnits) – Unité. Sélection unique parmi : FreqUnits.HZ, FreqUnits.KHZ, FreqUnits.MHZ, FreqUnits.GHZ. Par défaut : FreqUnits.HZ.

  • phase (float) – Flottant, unité : °. Par défaut : 0.0.

Renvoie:

Nouvelle instance de PeriodicParam.

get_frequency_in_hz()[source]#

Renvoie la fréquence en Hz

class cdl.obj.ROI1DParam[source]#

Signal ROI parameters

xmin#

Coordonnée du premier point. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

xmax#

Coordonnée du dernier point. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(xmin: float, xmax: float) cdl.core.model.signal.ROI1DParam#

Renvoie une nouvelle instance de ROI1DParam avec les champs initialisés aux valeurs données.

Paramètres:
  • xmin (float) – Coordonnée du premier point. Par défaut : None.

  • xmax (float) – Coordonnée du dernier point. Par défaut : None.

Renvoie:

Nouvelle instance de ROI1DParam.

to_single_roi(obj: SignalObj, title: str = '') SegmentROI[source]#

Convert parameters to single ROI

Paramètres:
  • obj – signal object

  • title – ROI title

Renvoie:

Single ROI

get_data(obj: SignalObj) ndarray[source]#

Get signal data in ROI

Paramètres:

obj – signal object

Renvoie:

Data in ROI

class cdl.obj.SignalROI(singleobj: bool | None = None, inverse: bool = False)[source]#

Signal Regions of Interest

Paramètres:
  • singleobj – if True, when extracting data defined by ROIs, only one object is created (default to True). If False, one object is created per single ROI. If None, the value is get from the user configuration

  • inverse – if True, ROI is outside the region

static get_compatible_single_roi_classes() list[Type[SegmentROI]][source]#

Return compatible single ROI classes

to_mask(obj: SignalObj) ndarray[bool][source]#

Create mask from ROI

Paramètres:

obj – signal object

Renvoie:

Mask (boolean array where True values are inside the ROI)

Modèle d’image#

class cdl.obj.ImageObj[source]#

Objet image

uuid#

Par défaut : None.

Type:

guidata.dataset.dataitems.StringItem

data#

Données. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatArrayItem

metadata#

Métadonnées. Par défaut : {}.

Type:

guidata.dataset.dataitems.DictItem

x0#

X0. Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

y0#

Y0. Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

dx#

Δx. Flottant, non nul. Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

dy#

Δy. Flottant, non nul. Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

title#

Titre de l’image. Par défaut : “Sans titre”.

Type:

guidata.dataset.dataitems.StringItem

xlabel#

Titre. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

xunit#

Unité. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

ylabel#

Titre. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

yunit#

Unité. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

zlabel#

Titre. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

zunit#

Unité. Par défaut : “”.

Type:

guidata.dataset.dataitems.StringItem

autoscale#

Par défaut : True.

Type:

guidata.dataset.dataitems.BoolItem

xscalelog#

Par défaut : False.

Type:

guidata.dataset.dataitems.BoolItem

xscalemin#

Borne inférieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

xscalemax#

Borne supérieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

yscalelog#

Par défaut : False.

Type:

guidata.dataset.dataitems.BoolItem

yscalemin#

Borne inférieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

yscalemax#

Borne supérieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

zscalemin#

Borne inférieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

zscalemax#

Borne supérieure. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(uuid: str, data: numpy.ndarray, metadata: dict, x0: float, y0: float, dx: float, dy: float, title: str, xlabel: str, xunit: str, ylabel: str, yunit: str, zlabel: str, zunit: str, autoscale: bool, xscalelog: bool, xscalemin: float, xscalemax: float, yscalelog: bool, yscalemin: float, yscalemax: float, zscalemin: float, zscalemax: float) cdl.core.model.image.ImageObj#

Renvoie une nouvelle instance de ImageObj avec les champs initialisés aux valeurs données.

Paramètres:
  • uuid (str) – Par défaut : None.

  • data (numpy.ndarray) – Données. Par défaut : None.

  • metadata (dict) – Métadonnées. Par défaut : {}.

  • x0 (float) – X0. Par défaut : 0.0.

  • y0 (float) – Y0. Par défaut : 0.0.

  • dx (float) – Δx. Flottant, non nul. Par défaut : 1.0.

  • dy (float) – Δy. Flottant, non nul. Par défaut : 1.0.

  • title (str) – Titre de l’image. Par défaut : “Sans titre”.

  • xlabel (str) – Titre. Par défaut : “”.

  • xunit (str) – Unité. Par défaut : “”.

  • ylabel (str) – Titre. Par défaut : “”.

  • yunit (str) – Unité. Par défaut : “”.

  • zlabel (str) – Titre. Par défaut : “”.

  • zunit (str) – Unité. Par défaut : “”.

  • autoscale (bool) – Par défaut : True.

  • xscalelog (bool) – Par défaut : False.

  • xscalemin (float) – Borne inférieure. Par défaut : None.

  • xscalemax (float) – Borne supérieure. Par défaut : None.

  • yscalelog (bool) – Par défaut : False.

  • yscalemin (float) – Borne inférieure. Par défaut : None.

  • yscalemax (float) – Borne supérieure. Par défaut : None.

  • zscalemin (float) – Borne inférieure. Par défaut : None.

  • zscalemax (float) – Borne supérieure. Par défaut : None.

Renvoie:

Nouvelle instance de ImageObj.

static get_roi_class() Type[ImageROI][source]#

Return ROI class

regenerate_uuid()[source]#

Regénère l’UUID

Cette méthode est utilisée pour régénérer l’UUID après avoir chargé l’objet à partir d’un fichier. Cela est nécessaire pour éviter les conflits d’UUID lors du chargement d’objets à partir d’un fichier sans effacer l’espace de travail au préalable.

set_metadata_from(obj: Mapping | dict) None[source]#

Définir les métadonnées à partir de l’objet : semblable à un dictionnaire

Paramètres:

obj – objet

property dicom_template#

Obtenir le modèle DICOM

property width: float#

Return image width, i.e. number of columns multiplied by pixel size

property height: float#

Return image height, i.e. number of rows multiplied by pixel size

property xc: float#

Renvoie la coordonnée X du centre de l’image

property yc: float#

Renvoie la coordonnée Y du centre de l’image

get_data(roi_index: int | None = None) ndarray[source]#

Renvoie les données originales (si la ROI n’est pas définie ou si l”roi_index est None), ou les données de la ROI (si la ROI et l”roi_index sont définis).

Paramètres:

roi_index – index de la ROI

Renvoie:

Données masquées

copy(title: str | None = None, dtype: dtype | None = None) ImageObj[source]#

Copie l’objet.

Paramètres:
  • title – titre

  • dtype – type de données

Renvoie:

Objet copié

set_data_type(dtype: dtype) None[source]#

Change data type. If data type is integer, clip values to the new data type’s range, thus avoiding overflow or underflow.

Paramètres:

type (Data)

update_plot_item_parameters(item: MaskedImageItem) None[source]#

Met à jour les paramètres de l’élément de tracé à partir des données/métadonnées de l’objet

Prend en compte un sous-ensemble de paramètres d’élément de tracé. Ces paramètres peuvent avoir été remplacés par des entrées de métadonnées d’objet ou d’autres données d’objet. Le but est de mettre à jour l’élément de tracé en conséquence.

C’est presque l’opération inverse de update_metadata_from_plot_item.

Paramètres:

item – élément de tracé

update_metadata_from_plot_item(item: MaskedImageItem) None[source]#

Met à jour les métadonnées à partir de l’élément de tracé.

Prend en compte un sous-ensemble de paramètres d’élément de tracé. Ces paramètres peuvent avoir été modifiés par l’utilisateur via l’interface graphique de l’élément de tracé. Le but est de mettre à jour les métadonnées en conséquence.

C’est presque l’opération inverse de update_plot_item_parameters.

Paramètres:

item – élément de tracé

make_item(update_from: MaskedImageItem | None = None) MaskedImageItem[source]#

Crée un élément de tracé à partir des données.

Paramètres:

update_from – mettre à jour à partir de l’élément de tracé

Renvoie:

Item graphique

update_item(item: MaskedImageItem, data_changed: bool = True) None[source]#

Met à jour l’élément de tracé à partir des données.

Paramètres:
  • item – élément de tracé

  • data_changed – si True, les données ont changé

physical_to_indices(coords: list[float], clip: bool = False) ndarray[source]#

Convert coordinates from physical (real world) to (array) indices (pixel)

Paramètres:
  • coords – coordonnées

  • clip – if True, clip values to image boundaries

Renvoie:

Indices

indices_to_physical(indices: list[float | int] | ndarray) ndarray[source]#

Convert coordinates from (array) indices to physical (real world)

Paramètres:

indices – indices

Renvoie:

Coordinates

add_label_with_title(title: str | None = None) None[source]#

Ajouter une étiquette avec une annotation de titre

Paramètres:

title – titre (si None, utilise le titre de l’image)

accept(vis: object) None#

Fonction d’aide qui transmet le visiteur aux méthodes accept des éléments dans cet ensemble de données

Paramètres:

vis (object) – objet visiteur

add_annotations_from_file(filename: str) None#

Ajouter des annotations d’objet à partir d’un fichier (JSON).

Paramètres:

filename – nom du fichier

add_annotations_from_items(items: list) None#

Ajouter des annotations d’objet (éléments de tracé d’annotation).

Paramètres:

items – éléments de tracé d’annotation

property annotations: str#

Obtenir les annotations d’objet (chaîne JSON décrivant les éléments de tracé d’annotation)

check() list[str]#

Vérifier les valeurs des éléments de l’ensemble de données

Renvoie:

liste des erreurs

Type renvoyé:

list[str]

check_data()#

Vérifier si les données sont valides, lever une exception si ce n’est pas le cas

Lève:

TypeError – si le type de données n’est pas pris en charge

delete_results() None#

Delete all object results (shapes and properties)

deserialize(reader: HDF5Reader | JSONReader | INIReader) None#

Désérialiser l’ensemble de données

Paramètres:

reader (HDF5Reader | JSONReader | INIReader) – objet lecteur

edit(parent: QWidget | None = None, apply: Callable | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None) DataSetEditDialog#

Ouvrir une boîte de dialogue pour modifier l’ensemble de données

Paramètres:
  • parent – widget parent (par défaut, None signifie pas de parent)

  • apply – callback d’application (par défaut, None)

  • wordwrap – si True, le texte du commentaire est enveloppé

  • size – taille de la boîte de dialogue (objet QSize ou tuple d’entiers (largeur, hauteur))

get_comment() str | None#

Renvoyer le commentaire de l’ensemble de données

Renvoie:

commentaire

Type renvoyé:

str | None

get_icon() str | None#

Renvoyer l’icône de l’ensemble de données

Renvoie:

icône

Type renvoyé:

str | None

get_items(copy=False) list[DataItem]#

Renvoie tous les objets DataItem de l’instance DataSet. Ignore les objets privés qui ont un nom commençant par un tiret bas (par exemple “_private_item = …”)

Paramètres:
  • copy – Si True, effectue une copie profonde de la liste DataItem, sinon renvoie l’original.

  • False. (Defaults to)

Renvoie:

_description_

get_masked_view() MaskedArray#

Retourne une vue masquée des données

Renvoie:

Vue masquée

get_metadata_option(name: str) Any#

Renvoyer la valeur de l’option de métadonnées

Une option de métadonnées est une entrée de métadonnées commençant par un underscore. C’est un moyen de stocker des options spécifiques à l’application dans les métadonnées de l’objet.

Paramètres:

name – nom de l’option

Renvoie:

Valeur de l’option

Noms d’options valides :

“format”: chaîne de format “showlabel”: afficher l’étiquette

get_title() str#

Renvoyer le titre de l’ensemble de données

Renvoie:

titre

Type renvoyé:

str

classmethod get_valid_dtypenames() list[str]#

Obtenir les noms de types de données valides

Renvoie:

Noms de types de données valides pris en charge par cette classe

invalidate_maskdata_cache() None#

Invalider le cache des données masquées : force la reconstruction

iterate_resultproperties() Iterable[ResultProperties]#

Iterate over object result properties.

Produit (yield):

Result properties

iterate_resultshapes() Iterable[ResultShape]#

Itérer sur les formes de résultat de l’objet.

Produit (yield):

Forme résultat

iterate_roi_indices() Generator[int | None, None, None]#

Iterate over object ROI indices (if there is no ROI, yield None)

iterate_shape_items(editable: bool = False)#

Iterate over shape items encoded in metadata (if any).

Paramètres:

editable – if True, annotations are editable

Produit (yield):

Item graphique

property maskdata: ndarray#

Renvoie les données masquées (zones en dehors des régions d’intérêt définies)

Renvoie:

Données masquées

property number: int#

Renvoyer le numéro de l’objet (utilisé pour l’ID court)

read_config(conf: UserConfig, section: str, option: str) None#

Lire la configuration à partir d’une instance UserConfig

Paramètres:
  • conf (UserConfig) – instance UserConfig

  • section (str) – nom de la section

  • option (str) – nom de l’option

remove_all_shapes() None#

Supprimer les formes de métadonnées et les ROI

reset_metadata_to_defaults() None#

Réinitialiser les métadonnées aux valeurs par défaut

restore_attr_from_metadata(attrname: str, default: Any) None#

Restore attribute from metadata

Paramètres:
  • attrname – attribute name

  • default – default value

property roi: TypeROI | None#

Return object regions of interest object.

Renvoie:

Regions of interest object

roi_has_changed() bool#

Renvoie True si la ROI a changé depuis le dernier appel à cette méthode.

Le premier appel à cette méthode renverra True si la ROI n’a pas encore été définie, ou si la ROI a été définie et a changé depuis le dernier appel à cette méthode. Le prochain appel à cette méthode renverra toujours False si la ROI n’a pas changé entre-temps.

Renvoie:

True si la ROI a changé

save_attr_to_metadata(attrname: str, new_value: Any) None#

Save attribute to metadata

Paramètres:
  • attrname – attribute name

  • new_value – new value

serialize(writer: HDF5Writer | JSONWriter | INIWriter) None#

Sérialiser le jeu de données

Paramètres:

writer (HDF5Writer | JSONWriter | INIWriter) – objet écrivain

set_defaults() None#

Définir les valeurs par défaut

classmethod set_global_prop(realm: str, **kwargs) None#

Définir les propriétés globales pour tous les éléments de données du jeu de données

Paramètres:
  • realm (str) – nom du domaine

  • kwargs (dict) – propriétés à définir

set_metadata_option(name: str, value: Any) None#

Définir la valeur de l’option de métadonnées

Une option de métadonnées est une entrée de métadonnées commençant par un underscore. C’est un moyen de stocker des options spécifiques à l’application dans les métadonnées de l’objet.

Paramètres:
  • name – nom de l’option

  • value – valeur de l’option

Noms d’options valides :

“format”: chaîne de format “showlabel”: afficher l’étiquette

property short_id: str#

ID court de l’objet

text_edit() None#

Modifier le jeu de données avec une saisie de texte uniquement

to_string(debug: bool | None = False, indent: str | None = None, align: bool | None = False, show_hidden: bool | None = True) str#

Renvoie une représentation lisible du jeu de données. Si debug est True, ajoute plus de détails sur les éléments de données

Paramètres:
  • debug (bool) – si True, ajoute plus de détails sur les éléments de données

  • indent (str) – chaîne d’indentation (par défaut, None signifie aucune indentation)

  • align (bool) – si True, aligne les éléments de données (par défaut, False)

  • show_hidden (bool) – si True, affiche les éléments de données masqués (par défaut, True)

Renvoie:

représentation sous forme de chaîne du jeu de données

Type renvoyé:

str

transform_shapes(orig, func, param=None)#

Appliquer la fonction de transformation aux coordonnées de la forme / des annotations du résultat.

Paramètres:
  • orig – objet d’origine

  • func – fonction de transformation

  • param – paramètre de la fonction de transformation

update_metadata_from(other_metadata: dict[str, Any]) None#

Update metadata from another object’s metadata (merge result shapes and annotations, and update the rest of the metadata).

Paramètres:

other_metadata – other object metadata

update_metadata_view_settings() None#

Mettre à jour les paramètres d’affichage des métadonnées à partir de Conf.view

update_resultshapes_from(other: TypeObj) None#

Mettre à jour la forme géométrique à partir d’un autre objet (fusionner les métadonnées).

Paramètres:

other – autre objet, à partir duquel mettre à jour cet objet

view(parent: QWidget | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None) None#

Ouvrir une boîte de dialogue pour afficher le jeu de données

Paramètres:
  • parent – widget parent (par défaut, None signifie pas de parent)

  • wordwrap – si True, le texte du commentaire est enveloppé

  • size – taille de la boîte de dialogue (objet QSize ou tuple d’entiers (largeur, hauteur))

write_config(conf: UserConfig, section: str, option: str) None#

Écrire la configuration dans une instance UserConfig

Paramètres:
  • conf (UserConfig) – instance UserConfig

  • section (str) – nom de la section

  • option (str) – nom de l’option

cdl.obj.read_image(filename: str) ImageObj[source]#

Lire une image à partir d’un fichier.

Paramètres:

filename – Nom de fichier.

Renvoie:

Image.

cdl.obj.read_images(filename: str) list[ImageObj][source]#

Lire une liste d’images à partir d’un fichier.

Paramètres:

filename – Nom de fichier.

Renvoie:

Liste d’images.

cdl.obj.create_image_roi(geometry: Literal['rectangle', 'circle', 'polygon'], coords: ndarray | list[float] | list[list[float]], indices: bool = True, singleobj: bool | None = None, inverse: bool = False, title: str = '') ImageROI[source]#

Create Image Regions of Interest (ROI) object. More ROIs can be added to the object after creation, using the add_roi method.

Paramètres:
  • geometry – ROI type (“rectangle”, “circle”, “polygon”)

  • coords – ROI coords (physical coordinates), [x0, y0, dx, dy] for a rectangle, [xc, yc, r] for a circle, or [x0, y0, x1, y1, …] for a polygon (lists or NumPy arrays are accepted). For multiple ROIs, nested lists or NumPy arrays are accepted but with a common geometry type (e.g. [[xc1, yc1, r1], [xc2, yc2, r2], …] for circles).

  • indices – if True, coordinates are indices, if False, they are physical values (default to True for images)

  • singleobj – if True, when extracting data defined by ROIs, only one object is created (default to True). If False, one object is created per single ROI. If None, the value is get from the user configuration

  • inverse – if True, ROI is outside the region

  • title – titre

Renvoie:

Regions of Interest (ROI) object

Lève:

ValueError – if ROI type is unknown or if the number of coordinates is invalid

cdl.obj.create_image(title: str, data: ndarray | None = None, metadata: dict | None = None, units: tuple | None = None, labels: tuple | None = None) ImageObj[source]#

Créer un nouvel objet Image

Paramètres:
  • title – titre de l’image

  • data – données de l’image

  • metadata – métadonnées de l’image

  • units – unités X, Y, Z (tuple de chaînes)

  • labels – étiquettes X, Y, Z (tuple de chaînes)

Renvoie:

Objet image

cdl.obj.create_image_from_param(newparam: NewImageParam, addparam: gds.DataSet | None = None, edit: bool = False, parent: QW.QWidget | None = None) ImageObj | None[source]#

Créer un nouvel objet Image à partir d’une boîte de dialogue.

Paramètres:
  • newparam – nouveaux paramètres de l’image

  • addparam – paramètres supplémentaires

  • edit – Ouvrir une boîte de dialogue pour modifier les paramètres (par défaut : False)

  • parent – widget parent

Renvoie:

Nouvel objet image ou None si l’utilisateur a annulé

cdl.obj.new_image_param(title: str | None = None, itype: ImageTypes | None = None, height: int | None = None, width: int | None = None, dtype: ImageDatatypes | None = None) NewImageParam[source]#

Créer une nouvelle instance de jeu de données Image.

Paramètres:
  • title – titre du jeu de données (par défaut : None, utilise le titre par défaut)

  • itype – type d’image (par défaut : None, utilise le type par défaut)

  • height – hauteur de l’image (par défaut : None, utilise la hauteur par défaut)

  • width – largeur de l’image (par défaut : None, utilise la largeur par défaut)

  • dtype – type de données de l’image (par défaut : None, utilise le type de données par défaut)

Renvoie:

Nouvelle instance de jeu de données image

class cdl.obj.ImageTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Types d’image

ZEROS = 'zéros'#

Image remplie de zéros

EMPTY = 'vide'#

Image vide (remplie de données de l’état de la mémoire)

GAUSS = 'gaussienne'#

Image gaussienne 2D

UNIFORMRANDOM = 'aléatoire (loi uniforme)'#

Image remplie de données aléatoires (loi uniforme)

NORMALRANDOM = 'aléatoire (loi normale)'#

Image remplie de données aléatoires (loi normale)

class cdl.obj.NewImageParam[source]#

Nouveau jeu de données image

title#

Titre. Par défaut : None.

Type:

guidata.dataset.dataitems.StringItem

height#

Hauteur. Hauteur de l’image : nombre de lignes. Entier supérieur à 1. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

width#

Largeur. Largeur de l’image : nombre de colonnes. Entier supérieur à 1. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

dtype#

Type de données. Sélection unique parmi : ImageDatatypes.UINT8, ImageDatatypes.UINT16, ImageDatatypes.INT16, ImageDatatypes.FLOAT32, ImageDatatypes.FLOAT64. Par défaut : ImageDatatypes.UINT8.

Type:

guidata.dataset.dataitems.ChoiceItem

itype#

Sélection unique parmi : ImageTypes.ZEROS, ImageTypes.EMPTY, ImageTypes.GAUSS, ImageTypes.UNIFORMRANDOM, ImageTypes.NORMALRANDOM. Par défaut : ImageTypes.ZEROS.

Type:

guidata.dataset.dataitems.ChoiceItem

classmethod create(title: str, height: int, width: int, dtype: cdl.core.model.image.ImageDatatypes, itype: cdl.core.model.image.ImageTypes) cdl.core.model.image.NewImageParam#

Renvoie une nouvelle instance de NewImageParam avec les champs initialisés aux valeurs données.

Paramètres:
  • title (str) – Titre. Par défaut : None.

  • height (int) – Hauteur. Hauteur de l’image : nombre de lignes. Entier supérieur à 1. Par défaut : None.

  • width (int) – Largeur. Largeur de l’image : nombre de colonnes. Entier supérieur à 1. Par défaut : None.

  • dtype (cdl.core.model.image.ImageDatatypes) – Type de données. Sélection unique parmi : ImageDatatypes.UINT8, ImageDatatypes.UINT16, ImageDatatypes.INT16, ImageDatatypes.FLOAT32, ImageDatatypes.FLOAT64. Par défaut : ImageDatatypes.UINT8.

  • itype (cdl.core.model.image.ImageTypes) – Sélection unique parmi : ImageTypes.ZEROS, ImageTypes.EMPTY, ImageTypes.GAUSS, ImageTypes.UNIFORMRANDOM, ImageTypes.NORMALRANDOM. Par défaut : ImageTypes.ZEROS.

Renvoie:

Nouvelle instance de NewImageParam.

class cdl.obj.Gauss2DParam[source]#

Paramètres gaussiens 2D

a#

Norm. Par défaut : None.

Type:

guidata.dataset.dataitems.FloatItem

xmin#

Par défaut : -10.

Type:

guidata.dataset.dataitems.FloatItem

sigma#

σ. Par défaut : 1.0.

Type:

guidata.dataset.dataitems.FloatItem

xmax#

Par défaut : 10.

Type:

guidata.dataset.dataitems.FloatItem

mu#

μ. Par défaut : 0.0.

Type:

guidata.dataset.dataitems.FloatItem

ymin#

Par défaut : -10.

Type:

guidata.dataset.dataitems.FloatItem

x0#

Par défaut : 0.

Type:

guidata.dataset.dataitems.FloatItem

ymax#

Par défaut : 10.

Type:

guidata.dataset.dataitems.FloatItem

y0#

Par défaut : 0.

Type:

guidata.dataset.dataitems.FloatItem

classmethod create(a: float, xmin: float, sigma: float, xmax: float, mu: float, ymin: float, x0: float, ymax: float, y0: float) cdl.core.model.image.Gauss2DParam#

Renvoie une nouvelle instance de Gauss2DParam avec les champs initialisés aux valeurs données.

Paramètres:
  • a (float) – Norm. Par défaut : None.

  • xmin (float) – Par défaut : -10.

  • sigma (float) – σ. Par défaut : 1.0.

  • xmax (float) – Par défaut : 10.

  • mu (float) – μ. Par défaut : 0.0.

  • ymin (float) – Par défaut : -10.

  • x0 (float) – Par défaut : 0.

  • ymax (float) – Par défaut : 10.

  • y0 (float) – Par défaut : 0.

Renvoie:

Nouvelle instance de Gauss2DParam.

class cdl.obj.ROI2DParam[source]#

Image ROI parameters

geometry#

Géométrie. Sélection unique parmi : “rectangle”, “circle”, “polygon”. Par défaut : “rectangle”.

Type:

guidata.dataset.dataitems.ChoiceItem

x0#

X0. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

y0#

Y0. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

dx#

ΔX. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

dy#

ΔY. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

xc#

XC. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

yc#

YC. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

r#

Rayon. Entier, unité : pixels. Par défaut : None.

Type:

guidata.dataset.dataitems.IntItem

points#

Coordonnées (pixels). Par défaut : None.

Type:

guidata.dataset.dataitems.FloatArrayItem

classmethod create(geometry: str, x0: int, y0: int, dx: int, dy: int, xc: int, yc: int, r: int, points: numpy.ndarray) cdl.core.model.image.ROI2DParam#

Renvoie une nouvelle instance de ROI2DParam avec les champs initialisés aux valeurs données.

Paramètres:
  • geometry (str) – Géométrie. Sélection unique parmi : “rectangle”, “circle”, “polygon”. Par défaut : “rectangle”.

  • x0 (int) – X0. Entier, unité : pixels. Par défaut : None.

  • y0 (int) – Y0. Entier, unité : pixels. Par défaut : None.

  • dx (int) – ΔX. Entier, unité : pixels. Par défaut : None.

  • dy (int) – ΔY. Entier, unité : pixels. Par défaut : None.

  • xc (int) – XC. Entier, unité : pixels. Par défaut : None.

  • yc (int) – YC. Entier, unité : pixels. Par défaut : None.

  • r (int) – Rayon. Entier, unité : pixels. Par défaut : None.

  • points (numpy.ndarray) – Coordonnées (pixels). Par défaut : None.

Renvoie:

Nouvelle instance de ROI2DParam.

to_single_roi(obj: ImageObj, title: str = '') PolygonalROI | RectangularROI | CircularROI[source]#

Convert parameters to single ROI

Paramètres:
  • obj – image object (used for conversion of pixel to physical coordinates)

  • title – ROI title

Renvoie:

Single ROI

get_suffix() str[source]#

Get suffix text representation for ROI extraction

get_extracted_roi(obj: ImageObj) ImageROI | None[source]#

Get extracted ROI, i.e. the remaining ROI after extracting ROI from image.

Paramètres:

obj – image object (used for conversion of pixel to physical coordinates)

When extracting ROIs from an image to multiple images (i.e. one image per ROI), this method returns the ROI that has to be kept in the destination image. This is not necessary for a rectangular ROI: the destination image is simply a crop of the source image according to the ROI coordinates. But for a circular ROI or a polygonal ROI, the destination image is a crop of the source image according to the bounding box of the ROI. Thus, to avoid any loss of information, a ROI has to be defined for the destination image: this is the ROI returned by this method. It’s simply the same as the source ROI, but with coordinates adjusted to the destination image. One may called this ROI the « extracted ROI ».

get_bounding_box_indices() tuple[int, int, int, int][source]#

Get bounding box (pixel coordinates)

get_data(obj: ImageObj) ndarray[source]#

Get data in ROI

Paramètres:

obj – image object

Renvoie:

Data in ROI

class cdl.obj.ImageROI(singleobj: bool | None = None, inverse: bool = False)[source]#

Image Regions of Interest

Paramètres:
  • singleobj – if True, when extracting data defined by ROIs, only one object is created (default to True). If False, one object is created per single ROI. If None, the value is get from the user configuration

  • inverse – if True, ROI is outside the region

static get_compatible_single_roi_classes() list[Type[BaseSingleImageROI]][source]#

Return compatible single ROI classes

to_mask(obj: ImageObj) ndarray[bool][source]#

Create mask from ROI

Paramètres:

obj – image object

Renvoie:

Mask (boolean array where True values are inside the ROI)

class cdl.obj.ImageDatatypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Types de données d’image

classmethod from_dtype(dtype)[source]#

Renvoie le membre à partir du dtype NumPy

classmethod check()[source]#

Vérifie si les types de données sont valides

UINT8 = 'uint8'#

Entier non signé stocké avec 8 bits

UINT16 = 'uint16'#

Entier non signé stocké avec 16 bits

INT16 = 'int16'#

Entier signé stocké avec 16 bits

FLOAT32 = 'float32'#

Nombre flottant stocké avec 32 bits

FLOAT64 = 'float64'#

Nombre flottant stocké avec 64 bits