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
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
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