Skip to content

Commit 2aa59cc

Browse files
committed
docs: release notes for the review fixes
Describe the user-visible corrections of this release cycle coming from the review: atomic workspace saving, non-uniform image coordinates in Web API transfers, HDF5 link cycles (SigimaX) and the processing fixes of Sigima 1.4.0 (resampling grid, real/complex signal operations, complex images, independent geometric results, ROI extraction and rotation of non-uniform images, product uncertainty). Document the resampling bounds as pixel centers (and fix the x_min formula markup) and update the resampling test scenario accordingly. French translations updated. Assisted-by: Claude Opus 5.5
1 parent 34ad31c commit 2aa59cc

5 files changed

Lines changed: 67 additions & 16 deletions

File tree

‎datalab/tests/scenarios/common.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,9 @@ def run_image_computations(
328328
width=width_param,
329329
height=height_param,
330330
xmin=ima1.x0,
331-
xmax=ima1.x0 + ima1.width,
331+
xmax=ima1.x0 + ima1.width - ima1.dx,
332332
ymin=ima1.y0,
333-
ymax=ima1.y0 + ima1.height,
333+
ymax=ima1.y0 + ima1.height - ima1.dy,
334334
)
335335
panel.processor.run_feature("resampling", param)
336336

‎doc/features/image/menu_processing.rst‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -547,14 +547,14 @@ The following parameters are available:
547547

548548
* - Parameter
549549
- Description
550-
* - math:`x_{min}`
551-
- Minimum x-coordinate of the output image
550+
* - :math:`x_{min}`
551+
- X-coordinate of the center of the first output pixel
552552
* - :math:`x_{max}`
553-
- Maximum x-coordinate of the output image
553+
- X-coordinate of the center of the last output pixel
554554
* - :math:`y_{min}`
555-
- Minimum y-coordinate of the output image
555+
- Y-coordinate of the center of the first output pixel
556556
* - :math:`y_{max}`
557-
- Maximum y-coordinate of the output image
557+
- Y-coordinate of the center of the last output pixel
558558
* - Mode
559559
- Image size definition mode: 'Pixel size' or 'Output shape'. The 'Pixel size' mode
560560
allows to define the pixel size of the new image, while the 'Output shape' mode

‎doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -791,32 +791,32 @@ msgid "Generate new images by resampling each selected image. The following para
791791
msgstr "Génère de nouvelles images en rééchantillonnant chaque image sélectionnée. Les paramètres suivants sont disponibles :"
792792

793793
#, python-brace-format
794-
msgid "math:`x_{min}`"
794+
msgid ":math:`x_{min}`"
795795
msgstr ""
796796

797-
msgid "Minimum x-coordinate of the output image"
798-
msgstr "Coordonnée x minimale de l'image de sortie"
797+
msgid "X-coordinate of the center of the first output pixel"
798+
msgstr "Coordonnée x du centre du premier pixel de sortie"
799799

800800
#, python-brace-format
801801
msgid ":math:`x_{max}`"
802802
msgstr ""
803803

804-
msgid "Maximum x-coordinate of the output image"
805-
msgstr "Coordonnée x maximale de l'image de sortie"
804+
msgid "X-coordinate of the center of the last output pixel"
805+
msgstr "Coordonnée x du centre du dernier pixel de sortie"
806806

807807
#, python-brace-format
808808
msgid ":math:`y_{min}`"
809809
msgstr ""
810810

811-
msgid "Minimum y-coordinate of the output image"
812-
msgstr "Coordonnée y minimale de l'image de sortie"
811+
msgid "Y-coordinate of the center of the first output pixel"
812+
msgstr "Coordonnée y du centre du premier pixel de sortie"
813813

814814
#, python-brace-format
815815
msgid ":math:`y_{max}`"
816816
msgstr ""
817817

818-
msgid "Maximum y-coordinate of the output image"
819-
msgstr "Coordonnée y maximale de l'image de sortie"
818+
msgid "Y-coordinate of the center of the last output pixel"
819+
msgstr "Coordonnée y du centre du dernier pixel de sortie"
820820

