diff --git a/cdl/core/gui/actionhandler.py b/cdl/core/gui/actionhandler.py
index 1b7bf5db..e7c50abb 100644
--- a/cdl/core/gui/actionhandler.py
+++ b/cdl/core/gui/actionhandler.py
@@ -1121,6 +1121,7 @@ def create_first_actions(self):
self.new_action(
_("Reset image positions"),
triggered=self.panel.processor.reset_positions,
+ icon_name="reset_positions.svg",
select_condition=SelectCond.at_least_two,
)
diff --git a/cdl/data/icons/operations/distribute_on_grid.svg b/cdl/data/icons/operations/distribute_on_grid.svg
index 00ee8662..a5b4ca4d 100644
--- a/cdl/data/icons/operations/distribute_on_grid.svg
+++ b/cdl/data/icons/operations/distribute_on_grid.svg
@@ -1,16 +1,769 @@
-
diff --git a/cdl/data/icons/operations/reset_positions.svg b/cdl/data/icons/operations/reset_positions.svg
new file mode 100644
index 00000000..bfc25972
--- /dev/null
+++ b/cdl/data/icons/operations/reset_positions.svg
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cdl/locale/fr/LC_MESSAGES/cdl.po b/cdl/locale/fr/LC_MESSAGES/cdl.po
index eb3edb0b..8204ea24 100644
--- a/cdl/locale/fr/LC_MESSAGES/cdl.po
+++ b/cdl/locale/fr/LC_MESSAGES/cdl.po
@@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2024-06-21 15:55+0200\n"
+"POT-Creation-Date: 2024-06-21 16:54+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -1719,306 +1719,306 @@ msgstr "Distribuer sur une grille..."
msgid "Reset image positions"
msgstr "Réinitialiser les positions des images"
-#: cdl\core\gui\actionhandler.py:1128
+#: cdl\core\gui\actionhandler.py:1129
msgid "Thresholding"
msgstr "Seuillage"
-#: cdl\core\gui\actionhandler.py:1130
+#: cdl\core\gui\actionhandler.py:1131
msgid "Parametric thresholding"
msgstr "Seuillage paramétrique"
-#: cdl\core\gui\actionhandler.py:1134
+#: cdl\core\gui\actionhandler.py:1135
msgid "ISODATA thresholding"
msgstr "Seuillage ISODATA"
-#: cdl\core\gui\actionhandler.py:1138
+#: cdl\core\gui\actionhandler.py:1139
msgid "Li thresholding"
msgstr "Seuillage Li"
-#: cdl\core\gui\actionhandler.py:1142
+#: cdl\core\gui\actionhandler.py:1143
msgid "Mean thresholding"
msgstr "Seuillage moyen"
-#: cdl\core\gui\actionhandler.py:1146
+#: cdl\core\gui\actionhandler.py:1147
msgid "Minimum thresholding"
msgstr "Seuillage minimum"
-#: cdl\core\gui\actionhandler.py:1150
+#: cdl\core\gui\actionhandler.py:1151
msgid "Otsu thresholding"
msgstr "Seuillage Otsu"
-#: cdl\core\gui\actionhandler.py:1154
+#: cdl\core\gui\actionhandler.py:1155
msgid "Triangle thresholding"
msgstr "Seuillage Triangle"
-#: cdl\core\gui\actionhandler.py:1158
+#: cdl\core\gui\actionhandler.py:1159
msgid "Yen thresholding"
msgstr "Seuillage Yen"
-#: cdl\core\gui\actionhandler.py:1162
+#: cdl\core\gui\actionhandler.py:1163
msgid "All thresholding methods"
msgstr "Toutes les méthodes de seuillage"
-#: cdl\core\gui\actionhandler.py:1165
+#: cdl\core\gui\actionhandler.py:1166
msgid "Apply all thresholding methods"
msgstr "Appliquer toutes les méthodes de seuillage"
-#: cdl\core\gui\actionhandler.py:1167
+#: cdl\core\gui\actionhandler.py:1168
msgid "Exposure"
msgstr "Exposition"
-#: cdl\core\gui\actionhandler.py:1169 cdl\core\gui\processor\image.py:644
+#: cdl\core\gui\actionhandler.py:1170 cdl\core\gui\processor\image.py:644
msgid "Gamma correction"
msgstr "Correction gamma"
-#: cdl\core\gui\actionhandler.py:1173
+#: cdl\core\gui\actionhandler.py:1174
msgid "Logarithmic correction"
msgstr "Correction logarithmique"
-#: cdl\core\gui\actionhandler.py:1177 cdl\core\gui\processor\image.py:667
+#: cdl\core\gui\actionhandler.py:1178 cdl\core\gui\processor\image.py:667
msgid "Sigmoid correction"
msgstr "Correction sigmoïde"
-#: cdl\core\gui\actionhandler.py:1181 cdl\core\gui\processor\image.py:692
+#: cdl\core\gui\actionhandler.py:1182 cdl\core\gui\processor\image.py:692
msgid "Histogram equalization"
msgstr "Egalisation d'histogramme"
-#: cdl\core\gui\actionhandler.py:1185 cdl\core\gui\processor\image.py:705
+#: cdl\core\gui\actionhandler.py:1186 cdl\core\gui\processor\image.py:705
msgid "Adaptive histogram equalization"
msgstr "Egalisation d'histogramme adaptative"
-#: cdl\core\gui\actionhandler.py:1189
+#: cdl\core\gui\actionhandler.py:1190
msgid "Intensity rescaling"
msgstr "Ajustement des niveaux"
-#: cdl\core\gui\actionhandler.py:1192
+#: cdl\core\gui\actionhandler.py:1193
msgid "Restoration"
msgstr "Restauration"
-#: cdl\core\gui\actionhandler.py:1194 cdl\core\gui\processor\image.py:715
+#: cdl\core\gui\actionhandler.py:1195 cdl\core\gui\processor\image.py:715
#: cdl\core\gui\processor\image.py:771
msgid "Total variation denoising"
msgstr "Filtrage variationnel (débruitage)"
-#: cdl\core\gui\actionhandler.py:1198 cdl\core\gui\processor\image.py:728
+#: cdl\core\gui\actionhandler.py:1199 cdl\core\gui\processor\image.py:728
#: cdl\core\gui\processor\image.py:772
msgid "Bilateral filter denoising"
msgstr "Filtrage bilatéral (débruitage)"
-#: cdl\core\gui\actionhandler.py:1202 cdl\core\gui\processor\image.py:741
+#: cdl\core\gui\actionhandler.py:1203 cdl\core\gui\processor\image.py:741
#: cdl\core\gui\processor\image.py:773
msgid "Wavelet denoising"
msgstr "Débruitage par ondelettes"
-#: cdl\core\gui\actionhandler.py:1206
+#: cdl\core\gui\actionhandler.py:1207
msgid "White Top-Hat denoising"
msgstr "Débruitage Top-Hat"
-#: cdl\core\gui\actionhandler.py:1210
+#: cdl\core\gui\actionhandler.py:1211
msgid "All denoising methods"
msgstr "Tous les débruitages"
-#: cdl\core\gui\actionhandler.py:1213
+#: cdl\core\gui\actionhandler.py:1214
msgid "Apply all denoising methods"
msgstr "Appliquer tous les débruitages"
-#: cdl\core\gui\actionhandler.py:1215
+#: cdl\core\gui\actionhandler.py:1216
msgid "Morphology"
msgstr "Morphologie"
-#: cdl\core\gui\actionhandler.py:1217
+#: cdl\core\gui\actionhandler.py:1218
msgid "White Top-Hat (disk)"
msgstr "Top-Hat (disque)"
-#: cdl\core\gui\actionhandler.py:1221
+#: cdl\core\gui\actionhandler.py:1222
msgid "Black Top-Hat (disk)"
msgstr "Top-Hat dual (disque)"
-#: cdl\core\gui\actionhandler.py:1225
+#: cdl\core\gui\actionhandler.py:1226
msgid "Erosion (disk)"
msgstr "Erosion (disque)"
-#: cdl\core\gui\actionhandler.py:1229
+#: cdl\core\gui\actionhandler.py:1230
msgid "Dilation (disk)"
msgstr "Dilatation (disque)"
-#: cdl\core\gui\actionhandler.py:1233
+#: cdl\core\gui\actionhandler.py:1234
msgid "Opening (disk)"
msgstr "Ouverture (disque)"
-#: cdl\core\gui\actionhandler.py:1237
+#: cdl\core\gui\actionhandler.py:1238
msgid "Closing (disk)"
msgstr "Fermeture (disque)"
-#: cdl\core\gui\actionhandler.py:1241
+#: cdl\core\gui\actionhandler.py:1242
msgid "All morphological operations"
msgstr "Toutes les opérations morphologiques"
-#: cdl\core\gui\actionhandler.py:1244
+#: cdl\core\gui\actionhandler.py:1245
msgid "Apply all morphological operations"
msgstr "Appliquer toutes les opérations morphologiques"
-#: cdl\core\gui\actionhandler.py:1246
+#: cdl\core\gui\actionhandler.py:1247
msgid "Edges"
msgstr "Contours"
-#: cdl\core\gui\actionhandler.py:1248 cdl\core\gui\processor\image.py:877
+#: cdl\core\gui\actionhandler.py:1249 cdl\core\gui\processor\image.py:877
msgid "Roberts filter"
msgstr "Filtre de Roberts"
-#: cdl\core\gui\actionhandler.py:1251 cdl\core\gui\processor\image.py:882
+#: cdl\core\gui\actionhandler.py:1252 cdl\core\gui\processor\image.py:882
msgid "Prewitt filter"
msgstr "Filtre de Prewitt"
-#: cdl\core\gui\actionhandler.py:1256 cdl\core\gui\processor\image.py:889
+#: cdl\core\gui\actionhandler.py:1257 cdl\core\gui\processor\image.py:889
msgid "Prewitt filter (horizontal)"
msgstr "Filtre de Prewitt (horizontal)"
-#: cdl\core\gui\actionhandler.py:1260 cdl\core\gui\processor\image.py:897
+#: cdl\core\gui\actionhandler.py:1261 cdl\core\gui\processor\image.py:897
msgid "Prewitt filter (vertical)"
msgstr "Filtre de Prewitt (vertical)"
-#: cdl\core\gui\actionhandler.py:1264 cdl\core\gui\processor\image.py:903
+#: cdl\core\gui\actionhandler.py:1265 cdl\core\gui\processor\image.py:903
msgid "Sobel filter"
msgstr "Filtre de Sobel"
-#: cdl\core\gui\actionhandler.py:1269 cdl\core\gui\processor\image.py:910
+#: cdl\core\gui\actionhandler.py:1270 cdl\core\gui\processor\image.py:910
msgid "Sobel filter (horizontal)"
msgstr "Filtre de Sobel (horizontal)"
-#: cdl\core\gui\actionhandler.py:1273 cdl\core\gui\processor\image.py:918
+#: cdl\core\gui\actionhandler.py:1274 cdl\core\gui\processor\image.py:918
msgid "Sobel filter (vertical)"
msgstr "Filtre de Sobel (vertical)"
-#: cdl\core\gui\actionhandler.py:1277 cdl\core\gui\processor\image.py:924
+#: cdl\core\gui\actionhandler.py:1278 cdl\core\gui\processor\image.py:924
msgid "Scharr filter"
msgstr "Filtre de Scharr"
-#: cdl\core\gui\actionhandler.py:1282 cdl\core\gui\processor\image.py:931
+#: cdl\core\gui\actionhandler.py:1283 cdl\core\gui\processor\image.py:931
msgid "Scharr filter (horizontal)"
msgstr "Filtre de Scharr (horizontal)"
-#: cdl\core\gui\actionhandler.py:1286 cdl\core\gui\processor\image.py:939
+#: cdl\core\gui\actionhandler.py:1287 cdl\core\gui\processor\image.py:939
msgid "Scharr filter (vertical)"
msgstr "Filtre de Scharr (vertical)"
-#: cdl\core\gui\actionhandler.py:1290 cdl\core\gui\processor\image.py:945
+#: cdl\core\gui\actionhandler.py:1291 cdl\core\gui\processor\image.py:945
msgid "Farid filter"
msgstr "Filtre de Farid"
-#: cdl\core\gui\actionhandler.py:1295 cdl\core\gui\processor\image.py:952
+#: cdl\core\gui\actionhandler.py:1296 cdl\core\gui\processor\image.py:952
msgid "Farid filter (horizontal)"
msgstr "Filtre de Farid (horizontal)"
-#: cdl\core\gui\actionhandler.py:1299 cdl\core\gui\processor\image.py:960
+#: cdl\core\gui\actionhandler.py:1300 cdl\core\gui\processor\image.py:960
msgid "Farid filter (vertical)"
msgstr "Filtre de Farid (vertical)"
-#: cdl\core\gui\actionhandler.py:1303 cdl\core\gui\processor\image.py:966
+#: cdl\core\gui\actionhandler.py:1304 cdl\core\gui\processor\image.py:966
msgid "Laplace filter"
msgstr "Filtre de Laplace"
-#: cdl\core\gui\actionhandler.py:1308
+#: cdl\core\gui\actionhandler.py:1309
msgid "All edges filters"
msgstr "Tous les filtres de contours"
-#: cdl\core\gui\actionhandler.py:1311
+#: cdl\core\gui\actionhandler.py:1312
msgid "Compute all edges filters"
msgstr "Calcule tous les filtres de contours"
-#: cdl\core\gui\actionhandler.py:1314 cdl\core\gui\processor\image.py:871
+#: cdl\core\gui\actionhandler.py:1315 cdl\core\gui\processor\image.py:871
msgid "Canny filter"
msgstr "Filtre de Canny"
-#: cdl\core\gui\actionhandler.py:1317 cdl\core\gui\processor\image.py:569
+#: cdl\core\gui\actionhandler.py:1318 cdl\core\gui\processor\image.py:569
msgid "Butterworth filter"
msgstr "Filtre de Butterworth"
-#: cdl\core\gui\actionhandler.py:1325 cdl\core\gui\processor\image.py:998
+#: cdl\core\gui\actionhandler.py:1326 cdl\core\gui\processor\image.py:998
#: cdl\tests\features\image\centroid_unit_test.py:62
#: cdl\tests\features\image\enclosingcircle_unit_test.py:30
msgid "Centroid"
msgstr "Barycentre"
-#: cdl\core\gui\actionhandler.py:1328
+#: cdl\core\gui\actionhandler.py:1329
msgid "Compute image centroid"
msgstr "Calcule le barycentre de l'image"
-#: cdl\core\gui\actionhandler.py:1331
+#: cdl\core\gui\actionhandler.py:1332
msgid "Minimum enclosing circle center"
msgstr "Centre du cercle minimum"
-#: cdl\core\gui\actionhandler.py:1333
+#: cdl\core\gui\actionhandler.py:1334
msgid "Compute smallest enclosing circle center"
msgstr "Calcule le centre du cercle minimum"
-#: cdl\core\gui\actionhandler.py:1336
+#: cdl\core\gui\actionhandler.py:1337
msgid "2D peak detection"
msgstr "Détection de pics 2D"
-#: cdl\core\gui\actionhandler.py:1339
+#: cdl\core\gui\actionhandler.py:1340
msgid "Compute automatic 2D peak detection"
msgstr "Détection automatique de pics 2D"
-#: cdl\core\gui\actionhandler.py:1342
+#: cdl\core\gui\actionhandler.py:1343
msgid "Contour detection"
msgstr "Détection de contours"
-#: cdl\core\gui\actionhandler.py:1344
+#: cdl\core\gui\actionhandler.py:1345
msgid "Compute contour shape fit"
msgstr "Ajustement d'une forme géométrique à un contour"
-#: cdl\core\gui\actionhandler.py:1347
+#: cdl\core\gui\actionhandler.py:1348
msgid "Circle Hough transform"
msgstr "Transformée de Hough circulaire"
-#: cdl\core\gui\actionhandler.py:1349
+#: cdl\core\gui\actionhandler.py:1350
msgid "Detect circular shapes using circle Hough transform"
msgstr "Détection de formes circulaires à partir d'une tranformée de Hough"
-#: cdl\core\gui\actionhandler.py:1352
+#: cdl\core\gui\actionhandler.py:1353
msgid "Blob detection"
msgstr "Détection de taches"
-#: cdl\core\gui\actionhandler.py:1354 cdl\core\gui\processor\image.py:1091
+#: cdl\core\gui\actionhandler.py:1355 cdl\core\gui\processor\image.py:1091
msgid "Blob detection (DOG)"
msgstr "Détection de taches (gaussien)"
-#: cdl\core\gui\actionhandler.py:1356
+#: cdl\core\gui\actionhandler.py:1357
msgid "Detect blobs using Difference of Gaussian (DOG) method"
msgstr "Détection de taches basée sur la méthode du discriminant gaussien"
-#: cdl\core\gui\actionhandler.py:1359 cdl\core\gui\processor\image.py:1103
+#: cdl\core\gui\actionhandler.py:1360 cdl\core\gui\processor\image.py:1103
msgid "Blob detection (DOH)"
msgstr "Détection de taches (hessien)"
-#: cdl\core\gui\actionhandler.py:1361
+#: cdl\core\gui\actionhandler.py:1362
msgid "Detect blobs using Determinant of Hessian (DOH) method"
msgstr "Détection de taches basée sur la méthode du discriminant hessien"
-#: cdl\core\gui\actionhandler.py:1364 cdl\core\gui\processor\image.py:1115
+#: cdl\core\gui\actionhandler.py:1365 cdl\core\gui\processor\image.py:1115
msgid "Blob detection (LOG)"
msgstr "Détection de taches (LOG)"
-#: cdl\core\gui\actionhandler.py:1366
+#: cdl\core\gui\actionhandler.py:1367
msgid "Detect blobs using Laplacian of Gaussian (LOG) method"
msgstr ""
"Détection de taches basée sur la méthode du laplacien de gaussien (LOG)"
-#: cdl\core\gui\actionhandler.py:1369 cdl\core\gui\processor\image.py:1128
+#: cdl\core\gui\actionhandler.py:1370 cdl\core\gui\processor\image.py:1128
msgid "Blob detection (OpenCV)"
msgstr "Détection de taches (OpenCV)"
-#: cdl\core\gui\actionhandler.py:1371
+#: cdl\core\gui\actionhandler.py:1372
msgid "Detect blobs using OpenCV SimpleBlobDetector"
msgstr "Détection de taches basée sur SimpleBlobDetector d'OpenCV"
-#: cdl\core\gui\actionhandler.py:1378 cdl\core\gui\processor\image.py:214
+#: cdl\core\gui\actionhandler.py:1379 cdl\core\gui\processor\image.py:214
#: cdl\core\gui\processor\image.py:226
msgid "Resize"
msgstr "Redimensionner"
-#: cdl\core\gui\actionhandler.py:1384
+#: cdl\core\gui\actionhandler.py:1385
msgid "Pixel binning"
msgstr "Binning"
@@ -3236,7 +3236,10 @@ msgid ""
"The File menu contains actions to create new signals, import and "
"export signals individually (various formats) or to save or restore the "
"whole workspace (HDF5 files)."
-msgstr "Le menu Fichier contient les actions pour créer de nouveaux signaux, importer et exporter des signaux individuellement (divers formats) ou pour enregistrer ou restaurer l'ensemble de l'espace de travail (fichiers HDF5)."
+msgstr ""
+"Le menu Fichier contient les actions pour créer de nouveaux signaux, "
+"importer et exporter des signaux individuellement (divers formats) ou pour "
+"enregistrer ou restaurer l'ensemble de l'espace de travail (fichiers HDF5)."
#: cdl\core\gui\tour.py:724 cdl\core\gui\tour.py:803
msgid "Edit menu"
@@ -3258,7 +3261,9 @@ msgstr "Menu Opérations"
msgid ""
"The Operations menu is focused on arithmetic operations, basic "
"mathematical functions or data type conversions."
-msgstr "Le menu Opérations est centré sur les opérations arithmétiques, les fonctions mathématiques de base ou les conversions de type de données."
+msgstr ""
+"Le menu Opérations est centré sur les opérations arithmétiques, les "
+"fonctions mathématiques de base ou les conversions de type de données."
#: cdl\core\gui\tour.py:744 cdl\core\gui\tour.py:823
msgid "Processing menu"
@@ -3319,7 +3324,10 @@ msgid ""
"The File menu contains actions to create new images, import and "
"export images individually (various formats) or to save or restore the whole "
"workspace (HDF5 files)."
-msgstr "Le menu Fichier contient les actions pour créer de nouvelles images, importer et exporter des images individuellement (divers formats) ou pour enregistrer ou restaurer l'ensemble de l'espace de travail (fichiers HDF5)."
+msgstr ""
+"Le menu Fichier contient les actions pour créer de nouvelles images, "
+"importer et exporter des images individuellement (divers formats) ou pour "
+"enregistrer ou restaurer l'ensemble de l'espace de travail (fichiers HDF5)."
#: cdl\core\gui\tour.py:804
msgid ""
@@ -3333,7 +3341,10 @@ msgstr ""
msgid ""
"The Operations menu is focused on arithmetic operations, data type "
"conversions, pixel binning resize, intensity profiles, ..."
-msgstr "Le menu Opérations est centré sur les opérations arithmétiques, les conversions de type de données, le redimensionnement par binning de pixels, les profils d'intensité, ..."
+msgstr ""
+"Le menu Opérations est centré sur les opérations arithmétiques, les "
+"conversions de type de données, le redimensionnement par binning de pixels, "
+"les profils d'intensité, ..."
#: cdl\core\gui\tour.py:824
msgid ""
@@ -3364,7 +3375,11 @@ msgid ""
"Macros, Plugins or Remote Control.
The common "
"point between these mechanisms is that they are all relying on Python "
"scripts and the DataLab API."
-msgstr "DataLab est conçu pour être facilement personnalisable avec de nouvelles fonctionnalités, en utilisant des Macros, des Plugins ou un Contrôle à distance.
Le point commun entre ces mécanismes est qu'ils reposent tous sur des scripts Python et l'API DataLab."
+msgstr ""
+"DataLab est conçu pour être facilement personnalisable avec de nouvelles "
+"fonctionnalités, en utilisant des Macros, des Plugins ou un "
+"Contrôle à distance.
Le point commun entre ces mécanismes est "
+"qu'ils reposent tous sur des scripts Python et l'API DataLab."
#: cdl\core\gui\tour.py:853
msgid "Macros"
diff --git a/doc/features/image/menu_operations.rst b/doc/features/image/menu_operations.rst
index 5ff0c7f1..2697dbdf 100644
--- a/doc/features/image/menu_operations.rst
+++ b/doc/features/image/menu_operations.rst
@@ -21,57 +21,54 @@ The "Operations" menu allows you to perform various operations on the current
image or group of images. It also allows you to extract profiles, distribute
images on a grid, or resize images.
-Sum
-^^^
+Basic arithmetic operations
+---------------------------
-Create a new image which is the sum of all selected images:
-
-.. math::
- z_{M} = \sum_{k=0}^{M-1}{z_{k}}
-
-Average
-^^^^^^^
-
-Create a new image which is the average of all selected images:
-
-.. math::
- z_{M} = \dfrac{1}{M}\sum_{k=0}^{M-1}{z_{k}}
-
-Difference
-^^^^^^^^^^
-
-Create a new image which is the difference of the **two** selected images:
-
-.. math::
- z_{2} = z_{1} - z_{0}
-
-Quadratic difference
-^^^^^^^^^^^^^^^^^^^^
-
-Create a new image which is the quadratic difference of the **two**
-selected images:
-
-.. math::
- z_{2} = \dfrac{z_{1} - z_{0}}{\sqrt{2}}
-
-Product
-^^^^^^^
-
-Create a new image which is the product of all selected images:
-
-.. math::
- z_{M} = \prod_{k=0}^{M-1}{z_{k}}
-
-Division
-^^^^^^^^
-
-Create a new image which is the division of the **two** selected images:
-
-.. math::
- z_{2} = \dfrac{z_{1}}{z_{0}}
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-Constant operations
-^^^^^^^^^^^^^^^^^^^
+ * - Operation
+ - Description
+ * - |sum| Sum
+ - :math:`z_{M} = \sum_{k=0}^{M-1}{z_{k}}`
+ * - |average| Average
+ - :math:`z_{M} = \dfrac{1}{M}\sum_{k=0}^{M-1}{z_{k}}`
+ * - |difference| Difference
+ - :math:`z_{2} = z_{1} - z_{0}`
+ * - |quadratic_difference| Quadratic difference
+ - :math:`z_{2} = \dfrac{z_{1} - z_{0}}{\sqrt{2}}`
+ * - |product| Product
+ - :math:`z_{M} = \prod_{k=0}^{M-1}{z_{k}}`
+ * - |division| Division
+ - :math:`z_{2} = \dfrac{z_{1}}{z_{0}}`
+
+.. |sum| image:: ../../../cdl/data/icons/operations/sum.svg
+ :width: 24px
+ :height: 24px
+
+.. |average| image:: ../../../cdl/data/icons/operations/average.svg
+ :width: 24px
+ :height: 24px
+
+.. |difference| image:: ../../../cdl/data/icons/operations/difference.svg
+ :width: 24px
+ :height: 24px
+
+.. |quadratic_difference| image:: ../../../cdl/data/icons/operations/quadratic_difference.svg
+ :width: 24px
+ :height: 24px
+
+.. |product| image:: ../../../cdl/data/icons/operations/product.svg
+ :width: 24px
+ :height: 24px
+
+.. |division| image:: ../../../cdl/data/icons/operations/division.svg
+ :width: 24px
+ :height: 24px
+
+Operations with a constant
+--------------------------
Create a new image which is the result of a constant operation on each selected image:
@@ -81,77 +78,104 @@ Create a new image which is the result of a constant operation on each selected
* - Operation
- Equation
- * - Addition
+ * - |constant_add| Addition
- :math:`z_{k} = z_{k-1} + conv(c)`
- * - Subtraction
+ * - |constant_substract| Subtraction
- :math:`z_{k} = z_{k-1} - conv(c)`
- * - Multiplication
+ * - |constant_multiply| Multiplication
- :math:`z_{k} = conv(z_{k-1} \times c)`
- * - Division
+ * - |constant_divide| Division
- :math:`z_{k} = conv(\dfrac{z_{k-1}}{c})`
+.. |constant_add| image:: ../../../cdl/data/icons/operations/constant_add.svg
+ :width: 24px
+ :height: 24px
+
+.. |constant_substract| image:: ../../../cdl/data/icons/operations/constant_substract.svg
+ :width: 24px
+ :height: 24px
+
+.. |constant_multiply| image:: ../../../cdl/data/icons/operations/constant_multiply.svg
+ :width: 24px
+ :height: 24px
+
+.. |constant_divide| image:: ../../../cdl/data/icons/operations/constant_divide.svg
+ :width: 24px
+ :height: 24px
+
where :math:`c` is the constant value and :math:`conv` is the conversion function
which handles data type conversion (keeping the same data type as the input image).
-Absolute value
-^^^^^^^^^^^^^^
-
-Create a new image which is the absolute value of each selected image:
+Real and imaginary parts
+------------------------
-.. math::
- z_{k} = |z_{k-1}|
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-Real part
-^^^^^^^^^
+ * - Operation
+ - Description
+ * - |abs| Absolute value
+ - :math:`z_{k} = |z_{k-1}|`
+ * - |re| Real part
+ - :math:`z_{k} = \Re(z_{k-1})`
+ * - |im| Imaginary part
+ - :math:`z_{k} = \Im(z_{k-1})`
-Create a new image which is the real part of each selected image:
-.. math::
- z_{k} = \Re(z_{k-1})
+.. |abs| image:: ../../../cdl/data/icons/operations/abs.svg
+ :width: 24px
+ :height: 24px
-Imaginary part
-^^^^^^^^^^^^^^
+.. |re| image:: ../../../cdl/data/icons/operations/re.svg
+ :width: 24px
+ :height: 24px
-Create a new image which is the imaginary part of each selected image:
+.. |im| image:: ../../../cdl/data/icons/operations/im.svg
+ :width: 24px
+ :height: 24px
-.. math::
- z_{k} = \Im(z_{k-1})
+Data type conversion
+--------------------
-Convert data type
-^^^^^^^^^^^^^^^^^
+The "Convert data type" |convert_dtype| action allows you to convert the data type
+of the selected images.
-Create a new image which is the result of converting data type of each
-selected image.
+.. |convert_dtype| image:: ../../../cdl/data/icons/operations/convert_dtype.svg
+ :width: 24px
+ :height: 24px
.. note::
Data type conversion relies on :py:func:`numpy.ndarray.astype` function with
the default parameters (`casting='unsafe'`).
-Exponential
-^^^^^^^^^^^
-
-Create a new image which is the exponential of each selected image:
+Basic mathematical functions
+----------------------------
-.. math::
- z_{k} = \exp(z_{k-1})
-
-Logarithm (base 10)
-^^^^^^^^^^^^^^^^^^^
-
-Create a new image which is the base 10 logarithm of each selected image:
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-.. math::
- z_{k} = \log_{10}(z_{k-1})
+ * - Function
+ - Description
+ * - |exp| Exponential
+ - :math:`z_{k} = \exp(z_{k-1})`
+ * - |log10| Logarithm (base 10)
+ - :math:`z_{k} = \log_{10}(z_{k-1})`
+ * - Log10(z+n)
+ - :math:`z_{k} = \log_{10}(z_{k-1}+n)` (avoid Log10(0) on image background)
-Log10(z+n)
-^^^^^^^^^^
+.. |exp| image:: ../../../cdl/data/icons/operations/exp.svg
+ :width: 24px
+ :height: 24px
-Create a new image which is the Log10(z+n) of each selected image
-(avoid Log10(0) on image background):
+.. |log10| image:: ../../../cdl/data/icons/operations/log10.svg
+ :width: 24px
+ :height: 24px
-.. math::
- z_{k} = \log_{10}(z_{k-1}+n)
+Other operations
+----------------
Flat-field correction
^^^^^^^^^^^^^^^^^^^^^
@@ -230,12 +254,24 @@ Radial profile extraction
* - Y
- Y coordinate of the center (if user-defined), in pixels
-Distribute on a grid
-^^^^^^^^^^^^^^^^^^^^
-
-Distribute selected images on a regular grid.
-
-Reset image positions
-^^^^^^^^^^^^^^^^^^^^^
+Distribute images along a grid
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Reset selected image positions to first image (x0, y0) coordinates.
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
+
+ * - Feature
+ - Description
+ * - |distribute_on_grid| Distribute on a grid
+ - Distribute selected images on a regular grid
+ * - |reset_positions| Reset image positions
+ - Reset the positions of the selected images to first image (x0, y0) coordinates
+
+.. |distribute_on_grid| image:: ../../../cdl/data/icons/operations/distribute_on_grid.svg
+ :width: 24px
+ :height: 24px
+
+.. |reset_positions| image:: ../../../cdl/data/icons/operations/reset_positions.svg
+ :width: 24px
+ :height: 24px
diff --git a/doc/features/signal/menu_operations.rst b/doc/features/signal/menu_operations.rst
index 68a263c8..43be532f 100644
--- a/doc/features/signal/menu_operations.rst
+++ b/doc/features/signal/menu_operations.rst
@@ -21,150 +21,183 @@ The "Operations" menu allows you to perform various operations on the
selected signals, such as arithmetic operations, peak detection, or
convolution.
-Sum
-^^^
+Basic arithmetic operations
+---------------------------
-Create a new signal which is the sum of all selected signals:
-
-.. math::
- y_{M} = \sum_{k=0}^{M-1}{y_{k}}
-
-Average
-^^^^^^^
-
-Create a new signal which is the average of all selected signals:
-
-.. math::
- y_{M} = \dfrac{1}{M}\sum_{k=0}^{M-1}{y_{k}}
-
-Difference
-^^^^^^^^^^
-
-Create a new signal which is the difference of the **two** selected signals:
-
-.. math::
- y_{2} = y_{1} - y_{0}
-
-Product
-^^^^^^^
-
-Create a new signal which is the product of all selected signals:
-
-.. math::
- y_{M} = \prod_{k=0}^{M-1}{y_{k}}
-
-Division
-^^^^^^^^
-
-Create a new signal which is the division of the **two** selected signals:
-
-.. math::
- y_{2} = \dfrac{y_{1}}{y_{0}}
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-Constant operations
-^^^^^^^^^^^^^^^^^^^
+ * - Operation
+ - Description
+ * - |sum| Sum
+ - :math:`y_{M} = \sum_{k=0}^{M-1}{y_{k}}`
+ * - |average| Average
+ - :math:`y_{M} = \dfrac{1}{M}\sum_{k=0}^{M-1}{y_{k}}`
+ * - |difference| Difference
+ - :math:`y_{2} = y_{1} - y_{0}`
+ * - |product| Product
+ - :math:`y_{M} = \prod_{k=0}^{M-1}{y_{k}}`
+ * - |division| Division
+ - :math:`y_{2} = \dfrac{y_{1}}{y_{0}}`
+
+.. |sum| image:: ../../../cdl/data/icons/operations/sum.svg
+ :width: 24px
+ :height: 24px
+
+.. |average| image:: ../../../cdl/data/icons/operations/average.svg
+ :width: 24px
+ :height: 24px
+
+.. |difference| image:: ../../../cdl/data/icons/operations/difference.svg
+ :width: 24px
+ :height: 24px
+
+.. |product| image:: ../../../cdl/data/icons/operations/product.svg
+ :width: 24px
+ :height: 24px
+
+.. |division| image:: ../../../cdl/data/icons/operations/division.svg
+ :width: 24px
+ :height: 24px
+
+Operations with a constant
+--------------------------
Create a new signal which is the result of a constant operation on each selected signal:
.. list-table::
:header-rows: 1
- :widths: 25, 75
+ :widths: 40, 60
* - Operation
- Description
- * - Addition
+ * - |constant_add| Addition
- :math:`y_{k} = y_{k-1} + c`
- * - Subtraction
+ * - |constant_substract| Subtraction
- :math:`y_{k} = y_{k-1} - c`
- * - Multiplication
+ * - |constant_multiply| Multiplication
- :math:`y_{k} = y_{k-1} \times c`
- * - Division
+ * - |constant_divide| Division
- :math:`y_{k} = \dfrac{y_{k-1}}{c}`
-Absolute value
-^^^^^^^^^^^^^^
+.. |constant_add| image:: ../../../cdl/data/icons/operations/constant_add.svg
+ :width: 24px
+ :height: 24px
+
+.. |constant_substract| image:: ../../../cdl/data/icons/operations/constant_substract.svg
+ :width: 24px
+ :height: 24px
-Create a new signal which is the absolute value of each selected signal:
+.. |constant_multiply| image:: ../../../cdl/data/icons/operations/constant_multiply.svg
+ :width: 24px
+ :height: 24px
-.. math::
- y_{k} = |y_{k-1}|
+.. |constant_divide| image:: ../../../cdl/data/icons/operations/constant_divide.svg
+ :width: 24px
+ :height: 24px
-Real part
-^^^^^^^^^
+Real and imaginary parts
+------------------------
-Create a new signal which is the real part of each selected signal:
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
+
+ * - Operation
+ - Description
+ * - |abs| Absolute value
+ - :math:`y_{k} = |y_{k-1}|`
+ * - |re| Real part
+ - :math:`y_{k} = \Re(y_{k-1})`
+ * - |im| Imaginary part
+ - :math:`y_{k} = \Im(y_{k-1})`
-.. math::
- y_{k} = \Re(y_{k-1})
+.. |abs| image:: ../../../cdl/data/icons/operations/abs.svg
+ :width: 24px
+ :height: 24px
-Imaginary part
-^^^^^^^^^^^^^^
+.. |re| image:: ../../../cdl/data/icons/operations/re.svg
+ :width: 24px
+ :height: 24px
-Create a new signal which is the imaginary part of each selected signal:
+.. |im| image:: ../../../cdl/data/icons/operations/im.svg
+ :width: 24px
+ :height: 24px
-.. math::
- y_{k} = \Im(y_{k-1})
+Data type conversion
+--------------------
-Convert data type
-^^^^^^^^^^^^^^^^^
+The "Convert data type" |convert_dtype| action allows you to convert the data type
+of the selected signals.
-Create a new signal which is the result of converting data type of each selected signal.
+.. |convert_dtype| image:: ../../../cdl/data/icons/operations/convert_dtype.svg
+ :width: 24px
+ :height: 24px
.. note::
Data type conversion relies on :py:func:`numpy.ndarray.astype` function with
the default parameters (`casting='unsafe'`).
-Exponential
-^^^^^^^^^^^
+Basic mathematical functions
+----------------------------
-Create a new signal which is the exponential of each selected signal:
-
-.. math::
- y_{k} = \exp(y_{k-1})
-
-Logarithm (base 10)
-^^^^^^^^^^^^^^^^^^^
-
-Create a new signal which is the base 10 logarithm of each selected signal:
-
-.. math::
- y_{k} = \log_{10}(y_{k-1})
-
-Power
-^^^^^
-
-Create a new signal which is the power of each selected signal:
-
-.. math::
- y_{k} = y_{k-1}^{n}
-
-Square root
-^^^^^^^^^^^
-
-Create a new signal which is the square root of each selected signal:
-
-.. math::
- y_{k} = \sqrt{y_{k-1}}
-
-Derivative
-^^^^^^^^^^
-
-Create a new signal which is the derivative of each selected signal.
-
-Derivative is calculated using `numpy.gradient `_ function.
-
-Integral
-^^^^^^^^
-
-Create a new signal which is the integral of each selected signal.
-
-Integral is calculated using `scipy.integrate.cumulative_trapezoid `_ function.
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-Convolution
-^^^^^^^^^^^
+ * - Function
+ - Description
+ * - |exp| Exponential
+ - :math:`y_{k} = \exp(y_{k-1})`
+ * - |log10| Logarithm (base 10)
+ - :math:`y_{k} = \log_{10}(y_{k-1})`
+ * - |power| Power
+ - :math:`y_{k} = y_{k-1}^{n}`
+ * - |sqrt| Square root
+ - :math:`y_{k} = \sqrt{y_{k-1}}`
+
+.. |exp| image:: ../../../cdl/data/icons/operations/exp.svg
+ :width: 24px
+ :height: 24px
+
+.. |log10| image:: ../../../cdl/data/icons/operations/log10.svg
+ :width: 24px
+ :height: 24px
+
+.. |power| image:: ../../../cdl/data/icons/operations/power.svg
+ :width: 24px
+ :height: 24px
+
+.. |sqrt| image:: ../../../cdl/data/icons/operations/sqrt.svg
+ :width: 24px
+ :height: 24px
+
+Other mathematical operations
+-----------------------------
-Create a new signal which is the convolution of each selected signal
-with respect to another signal.
+.. list-table::
+ :header-rows: 1
+ :widths: 40, 60
-This feature is based on SciPy's `scipy.signal.convolve `_ function.
+ * - Operation
+ - Implementation
+ * - |derivative| Derivative
+ - Based on `numpy.gradient `_
+ * - |integral| Integral
+ - Based on `scipy.integrate.cumulative_trapezoid `_
+ * - |convolution| Convolution
+ - Based on `scipy.signal.convolve `_
+
+.. |derivative| image:: ../../../cdl/data/icons/operations/derivative.svg
+ :width: 24px
+ :height: 24px
+
+.. |integral| image:: ../../../cdl/data/icons/operations/integral.svg
+ :width: 24px
+ :height: 24px
+
+.. |convolution| image:: ../../../cdl/data/icons/operations/convolution.svg
+ :width: 24px
+ :height: 24px
diff --git a/doc/images/settings.png b/doc/images/settings.png
index fd2c0b7d..7c823f25 100644
Binary files a/doc/images/settings.png and b/doc/images/settings.png differ
diff --git a/doc/images/shots/i_beautiful.png b/doc/images/shots/i_beautiful.png
index 6c271c18..f68a6782 100644
Binary files a/doc/images/shots/i_beautiful.png and b/doc/images/shots/i_beautiful.png differ
diff --git a/doc/images/shots/i_operation.png b/doc/images/shots/i_operation.png
index 774b6df6..1c658af8 100644
Binary files a/doc/images/shots/i_operation.png and b/doc/images/shots/i_operation.png differ
diff --git a/doc/images/shots/s_beautiful.png b/doc/images/shots/s_beautiful.png
index 1da470e2..9e4673c1 100644
Binary files a/doc/images/shots/s_beautiful.png and b/doc/images/shots/s_beautiful.png differ
diff --git a/doc/locale/fr/LC_MESSAGES/api/algorithms.po b/doc/locale/fr/LC_MESSAGES/api/algorithms.po
index 904422a5..e19186d3 100644
--- a/doc/locale/fr/LC_MESSAGES/api/algorithms.po
+++ b/doc/locale/fr/LC_MESSAGES/api/algorithms.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-26 18:24+0200\n"
+"POT-Creation-Date: 2024-06-19 18:40+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.13.0\n"
#: cdl.algorithms:2 of
msgid "Algorithms (:mod:`cdl.algorithms`)"
@@ -38,8 +38,8 @@ msgstr ""
msgid ""
"The :mod:`cdl.algorithms` package is the main entry point for the DataLab"
" algorithms when manipulating NumPy arrays. See the "
-":mod:`cdl.computation` package for algorithms that operate directly "
-"on DataLab objects (i.e. :class:`cdl.obj.SignalObj` and "
+":mod:`cdl.computation` package for algorithms that operate directly on "
+"DataLab objects (i.e. :class:`cdl.obj.SignalObj` and "
":class:`cdl.obj.ImageObj`)."
msgstr ""
"Le module :mod:`cdl.algorithms` est le point d'entrée principal pour les "
@@ -84,9 +84,9 @@ msgstr ":mod:`cdl.algorithms.fit` : Algorithmes de régression"
msgid "Signal Processing Algorithms"
msgstr "Algorithmes de traitement du signal"
-#: cdl.algorithms.signal.moving_average:1 of
-msgid "Compute moving average."
-msgstr "Calculer la moyenne mobile."
+#: cdl.algorithms.image.normalize:1 cdl.algorithms.signal.normalize:1 of
+msgid "Normalize input array to a given parameter."
+msgstr "Normaliser le tableau d'entrée à un paramètre donné."
#: cdl.algorithms.coordinates.array_circle_to_center_radius
#: cdl.algorithms.coordinates.array_circle_to_diameter
@@ -112,31 +112,30 @@ msgstr "Calculer la moyenne mobile."
#: cdl.algorithms.image.phase_spectrum cdl.algorithms.image.psd
#: cdl.algorithms.image.remove_overlapping_disks
#: cdl.algorithms.image.scale_data_to_min_max cdl.algorithms.signal.bandwidth
-#: cdl.algorithms.signal.contrast cdl.algorithms.signal.derivative
-#: cdl.algorithms.signal.enob cdl.algorithms.signal.fft1d
+#: cdl.algorithms.signal.contrast cdl.algorithms.signal.enob
+#: cdl.algorithms.signal.fft1d
#: cdl.algorithms.signal.find_nearest_zero_point_idx
#: cdl.algorithms.signal.find_x_at_value cdl.algorithms.signal.fw1e2
#: cdl.algorithms.signal.fwhm cdl.algorithms.signal.ifft1d
#: cdl.algorithms.signal.interpolate cdl.algorithms.signal.magnitude_spectrum
-#: cdl.algorithms.signal.moving_average cdl.algorithms.signal.normalize
-#: cdl.algorithms.signal.peak_indexes cdl.algorithms.signal.phase_spectrum
-#: cdl.algorithms.signal.psd cdl.algorithms.signal.sampling_period
-#: cdl.algorithms.signal.sampling_rate cdl.algorithms.signal.sfdr
-#: cdl.algorithms.signal.sinad cdl.algorithms.signal.sinus_frequency
-#: cdl.algorithms.signal.sinusoidal_fit cdl.algorithms.signal.snr
-#: cdl.algorithms.signal.sort_frequencies cdl.algorithms.signal.thd
-#: cdl.algorithms.signal.windowing cdl.algorithms.signal.xpeak of
+#: cdl.algorithms.signal.normalize cdl.algorithms.signal.peak_indexes
+#: cdl.algorithms.signal.phase_spectrum cdl.algorithms.signal.psd
+#: cdl.algorithms.signal.sampling_period cdl.algorithms.signal.sampling_rate
+#: cdl.algorithms.signal.sfdr cdl.algorithms.signal.sinad
+#: cdl.algorithms.signal.sinus_frequency cdl.algorithms.signal.sinusoidal_fit
+#: cdl.algorithms.signal.snr cdl.algorithms.signal.sort_frequencies
+#: cdl.algorithms.signal.thd cdl.algorithms.signal.windowing
+#: cdl.algorithms.signal.xpeak of
msgid "Parameters"
msgstr "Paramètres"
-#: cdl.algorithms.signal.contrast:3 cdl.algorithms.signal.moving_average:3
-#: cdl.algorithms.signal.normalize:3 of
+#: cdl.algorithms.signal.contrast:3 cdl.algorithms.signal.normalize:3 of
msgid "Input array"
msgstr "Tableau d'entrée"
-#: cdl.algorithms.signal.moving_average:4 of
-msgid "Window size"
-msgstr "Taille de la fenêtre"
+#: cdl.algorithms.signal.normalize:4 of
+msgid "Normalization parameter. Defaults to \"maximum\""
+msgstr "Paramètre de normalisation. Par défaut : \"maximum\""
#: cdl.algorithms.coordinates.array_circle_to_center_radius
#: cdl.algorithms.coordinates.array_circle_to_diameter
@@ -162,35 +161,35 @@ msgstr "Taille de la fenêtre"
#: cdl.algorithms.image.phase_spectrum cdl.algorithms.image.psd
#: cdl.algorithms.image.remove_overlapping_disks
#: cdl.algorithms.image.scale_data_to_min_max cdl.algorithms.signal.bandwidth
-#: cdl.algorithms.signal.contrast cdl.algorithms.signal.derivative
-#: cdl.algorithms.signal.enob cdl.algorithms.signal.fft1d
+#: cdl.algorithms.signal.contrast cdl.algorithms.signal.enob
+#: cdl.algorithms.signal.fft1d
#: cdl.algorithms.signal.find_nearest_zero_point_idx
#: cdl.algorithms.signal.find_x_at_value cdl.algorithms.signal.fw1e2
#: cdl.algorithms.signal.fwhm cdl.algorithms.signal.ifft1d
#: cdl.algorithms.signal.interpolate cdl.algorithms.signal.magnitude_spectrum
-#: cdl.algorithms.signal.moving_average cdl.algorithms.signal.normalize
-#: cdl.algorithms.signal.peak_indexes cdl.algorithms.signal.phase_spectrum
-#: cdl.algorithms.signal.psd cdl.algorithms.signal.sampling_period
-#: cdl.algorithms.signal.sampling_rate cdl.algorithms.signal.sfdr
-#: cdl.algorithms.signal.sinad cdl.algorithms.signal.sinus_frequency
-#: cdl.algorithms.signal.sinusoidal_fit cdl.algorithms.signal.snr
-#: cdl.algorithms.signal.sort_frequencies cdl.algorithms.signal.thd
-#: cdl.algorithms.signal.windowing cdl.algorithms.signal.xpeak of
+#: cdl.algorithms.signal.normalize cdl.algorithms.signal.peak_indexes
+#: cdl.algorithms.signal.phase_spectrum cdl.algorithms.signal.psd
+#: cdl.algorithms.signal.sampling_period cdl.algorithms.signal.sampling_rate
+#: cdl.algorithms.signal.sfdr cdl.algorithms.signal.sinad
+#: cdl.algorithms.signal.sinus_frequency cdl.algorithms.signal.sinusoidal_fit
+#: cdl.algorithms.signal.snr cdl.algorithms.signal.sort_frequencies
+#: cdl.algorithms.signal.thd cdl.algorithms.signal.windowing
+#: cdl.algorithms.signal.xpeak of
msgid "Returns"
msgstr "Retourne"
-#: cdl.algorithms.signal.moving_average:6 of
-msgid "Moving average"
-msgstr "Moyenne mobile"
+#: cdl.algorithms.image.normalize:6 cdl.algorithms.signal.normalize:6 of
+msgid "Normalized array"
+msgstr "Tableau normalisé"
-#: cdl.algorithms.signal.derivative:1 of
-msgid "Compute numerical derivative."
-msgstr "Calculer la dérivée numérique."
+#: cdl.algorithms.signal.fft1d:1 of
+msgid "Compute FFT on X,Y data."
+msgstr "Calculer la FFT sur les données X,Y."
-#: cdl.algorithms.signal.derivative:3 cdl.algorithms.signal.fft1d:3
-#: cdl.algorithms.signal.find_x_at_value:4 cdl.algorithms.signal.ifft1d:3
-#: cdl.algorithms.signal.interpolate:3
-#: cdl.algorithms.signal.magnitude_spectrum:3 cdl.algorithms.signal.psd:3
+#: cdl.algorithms.signal.fft1d:3 cdl.algorithms.signal.find_x_at_value:4
+#: cdl.algorithms.signal.ifft1d:3 cdl.algorithms.signal.interpolate:3
+#: cdl.algorithms.signal.magnitude_spectrum:3
+#: cdl.algorithms.signal.phase_spectrum:3 cdl.algorithms.signal.psd:3
#: cdl.algorithms.signal.sampling_period:3
#: cdl.algorithms.signal.sampling_rate:3 cdl.algorithms.signal.sinusoidal_fit:3
#: cdl.algorithms.signal.sort_frequencies:3 cdl.algorithms.signal.windowing:3
@@ -198,39 +197,18 @@ msgstr "Calculer la dérivée numérique."
msgid "X data"
msgstr "Données X"
-#: cdl.algorithms.signal.derivative:4 cdl.algorithms.signal.fft1d:4
+#: cdl.algorithms.signal.fft1d:4
#: cdl.algorithms.signal.find_nearest_zero_point_idx:3
#: cdl.algorithms.signal.find_x_at_value:5 cdl.algorithms.signal.ifft1d:4
#: cdl.algorithms.signal.interpolate:4
#: cdl.algorithms.signal.magnitude_spectrum:4
-#: cdl.algorithms.signal.phase_spectrum:3 cdl.algorithms.signal.psd:4
+#: cdl.algorithms.signal.phase_spectrum:4 cdl.algorithms.signal.psd:4
#: cdl.algorithms.signal.sinusoidal_fit:4
#: cdl.algorithms.signal.sort_frequencies:4 cdl.algorithms.signal.windowing:4
#: cdl.algorithms.signal.xpeak:4 of
msgid "Y data"
msgstr "Données Y"
-#: cdl.algorithms.signal.derivative:6 of
-msgid "Numerical derivative"
-msgstr "Dérivée numérique"
-
-#: cdl.algorithms.image.normalize:1 cdl.algorithms.signal.normalize:1 of
-msgid "Normalize input array to a given parameter."
-msgstr "Normaliser le tableau d'entrée à un paramètre donné."
-
-#: cdl.algorithms.signal.normalize:4 of
-#, fuzzy
-msgid "Normalization parameter. Defaults to \"maximum\""
-msgstr "Paramètre de la fenêtre de Kaiser. Par défaut : 14.0."
-
-#: cdl.algorithms.image.normalize:6 cdl.algorithms.signal.normalize:6 of
-msgid "Normalized array"
-msgstr "Tableau normalisé"
-
-#: cdl.algorithms.signal.fft1d:1 of
-msgid "Compute FFT on X,Y data."
-msgstr "Calculer la FFT sur les données X,Y."
-
#: cdl.algorithms.signal.fft1d:5 cdl.algorithms.signal.ifft1d:5 of
msgid "Shift the zero frequency to the center of the spectrum. Defaults to True."
msgstr "Décaler la fréquence nulle vers le centre du spectre. Par défaut : True."
@@ -246,28 +224,27 @@ msgstr "Calculer la iFFT sur les données X,Y."
#: cdl.algorithms.signal.magnitude_spectrum:1 of
msgid "Compute magnitude spectrum."
-msgstr ""
+msgstr "Calculer le spectre de magnitude."
#: cdl.algorithms.signal.magnitude_spectrum:5 cdl.algorithms.signal.psd:5 of
-#, fuzzy
msgid "Use log scale. Defaults to False."
-msgstr "Paramètre de la fenêtre de Tukey. Par défaut : 0.5."
+msgstr "Utiliser une échelle logarithmique. Par défaut : False."
#: cdl.algorithms.signal.magnitude_spectrum:7 of
-msgid "Magnitude spectrum"
-msgstr ""
+msgid "Magnitude spectrum (X data, Y data)"
+msgstr "Spectre de magnitude (données X, Y)"
#: cdl.algorithms.signal.phase_spectrum:1 of
msgid "Compute phase spectrum."
-msgstr ""
+msgstr "Calculer le spectre de phase."
-#: cdl.algorithms.signal.phase_spectrum:5 of
-msgid "Phase spectrum (in degrees)"
-msgstr ""
+#: cdl.algorithms.signal.phase_spectrum:6 of
+msgid "Phase spectrum in degrees (X data, Y data)"
+msgstr "Spectre de phase en degrés (données X, Y)"
#: cdl.algorithms.signal.psd:1 of
msgid "Compute Power Spectral Density (PSD), using the Welch method."
-msgstr ""
+msgstr "Calculer la densité spectrale de puissance (PSD), en utilisant la méthode de Welch."
#: cdl.algorithms.coordinates.circle_to_center_radius
#: cdl.algorithms.coordinates.circle_to_diameter
@@ -347,9 +324,8 @@ msgid "New X data"
msgstr "Nouvelles données X"
#: cdl.algorithms.signal.interpolate:6 of
-#, fuzzy
msgid "Interpolation method"
-msgstr "Interpoler les données."
+msgstr "Méthode d'interpolation"
#: cdl.algorithms.signal.interpolate:7 of
msgid ""
@@ -363,9 +339,8 @@ msgstr ""
"'pchip'."
#: cdl.algorithms.signal.interpolate:12 of
-#, fuzzy
msgid "Interpolated Y data"
-msgstr "Interpoler les données."
+msgstr "Données Y interpolées"
#: cdl.algorithms.signal.windowing:1 of
msgid "Apply windowing to the input data."
@@ -373,7 +348,7 @@ msgstr "Appliquer une fenêtre aux données d'entrée."
#: cdl.algorithms.signal.windowing:5 of
msgid "Windowing function. Defaults to \"hamming\"."
-msgstr ""
+msgstr "Fonction de fenêtrage. Par défaut : \"hamming\"."
#: cdl.algorithms.signal.windowing:6 of
msgid "Tukey window parameter. Defaults to 0.5."
@@ -393,204 +368,194 @@ msgstr "Données Y fenêtrées"
#: cdl.algorithms.signal.find_nearest_zero_point_idx:1 of
msgid "Find the x indexes where the corresponding y is the closest to zero"
-msgstr ""
+msgstr "Rechercher les indices x où le y correspondant est le plus proche de zéro"
#: cdl.algorithms.signal.find_nearest_zero_point_idx:5 of
msgid "Indexes of the points right before or at zero crossing"
-msgstr ""
+msgstr "Indices des points juste avant ou au croisement à zéro"
#: cdl.algorithms.signal.find_x_at_value:1 of
msgid ""
"Find the x value where the y value is the closest to the given value "
"using linear interpolation to deduce the precise x value."
-msgstr ""
+msgstr "Rechercher la valeur x où la valeur y est la plus proche de la valeur donnée en utilisant une interpolation linéaire pour déduire la valeur x précise."
#: cdl.algorithms.signal.find_x_at_value:6 of
msgid "Value to find"
-msgstr ""
+msgstr "Valeur à rechercher"
#: cdl.algorithms.signal.find_x_at_value:8 of
msgid "X value where the Y value is the closest to the given value"
-msgstr ""
+msgstr "Valeur X où la valeur Y est la plus proche de la valeur donnée"
#: cdl.algorithms.signal.bandwidth:1 of
msgid "Compute the bandwidth of the signal at a given level."
-msgstr ""
+msgstr "Calculer la largeur de bande du signal à un niveau donné."
#: cdl.algorithms.signal.bandwidth:3 cdl.algorithms.signal.fw1e2:3
#: cdl.algorithms.signal.fwhm:3 of
-#, fuzzy
msgid "X,Y data"
-msgstr "Données Y"
+msgstr "Données X,Y"
#: cdl.algorithms.signal.bandwidth:4 of
msgid "Level in dB at which the bandwidth is computed. Defaults to 3.0."
-msgstr ""
+msgstr "Niveau en dB auquel la largeur de bande est calculée. Par défaut : 3.0."
#: cdl.algorithms.signal.bandwidth:6 of
-#, fuzzy
msgid "segment coordinates"
-msgstr "Liste des coordonnées"
+msgstr "coordonnées du segment"
#: cdl.algorithms.signal.sinusoidal_model:1 of
msgid "Sinusoidal model function."
-msgstr ""
+msgstr "Fonction de modèle sinusoïdal."
#: cdl.algorithms.signal.sinusoidal_fit:1 of
-#, fuzzy
msgid "Fit a sinusoidal model to the input data."
-msgstr "Appliquer une fenêtre aux données d'entrée."
+msgstr "Adapter un modèle sinusoïdal aux données d'entrée."
#: cdl.algorithms.signal.sinusoidal_fit:6 of
msgid ""
"A tuple containing the fit parameters (amplitude, frequency, phase, "
"offset) and the residuals"
-msgstr ""
+msgstr "Un tuple contenant les paramètres d'ajustement (amplitude, fréquence, phase, décalage) et les résidus"
#: cdl.algorithms.signal.sinus_frequency:1 of
msgid "Compute the frequency of a sinusoidal signal."
-msgstr ""
+msgstr "Calculer la fréquence d'un signal sinusoïdal."
#: cdl.algorithms.signal.enob:3 cdl.algorithms.signal.sfdr:3
#: cdl.algorithms.signal.sinad:3 cdl.algorithms.signal.sinus_frequency:3
#: cdl.algorithms.signal.snr:3 cdl.algorithms.signal.thd:3 of
-#, fuzzy
msgid "x signal data"
-msgstr "Données mises à l'échelle"
+msgstr "données x du signal"
#: cdl.algorithms.signal.enob:4 cdl.algorithms.signal.sfdr:4
#: cdl.algorithms.signal.sinad:4 cdl.algorithms.signal.sinus_frequency:4
#: cdl.algorithms.signal.snr:4 cdl.algorithms.signal.thd:4 of
-#, fuzzy
msgid "y signal data"
-msgstr "Données mises à l'échelle"
+msgstr "données y du signal"
#: cdl.algorithms.signal.sinus_frequency:6 of
msgid "Frequency of the sinusoidal signal"
-msgstr ""
+msgstr "Fréquence du signal sinusoïdal"
#: cdl.algorithms.signal.enob:1 of
msgid "Compute Effective Number of Bits (ENOB)."
-msgstr ""
+msgstr "Calculer le nombre effectif de bits (ENOB)."
#: cdl.algorithms.signal.enob:5 cdl.algorithms.signal.sfdr:5
#: cdl.algorithms.signal.sinad:5 cdl.algorithms.signal.snr:5
#: cdl.algorithms.signal.thd:5 of
msgid "Full scale(V). Defaults to 1.0."
-msgstr ""
+msgstr "Pleine échelle (V). Par défaut : 1.0."
#: cdl.algorithms.signal.enob:7 of
msgid "Effective Number of Bits (ENOB)"
-msgstr ""
+msgstr "Nombre effectif de bits (ENOB)"
#: cdl.algorithms.signal.sinad:1 of
msgid "Compute Signal-to-Noise and Distortion Ratio (SINAD)."
-msgstr ""
+msgstr "Calculer le rapport signal/bruit et distorsion (SINAD)."
#: cdl.algorithms.signal.sfdr:6 cdl.algorithms.signal.sinad:6
#: cdl.algorithms.signal.snr:6 cdl.algorithms.signal.thd:6 of
msgid ""
"Unit of the input data. Valid values are 'dBc' and 'dBFS'. Defaults to "
"'dBc'."
-msgstr ""
+msgstr "Unité des données d'entrée. Les valeurs valides sont 'dBc' et 'dBFS'. Par défaut : 'dBc'."
#: cdl.algorithms.signal.sinad:9 of
msgid "Signal-to-Noise and Distortion Ratio (SINAD)"
-msgstr ""
+msgstr "Rapport signal/bruit et distorsion (SINAD)"
#: cdl.algorithms.signal.thd:1 of
msgid "Compute Total Harmonic Distortion (THD)."
-msgstr ""
+msgstr "Calculer la distorsion harmonique totale (THD)."
#: cdl.algorithms.signal.thd:8 of
-#, fuzzy
msgid "Number of harmonics to consider. Defaults to 5."
-msgstr "Paramètre de la fenêtre de Tukey. Par défaut : 0.5."
+msgstr "Nombre d'harmoniques à considérer. Par défaut : 5."
#: cdl.algorithms.signal.thd:10 of
msgid "Total Harmonic Distortion (THD)"
-msgstr ""
+msgstr "Distorsion harmonique totale (THD)"
#: cdl.algorithms.signal.sfdr:1 of
msgid "Compute Spurious-Free Dynamic Range (SFDR)."
-msgstr ""
+msgstr "Calculer la plage dynamique sans spurious (SFDR)."
#: cdl.algorithms.signal.sfdr:9 of
msgid "Spurious-Free Dynamic Range (SFDR)"
-msgstr ""
+msgstr "Plage dynamique sans spurious (SFDR)"
#: cdl.algorithms.signal.snr:1 of
msgid "Compute Signal-to-Noise Ratio (SNR)."
-msgstr ""
+msgstr "Calculer le rapport signal/bruit (SNR)."
#: cdl.algorithms.signal.snr:9 of
msgid "Signal-to-Noise Ratio (SNR)"
-msgstr ""
+msgstr "Rapport signal/bruit (SNR)"
#: cdl.algorithms.signal.fwhm:1 of
msgid "Compute Full Width at Half Maximum (FWHM) of the input data"
-msgstr ""
+msgstr "Calculer la largeur totale à mi-hauteur (FWHM) des données d'entrée"
#: cdl.algorithms.signal.fwhm:4 of
msgid ""
"Calculation method. Two types of methods are supported: a zero-crossing "
"method and fitting methods (based on various models: Gauss, Lorentz, "
"Voigt). Defaults to \"zero-crossing\"."
-msgstr ""
+msgstr "Méthode de calcul. Deux types de méthodes sont pris en charge : une méthode de croisement à zéro et des méthodes d'ajustement (basées sur divers modèles : Gauss, Lorentz, Voigt). Par défaut : \"zero-crossing\"."
#: cdl.algorithms.signal.fwhm:7 of
msgid ""
"Lower X bound for the fitting. Defaults to None (no lower bound, i.e. the"
" fitting starts from the first point)."
-msgstr ""
+msgstr "Borne X inférieure pour l'ajustement. Par défaut : None (pas de borne inférieure, c'est-à-dire que l'ajustement commence à partir du premier point)."
#: cdl.algorithms.signal.fwhm:9 of
msgid ""
"Upper X bound for the fitting. Defaults to None (no upper bound, i.e. the"
" fitting ends at the last point)"
-msgstr ""
+msgstr "Borne X supérieure pour l'ajustement. Par défaut : None (pas de borne supérieure, c'est-à-dire que l'ajustement se termine au dernier point)"
#: cdl.algorithms.signal.fwhm:12 of
-#, fuzzy
msgid "FWHM segment coordinates"
-msgstr "Liste des coordonnées"
+msgstr "Coordonnées du segment LMH"
#: cdl.algorithms.signal.fw1e2:1 of
msgid ""
"Compute Full Width at 1/e� of the input data (using a Gaussian model "
"fitting)."
-msgstr ""
+msgstr "Calculer la largeur totale à 1/e² des données d'entrée (en utilisant un ajustement de modèle gaussien)."
#: cdl.algorithms.signal.fw1e2:5 of
msgid "FW at 1/e² segment coordinates"
-msgstr ""
+msgstr "Coordonnées du segment LMH à 1/e²"
#: cdl.algorithms.signal.contrast:1 of
-#, fuzzy
msgid "Compute contrast"
-msgstr "Calculer la moyenne mobile."
+msgstr "Calculer le contraste"
#: cdl.algorithms.signal.contrast:5 of
msgid "Contrast"
-msgstr ""
+msgstr "Contraste"
#: cdl.algorithms.signal.sampling_period:1 of
-#, fuzzy
msgid "Compute sampling period"
-msgstr "Calculer la moyenne mobile."
+msgstr "Calculer la période d'échantillonnage"
#: cdl.algorithms.signal.sampling_period:5 of
msgid "Sampling period"
-msgstr ""
+msgstr "Période d'échantillonnage"
#: cdl.algorithms.signal.sampling_rate:1 of
-#, fuzzy
msgid "Compute mean sampling rate"
-msgstr "Calculer la moyenne mobile."
+msgstr "Calculer le taux d'échantillonnage moyen"
#: cdl.algorithms.signal.sampling_rate:5 of
msgid "Sampling rate"
-msgstr ""
+msgstr "Taux d'échantillonnage"
#: cdl.algorithms:31 of
msgid "Image Processing Algorithms"
@@ -629,7 +594,7 @@ msgstr "Données mises à l'échelle"
#: cdl.algorithms.image.normalize:4 of
msgid "Normalization parameter (default: \"maximum\")"
-msgstr ""
+msgstr "Paramètre de normalisation (par défaut : \"maximum\")"
#: cdl.algorithms.image.fft2d:1 of
msgid "Compute FFT of complex array `z`"
@@ -652,54 +617,48 @@ msgid "Inverse FFT of input data"
msgstr "FFT inverse des données d'entrée"
#: cdl.algorithms.image.magnitude_spectrum:1 of
-#, fuzzy
msgid "Compute magnitude spectrum of complex array `z`"
-msgstr "Calculer la FFT du tableau complexe `z`"
+msgstr "Calculer le spectre de magnitude du tableau complexe `z`"
#: cdl.algorithms.image.magnitude_spectrum:4 cdl.algorithms.image.psd:4 of
-#, fuzzy
msgid "Use log scale (default: False)"
-msgstr "Nombre de rayons (par défaut : None)"
+msgstr "Utiliser une échelle logarithmique (par défaut : False)"
#: cdl.algorithms.image.magnitude_spectrum:6 of
-#, fuzzy
msgid "Magnitude spectrum of input data"
-msgstr "FFT inverse des données d'entrée"
+msgstr "Spectre de magnitude des données d'entrée"
#: cdl.algorithms.image.phase_spectrum:1 of
-#, fuzzy
msgid "Compute phase spectrum of complex array `z`"
-msgstr "Calculer la FFT du tableau complexe `z`"
+msgstr "Calculer le spectre de phase du tableau complexe `z`"
#: cdl.algorithms.image.phase_spectrum:5 of
msgid "Phase spectrum of input data (in degrees)"
-msgstr ""
+msgstr "Spectre de phase des données d'entrée (en degrés)"
#: cdl.algorithms.image.psd:1 of
-#, fuzzy
msgid "Compute power spectral density of complex array `z`"
-msgstr "Calculer la FFT inverse du tableau complexe `z`"
+msgstr "Calculer la densité spectrale de puissance du tableau complexe `z`"
#: cdl.algorithms.image.psd:6 of
-#, fuzzy
msgid "Power spectral density of input data"
-msgstr "FFT inverse des données d'entrée"
+msgstr "Densité spectrale de puissance des données d'entrée"
#: cdl.algorithms.image.binning:1 of
msgid "Perform image pixel binning"
msgstr "Effectuer le binning des pixels de l'image"
#: cdl.algorithms.image.binning:4 of
-msgid "Binning factor along x-axis"
-msgstr "Facteur de binning le long de l'axe x"
+msgid "Binning size along x (number of pixels to bin together)"
+msgstr "Binning le long de x (nombre de pixels à biner ensemble)"
#: cdl.algorithms.image.binning:5 of
-msgid "Binning factor along y-axis"
-msgstr "Facteur de binning le long de l'axe y"
+msgid "Binning size along y (number of pixels to bin together)"
+msgstr "Binning le long de y (nombre de pixels à biner ensemble)"
#: cdl.algorithms.image.binning:6 of
msgid "Binning operation"
-msgstr ""
+msgstr "Opération de binning"
#: cdl.algorithms.image.binning:7 of
msgid "Output data type (default: None, i.e. same as input)"
@@ -851,7 +810,7 @@ msgstr ""
#: cdl.algorithms.image.get_contour_shapes:5 of
msgid "Shape to fit. Default is 'ellipse'"
-msgstr ""
+msgstr "Forme à ajuster. Par défaut : 'ellipse'"
#: cdl.algorithms.image.get_contour_shapes:8 of
msgid "Coordinates of shapes"
@@ -1327,55 +1286,3 @@ msgstr "Modèle de régression lorentzien à 1 dimension"
#: cdl.algorithms.fit.VoigtModel:1 of
msgid "1-dimensional Voigt fit model"
msgstr "Modèle de régression Voigt à 1 dimension"
-
-#~ msgid "X,Y data"
-#~ msgstr "Données X,Y"
-
-#~ msgid ""
-#~ "Normalization parameter. Defaults to "
-#~ "\"maximum\". Supported values: 'maximum', "
-#~ "'amplitude', 'area', 'energy'"
-#~ msgstr ""
-#~ "Normalisation du paramètre. Par défaut :"
-#~ " \"maximum\". Valeurs prises en charge "
-#~ ": 'maximum', 'amplitude', 'sum', 'energy'"
-
-#~ msgid ""
-#~ "Interpolation method. Valid values are "
-#~ "'linear', 'spline', 'quadratic', 'cubic', "
-#~ "'barycentric', 'pchip'"
-#~ msgstr ""
-#~ "Méthode d'interpolation. Les valeurs valides"
-#~ " sont 'linear', 'spline', 'quadratic', "
-#~ "'cubic', 'barycentric', 'pchip'"
-
-#~ msgid ""
-#~ "Windowing function type. Defaults to "
-#~ "\"hamming\". Supported values: 'hamming', "
-#~ "'hanning', 'blackman', 'bartlett', 'tukey', "
-#~ "'rectangular'"
-#~ msgstr ""
-#~ "Type de fonction de fenêtrage. Par "
-#~ "défaut : \"hamming\". Valeurs prises en"
-#~ " charge : 'hamming', 'hanning', 'blackman',"
-#~ " 'bartlett', 'tukey', 'rectangular'"
-
-#~ msgid ""
-#~ "Normalization parameter (default: \"maximum\") "
-#~ "Supported values: 'maximum', 'amplitude', "
-#~ "'area', 'energy', 'rms'"
-#~ msgstr ""
-#~ "Normalisation du paramètre. Par défaut :"
-#~ " \"maximum\". Valeurs prises en charge "
-#~ ": 'maximum', 'amplitude', 'sum', 'energy'"
-
-#~ msgid "Binning operation (sum, average, median, min, max)"
-#~ msgstr "Opération de binning (sum, average, median, min, max)"
-
-#~ msgid ""
-#~ "Shape to fit. Valid values: 'circle',"
-#~ " 'ellipse', 'polygon'. (default: 'ellipse')"
-#~ msgstr ""
-#~ "Forme à ajuster. Valeurs valides : "
-#~ "'circle', 'ellipse', 'polygon'. (par défaut"
-#~ " : 'ellipse')"
diff --git a/doc/locale/fr/LC_MESSAGES/features/general/settings.po b/doc/locale/fr/LC_MESSAGES/features/general/settings.po
index 0557ae17..d3a3d4ef 100644
--- a/doc/locale/fr/LC_MESSAGES/features/general/settings.po
+++ b/doc/locale/fr/LC_MESSAGES/features/general/settings.po
@@ -23,17 +23,16 @@ msgstr ""
msgid ""
"Settings of DataLab, the open-source scientific data analysis and "
"visualization platform"
-msgstr ""
+msgstr "Préférences de DataLab, la plateforme open-source d'analyse et de visualisation de données scientifiques"
#: ../../doc/features/general/settings.rst:-1
msgid "DataLab, settings, scientific, data, analysis, visualization, platform"
-msgstr ""
+msgstr "DataLab, préférences, scientifique, données, analyse, visualisation, plateforme"
#: ../../doc/features/general/settings.rst:4
msgid "Settings"
-msgstr ""
+msgstr "Préférences"
#: ../../doc/features/general/settings.rst:12
msgid "Screenshot of the \"Settings\" dialog box."
-msgstr ""
-
+msgstr "Capture d'écran de la boîte de dialogue \"Préférences\"."
diff --git a/doc/locale/fr/LC_MESSAGES/features/general/workspace.po b/doc/locale/fr/LC_MESSAGES/features/general/workspace.po
index 8854465a..72e7e263 100644
--- a/doc/locale/fr/LC_MESSAGES/features/general/workspace.po
+++ b/doc/locale/fr/LC_MESSAGES/features/general/workspace.po
@@ -37,7 +37,7 @@ msgstr "Espace de travail"
#: ../../doc/features/general/workspace.rst:11
msgid "Basic concepts"
-msgstr ""
+msgstr "Concepts de base"
#: ../../doc/features/general/workspace.rst:13
msgid ""
@@ -82,7 +82,7 @@ msgstr "Fenêtre principale de DataLab, au démarrage."
#: ../../doc/features/general/workspace.rst:32
msgid "Internal data model and workspace"
-msgstr ""
+msgstr "Modèle de données interne et espace de travail"
#: ../../doc/features/general/workspace.rst:34
msgid ""
@@ -119,42 +119,35 @@ msgstr ""
"parcourues dans la vue **Propriétés**, avec le bouton **Métadonnées**)."
#: ../../doc/features/general/workspace.rst:47
-#, fuzzy
msgid ""
"The DataLab **Workspace** is defined as the collection of all data sets "
"which are currently loaded in DataLab, in both the **Signals** and "
"**Images** panels."
-msgstr ""
-"L'**Espace de travail** de DataLab est défini comme l'ensemble de tous "
-"les jeux de données qui sont actuellement chargés dans DataLab, dans les "
-"panneaux **Signaux** et **Images**. L'espace de travail peut être "
-"enregistré dans un fichier HDF5, puis rechargé ultérieurement. Il est "
-"également possible d'importer des jeux de données à partir d'un fichier "
-"HDF5 dans l'espace de travail, en utilisant l':ref:`h5browser`."
+msgstr "L'**Espace de travail** de DataLab est défini comme l'ensemble de tous les jeux de données actuellement chargés dans DataLab, dans les panneaux **Signaux** et **Images**."
#: ../../doc/features/general/workspace.rst:51
msgid "Loading and saving the workspace"
-msgstr ""
+msgstr "Chargement et enregistrement de l'espace de travail"
#: ../../doc/features/general/workspace.rst:53
msgid ""
"The following actions are available to manage the workspace from the "
"**File** menu:"
-msgstr ""
+msgstr "Les actions suivantes sont disponibles pour gérer l'espace de travail depuis le menu **Fichier** :"
#: ../../doc/features/general/workspace.rst:55
msgid "**Open HDF5 file**: load a workspace from an HDF5 file."
-msgstr ""
+msgstr "**Ouvrir un fichier HDF5** : charger un espace de travail à partir d'un fichier HDF5."
#: ../../doc/features/general/workspace.rst:57
msgid "**Save to HDF5 file**: save the current workspace to an HDF5 file."
-msgstr ""
+msgstr "**Enregistrer dans un fichier HDF5** : enregistrer l'espace de travail actuel dans un fichier HDF5."
#: ../../doc/features/general/workspace.rst:59
msgid ""
"**Browse HDF5 file**: open the :ref:`h5browser` to explore the content of"
" an HDF5 file and import data sets into the workspace."
-msgstr ""
+msgstr "**Parcourir un fichier HDF5** : ouvrir le :ref:`h5browser` pour explorer le contenu d'un fichier HDF5 et importer des jeux de données dans l'espace de travail."
#: ../../doc/features/general/workspace.rst:64
msgid ""
@@ -168,4 +161,3 @@ msgstr ""
"`.npy` pour les signaux 1D (voir :ref:`open_signal` pour la liste des "
"formats pris en charge), ou `.tiff` ou `.dcm` pour les images 2D (voir "
":ref:`open_image` pour la liste des formats pris en charge)."
-
diff --git a/doc/locale/fr/LC_MESSAGES/features/image/menu_operations.po b/doc/locale/fr/LC_MESSAGES/features/image/menu_operations.po
index a42608c7..6239df37 100644
--- a/doc/locale/fr/LC_MESSAGES/features/image/menu_operations.po
+++ b/doc/locale/fr/LC_MESSAGES/features/image/menu_operations.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-02 10:39+0200\n"
+"POT-Creation-Date: 2024-06-21 16:49+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.13.0\n"
#: ../../doc/features/image/menu_operations.rst:4
msgid "Operations on Images"
@@ -25,14 +25,19 @@ msgstr "Opérations sur les images"
#: ../../doc/features/image/menu_operations.rst:6
msgid "This section describes the operations that can be performed on images."
-msgstr "Cette section décrit les opérations qui peuvent être effectuées sur les images."
+msgstr ""
+"Cette section décrit les opérations qui peuvent être effectuées sur les "
+"images."
#: ../../doc/features/image/menu_operations.rst:10
msgid ""
":ref:`ima-menu-processing` for more information on image processing "
"features, or :ref:`ima-menu-computing` for information on computing "
"features on images."
-msgstr ":ref:`ima-menu-processing` pour plus d'informations sur les fonctionnalités de traitement d'image, ou :ref:`ima-menu-computing` pour des informations sur les fonctionnalités de calcul sur les images."
+msgstr ""
+":ref:`ima-menu-processing` pour plus d'informations sur les "
+"fonctionnalités de traitement d'image, ou :ref:`ima-menu-computing` pour "
+"des informations sur les fonctionnalités de calcul sur les images."
#: ../../doc/features/image/menu_operations.rst:15
msgid "Screenshot of the \"Operations\" menu."
@@ -42,7 +47,9 @@ msgstr "Capture d'écran du menu \"Opérations\"."
msgid ""
"When the \"Image Panel\" is selected, the menus and toolbars are updated "
"to provide image-related actions."
-msgstr "Lorsque le \"Panneau Image\" est sélectionné, les menus et barres d'outils sont mis à jour pour fournir les actions liées aux images."
+msgstr ""
+"Lorsque le \"Panneau Image\" est sélectionné, les menus et barres "
+"d'outils sont mis à jour pour fournir les actions liées aux images."
#: ../../doc/features/image/menu_operations.rst:20
msgid ""
@@ -56,101 +63,100 @@ msgstr ""
"des images."
#: ../../doc/features/image/menu_operations.rst:25
-msgid "Sum"
-msgstr "Addition"
+msgid "Basic arithmetic operations"
+msgstr "Opérations arithmétiques de base"
-#: ../../doc/features/image/menu_operations.rst:27
-msgid "Create a new image which is the sum of all selected images:"
-msgstr "Crée une image à partir de la somme des images sélectionnées :"
+#: ../../doc/features/image/menu_operations.rst:31
+#: ../../doc/features/image/menu_operations.rst:79
+#: ../../doc/features/image/menu_operations.rst:116
+msgid "Operation"
+msgstr "Opération"
-#: ../../doc/features/image/menu_operations.rst:29
-msgid ""
-"z_{M} = \\sum_{k=0}^{M-1}{z_{k}}\n"
-"\n"
-msgstr ""
+#: ../../doc/features/image/menu_operations.rst:32
+#: ../../doc/features/image/menu_operations.rst:117
+#: ../../doc/features/image/menu_operations.rst:161
+#: ../../doc/features/image/menu_operations.rst:249
+#: ../../doc/features/image/menu_operations.rst:265
+msgid "Description"
+msgstr "Description"
#: ../../doc/features/image/menu_operations.rst:33
-msgid "Average"
-msgstr "Moyenne"
+msgid "|sum| Sum"
+msgstr "|sum| Somme"
-#: ../../doc/features/image/menu_operations.rst:35
-msgid "Create a new image which is the average of all selected images:"
-msgstr "Crée une image à partir de la moyenne des images sélectionnées :"
+#: ../../doc/features/image/menu_operations.rst:46
+msgid "sum"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:37
-msgid ""
-"z_{M} = \\dfrac{1}{M}\\sum_{k=0}^{M-1}{z_{k}}\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:34
+msgid ":math:`z_{M} = \\sum_{k=0}^{M-1}{z_{k}}`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:41
-msgid "Difference"
-msgstr "Soustraction"
+#: ../../doc/features/image/menu_operations.rst:35
+msgid "|average| Average"
+msgstr "|average| Moyenne"
-#: ../../doc/features/image/menu_operations.rst:43
-msgid "Create a new image which is the difference of the **two** selected images:"
+#: ../../doc/features/image/menu_operations.rst:50
+msgid "average"
msgstr ""
-"Crée une image à partir de la différence des **deux** images "
-"sélectionnées :"
-#: ../../doc/features/image/menu_operations.rst:45
-msgid ""
-"z_{2} = z_{1} - z_{0}\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:36
+msgid ":math:`z_{M} = \\dfrac{1}{M}\\sum_{k=0}^{M-1}{z_{k}}`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:49
-msgid "Quadratic difference"
-msgstr "Soustraction quadratique"
+#: ../../doc/features/image/menu_operations.rst:37
+msgid "|difference| Difference"
+msgstr "|difference| Soustraction"
-#: ../../doc/features/image/menu_operations.rst:51
-msgid ""
-"Create a new image which is the quadratic difference of the **two** "
-"selected images:"
+#: ../../doc/features/image/menu_operations.rst:54
+msgid "difference"
msgstr ""
-"Crée une image à partir de la différence quadratique des **deux** images "
-"sélectionnées :"
-#: ../../doc/features/image/menu_operations.rst:54
-msgid ""
-"z_{2} = \\dfrac{z_{1} - z_{0}}{\\sqrt{2}}\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:38
+msgid ":math:`z_{2} = z_{1} - z_{0}`"
msgstr ""
+#: ../../doc/features/image/menu_operations.rst:39
+msgid "|quadratic_difference| Quadratic difference"
+msgstr "|quadratic_difference| Soustraction quadratique"
+
#: ../../doc/features/image/menu_operations.rst:58
-msgid "Product"
-msgstr "Produit"
+msgid "quadratic_difference"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:40
+msgid ":math:`z_{2} = \\dfrac{z_{1} - z_{0}}{\\sqrt{2}}`"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:60
-msgid "Create a new image which is the product of all selected images:"
-msgstr "Crée une image à partir du produit de toutes les images sélectionnées :"
+#: ../../doc/features/image/menu_operations.rst:41
+msgid "|product| Product"
+msgstr "|product| Produit"
#: ../../doc/features/image/menu_operations.rst:62
-msgid ""
-"z_{M} = \\prod_{k=0}^{M-1}{z_{k}}\n"
-"\n"
+msgid "product"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:66
-#: ../../doc/features/image/menu_operations.rst:90
-msgid "Division"
-msgstr "Division"
+#: ../../doc/features/image/menu_operations.rst:42
+msgid ":math:`z_{M} = \\prod_{k=0}^{M-1}{z_{k}}`"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:68
-msgid "Create a new image which is the division of the **two** selected images:"
-msgstr "Crée une image à partir de la division des **deux** images sélectionnées :"
+#: ../../doc/features/image/menu_operations.rst:43
+msgid "|division| Division"
+msgstr "|division| Division"
-#: ../../doc/features/image/menu_operations.rst:70
-msgid ""
-"z_{2} = \\dfrac{z_{1}}{z_{0}}\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:66
+msgid "division"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:44
+msgid ":math:`z_{2} = \\dfrac{z_{1}}{z_{0}}`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:74
-msgid "Constant operations"
+#: ../../doc/features/image/menu_operations.rst:71
+msgid "Operations with a constant"
msgstr "Opérations avec une constante"
-#: ../../doc/features/image/menu_operations.rst:76
+#: ../../doc/features/image/menu_operations.rst:73
msgid ""
"Create a new image which is the result of a constant operation on each "
"selected image:"
@@ -158,43 +164,59 @@ msgstr ""
"Crée une image à partir d'une opération avec une constante sur chaque "
"image sélectionnée :"
-#: ../../doc/features/image/menu_operations.rst:82
-msgid "Operation"
-msgstr "Opération"
-
-#: ../../doc/features/image/menu_operations.rst:83
+#: ../../doc/features/image/menu_operations.rst:80
msgid "Equation"
msgstr "Equation"
-#: ../../doc/features/image/menu_operations.rst:84
-msgid "Addition"
-msgstr "Addition"
+#: ../../doc/features/image/menu_operations.rst:81
+msgid "|constant_add| Addition"
+msgstr "|constant_add| Addition"
-#: ../../doc/features/image/menu_operations.rst:85
+#: ../../doc/features/image/menu_operations.rst:90
+msgid "constant_add"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:82
msgid ":math:`z_{k} = z_{k-1} + conv(c)`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:86
-msgid "Subtraction"
-msgstr "Soustraction"
+#: ../../doc/features/image/menu_operations.rst:83
+msgid "|constant_substract| Subtraction"
+msgstr "|constant_substract| Soustraction"
-#: ../../doc/features/image/menu_operations.rst:87
+#: ../../doc/features/image/menu_operations.rst:94
+msgid "constant_substract"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:84
msgid ":math:`z_{k} = z_{k-1} - conv(c)`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:88
-msgid "Multiplication"
-msgstr "Multiplication"
+#: ../../doc/features/image/menu_operations.rst:85
+msgid "|constant_multiply| Multiplication"
+msgstr "|constant_multiply| Multiplication"
+
+#: ../../doc/features/image/menu_operations.rst:98
+msgid "constant_multiply"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:89
+#: ../../doc/features/image/menu_operations.rst:86
msgid ":math:`z_{k} = conv(z_{k-1} \\times c)`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:91
+#: ../../doc/features/image/menu_operations.rst:87
+msgid "|constant_divide| Division"
+msgstr "|constant_divide| Division"
+
+#: ../../doc/features/image/menu_operations.rst:102
+msgid "constant_divide"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:88
msgid ":math:`z_{k} = conv(\\dfrac{z_{k-1}}{c})`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:93
+#: ../../doc/features/image/menu_operations.rst:106
msgid ""
"where :math:`c` is the constant value and :math:`conv` is the conversion "
"function which handles data type conversion (keeping the same data type "
@@ -204,65 +226,61 @@ msgstr ""
"conversion qui gère la conversion du type de données (en conservant le "
"même type de données que l'image d'entrée)."
-#: ../../doc/features/image/menu_operations.rst:97
-msgid "Absolute value"
-msgstr "Valeur absolue"
+#: ../../doc/features/image/menu_operations.rst:110
+msgid "Real and imaginary parts"
+msgstr "Parties réelles et imaginaires"
+
+#: ../../doc/features/image/menu_operations.rst:118
+msgid "|abs| Absolute value"
+msgstr "|abs| Valeur absolue"
-#: ../../doc/features/image/menu_operations.rst:99
-msgid "Create a new image which is the absolute value of each selected image:"
+#: ../../doc/features/image/menu_operations.rst:126
+msgid "abs"
msgstr ""
-"Créee une image à partir de la valeur absolue de chaque image "
-"sélectionnée :"
-#: ../../doc/features/image/menu_operations.rst:101
-msgid ""
-"z_{k} = |z_{k-1}|\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:119
+msgid ":math:`z_{k} = |z_{k-1}|`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:105
-msgid "Real part"
-msgstr "Partie réelle"
+#: ../../doc/features/image/menu_operations.rst:120
+msgid "|re| Real part"
+msgstr "|re| Partie réelle"
-#: ../../doc/features/image/menu_operations.rst:107
-msgid "Create a new image which is the real part of each selected image:"
-msgstr "Crée une image à partir de la partie réelle de chaque image sélectionnée :"
+#: ../../doc/features/image/menu_operations.rst:130
+msgid "re"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:109
-msgid ""
-"z_{k} = \\Re(z_{k-1})\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:121
+msgid ":math:`z_{k} = \\Re(z_{k-1})`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:113
-msgid "Imaginary part"
-msgstr "Partie imaginaire"
+#: ../../doc/features/image/menu_operations.rst:122
+msgid "|im| Imaginary part"
+msgstr "|im| Partie imaginaire"
-#: ../../doc/features/image/menu_operations.rst:115
-msgid "Create a new image which is the imaginary part of each selected image:"
+#: ../../doc/features/image/menu_operations.rst:134
+msgid "im"
msgstr ""
-"Crée une image à partir de la partie imaginaire de chaque image "
-"sélectionnée :"
-#: ../../doc/features/image/menu_operations.rst:117
-msgid ""
-"z_{k} = \\Im(z_{k-1})\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:123
+msgid ":math:`z_{k} = \\Im(z_{k-1})`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:121
-msgid "Convert data type"
-msgstr "Convertir le type de données"
+#: ../../doc/features/image/menu_operations.rst:139
+msgid "Data type conversion"
+msgstr "Conversion du type de données"
-#: ../../doc/features/image/menu_operations.rst:123
+#: ../../doc/features/image/menu_operations.rst:141
msgid ""
-"Create a new image which is the result of converting data type of each "
-"selected image."
+"The \"Convert data type\" |convert_dtype| action allows you to convert "
+"the data type of the selected images."
+msgstr "L'action \"Convertir le type de données\" |convert_dtype| permet de convertir le type de données des images sélectionnées."
+
+#: ../../doc/features/image/menu_operations.rst:144
+msgid "convert_dtype"
msgstr ""
-"Crée une image à partir de la conversion du type de données de l'image "
-"sélectionnée."
-#: ../../doc/features/image/menu_operations.rst:128
+#: ../../doc/features/image/menu_operations.rst:150
msgid ""
"Data type conversion relies on :py:func:`numpy.ndarray.astype` function "
"with the default parameters (`casting='unsafe'`)."
@@ -271,60 +289,55 @@ msgstr ""
":py:func:`numpy.ndarray.astype` avec les paramètres par défaut "
"(`casting='unsafe'`)."
-#: ../../doc/features/image/menu_operations.rst:132
-msgid "Exponential"
-msgstr "Exponentielle"
+#: ../../doc/features/image/menu_operations.rst:154
+msgid "Basic mathematical functions"
+msgstr "Fonctions mathématiques de base"
-#: ../../doc/features/image/menu_operations.rst:134
-msgid "Create a new image which is the exponential of each selected image:"
-msgstr "Crée une image à partir de l'exponentielle de chaque image sélectionnée :"
+#: ../../doc/features/image/menu_operations.rst:160
+msgid "Function"
+msgstr "Fonction"
-#: ../../doc/features/image/menu_operations.rst:136
-msgid ""
-"z_{k} = \\exp(z_{k-1})\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:162
+msgid "|exp| Exponential"
+msgstr "|exp| Exponentielle"
+
+#: ../../doc/features/image/menu_operations.rst:169
+msgid "exp"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:140
-msgid "Logarithm (base 10)"
-msgstr "Logarithme (base 10)"
+#: ../../doc/features/image/menu_operations.rst:163
+msgid ":math:`z_{k} = \\exp(z_{k-1})`"
+msgstr ""
+
+#: ../../doc/features/image/menu_operations.rst:164
+msgid "|log10| Logarithm (base 10)"
+msgstr "|log10| Logarithme (base 10)"
-#: ../../doc/features/image/menu_operations.rst:142
-msgid "Create a new image which is the base 10 logarithm of each selected image:"
+#: ../../doc/features/image/menu_operations.rst:173
+msgid "log10"
msgstr ""
-"Crée une image à partir du logarithme base 10 de chaque image "
-"sélectionnée :"
-#: ../../doc/features/image/menu_operations.rst:144
-msgid ""
-"z_{k} = \\log_{10}(z_{k-1})\n"
-"\n"
+#: ../../doc/features/image/menu_operations.rst:165
+msgid ":math:`z_{k} = \\log_{10}(z_{k-1})`"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:148
+#: ../../doc/features/image/menu_operations.rst:166
msgid "Log10(z+n)"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:150
-msgid ""
-"Create a new image which is the Log10(z+n) of each selected image (avoid "
-"Log10(0) on image background):"
+#: ../../doc/features/image/menu_operations.rst:167
+msgid ":math:`z_{k} = \\log_{10}(z_{k-1}+n)` (avoid Log10(0) on image background)"
msgstr ""
-"Crée une image à partir du Log10(z+n) de chaque image sélectionnée (effet"
-" d'augmentation de la dynamique d'un logarithme en évitant de calculer "
-"Log10(0) sur l'arrière-plan de l'image) :"
-#: ../../doc/features/image/menu_operations.rst:153
-msgid ""
-"z_{k} = \\log_{10}(z_{k-1}+n)\n"
-"\n"
-msgstr ""
+#: ../../doc/features/image/menu_operations.rst:178
+msgid "Other operations"
+msgstr "Autres opérations"
-#: ../../doc/features/image/menu_operations.rst:157
+#: ../../doc/features/image/menu_operations.rst:181
msgid "Flat-field correction"
msgstr "Correction de champ plat"
-#: ../../doc/features/image/menu_operations.rst:159
+#: ../../doc/features/image/menu_operations.rst:183
msgid ""
"Create a new image which is flat-field correction of the **two** selected"
" images:"
@@ -332,7 +345,7 @@ msgstr ""
"Calcule la correction de champ plat à partir des **deux** images "
"sélectionnées :"
-#: ../../doc/features/image/menu_operations.rst:162
+#: ../../doc/features/image/menu_operations.rst:186
msgid ""
"z_{1} =\n"
"\\begin{cases}\n"
@@ -343,7 +356,7 @@ msgid ""
"\n"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:169
+#: ../../doc/features/image/menu_operations.rst:193
msgid ""
"where :math:`z_{0}` is the raw image, :math:`z_{f}` is the flat field "
"image, :math:`z_{threshold}` is an adjustable threshold and "
@@ -354,7 +367,7 @@ msgstr ""
":math:`\\overline{z_{f}}` est la valeur moyenne de l'image d'homogénéité "
":"
-#: ../../doc/features/image/menu_operations.rst:174
+#: ../../doc/features/image/menu_operations.rst:198
msgid ""
"\\overline{z_{f}}=\n"
"\\dfrac{1}{N_{row}.N_{col}}.\\sum_{i=0}^{N_{row}}\\sum_{j=0}^{N_{col}}{z_{f}(i,j)}"
@@ -362,7 +375,7 @@ msgid ""
"\n"
msgstr ""
-#: ../../doc/features/image/menu_operations.rst:180
+#: ../../doc/features/image/menu_operations.rst:204
msgid ""
"Raw image and flat field image are supposedly already corrected by "
"performing a dark frame subtraction."
@@ -370,11 +383,11 @@ msgstr ""
"L'image brute et l'image d'homogénéité sont supposées avoir déjà été "
"corrigées par soustraction d'image de noir."
-#: ../../doc/features/image/menu_operations.rst:184
+#: ../../doc/features/image/menu_operations.rst:208
msgid "Rotation"
msgstr "Rotation"
-#: ../../doc/features/image/menu_operations.rst:186
+#: ../../doc/features/image/menu_operations.rst:210
msgid ""
"Create a new image which is the result of rotating (90°, 270° or "
"arbitrary angle) or flipping (horizontally or vertically) data."
@@ -383,15 +396,15 @@ msgstr ""
"arbitraire) ou de l'inversion (horizontale ou verticale) des données de "
"l'image sélectionnée."
-#: ../../doc/features/image/menu_operations.rst:190
+#: ../../doc/features/image/menu_operations.rst:214
msgid "Intensity profiles"
msgstr "Profils d'intensité"
-#: ../../doc/features/image/menu_operations.rst:199
+#: ../../doc/features/image/menu_operations.rst:223
msgid "Line profile"
msgstr "Profil rectiligne"
-#: ../../doc/features/image/menu_operations.rst:193
+#: ../../doc/features/image/menu_operations.rst:217
msgid ""
"Extract an horizontal or vertical profile from each selected image, and "
"create new signals from these profiles."
@@ -399,7 +412,7 @@ msgstr ""
"Extraire un profil horizontal ou vertical de chaque image sélectionnée et"
" créer un nouveau signal à partir de chacun de ces profils."
-#: ../../doc/features/image/menu_operations.rst:198
+#: ../../doc/features/image/menu_operations.rst:222
msgid ""
"Line profile dialog. Parameters may also be set manually (\"Edit profile "
"parameters\" button)."
@@ -408,11 +421,11 @@ msgstr ""
"également définis manuellement (bouton \"Editer les paramètres du "
"profil\")."
-#: ../../doc/features/image/menu_operations.rst:203
+#: ../../doc/features/image/menu_operations.rst:227
msgid "Segment profile"
msgstr "Profil le long d'un segment"
-#: ../../doc/features/image/menu_operations.rst:202
+#: ../../doc/features/image/menu_operations.rst:226
msgid ""
"Extract a segment profile from each selected image, and create new "
"signals from these profiles."
@@ -420,11 +433,11 @@ msgstr ""
"Extraire un profil le long d'un segment de chaque image sélectionnée et "
"créer un nouveau signal à partir de chacun de ces profils."
-#: ../../doc/features/image/menu_operations.rst:212
+#: ../../doc/features/image/menu_operations.rst:236
msgid "Average profile"
msgstr "Profil moyen"
-#: ../../doc/features/image/menu_operations.rst:206
+#: ../../doc/features/image/menu_operations.rst:230
msgid ""
"Extract an horizontal or vertical profile averaged over a rectangular "
"area, from each selected image, and create new signals from these "
@@ -434,7 +447,7 @@ msgstr ""
"rectangulaire de chaque image sélectionnée et créer un nouveau signal à "
"partir de chacun de ces profils."
-#: ../../doc/features/image/menu_operations.rst:211
+#: ../../doc/features/image/menu_operations.rst:235
msgid ""
"Average profile dialog: the area is defined by a rectangle shape. "
"Parameters may also be set manually (\"Edit profile parameters\" button)."
@@ -443,11 +456,11 @@ msgstr ""
"un rectangle. Les paramètres peuvent être également définis manuellement "
"(bouton \"Editer les paramètres du profil\")."
-#: ../../doc/features/image/menu_operations.rst:231
+#: ../../doc/features/image/menu_operations.rst:255
msgid "Radial profile extraction"
msgstr "Extraire un profil radial"
-#: ../../doc/features/image/menu_operations.rst:215
+#: ../../doc/features/image/menu_operations.rst:239
msgid ""
"Extract a radial profile from each selected image, and create new signals"
" from these profiles."
@@ -455,23 +468,19 @@ msgstr ""
"Extraire un profil radial de chaque image sélectionnée et créer un "
"nouveau signal à partir de ces profils."
-#: ../../doc/features/image/menu_operations.rst:218
+#: ../../doc/features/image/menu_operations.rst:242
msgid "The following parameters are available:"
msgstr "Les paramètres suivants sont disponibles :"
-#: ../../doc/features/image/menu_operations.rst:224
+#: ../../doc/features/image/menu_operations.rst:248
msgid "Parameter"
msgstr "Paramètre"
-#: ../../doc/features/image/menu_operations.rst:225
-msgid "Description"
-msgstr "Description"
-
-#: ../../doc/features/image/menu_operations.rst:226
+#: ../../doc/features/image/menu_operations.rst:250
msgid "Center"
msgstr "Centre"
-#: ../../doc/features/image/menu_operations.rst:227
+#: ../../doc/features/image/menu_operations.rst:251
msgid ""
"Center around which the radial profile is computed: centroid, image "
"center, or user-defined"
@@ -479,36 +488,52 @@ msgstr ""
"Centre autour duquel le profil radial est calculé : centre de masse, "
"centre de l'image, ou défini par l'utilisateur"
-#: ../../doc/features/image/menu_operations.rst:228
+#: ../../doc/features/image/menu_operations.rst:252
msgid "X"
msgstr "X"
-#: ../../doc/features/image/menu_operations.rst:229
+#: ../../doc/features/image/menu_operations.rst:253
msgid "X coordinate of the center (if user-defined), in pixels"
msgstr "Coordonnée X du centre (si défini par l'utilisateur), en pixels"
-#: ../../doc/features/image/menu_operations.rst:230
+#: ../../doc/features/image/menu_operations.rst:254
msgid "Y"
msgstr "Y"
-#: ../../doc/features/image/menu_operations.rst:231
+#: ../../doc/features/image/menu_operations.rst:255
msgid "Y coordinate of the center (if user-defined), in pixels"
msgstr "Coordonnée Y du centre (si défini par l'utilisateur), en pixels"
-#: ../../doc/features/image/menu_operations.rst:234
-msgid "Distribute on a grid"
-msgstr "Distribuer sur une grille"
+#: ../../doc/features/image/menu_operations.rst:258
+msgid "Distribute images along a grid"
+msgstr "Distribuer les images sur une grille"
-#: ../../doc/features/image/menu_operations.rst:236
-msgid "Distribute selected images on a regular grid."
-msgstr "Distribuer les images sélectionnées sur une grille régulière."
+#: ../../doc/features/image/menu_operations.rst:264
+msgid "Feature"
+msgstr "Fonctionnalité"
-#: ../../doc/features/image/menu_operations.rst:239
-msgid "Reset image positions"
-msgstr "Réinitialiser les positions"
+#: ../../doc/features/image/menu_operations.rst:266
+msgid "|distribute_on_grid| Distribute on a grid"
+msgstr "|distribute_on_grid| Distribuer sur une grille"
+
+#: ../../doc/features/image/menu_operations.rst:271
+msgid "distribute_on_grid"
+msgstr ""
-#: ../../doc/features/image/menu_operations.rst:241
-msgid "Reset selected image positions to first image (x0, y0) coordinates."
+#: ../../doc/features/image/menu_operations.rst:267
+msgid "Distribute selected images on a regular grid"
+msgstr "Distribuer les images sélectionnées sur une grille régulière"
+
+#: ../../doc/features/image/menu_operations.rst:268
+msgid "|reset_positions| Reset image positions"
+msgstr "|reset_positions| Réinitialiser les positions"
+
+#: ../../doc/features/image/menu_operations.rst:275
+msgid "reset_positions"
msgstr ""
-"Réinitialiser les positions des images sélectionnées sur les coordonnées "
-"(x0, y0) de la première image."
+
+#: ../../doc/features/image/menu_operations.rst:269
+msgid ""
+"Reset the positions of the selected images to first image (x0, y0) "
+"coordinates"
+msgstr "Réinitialiser les positions des images sélectionnées aux coordonnées de la première image (x0, y0)"
diff --git a/doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po b/doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po
index 0d17080e..5c3f4d33 100644
--- a/doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po
+++ b/doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-07 10:36+0200\n"
+"POT-Creation-Date: 2024-06-19 15:09+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -244,8 +244,8 @@ msgstr "Médiane mobile"
#: ../../doc/features/image/menu_processing.rst:104
msgid ""
-"`scipy.signal.medfilt "
-"`_"
+"`scipy.ndimage.median_filter "
+"`_"
msgstr ""
#: ../../doc/features/image/menu_processing.rst:105
@@ -366,13 +366,18 @@ msgid ""
"Create a new image which is the result of thresholding on each selected "
"image, eventually based on user-defined parameters (\"Parametric "
"thresholding\")."
-msgstr "Crée une image à partir du résultat d'un seuillage sur chaque image, éventuellement basé sur des paramètres définis par l'utilisateur (\"Seuillage paramétrique\")."
+msgstr ""
+"Crée une image à partir du résultat d'un seuillage sur chaque image, "
+"éventuellement basé sur des paramètres définis par l'utilisateur "
+"(\"Seuillage paramétrique\")."
#: ../../doc/features/image/menu_processing.rst:149
msgid ""
"The following parameters are available when selecting \"Parametric "
"thresholding\":"
-msgstr "Les paramètres suivants sont disponibles lors de la sélection de \"Seuillage paramétrique\" :"
+msgstr ""
+"Les paramètres suivants sont disponibles lors de la sélection de "
+"\"Seuillage paramétrique\" :"
#: ../../doc/features/image/menu_processing.rst:157
msgid "Threshold method"
@@ -506,7 +511,11 @@ msgid ""
"thresholding methods on the same image. Combined with the \"distribute on"
" a grid\" option, this allows to compare the different thresholding "
"methods on the same image."
-msgstr "L'option \"Toutes les méthodes de seuillage\" permet d'appliquer toutes les méthodes de seuillage à la même image. Combinée avec l'option \"distribuer sur une grille\", cela permet de comparer les différentes méthodes de seuillage sur la même image."
+msgstr ""
+"L'option \"Toutes les méthodes de seuillage\" permet d'appliquer toutes "
+"les méthodes de seuillage à la même image. Combinée avec l'option "
+"\"distribuer sur une grille\", cela permet de comparer les différentes "
+"méthodes de seuillage sur la même image."
#: ../../doc/features/image/menu_processing.rst:198
msgid "Exposure"
@@ -516,7 +525,9 @@ msgstr "Exposition"
msgid ""
"Create a new image which is the result of exposure correction on each "
"selected image."
-msgstr "Crée une image à partir du résultat d'une correction d'exposition sur chaque image sélectionnée."
+msgstr ""
+"Crée une image à partir du résultat d'une correction d'exposition sur "
+"chaque image sélectionnée."
#: ../../doc/features/image/menu_processing.rst:210
#: ../../doc/features/image/menu_processing.rst:243
@@ -599,7 +610,9 @@ msgstr "Restauration"
msgid ""
"Create a new image which is the result of restoration on each selected "
"image."
-msgstr "Crée une image à partir du résultat d'une restauration sur chaque image sélectionnée."
+msgstr ""
+"Crée une image à partir du résultat d'une restauration sur chaque image "
+"sélectionnée."
#: ../../doc/features/image/menu_processing.rst:244
msgid "Total variation denoising"
@@ -653,7 +666,11 @@ msgid ""
"methods on the same image. Combined with the \"distribute on a grid\" "
"option, this allows to compare the different denoising methods on the "
"same image."
-msgstr "L'option \"Toutes les méthodes de débruitage\" permet d'appliquer toutes les méthodes de débruitage à la même image. Combinée avec l'option \"distribuer sur une grille\", cela permet de comparer les différentes méthodes de débruitage sur la même image."
+msgstr ""
+"L'option \"Toutes les méthodes de débruitage\" permet d'appliquer toutes "
+"les méthodes de débruitage à la même image. Combinée avec l'option "
+"\"distribuer sur une grille\", cela permet de comparer les différentes "
+"méthodes de débruitage sur la même image."
#: ../../doc/features/image/menu_processing.rst:264
msgid "Morphology"
@@ -663,7 +680,9 @@ msgstr "Morphologie"
msgid ""
"Create a new image which is the result of morphological operations on "
"each selected image, using a disk footprint."
-msgstr "Crée une image à partir du résultat d'opérations morphologiques sur chaque image sélectionnée, en utilisant un disque comme empreinte."
+msgstr ""
+"Crée une image à partir du résultat d'opérations morphologiques sur "
+"chaque image sélectionnée, en utilisant un disque comme empreinte."
#: ../../doc/features/image/menu_processing.rst:277
msgid "White Top-Hat (disk)"
@@ -725,7 +744,11 @@ msgid ""
"morphological operations on the same image. Combined with the "
"\"distribute on a grid\" option, this allows to compare the different "
"morphological operations on the same image."
-msgstr "L'option \"Toutes les opérations morphologiques\" permet d'appliquer toutes les opérations morphologiques à la même image. Combinée avec l'option \"distribuer sur une grille\", cela permet de comparer les différentes opérations morphologiques sur la même image."
+msgstr ""
+"L'option \"Toutes les opérations morphologiques\" permet d'appliquer "
+"toutes les opérations morphologiques à la même image. Combinée avec "
+"l'option \"distribuer sur une grille\", cela permet de comparer les "
+"différentes opérations morphologiques sur la même image."
#: ../../doc/features/image/menu_processing.rst:297
msgid "Edges"
@@ -735,7 +758,9 @@ msgstr "Contours"
msgid ""
"Create a new image which is the result of edge filtering on each selected"
" image."
-msgstr "Crée une image à partir du résultat d'un filtrage de contours sur chaque image sélectionnée."
+msgstr ""
+"Crée une image à partir du résultat d'un filtrage de contours sur chaque "
+"image sélectionnée."
#: ../../doc/features/image/menu_processing.rst:309
msgid "Roberts filter"
@@ -893,7 +918,11 @@ msgid ""
"algorithms on the same image. Combined with the \"distribute on a grid\" "
"option, this allows to compare the different edge filters on the same "
"image."
-msgstr "L'option \"Tous les filtres de contours\" permet d'appliquer tous les algorithmes de filtrage de contours à la même image. Combinée avec l'option \"distribuer sur une grille\", cela permet de comparer les différents filtres de contours sur la même image."
+msgstr ""
+"L'option \"Tous les filtres de contours\" permet d'appliquer tous les "
+"algorithmes de filtrage de contours à la même image. Combinée avec "
+"l'option \"distribuer sur une grille\", cela permet de comparer les "
+"différents filtres de contours sur la même image."
#: ../../doc/features/image/menu_processing.rst:347
msgid "Butterworth filter"
@@ -949,3 +978,9 @@ msgid ""
msgstr ""
"Boîte de dialogue d'extraction de ROI : la région d'intérêt (ROI) est "
"définie en ajustant la position et la taille du rectangle de sélection."
+
+#~ msgid ""
+#~ "`scipy.signal.medfilt "
+#~ "`_"
+#~ msgstr ""
+
diff --git a/doc/locale/fr/LC_MESSAGES/features/signal/menu_operations.po b/doc/locale/fr/LC_MESSAGES/features/signal/menu_operations.po
index 0101f74d..7efda2a6 100644
--- a/doc/locale/fr/LC_MESSAGES/features/signal/menu_operations.po
+++ b/doc/locale/fr/LC_MESSAGES/features/signal/menu_operations.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-16 12:08+0200\n"
+"POT-Creation-Date: 2024-06-21 16:49+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -62,82 +62,85 @@ msgstr ""
"détection de pics, ou encore la convolution."
#: ../../doc/features/signal/menu_operations.rst:25
-msgid "Sum"
-msgstr "Addition"
+msgid "Basic arithmetic operations"
+msgstr "Opérations arithmétiques de base"
-#: ../../doc/features/signal/menu_operations.rst:27
-msgid "Create a new signal which is the sum of all selected signals:"
-msgstr "Crée un signal à partir de la somme des signaux sélectionnés :"
+#: ../../doc/features/signal/menu_operations.rst:31
+#: ../../doc/features/signal/menu_operations.rst:73
+#: ../../doc/features/signal/menu_operations.rst:107
+#: ../../doc/features/signal/menu_operations.rst:184
+msgid "Operation"
+msgstr "Opération"
-#: ../../doc/features/signal/menu_operations.rst:29
-msgid ""
-"y_{M} = \\sum_{k=0}^{M-1}{y_{k}}\n"
-"\n"
-msgstr ""
+#: ../../doc/features/signal/menu_operations.rst:32
+#: ../../doc/features/signal/menu_operations.rst:74
+#: ../../doc/features/signal/menu_operations.rst:108
+#: ../../doc/features/signal/menu_operations.rst:151
+msgid "Description"
+msgstr "Description"
#: ../../doc/features/signal/menu_operations.rst:33
-msgid "Average"
-msgstr "Moyenne"
+msgid "|sum| Sum"
+msgstr "|sum| Somme"
+
+#: ../../doc/features/signal/menu_operations.rst:44
+msgid "sum"
+msgstr ""
+
+#: ../../doc/features/signal/menu_operations.rst:34
+msgid ":math:`y_{M} = \\sum_{k=0}^{M-1}{y_{k}}`"
+msgstr ""
#: ../../doc/features/signal/menu_operations.rst:35
-msgid "Create a new signal which is the average of all selected signals:"
-msgstr "Crée un signal à partir de la moyenne des signaux sélectionnés :"
+msgid "|average| Average"
+msgstr "|average| Moyenne"
-#: ../../doc/features/signal/menu_operations.rst:37
-msgid ""
-"y_{M} = \\dfrac{1}{M}\\sum_{k=0}^{M-1}{y_{k}}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:48
+msgid "average"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:41
-msgid "Difference"
-msgstr "Soustraction"
+#: ../../doc/features/signal/menu_operations.rst:36
+msgid ":math:`y_{M} = \\dfrac{1}{M}\\sum_{k=0}^{M-1}{y_{k}}`"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:43
-msgid ""
-"Create a new signal which is the difference of the **two** selected "
-"signals:"
+#: ../../doc/features/signal/menu_operations.rst:37
+msgid "|difference| Difference"
+msgstr "|difference| Différence"
+
+#: ../../doc/features/signal/menu_operations.rst:52
+msgid "difference"
msgstr ""
-"Crée un signal à partir de la différence des **deux** signaux "
-"sélectionnés :"
-#: ../../doc/features/signal/menu_operations.rst:45
-msgid ""
-"y_{2} = y_{1} - y_{0}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:38
+msgid ":math:`y_{2} = y_{1} - y_{0}`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:49
-msgid "Product"
-msgstr "Produit"
+#: ../../doc/features/signal/menu_operations.rst:39
+msgid "|product| Product"
+msgstr "|product| Produit"
-#: ../../doc/features/signal/menu_operations.rst:51
-msgid "Create a new signal which is the product of all selected signals:"
-msgstr "Crée un signal à partir du produit de tous les signaux sélectionnés :"
+#: ../../doc/features/signal/menu_operations.rst:56
+msgid "product"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:53
-msgid ""
-"y_{M} = \\prod_{k=0}^{M-1}{y_{k}}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:40
+msgid ":math:`y_{M} = \\prod_{k=0}^{M-1}{y_{k}}`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:57
-#: ../../doc/features/signal/menu_operations.rst:81
-msgid "Division"
-msgstr "Division"
+#: ../../doc/features/signal/menu_operations.rst:41
+msgid "|division| Division"
+msgstr "|division| Division"
-#: ../../doc/features/signal/menu_operations.rst:59
-msgid "Create a new signal which is the division of the **two** selected signals:"
-msgstr "Crée un signal à partir de la division des **deux** signaux sélectionnés :"
+#: ../../doc/features/signal/menu_operations.rst:60
+msgid "division"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:61
-msgid ""
-"y_{2} = \\dfrac{y_{1}}{y_{0}}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:42
+msgid ":math:`y_{2} = \\dfrac{y_{1}}{y_{0}}`"
msgstr ""
#: ../../doc/features/signal/menu_operations.rst:65
-msgid "Constant operations"
+msgid "Operations with a constant"
msgstr "Opérations avec une constante"
#: ../../doc/features/signal/menu_operations.rst:67
@@ -148,101 +151,109 @@ msgstr ""
"Crée un signal à partir d'une opération avec une constante sur chaque "
"signal sélectionné :"
-#: ../../doc/features/signal/menu_operations.rst:73
-msgid "Operation"
-msgstr "Opération"
-
-#: ../../doc/features/signal/menu_operations.rst:74
-msgid "Description"
-msgstr "Description"
-
#: ../../doc/features/signal/menu_operations.rst:75
-msgid "Addition"
-msgstr "Addition"
+msgid "|constant_add| Addition"
+msgstr "|constant_add| Addition"
+
+#: ../../doc/features/signal/menu_operations.rst:84
+msgid "constant_add"
+msgstr ""
#: ../../doc/features/signal/menu_operations.rst:76
msgid ":math:`y_{k} = y_{k-1} + c`"
msgstr ""
#: ../../doc/features/signal/menu_operations.rst:77
-msgid "Subtraction"
-msgstr "Soustraction"
+msgid "|constant_substract| Subtraction"
+msgstr "|constant_substract| Soustraction"
+
+#: ../../doc/features/signal/menu_operations.rst:88
+msgid "constant_substract"
+msgstr ""
#: ../../doc/features/signal/menu_operations.rst:78
msgid ":math:`y_{k} = y_{k-1} - c`"
msgstr ""
#: ../../doc/features/signal/menu_operations.rst:79
-msgid "Multiplication"
-msgstr "Multiplication"
+msgid "|constant_multiply| Multiplication"
+msgstr "|constant_multiply| Multiplication"
+
+#: ../../doc/features/signal/menu_operations.rst:92
+msgid "constant_multiply"
+msgstr ""
#: ../../doc/features/signal/menu_operations.rst:80
msgid ":math:`y_{k} = y_{k-1} \\times c`"
msgstr ""
+#: ../../doc/features/signal/menu_operations.rst:81
+msgid "|constant_divide| Division"
+msgstr "|constant_divide| Division"
+
+#: ../../doc/features/signal/menu_operations.rst:96
+msgid "constant_divide"
+msgstr ""
+
#: ../../doc/features/signal/menu_operations.rst:82
msgid ":math:`y_{k} = \\dfrac{y_{k-1}}{c}`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:85
-msgid "Absolute value"
-msgstr "Valeur absolue"
+#: ../../doc/features/signal/menu_operations.rst:101
+msgid "Real and imaginary parts"
+msgstr "Parties réelle et imaginaire"
+
+#: ../../doc/features/signal/menu_operations.rst:109
+msgid "|abs| Absolute value"
+msgstr "|abs| Valeur absolue"
-#: ../../doc/features/signal/menu_operations.rst:87
-msgid "Create a new signal which is the absolute value of each selected signal:"
+#: ../../doc/features/signal/menu_operations.rst:116
+msgid "abs"
msgstr ""
-"Crée un signal à partir de la valeur absolue de chaque signal sélectionné"
-" :"
-#: ../../doc/features/signal/menu_operations.rst:89
-msgid ""
-"y_{k} = |y_{k-1}|\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:110
+msgid ":math:`y_{k} = |y_{k-1}|`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:93
-msgid "Real part"
-msgstr "Partie réelle"
+#: ../../doc/features/signal/menu_operations.rst:111
+msgid "|re| Real part"
+msgstr "|re| Partie réelle"
-#: ../../doc/features/signal/menu_operations.rst:95
-msgid "Create a new signal which is the real part of each selected signal:"
-msgstr "Crée un signal à partir de la partie réelle de chaque signal sélectionné :"
+#: ../../doc/features/signal/menu_operations.rst:120
+msgid "re"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:97
-msgid ""
-"y_{k} = \\Re(y_{k-1})\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:112
+msgid ":math:`y_{k} = \\Re(y_{k-1})`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:101
-msgid "Imaginary part"
-msgstr "Partie imaginaire"
+#: ../../doc/features/signal/menu_operations.rst:113
+msgid "|im| Imaginary part"
+msgstr "|im| Partie imaginaire"
-#: ../../doc/features/signal/menu_operations.rst:103
-msgid "Create a new signal which is the imaginary part of each selected signal:"
+#: ../../doc/features/signal/menu_operations.rst:124
+msgid "im"
msgstr ""
-"Crée un signal à partir de la partie imaginaire de chaque signal "
-"sélectionné :"
-#: ../../doc/features/signal/menu_operations.rst:105
-msgid ""
-"y_{k} = \\Im(y_{k-1})\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:114
+msgid ":math:`y_{k} = \\Im(y_{k-1})`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:109
-msgid "Convert data type"
-msgstr "Convertir le type de données"
+#: ../../doc/features/signal/menu_operations.rst:129
+msgid "Data type conversion"
+msgstr "Conversion du type de données"
-#: ../../doc/features/signal/menu_operations.rst:111
+#: ../../doc/features/signal/menu_operations.rst:131
msgid ""
-"Create a new signal which is the result of converting data type of each "
-"selected signal."
+"The \"Convert data type\" |convert_dtype| action allows you to convert "
+"the data type of the selected signals."
+msgstr "L'action \"Convertir le type de données\" |convert_dtype| permet de convertir le type de données des signaux sélectionnés."
+
+#: ../../doc/features/signal/menu_operations.rst:134
+msgid "convert_dtype"
msgstr ""
-"Crée un signal à partir de la conversion du type de données du signal "
-"sélectionné."
-#: ../../doc/features/signal/menu_operations.rst:115
+#: ../../doc/features/signal/menu_operations.rst:140
msgid ""
"Data type conversion relies on :py:func:`numpy.ndarray.astype` function "
"with the default parameters (`casting='unsafe'`)."
@@ -251,114 +262,108 @@ msgstr ""
":py:func:`numpy.ndarray.astype` avec les paramètres par défaut "
"(`casting='unsafe'`)."
-#: ../../doc/features/signal/menu_operations.rst:119
-msgid "Exponential"
-msgstr "Exponentielle"
+#: ../../doc/features/signal/menu_operations.rst:144
+msgid "Basic mathematical functions"
+msgstr "Fonctions mathématiques de base"
-#: ../../doc/features/signal/menu_operations.rst:121
-msgid "Create a new signal which is the exponential of each selected signal:"
-msgstr "Crée un signal à partir de l'exponentielle de chaque signal sélectionné :"
+#: ../../doc/features/signal/menu_operations.rst:150
+msgid "Function"
+msgstr "Fonction"
-#: ../../doc/features/signal/menu_operations.rst:123
-msgid ""
-"y_{k} = \\exp(y_{k-1})\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:152
+msgid "|exp| Exponential"
+msgstr "|exp| Exponentielle"
+
+#: ../../doc/features/signal/menu_operations.rst:161
+msgid "exp"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:127
-msgid "Logarithm (base 10)"
-msgstr "Logarithme (base 10)"
+#: ../../doc/features/signal/menu_operations.rst:153
+msgid ":math:`y_{k} = \\exp(y_{k-1})`"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:129
-msgid ""
-"Create a new signal which is the base 10 logarithm of each selected "
-"signal:"
+#: ../../doc/features/signal/menu_operations.rst:154
+msgid "|log10| Logarithm (base 10)"
+msgstr "|log10| Logarithme (base 10)"
+
+#: ../../doc/features/signal/menu_operations.rst:165
+msgid "log10"
msgstr ""
-"Crée un signal à partir du logarithme base 10 de chaque signal "
-"sélectionné :"
-#: ../../doc/features/signal/menu_operations.rst:131
-msgid ""
-"y_{k} = \\log_{10}(y_{k-1})\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:155
+msgid ":math:`y_{k} = \\log_{10}(y_{k-1})`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:135
-msgid "Power"
-msgstr "Puissance"
+#: ../../doc/features/signal/menu_operations.rst:156
+msgid "|power| Power"
+msgstr "|power| Puissance"
-#: ../../doc/features/signal/menu_operations.rst:137
-msgid "Create a new signal which is the power of each selected signal:"
-msgstr "Crée un signal à partir de la puissance de chaque signal sélectionné :"
+#: ../../doc/features/signal/menu_operations.rst:169
+msgid "power"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:139
-msgid ""
-"y_{k} = y_{k-1}^{n}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:157
+msgid ":math:`y_{k} = y_{k-1}^{n}`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:143
-msgid "Square root"
-msgstr "Racine carrée"
+#: ../../doc/features/signal/menu_operations.rst:158
+msgid "|sqrt| Square root"
+msgstr "|sqrt| Racine carrée"
-#: ../../doc/features/signal/menu_operations.rst:145
-msgid "Create a new signal which is the square root of each selected signal:"
-msgstr "Crée un signal à partir de la racine carrée de chaque signal sélectionné :"
+#: ../../doc/features/signal/menu_operations.rst:173
+msgid "sqrt"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:147
-msgid ""
-"y_{k} = \\sqrt{y_{k-1}}\n"
-"\n"
+#: ../../doc/features/signal/menu_operations.rst:159
+msgid ":math:`y_{k} = \\sqrt{y_{k-1}}`"
msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:151
-msgid "Derivative"
-msgstr "Dérivée"
+#: ../../doc/features/signal/menu_operations.rst:178
+msgid "Other mathematical operations"
+msgstr "Autres opérations mathématiques"
-#: ../../doc/features/signal/menu_operations.rst:153
-msgid "Create a new signal which is the derivative of each selected signal."
-msgstr "Crée un signal à partir de la dérivée de chaque signal sélectionné."
+#: ../../doc/features/signal/menu_operations.rst:185
+msgid "Implementation"
+msgstr "Implémentation"
-#: ../../doc/features/signal/menu_operations.rst:155
+#: ../../doc/features/signal/menu_operations.rst:186
+msgid "|derivative| Derivative"
+msgstr "|derivative| Dérivée"
+
+#: ../../doc/features/signal/menu_operations.rst:193
+msgid "derivative"
+msgstr ""
+
+#: ../../doc/features/signal/menu_operations.rst:187
msgid ""
-"Derivative is calculated using `numpy.gradient "
-"`_ "
-"function."
-msgstr "La dérivée est calculée à l'aide de la fonction `numpy.gradient `_."
+"Based on `numpy.gradient "
+"`_"
+msgstr "Basé sur `numpy.gradient `_"
-#: ../../doc/features/signal/menu_operations.rst:158
-msgid "Integral"
-msgstr "Intégrale"
+#: ../../doc/features/signal/menu_operations.rst:188
+msgid "|integral| Integral"
+msgstr "|integral| Intégrale"
-#: ../../doc/features/signal/menu_operations.rst:160
-msgid "Create a new signal which is the integral of each selected signal."
-msgstr "Crée un signal à partir de l'intégrale de chaque signal sélectionné."
+#: ../../doc/features/signal/menu_operations.rst:197
+msgid "integral"
+msgstr ""
-#: ../../doc/features/signal/menu_operations.rst:162
+#: ../../doc/features/signal/menu_operations.rst:189
msgid ""
-"Integral is calculated using `scipy.integrate.cumulative_trapezoid "
+"Based on `scipy.integrate.cumulative_trapezoid "
"`_"
-" function."
-msgstr "L'intégrale est calculée à l'aide de la fonction `scipy.integrate.cumulative_trapezoid `_."
+msgstr "Basé sur `scipy.integrate.cumulative_trapezoid `_"
-#: ../../doc/features/signal/menu_operations.rst:165
-msgid "Convolution"
-msgstr "Convolution"
+#: ../../doc/features/signal/menu_operations.rst:190
+msgid "|convolution| Convolution"
+msgstr "|convolution| Convolution"
-#: ../../doc/features/signal/menu_operations.rst:167
-msgid ""
-"Create a new signal which is the convolution of each selected signal with"
-" respect to another signal."
+#: ../../doc/features/signal/menu_operations.rst:201
+msgid "convolution"
msgstr ""
-"Crée un signal à partir de la convolution de chaque signal sélectionné "
-"par rapport à un autre signal."
-#: ../../doc/features/signal/menu_operations.rst:170
+#: ../../doc/features/signal/menu_operations.rst:191
msgid ""
-"This feature is based on SciPy's `scipy.signal.convolve "
-"`_"
-" function."
-msgstr ""
-"Cette fonctionnalité est basée sur la fonction `scipy.signal.convolve "
+"Based on `scipy.signal.convolve "
"`_"
-" de SciPy."
+msgstr "Basé sur `scipy.signal.convolve `_"
diff --git a/doc/locale/fr/LC_MESSAGES/features/signal/menu_processing.po b/doc/locale/fr/LC_MESSAGES/features/signal/menu_processing.po
index 2fc131bd..073af944 100644
--- a/doc/locale/fr/LC_MESSAGES/features/signal/menu_processing.po
+++ b/doc/locale/fr/LC_MESSAGES/features/signal/menu_processing.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-06-07 10:35+0200\n"
+"POT-Creation-Date: 2024-06-19 15:09+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -248,18 +248,26 @@ msgid "Moving average"
msgstr "Moyenne mobile"
#: ../../doc/features/signal/menu_processing.rst:108
-msgid ":math:`y_{1}[i]=\\dfrac{1}{M}\\sum_{j=0}^{M-1}y_{0}[i+j]`"
+#, fuzzy
+msgid ""
+"`scipy.ndimage.uniform_filter "
+"`_"
msgstr ""
+"Filtre de Butterworth, utilisant la fonction `scipy.signal.butter "
+"`_"
#: ../../doc/features/signal/menu_processing.rst:109
msgid "Moving median"
msgstr "Médiane mobile"
#: ../../doc/features/signal/menu_processing.rst:110
+#, fuzzy
msgid ""
-"`scipy.signal.medfilt "
-"`_"
+"`scipy.ndimage.median_filter "
+"`_"
msgstr ""
+"Filtre de Butterworth, utilisant la fonction `scipy.signal.butter "
+"`_"
#: ../../doc/features/signal/menu_processing.rst:111
msgid "Wiener filter"
@@ -1015,3 +1023,11 @@ msgstr ""
#~ "signal."
#~ msgstr "Crée un signal à partir du seuillage de chaque signal sélectionné."
+#~ msgid ":math:`y_{1}[i]=\\dfrac{1}{M}\\sum_{j=0}^{M-1}y_{0}[i+j]`"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "`scipy.signal.medfilt "
+#~ "`_"
+#~ msgstr ""
+
diff --git a/doc/locale/fr/LC_MESSAGES/intro/introduction.po b/doc/locale/fr/LC_MESSAGES/intro/introduction.po
index 4b8e9bd2..c942fff6 100644
--- a/doc/locale/fr/LC_MESSAGES/intro/introduction.po
+++ b/doc/locale/fr/LC_MESSAGES/intro/introduction.po
@@ -461,63 +461,4 @@ msgstr ""
msgid ""
"See section :ref:`validation` for more information on DataLab's "
"validation strategy."
-msgstr ""
-
-#~ msgid "DataLab in a nutshell"
-#~ msgstr "DataLab en bref"
-
-#~ msgid ""
-#~ "DataLab is an open platform for "
-#~ "signal and image processing. Its "
-#~ "functional scope is intentionally broad. "
-#~ "With its many functions, some of "
-#~ "them technically advanced, DataLab enables "
-#~ "the processing and visualization of all"
-#~ " types of scientific data. As a "
-#~ "result, scientific, industrial, and innovation"
-#~ " stakeholders can have access to an"
-#~ " easy-to-use tool that is "
-#~ "simple to adapt and offers the "
-#~ "reliability of industrial-grade software."
-#~ msgstr ""
-#~ "DataLab est une plateforme ouverte de"
-#~ " traitement de signaux et d'images. "
-#~ "Son périmètre fonctionnel est volontairement"
-#~ " large. Avec ses nombreuses fonctions, "
-#~ "certaines techniquement avancées, DataLab "
-#~ "permet le traitement et la visualisation"
-#~ " de tous types de données "
-#~ "scientifiques. Ainsi, les acteurs "
-#~ "scientifiques, industriels et de l'innovation"
-#~ " peuvent disposer d'un outil facile à"
-#~ " utiliser, simple à adapter et "
-#~ "offrant la fiabilité d'un logiciel "
-#~ "industriel."
-
-#~ msgid "How does DataLab work?"
-#~ msgstr "Comment fonctionne DataLab ?"
-
-#~ msgid "Introduction"
-#~ msgstr "Introduction"
-
-#~ msgid ""
-#~ "Researchers, engineers, scientists, you will"
-#~ " undoubtedly benefit from the capabilities"
-#~ " of DataLab. Its open-source software"
-#~ " model will also allow you to "
-#~ "reinvest your achievements in the "
-#~ "open-source community, of which any "
-#~ "reputable publisher should be an active"
-#~ " member."
-#~ msgstr ""
-#~ "Chercheurs, ingénieurs, scientifiques, vous "
-#~ "bénéficierez sans aucun doute des "
-#~ "capacités de DataLab. Son modèle de "
-#~ "logiciel open source vous permettra "
-#~ "également de réinvestir vos réalisations "
-#~ "dans la communauté open source, dont "
-#~ "tout éditeur de renom devrait être "
-#~ "un membre actif."
-
-#~ msgid "DataLab highlights has four key strengths:"
-#~ msgstr "DataLab met en avant quatre points forts :"
+msgstr "Voir la section :ref:`validation` pour plus d'informations sur la stratégie de validation de DataLab."
diff --git a/doc/locale/fr/LC_MESSAGES/intro/keyfeatures.po b/doc/locale/fr/LC_MESSAGES/intro/keyfeatures.po
index 0ff8e4ec..a4fe351a 100644
--- a/doc/locale/fr/LC_MESSAGES/intro/keyfeatures.po
+++ b/doc/locale/fr/LC_MESSAGES/intro/keyfeatures.po
@@ -47,7 +47,7 @@ msgid ""
"DataLab supports dark and light mode depending on your platform settings "
"(this is handled by the `guidata`_ package, and may be overridden by "
"setting the `QT_COLOR_MODE` environment variable to `dark` or `light`)."
-msgstr ""
+msgstr "DataLab prend en charge le mode sombre et le mode clair en fonction des paramètres de votre plateforme (cela est géré par le paquet `guidata`_ et peut être remplacé en définissant la variable d'environnement `QT_COLOR_MODE` sur `dark` ou `light`)."
#: ../../doc/intro/keyfeatures.rst:21
msgid "Data visualization"
diff --git a/doc/locale/fr/LC_MESSAGES/requirements.po b/doc/locale/fr/LC_MESSAGES/requirements.po
index 31747ab5..18e1aa7d 100644
--- a/doc/locale/fr/LC_MESSAGES/requirements.po
+++ b/doc/locale/fr/LC_MESSAGES/requirements.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DataLab \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-11 11:08+0200\n"
+"POT-Creation-Date: 2024-06-16 12:03+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: fr\n"
@@ -67,7 +67,7 @@ msgid "NumPy"
msgstr ""
#: ../../doc/requirements.rst:17
-msgid ">= 1.21"
+msgid ">= 1.21, < 2"
msgstr ""
#: ../../doc/requirements.rst:18
@@ -337,3 +337,6 @@ msgstr "Un plugin pytest pour exécuter Xvfb (ou Xephyr/Xvnc) pour les tests."
#~ msgid ">= 3.4"
#~ msgstr ""
+#~ msgid ">= 1.21"
+#~ msgstr ""
+
diff --git a/doc/requirements.rst b/doc/requirements.rst
index 0694d4b6..de254fe1 100644
--- a/doc/requirements.rst
+++ b/doc/requirements.rst
@@ -14,7 +14,7 @@ The :mod:`cdl` package requires the following Python modules:
- >= 3.0
- Read and write HDF5 files from Python
* - NumPy
- - >= 1.21, < 2
+ - >= 1.21
- Fundamental package for array computing in Python
* - SciPy
- >= 1.7