Skip to content.
CCB > CCBSIGS > ShapeToolLibraryProgram > ShapeToolProgramProductStatusSummary > ArrayIOLibraryProjectDefinitionV1x0

Shape Tools Array IO library project definition

Overview

a small library that enables reading and writing numerical arrays to and from disk files.

Draft Requirements

  • Written in Java 1.5
  • support comments
  • support float, and double precision
  • support intermixed scientific notation and decimal notation.
  • disk files are self identifying
    • array dimensions, data type
  • support an application versioon number
  • support a general array io version number
  • support
    • Nifti files
    • support landmark warp files (?)
    • support Ryan's discrete data files
  • support calls like
    • float [][] foo = readArray("myArray.file");
    • readArray(foo, "myArray.file");
  • Provides means to:
    • Ensure that the data values are not used inappropriately.
    • Communicate to library clients contextual descriptions of the data (e.g. 'this is a set of samples').
  • have means to require existence of a named data chunk in the input file (to assure application the the file matches the intended use).
  • should have non-lossy translations between common formats
  • be able to specify validity constraints on arrays before reading (e.g "must be square", "must be 4 or more columns", "must be a "myType" data file,
  • be able to specify comments to be written out (where approprite)
  • be able to change to numerical formatting of the values , if written to text.

Restrictions, Exclusions, Limitations

  • version 1.0 only supports 2d array of scalar floats as ascii text

People Affected

Person Initials Notes
Craig Schwartz CS Programmer
Roger Woods RW Sponsor

Version

1.0

Requirements Change Procedure

  • Changes to be mutually agreed upon by Craig, in consultation with himself.
  • Changes and their date will be entered in a 'requirements change' list.

Requirements Changes

  • N/A

Products

This project will result in the following products:
  • A Java application jar containing code that implements the requirements of this project.
  • A CVS repository containing the Java source code of this library.
  • Examples illustrating use of the library.
  • JUnit tests that validate the external inteface of this library.

Draft Format

  • Description Block
  • Comment Block
  • Data Block