821821
msgid "Mode"
822822
msgstr "Mode"

‎doc/locale/fr/LC_MESSAGES/release_notes/release_1.04.po‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,3 +484,39 @@ msgstr "**Sécurité :**"
484484

485485
msgid "Opening a workspace received from someone else can no longer make DataLab load or run other code installed on the computer. The parameters stored with objects, analysis results and History actions name their class, and DataLab imported whatever module they named and called the object named there, which a modified file could use, for example, to make DataLab quit. Only parameter classes of DataLab, Sigima, guidata and installed plugins are now used; other stored parameters are reported as unreadable (fixes [Issue #407](https://github.com/DataLab-Platform/DataLab/issues/407))"
486486
msgstr "Ouvrir un espace de travail reçu d'une autre personne ne permet plus de faire charger ou exécuter par DataLab un autre code installé sur l'ordinateur. Les paramètres enregistrés avec les objets, les résultats d'analyse et les actions de l'historique nomment leur classe, et DataLab importait le module ainsi nommé puis appelait l'objet désigné, ce qu'un fichier modifié pouvait exploiter, par exemple pour faire quitter DataLab. Seules les classes de paramètres de DataLab, Sigima, guidata et des plugins installés sont désormais utilisées ; les autres paramètres enregistrés sont signalés comme illisibles (corrige [l'issue #407](https://github.com/DataLab-Platform/DataLab/issues/407))"
487+
488+
msgid "Fixed HDF5 files containing a group linked into itself or into one of its subgroups failing to open in the HDF5 browser (the file was browsed endlessly until an error): such links back to a parent group are now skipped, while other aliases of a group or dataset are still shown at each of their paths"
489+
msgstr "Correction des fichiers HDF5 contenant un groupe lié dans lui-même ou dans l'un de ses sous-groupes, qui ne pouvaient pas être ouverts dans l'explorateur HDF5 (le fichier était parcouru sans fin jusqu'à une erreur) : ces liens vers un groupe parent sont désormais ignorés, tandis que les autres alias d'un groupe ou d'un jeu de données restent affichés à chacun de leurs chemins"
490+
491+
msgid "**Workspace saving:**"
492+
msgstr "**Enregistrement de l'espace de travail :**"
493+
494+
msgid "Fixed a failed save destroying the previous version of the workspace file: the file was emptied before the data was written, so that an error during the save, a full disk or an interruption left neither the previous nor the new workspace on disk. Workspaces, capsules and History files (`.dlhist`) are now written to a temporary file, which replaces the previous file only once completely written; if the save fails, the previous file is left untouched"
495+
msgstr "Correction d'un enregistrement en échec qui détruisait la version précédente du fichier d'espace de travail : le fichier était vidé avant l'écriture des données, si bien qu'une erreur pendant l'enregistrement, un disque plein ou une interruption ne laissaient sur le disque ni l'ancien ni le nouvel espace de travail. Les espaces de travail, les capsules et les fichiers d'historique (`.dlhist`) sont désormais écrits dans un fichier temporaire, qui ne remplace le fichier précédent qu'une fois entièrement écrit ; en cas d'échec de l'enregistrement, le fichier précédent reste intact"
496+
497+
msgid "Fixed **Processing > Resampling** of images shifting every value by half a pixel: resampling an image with the default parameters, i.e. onto its own grid, filled its last row and column with NaN. The X/Y min/max parameters are now the coordinates of the centers of the first and last output pixels (by default, those of the image), and the 'Pixel size' mode keeps the requested pixel size exactly"
498+
msgstr "Correction du **Traitement > Rééchantillonnage** des images, qui décalait toutes les valeurs d'un demi-pixel : rééchantillonner une image avec les paramètres par défaut, c'est-à-dire sur sa propre grille, remplissait sa dernière ligne et sa dernière colonne de NaN. Les paramètres X/Y min/max sont désormais les coordonnées des centres du premier et du dernier pixel de sortie (par défaut, ceux de l'image), et le mode 'Taille de pixel' conserve exactement la taille de pixel demandée"
499+
500+
msgid "Fixed the sum, average, product and standard deviation of several signals, and their combination into an image, depending on the order of the signals: when a real signal came first, the imaginary parts of the complex signals were discarded"
501+
msgstr "Correction de la somme, de la moyenne, du produit et de l'écart-type de plusieurs signaux, ainsi que de leur combinaison en image, qui dépendaient de l'ordre des signaux : lorsqu'un signal réel venait en premier, les parties imaginaires des signaux complexes étaient perdues"
502+
503+
msgid "The sum, average and product of several images now accept complex images, which raised an error"
504+
msgstr "La somme, la moyenne et le produit de plusieurs images acceptent désormais les images complexes, qui provoquaient une erreur"
505+
506+
msgid "Fixed modifying the result of a diagonal, horizontal or vertical flip or a 90° rotation of an image in place (e.g. from a macro or a plugin) also modifying its source image"
507+
msgstr "Correction de la modification en place du résultat d'un retournement diagonal, horizontal ou vertical ou d'une rotation de 90° d'une image (par exemple depuis une macro ou un plugin), qui modifiait aussi l'image source"
508+
509+
msgid "Fixed the extraction of several regions of interest into a single image giving wrong coordinates to images with non-uniform coordinates (the X coordinates were taken from the extracted rows and the Y coordinates from the extracted columns)"
510+
msgstr "Correction de l'extraction de plusieurs régions d'intérêt dans une seule image, qui donnait des coordonnées erronées aux images à coordonnées non uniformes (les coordonnées X étaient prises sur les lignes extraites et les coordonnées Y sur les colonnes extraites)"
511+
512+
msgid "The arbitrary rotation of images (**Processing > Geometry > Rotate by...**) now refuses images with non-uniform coordinates, like resizing and resampling, instead of producing an image whose coordinates did not match its pixels"
513+
msgstr "La rotation arbitraire des images (**Traitement > Géométrie > Rotation de...**) refuse désormais les images à coordonnées non uniformes, comme le redimensionnement et le rééchantillonnage, au lieu de produire une image dont les coordonnées ne correspondaient pas à ses pixels"
514+
515+
msgid "Fixed the uncertainty of the product of signals being lost where one of the signals is zero: it is now propagated there too"
516+
msgstr "Correction de l'incertitude du produit de signaux, qui était perdue là où l'un des signaux est nul : elle y est désormais également propagée"
517+
518+
msgid "These processing fixes come from Sigima 1.4.0. They keep the operation contracts unchanged, so that replaying a History or a provenance record of these operations follows the corrected computation (results may differ from the recorded ones where the issues applied)."
519+
msgstr "Ces corrections de traitement proviennent de Sigima 1.4.0. Elles ne modifient pas les contrats des opérations, si bien que le rejeu d'un historique ou d'un enregistrement de provenance de ces opérations suit le calcul corrigé (les résultats peuvent différer de ceux enregistrés là où les problèmes s'appliquaient)."
520+
521+
msgid "Fixed images with non-uniform coordinates losing them when transferred through the Web API (`GET` and `PUT /objects/{name}/data`): they were rebuilt with default uniform coordinates. The NPZ data format now includes these coordinates; archives written by earlier versions remain readable. Clients with their own NPZ reader, such as DataLab-Kernel, must support the new entries to take advantage of this"
522+
msgstr "Correction des images à coordonnées non uniformes qui perdaient celles-ci lors d'un transfert par l'API Web (`GET` et `PUT /objects/{name}/data`) : elles étaient reconstruites avec des coordonnées uniformes par défaut. Le format de données NPZ inclut désormais ces coordonnées ; les archives écrites par les versions antérieures restent lisibles. Les clients disposant de leur propre lecteur NPZ, comme DataLab-Kernel, doivent prendre en charge les nouvelles entrées pour en bénéficier"

