DS ADR: don't write .raw files - #236
Conversation
|
@martyngigg fyi as we were discussing this informally the other day. |
.raw files.raw files
|
The arguments in the proposed decision to drop ".RAW" format files from the file writer output seem sound. There is however a second function which the .RAW file has fulfilled and it is important for the downstream archiving of the instrument data files (produced at the end of a run) that this functionality is maintained. At the end of each run, the .RAW file is currently augmented with a second windows NTFS file-stream. This is not normally read by applications and so forms a location for validation metadata about the contents of all files produced at the time the experimental run ends. A particular advantage of this is that a validation checksum of the .RAW file can be stored in this file stream without affecting the calculated checksum of the file (thus providing an independent check of file integrity across any subsequent file transfers). The logical preservation of this would be to generate these checksums to a second file stream on the .NXS file by the file writer/end of run script (whilst the ISIS archive remains on Windows at least). It is possible to write and archive an independent checksum file, but doing this produces a significant risk that the seemingly random file will not be copied and won't follow the data file. It might be good to ensure that if a separate file is created it maintains the ".NXS" extension (e.g. ENGINX00374779_checksum.NXS) this would make it more likely to be copied as a data file and not just ignored, future software could also take note of this and check/validate the binary .NXS data file for integrity in later decades. A final point is that the "_checksum" file could be linked into an overall NeXus file container and be updated at the end of production of other linked .NXS files. So, at this point the extra Windows file stream mechanism might no longer be needed, though it might still be wise to keep the plain text format of the second file stream for data checks by a non-NeXus application or file system across the suite of .NXS or other files produced on the instrument disk and the time of an "END". Examples for two instrumentsThese are different and given as examples, but of note is:
MUSRENGINX |
|
Thanks @ChrisM-S - we do also have a more detailed issue for file archiving and checksumming strategy in the streaming system: ISISComputingGroup/DataStreaming#85 which you might be interested in. We also have an issue to investigate how we want to do autosave/intermediate files (ISISComputingGroup/DataStreaming#96), which is of relevance to your comment about moving away from I've pushed an additional commit to add context about how these |
I believe we have now done enough research with downstream consumers incl. GudRun, Mantid, etc to definitively rule out writing
.rawfiles from the DS system.