A data record contains zero or more named data segments. The data segments contain data of large volume associated with the data record. The contents of the data segments for a given data record is stored in files in a directory on disk (possible on tape) As described below, to make transfer and storage of JSOC data more managable and efficient, the data segments for multiple data records are grouped together and managed as a single storage unit. This typically gives rise to a directory structure like
/PDS1/DU12342/hmi_lev1_fd_V-34236-0000.fits hmi_lev1_fd_V-34236-0001.fitz hmi_lev1_fd_V-34236-0002.raw hmi_lev1_fd_V-34237-0000.fits hmi_lev1_fd_V-34237-0001.fitz hmi_lev1_fd_V-34237-0002.raw hmi_lev1_fd_V-34238-0000.fits hmi_lev1_fd_V-34238-0001.fitz hmi_lev1_fd_V-34238-0002.rawwhere in this example the records are assumed to contain three segments stored in .fits, .fitz and .raw files. In general the file name for each data segment could be of the form:
<disk>/<unit>/<series>-<record#>-<segment#>.<extension>.
The JSOC API provides a set of functions to access and manipuate the
contents of the data segments as -dimensional arrays, hiding the
underlying storage format from the user. The API could also contain
functions returning the path to files containing data segments, such
that the user can manipulate the files directly, with standard
software, if she is so inclined [at her own risk].