MCC File Schema
This documentation provides an overview of the schema used in MCC files. Given that the MCC is still a fairly niche instrument and all based around the hardware and software developed at FAA by Rich Walters, the format is fairly standard. However, we only have a small sample size and it is possible that different manufacturers have tweaked the output format or developed their own software.
File Structure
The output of the MCC programs we are aware of is in a '.txt' file with the data being tab-delimited. There are two main sections of the data file, the header at the top containing the metadata, and the data columns below.
Header
The header section contains metadata about the file, such as the sample ID, sample mass, combustor temperature, etc. This is the information which is contained in the file-wide metadata associated with the output Parquet files.
FAA Header
Here are the thought to be standard metadata fields in the header of files generated by MCC's based on the original FAA design:
Original Name | Metadata Name | Description | Example | Output Example |
---|---|---|---|---|
Sample ID | sample_id | Provides the file name and location of itself. | "C:\MCC\MCC Cal\Test\Hemp_Sheets_MCC_30K_min_220112_R1.txt" | {"sample_id": "C:\MCC\MCC Cal\Test\Hemp_Sheets_MCC_30K_min_220112_R1.txt"} |
Sample Weight (mg) | sample_mass | Gives the user-input sample mass. | "4.64" | {"sample_mass": {"value":4.64, "unit": "mg"}} |
Heating Rate (C/s) | heating_rate | Gives the heating rate at which the test was performed. | "0.5" | {"heating_rate": {"value" : 0.5, "unit" : "°C/s"}} |
Combustor Temp (C) | combustor_temperature | Gives the constant temperature of the combustor during the test. | "900" | {"combustor_temperature": {"value":900, "unit":"°C"}} |
N2 Flow Rate (cc/min) | n2_flow_rate | Gives the flow of nitrogen during the test. | "80" | {"n2_flow_rate": {"value":80, "unit":"ml/min"}} |
O2 Flow Rate (cc/min) | o2_flow_rate | Gives the flow of oxygen during the test. | "20" | {"o2_flow_rate": {"value":20, "unit":"ml/min"}} |
Calibration File | temperature_calibration | Gives the file containing the calibration information for the device. | "C:\MCC\MCC Cal\Coeff1 JN10440_30_210304.txt.txt" | {"temperature_calibration" : {"file" : "C:\MCC\MCC Cal\Coeff1 JN10440_30_210304.txt.txt"}} |
T Correction Coefficients | temperature_calibration | Gives the temperature correction coefficients from the calibration file. | "0 1.024463 0" | {"temperature_calibration" : {"coefficients" : [0, 1.024463, 0]}} |
Time Shift (s) | time_shift | Specifies the time offset applied to the oxygen concentration to account for transport time. | "14" | {"time_shift": {"value":14, "unit":"s"}} |
Data
The data section contains the actual data in the form of rows and columns. The data is typically organized in a tabular format, with each column separated by a delimiter. This data is thought to be relatively consistent and contains columns such as 'Time', 'Temperature', 'Oxygen', etc. Column names might be slightly adjusted here to maintain conformity with other instruments or to make them easier to interpret. Units are included in parenthesis after the column name. This information is extracted and stored in the column-based metadata in the output Parquet file.
Data Schema Definition
The data schema of the MCC file is defined by the columns present in the data section. Each column has a name and a data type associated with it. The data types are primarily 'floats' which represent some measured quantity.
The schema definition should include the name and data type of each column, as well as any units that may be present in the parent file.
Example Data Schema
Here is an example data schema for a basic MCC file:
Column Name | Data Type | Units |
---|---|---|
Time | Float | 's' |
Temperature | Float | 'C' |
N2 flow rate | Float | 'cc/min' |
O2 flow rate | Float | 'cc/min' |
Flow Rate | Float | 'cc/min' |
Oxygen | Float | '%' |
HRR | Float | 'W/g' |
Heating rate | Float | 'C/s' |