The FORCE_PLATFORM:TYPE parameter is an array of signed integers that define the type of force platform output expected from each force platform. The TYPE array size must be equal to or greater than the value of the FORCE_PLATFORM:USED parameter. Initially, the C3D specification supported three force platform types (1-3), with the Type-4 platform added in the early 90’s to support the inclusion of the full force plate calibration matrix. Over the years since, various manufacturers have occasionally created additional force platform descriptions to define specific force data collection environments but these are not commonly seen.
The analog data from each force platform is stored in the associated analog channels defined by the FORCE_PLATFORM:CHANNEL parameter – the data stored from each force plate channel is scaled by the ANALOG:SCALE parameter. The default storage method should be to store the unprocessed analog samples from each force plate channel in the associated analog channel. These values are then scaled using the associated floating-point ANALOG:SCALE or CAL_MATRIX parameters, which prevents data corruption if the C3D file format is ever changed from floating-point to integer.
Starting in 2007, one manufacturer started storing pre-scaled force plate data in floating-point formatted C3D files, an approach that has since been used by other manufacturers, resulting in much larger file sizes that require more processing power. The pre-scaled processed data is defined as force plate TYPE-2 data with the calculated force and moment data stored in the analog channels defined by the FORCE_PLATFORM:CHANNEL parameter. The relevant ANALOG:SCALE parameters set to a value of 1.00, indicating that the data has already been scaled by the Nexus software and can be interpreted directly as three forces (Fx, Fy and Fz) and three moments (Mx, My and Mz).
While this scheme relieves the end-user of the problems of calculating and applying the SCALE or CAL_MATRIX parameters to the data, it eliminates the ability to review the raw force plate signals in the event of any problems with the force plate. As a result end-users have no way of verifying the data collection conditions or the correct force plate scaling factors during any future review or processing of the force data.
This decision means that when pre-scaled data is stored using the floating-point format with the relevant ANALOG:SCALE parameters set to a value of 1.00, the C3D file cannot be converted to the integer format without rescaling the force plate data. This is because integer overflow can occur as the stored force plate data (especially the Mx and My moments) can easily exceed the 16-bit integer storage range when the force plate details and scales are not stored in the C3D file. This essentially defeats one of the major features of the C3D format – because the application has failed to record the scaling values - this is not a result of using floating-point storage.
An addition effect of storing pre-scaled force data is that the stored values appear to be very accurate (typically storing data values with calculated submicron resolutions) although the actual measurement accuracy does not match the recorded results.