Ticket #190 (closed: fixed)
Create a WorkspaceRawFile workspace type and alter LoadRaw to use it.
Reported by: | Nick Draper | Owned by: | Roman Tolchenov |
---|---|---|---|
Priority: | major | Milestone: | Iteration 13 |
Component: | Keywords: | ||
Cc: | Blocked By: | ||
Blocking: | Tester: |
Description
At the moment the first workspace created from a LoadRaw is an exact memory copy of the data in the file. The idea here is to save memory by only creating a workspace type facade that loads the data from the file as it is required.
Things to consider
- Instrument and spectra-detector table etc - this associated information should be loaded in full as normal
- Loading data on demand - It will probably be necessary to load the data in 'chunks' of n spectra
- What if an algorithm tries to modify this workspace? - This workspacetype should be read only. If someone tries to modify it it should copy all of it's data into a normal Workspace2D (or ManagedWorkspace2D) to continue.
Change History
comment:2 Changed 12 years ago by Nick Draper
- Owner changed from Russell Taylor to Roman Tolchenov
- Milestone changed from Iteration 11 to Iteration 12
comment:6 Changed 12 years ago by Nick Draper
Suggested steps to start this
- Learn and understand how ManagedWorkspace2D and the ManagedDataBlock classes work.
- Create copied classes for ManagedWorkspace2D and ManagedDataBlock that use a RAW file as their data storage file. For now just disallow/ignore any operations that would modify the data
- Modify the existing ManagedWorkspace2D classes to seperate the file operations from the rest of the code. These operations should be called through virtual methods that can be overwritten.
- Create an ManagedRawWorkspace2D class that inherits from ManagedWrokspace2D, and provides alternate implementations for the virtual methods that use the RAW file rather than the flat file.
- Intercept calls that would alter a datablock and change that block to use flat file storage. Alter the datablock loading to handle this.
comment:10 Changed 12 years ago by Roman Tolchenov
comment:11 Changed 12 years ago by Roman Tolchenov
comment:12 Changed 12 years ago by Roman Tolchenov
comment:13 Changed 12 years ago by Roman Tolchenov
comment:14 Changed 12 years ago by Nick Draper
- Status changed from new to closed
- Resolution set to fixed
comment:15 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 1038
Note: See
TracTickets for help on using
tickets.