‎doc/release_notes/release_1.04.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ See the [HDF5 browser guide](../features/common/h5browser.rst) for scientific ob
178178
* Fixed single-precision complex (`complex64`) 1D datasets losing their imaginary part when imported from an HDF5 file: they are now imported as complex signals. Integer signals beyond ±2⁵³ now also emit the precision warning instead of being rounded silently
179179
* Fixed the import of several datasets from HDF5 files stopping at the first dataset that could not be imported: the other datasets are now imported, and the datasets that could not be are listed in a single message at the end
180180
* Fixed HDF5 files containing broken links failing to open in the HDF5 browser, for example synchrotron master files whose detector files are not available (external links to a missing file): the broken links are now skipped and the rest of the file can be browsed and imported
181+
* Fixed HDF5 files containing a group linked into itself or into one of its subgroups failing to open in the HDF5 browser (the file was browsed endlessly until an error): such links back to a parent group are now skipped, while other aliases of a group or dataset are still shown at each of their paths
182+
183+
**Workspace saving:**
184+
185+
* Fixed a failed save destroying the previous version of the workspace file: the file was emptied before the data was written, so that an error during the save, a full disk or an interruption left neither the previous nor the new workspace on disk. Workspaces, capsules and History files (`.dlhist`) are now written to a temporary file, which replaces the previous file only once completely written; if the save fails, the previous file is left untouched
181186

