libics v.1.6.8 Online Documentation. ©2000-2010 by Cris Luengo and others.
The ICS data structure, which is the same as the Ics_Header data structure, contains the fields described below.
All arrays are already allocated (static arrays). This determines the maximum sizes allowed. If larger sizes are required, you must change some values defined in "libics.h" and re-compile the library.
Warning: The Ics_Header structure is likely to change in the future. It is recommended that you only use the top-level interface functions to access this structure. This information is provided to help you understand libics, not to help you mess around with its internals.
These are used by the library to store the current state of the ICS "stream". They don't influence what is written to the file.
When data is read in blocks (using IcsGetDataBlock and IcsSkipDataBlock) this pointer is set to a structure that contains information on the open data file.
type: void*
Contains the name of the ICS file, including extension and path. If the ICS file in question is an ICS version 1.0, it is also used to locate the corresponding .ids file (data file).
type: char [ICS_MAXPATHLEN]
Specifies whether the ICS "stream" is open for reading or writing.
type: Ics_FileMode
These values determine how the files are written (or how to read them).
ICS version.
type: int
value: 1 for ICS version 1.0, 2 to ICS version 2.0.
Number of dimensions of the data, not including the pixel depth. Its maximum value is ICS_MAXDIM, and determines the amount of useful values in Dim.
type: int
access: IcsGetLayout, IcsSetLayout.
Pointer to the image data to be written. Not used when reading.
type: void const*
access: IcsSetData, IcsSetDataWithStrides.
Size of the image data pointed to by Data. Not used when reading.
type: size_t
access: IcsSetData, IcsSetDataWithStrides.
Pointer to an array with distance in pixels to the neighbors. Not used when reading.
type: ptrdiff_t const*
access: IcsSetDataWithStrides.
Compression technique used.
type: Ics_Compression
access: IcsSetCompression.
Parameter for the compression. Not set when reading.
type: int
access: IcsSetCompression.
Pointer to a structure with "history" lines read or to be written to the ICS file. The structure itself is hidden from the library user. Use the top-level interface to add, delete, replace or retrieve history lines. IcsAddHistoryString automatically allocates this structure as needed, and IcsClose frees the memory associated with this structure. If not using the high-level interface to write the ICS header, use IcsFreeHistory.
type: void*
access: IcsAddHistory, IcsDeleteHistory, IcsDeleteHistoryStringI, IcsGetHistoryKeyValue, IcsGetHistoryKeyValueI, IcsGetHistoryString, IcsGetHistoryStringI, IcsGetNumHistoryStrings, IcsNewHistoryIterator, IcsReplaceHistoryStringI, IcsFreeHistory.
Determines if the Special microscopy parameters will be written or not.
type: int
value: zero to ignore parameters, non-zero to write them.
These are values that are read from or written to the ICS file, and define the image data. These are vital to the interpretation of the image.
The storage order of the bytes is written here. Ignored when writing. Don't change the values when reading.
type: int [ICS_MAX_IMEL_SIZE]
Contains the dimension-specific data. There are Dimensions valid entries.
The Size field is the only vital element, and gives the dimensions of the image data. The other fields are described below.
type: Ics_DataRepresentation [ICS_MAXDIM]
access: IcsGetLayout, IcsSetLayout.
Contains the imel-specific data.
The DataType is the only vital element, and specifies the data representation. Without this field it is not possible to use the Data. The SigBits field can be used additionally to indicate how many of the bits are significant (or actually used). The other fields are described below.
type: Ics_ImelRepresentation
access: IcsGetImelSize, IcsGetLayout, IcsSetLayout, IcsGetSignificantBits, IcsSetSignificantBits.
This parameter is used only by SCIL_Image. If you want to read your image with SCIL_Image, there must be a valid string here.
type: char [ICS_STRLEN_TOKEN]
value: "g2d", "g3d", "f2d", "f3d", "c2d", "c3d", "b2d", "b3d", "l2d", "l3d", "col2d" or "col3d".
access: IcsGetScilType, IcsGuessScilType, IcsSetScilType.
Source file name.
When writing an ICS version 2 file, set this to the name of the file that contains the image data. If this string is not empty, Data is ignored, and IdsWrite does nothing. If it is empty, the data pointed to by Data is written to the end of the ICS file.
When reading, this is set to the name of the file that contains the image data, even if the data is in the ICS file itself.
type: char [ICS_MAXPATHLEN]
access: IcsSetSource.
Offset into source file. This is ignored when writing and SrcFile is empty.
type: size_t
access: IcsSetSource.
These values are copied as-is to the ICS file, and define the circumstances under which the image was taken. None of these are vital to understand the image data, but can be very useful.
The coordinate system used.
type: char [ICS_STRLEN_TOKEN]
value: "video", "cartesian" or anything else you can come up with. The default is "video", which means that the origin is the upper left pixel.
access: IcsGetCoordinateSystem, IcsSetCoordinateSystem.
Contains the dimension-specific data. There are Dimensions valid entries.
The Origin, Scale and Unit fields give information on the position of the image in the real world.
The Order and Label fields define the meaning of each of the dimensions in the image.
type: Ics_DataRepresentation [ICS_MAXDIM]
access: IcsGetOrder, IcsGetPosition, IcsSetOrder, IcsSetPosition.
Contains the imel-specific data.
The Origin, Scale and Unit fields specify the physical meaning of the values in the image.
type: Ics_ImelRepresentation
access: IcsGetImelUnits, IcsSetImelUnits.
These values are also copied as-is to the ICS file, under the token 'sensor'. This is a token not defined in the standard, and provides specialized information for certain applications. All microscope parameters can be coded in here. If you want these values to be written to the file you need to set WriteSensor to a non-zero value. The recommended way to access these parameters is to use the Sensor functions.
Number of excitation photons.
type: int [ICS_MAX_LAMBDA]
Excitation wavelength in nm.
type: double [ICS_MAX_LAMBDA]
Emission wavelength in nm.
type: double [ICS_MAX_LAMBDA]
Model or make.
type: char [ICS_STRLEN_OTHER]
Numerical Aperture.
type: double
Back projected microns.
type: double [ICS_MAX_LAMBDA]
Nipkow Disk pinhole spacing.
type: double
Refractive index of design medium.
type: double
Refractive index of embedding medium.
type: double
Number of channels. Defines the number of useful entries in PinholeRadius, LambdaEx, LambdaEm and ExPhotonCnt.
type: int
STED depletion mode.
type: char [ICS_STRLEN_TOKEN]
STED immunity fraction.
type: double
STED wavelength in nm.
type: double
STED phase plate mode.
type: char [ICS_STRLEN_TOKEN]
STED saturation factor.
type: double
STED vortex to phase plate mix.
type: double
Sensor type.
type: char [ICS_STRLEN_TOKEN]
Every microscopy parameter has a token that can be used in the generic
Set and Get functions
to change the value(s). The possible tokens are:
ICS_SENSOR_IMAGING_DIRECTION
ICS_SENSOR_NUMERICAL_APERTURE
ICS_SENSOR_OBJECTIVE_QUALITY
ICS_SENSOR_MEDIUM_REFRACTIVE_INDEX
ICS_SENSOR_LENS_REFRACTIVE_INDEX
ICS_SENSOR_PINHOLE_RADIUS
ICS_SENSOR_ILL_PINHOLE_RADIUS
ICS_SENSOR_PINHOLE_SPACING
ICS_SENSOR_EXCITATION_BEAM_FILL
ICS_SENSOR_LAMBDA_EXCITATION
ICS_SENSOR_LAMBDA_EMISSION
ICS_SENSOR_PHOTON_COUNT
ICS_SENSOR_INTERFACE_PRIMARY
ICS_SENSOR_INTERFACE_SECONDARY
ICS_SENSOR_DESCRIPTION
ICS_SENSOR_DETECTOR_MAGN
ICS_SENSOR_DETECTOR_PPU
ICS_SENSOR_DETECTOR_BASELINE
ICS_SENSOR_DETECTOR_LINE_AVG_COUNT
ICS_SENSOR_DETECTOR_NOISE_GAIN
ICS_SENSOR_DETECTOR_OFFSET
ICS_SENSOR_DETECTOR_SENSITIVITY
ICS_SENSOR_DETECTOR_RADIUS
ICS_SENSOR_DETECTOR_SCALE
ICS_SENSOR_DETECTOR_STRETCH
ICS_SENSOR_DETECTOR_ROT
ICS_SENSOR_DETECTOR_MIRROR
ICS_SENSOR_DETECTOR_MODEL
ICS_SENSOR_DETECTOR_REDUCEHIST
ICS_SENSOR_STED_DEPLETION_MODE
ICS_SENSOR_STED_LAMBDA
ICS_SENSOR_STED_SATURATION_FACTOR
ICS_SENSOR_STED_IMM_FRACTION
ICS_SENSOR_STED_VPPM
ICS_SENSOR_SPIM_EXCITATION_TYPE
ICS_SENSOR_SPIM_FILL_FACTOR
ICS_SENSOR_SPIM_PLANE_NA
ICS_SENSOR_SPIM_PLANE_GAUSS_WIDTH
ICS_SENSOR_SPIM_PLANE_PROP_DIR
ICS_SENSOR_SPIM_PLANE_CENTER_OFF
ICS_SENSOR_SPIM_PLANE_FOCUS_OFF
ICS_SENSOR_SCATTER_MODEL
ICS_SENSOR_SCATTER_FREE_PATH
ICS_SENSOR_SCATTER_REL_CONTRIB
ICS_SENSOR_SCATTER_BLURRING
Every microscopy parameter has a state indicating where the parameter came from /
the level of confidence we have in the parameter. Possible values:
IcsSensorState_default
IcsSensorState_estimated
IcsSensorState_reported
IcsSensorState_verified