ODIN run files: WFM disc translation applies the full separation readback to each disc (discuss with file producers)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Start with the WFM positioner layout and the stated readback and vector behavior in this issue, then review the NeXus structure file coda_odin_999999_00028003.hdf and the related discussion in #833. The issue needs input from the file producers on whether per-disc readbacks will be available or how one shared positioner should represent half-readback scaling; done means agreeing on a structure that avoids incorrect positions and duplicate PV streams.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Split out of #833, which is resolved for all other instruments by the 2026-11-03 run files. Points to discuss with the producers of the NeXus structure files (ECDC).
Current layout
coda_odin_999999_00028003.hdf (2026-11-03). Each WFM disc has its own positioner. Both positioners record the same stage motor, as separate datasets:
/entry/instrument/wfm1_translation NXpositioner
value NXlog @source='ODIN-ChpLin:MC-LinX-01:Mtr.RBV' @topic='odin_motion'
@vector=[0, 0, 1] @depends_on='.' units: mm
target_value NXlog @source='ODIN-ChpLin:MC-LinX-01:Mtr.VAL'
idle_flag NXlog @source='ODIN-ChpLin:MC-LinX-01:Mtr.DMOV'
/entry/instrument/wfm2_translation NXpositioner
value NXlog @source='ODIN-ChpLin:MC-LinX-01:Mtr.RBV' (same PV)
@vector=[0, 0, -1] @depends_on='.'
target_value, idle_flag: same PVs as wfm1_translation
wfm1: translation = -53.725 m (z) -> wfm1_translation/value
wfm2: translation = -53.275 m (z) -> wfm2_translation/value
moderator at -60.5 m (z)
Both positioners carry this description:
The readback is the change in WFM disc separation from the widest position; each disc moves by only half of it, but the transformation applies the full value. Both WFM positioners read the same stage motor until each disc has its own PV.
Problems
- Magnitude. At readback 0 the discs are 0.45 m apart. The opposite vectors move them towards each other, which fits a readback that measures the change in separation. Each chain applies the full readback, so the computed separation changes by twice the readback. The WFM chopper positions are wrong whenever the readback is not 0. NeXus asks for a unit-length
@vector, so[0, 0, ±0.5]is not a clean fix. - Two NXlogs for one PV. Each positioner has its own
@vector,@transformation_typeand@depends_on, so the two can drift apart in a later structure-file edit (the risk described in #833). Consumers that map Kafka streams by(topic, source)also see the three PVs twice. For example, esslivedata's stream lookup table would feed only one of the two NXlogs.
Questions for the file producers
- Will the motion control system provide a position readback per disc? With one PV per disc, each positioner would record its own disc's position and both problems disappear.
- If not: should the file have a single
wfmc_translationpositioner, with the half-readback scaling expressed somewhere other than@vector?
- Lenguaje dominante
- Python
- Estrellas
- 3
- Forks
- 5
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 32
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de scipp/ess
-
[essnmx] essmandi-reduce writes entry/instrument/name = "NMX" for MANDI dataPosiblemente ocupada @YooSunYoung la tomó hace 55 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
[essnmx] Fix typo in NXLauetof application definitionQuizá libre de nuevo @nightcityblade la tomó hace 48 días y no hay ningún pull request abierto. Abiertoessnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
scipp/ess#760 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
essdiffraction
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
[essimaging] `maximum_resolution_achievable` should not hardcode "time" as the "third" dimensionPosiblemente ocupada @jokasimr la tomó hace 211 días. Abiertoessimaging
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Treat corrupt-shape state files as missing in `load_state`Posiblemente ocupada @Qrytics la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
OvertureMaps/overturemaps-py#175 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
awslabs/visual-asset-management-system#1278 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
aws-samples/sample-per-model-bedrock#835 ·
Los mantenedores suelen responder en 1 día