Ticket #190 (closed: fixed)

Opened 12 years ago

Last modified 5 years ago

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:1 Changed 12 years ago by Nick Draper

  • Owner set to Russell Taylor

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:3 Changed 12 years ago by Nick Draper

  • Milestone changed from Iteration 12 to Iteration 13

comment:4 Changed 12 years ago by Roman Tolchenov

(In [1472]) LoadRaw version 2 is added. Small modifications to MemoryManager. re #190

comment:5 Changed 12 years ago by Roman Tolchenov

(In [1474]) Test corrected. re #190

comment:6 Changed 12 years ago by Nick Draper

Suggested steps to start this

  1. Learn and understand how ManagedWorkspace2D and the ManagedDataBlock classes work.
  2. 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
  3. 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.
  4. 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.
  5. Intercept calls that would alter a datablock and change that block to use flat file storage. Alter the datablock loading to handle this.

comment:7 Changed 12 years ago by Roman Tolchenov

(In [1507]) Added ManagedRawFileWorkspace2D workspace which does not load the data into memory until it is needed. LoadRaw2 and MantidPlot are modified to use it. re #190

comment:8 Changed 12 years ago by Roman Tolchenov

(In [1513]) Changed LoadRaw2 to load instrument into ManagedRawFileWorkspace2D. Added LoadRaw2Test and ManagedRawFileWorkspace2DTest. re #190

comment:9 Changed 12 years ago by Roman Tolchenov

(In [1514]) fixed ManagedRawFileWorkspace2DTest. re #190

comment:10 Changed 12 years ago by Roman Tolchenov

(In [1515]) re #190

comment:11 Changed 12 years ago by Roman Tolchenov

(In [1516]) re #190

comment:12 Changed 12 years ago by Roman Tolchenov

(In [1517]) re #190

comment:13 Changed 12 years ago by Roman Tolchenov

(In [1536]) Improved thread safety for ManagedRawFileWorkspace2D, re #190. Improved the look of MantidMatrix, re #272

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.