182187
**Metadata:**
183188

@@ -188,6 +193,15 @@ See the [HDF5 browser guide](../features/common/h5browser.rst) for scientific ob
188193

189194
* Results of the extraction of several regions of interest into a single object can be processed again: the **Processing** tab showed "Unknown computing feature: extract_rois" with **Reapply** disabled, and replaying the History skipped the action
190195
* **Edit > Recompute** now also recomputes results of operations combining several objects (e.g., difference of two signals, average of several images), which were skipped
196+
* Fixed **Processing > Resampling** of images shifting every value by half a pixel: resampling an image with the default parameters, i.e. onto its own grid, filled its last row and column with NaN. The X/Y min/max parameters are now the coordinates of the centers of the first and last output pixels (by default, those of the image), and the 'Pixel size' mode keeps the requested pixel size exactly
197+
* Fixed the sum, average, product and standard deviation of several signals, and their combination into an image, depending on the order of the signals: when a real signal came first, the imaginary parts of the complex signals were discarded
198+
* The sum, average and product of several images now accept complex images, which raised an error
199+
* Fixed modifying the result of a diagonal, horizontal or vertical flip or a 90° rotation of an image in place (e.g. from a macro or a plugin) also modifying its source image
200+
* Fixed the extraction of several regions of interest into a single image giving wrong coordinates to images with non-uniform coordinates (the X coordinates were taken from the extracted rows and the Y coordinates from the extracted columns)
201+
* The arbitrary rotation of images (**Processing > Geometry > Rotate by...**) now refuses images with non-uniform coordinates, like resizing and resampling, instead of producing an image whose coordinates did not match its pixels
202+
* Fixed the uncertainty of the product of signals being lost where one of the signals is zero: it is now propagated there too
203+
204+
These processing fixes come from Sigima 1.4.0. They keep the operation contracts unchanged, so that replaying a History or a provenance record of these operations follows the corrected computation (results may differ from the recorded ones where the issues applied).
191205

192206
**Plugins:**
193207

@@ -218,6 +232,7 @@ See the [HDF5 browser guide](../features/common/h5browser.rst) for scientific ob
218232
* Errors raised by remote commands, such as `calc` with an unknown computation function or `set_object` with an unknown object, are now reported to the client instead of being silently ignored
219233
* Fixed remote commands sometimes returning the result of the previous command instead of their own: for example, `get_current_object_uuid` could return a panel name instead of `None` when there was no current object
220234
* Fixed DataLab freezing when closed while a remote command was still running (e.g. when closing the main window with `call_method("close")`)
235+
* Fixed images with non-uniform coordinates losing them when transferred through the Web API (`GET` and `PUT /objects/{name}/data`): they were rebuilt with default uniform coordinates. The NPZ data format now includes these coordinates; archives written by earlier versions remain readable. Clients with their own NPZ reader, such as DataLab-Kernel, must support the new entries to take advantage of this
221236

222237
**Security:**
223238

0 commit comments

Comments
 (0)