Technical documentation for the data coming from reaction tests
| Document Status | DRAFT |
| In Production | UAT |
Summary
Sum-up
| Equipment / Scale | Reaction 25L (A and B) | Reaction 80L | Reaction 170L (France and Korea) | Reaction 2500L |
|---|---|---|---|---|
| Data Sources | ELN, Raw Data on file share | ELN, Raw Data on Google Drive | ELN, Raw Data on file share | ELN, Raw Data on Google Drive |
| Raw Data File type | xlsx | xlsx | xlsx | xlsx |
| Scale Name on ELN | FR-25L-A FR-25L-B | FR-80L | FR-170L KR-170L | FR-2500L |
| Data Collection | Talend:
Python :
| Talend:
| Talend:
Python :
| Talend:
|
| Parse | Python: parse_synthesis_25L.py | Python: parse_synthesis_2500L.py | Python:
| Python: parse_synthesis_2500L.py |
| Compute | Python: compute_synthesis_25L.py | Python: compute_synthesis_80L.py | Python: compute_synthesis_170L.py | Python: compute_synthesis_2500L.py |
| BigQuery | Target tables:
| |||
| Mapping spreadsheet | to be created A old and incomplete version : | |||
Data Sources
- ELN
- Raw Data
Data Collection
The talend jobs J010_Download_Synthesis_LabServers and J011_Download_Synthesis_gDrive_Reaction extract the raw data files listed on the ELN table synthesis_raw_data_link for which the field “synthesis_equipment_name” is the scale name, i.e. “FR-80L”. For information of how these job works, check the following page :
Talend - Jobs - Synthesis - Download (needs to be created)
Lab servers source Python files Output foldersExemples
Data Preparation
Parse
The parsing python scripts extracts from the raw data files the needed columns.
Columns List
For each sample, the script extracts the many fields from the raw data files and outputs a .csv file. For the mapping details, please refers to the sheet "Parse Mapping" on the Reaction Mapping spreadsheet (link to the spreadsheet on the Sum-up section).
The following columns extracted from the raw data file:
- unique_id
- study_id
- sample_id
- operator
- reactor
- date
- time (in minutes)
- ph
- temperature
- acid_mass_one
- silicate_mass
- additive_mass
- acid_mass_two
- variable_product_mass (empty for 170L scale)
- percent_acid_one
- percent_silicate
- percent_additive
- percent_acid_two
- percent_pump_pH_control
- percent_variable_product (empty for 170L scale)
- turbidity
Compute
The compute python script uses as input the parsed .csv files previously created and the tables synthesis_eln_data and operating_procedure. It computes the new columns and values from raw data and regenerates new files.
If the output files already exist the script will NOT replace them.
In the beginning of the script, for each product, we extract the following values for each product listed in the table synthesis_eln_data. Each of the following values will be used in later computations as constants:
Product | Variables |
Silicate |
|
Water |
|
Aluminate |
|
Other |
|
R66 |
|
Sodium Sulfate |
|
Sodium Hydroxide |
|
Sulfuric Acid Concentrate |
|
Sulfuric Acid |
|
Nitric Acid Concentrate |
|
Nitric Acid |
|
Chlorhydric Acid Concentrate |
|
Chlorhydric Acid |
|
Molar masses for the following elements are also defined and used in later computations (mm_ stands for molar mass):
- mm_na2o = 61.98
- mm_h2so4 = 98.079
- mm_sio2 = 60.084
- mm_na2so4 = 142
- mm_hcl = 36.46
- mm_hno3 = 63.02
- mm_hplus = 1.01
Next, we define the activity on each pump as follows:
- We first define “by default” activity on each pump:
- acid_one pump (concentrated acid) → Sulfuric Acid Concentrate
- silicate pump → Silicate
- additive pump → Aluminate
- acid_two pump (diluted acid) → Sulfuric Acid
- Next, from the table operating_procedure, we extract the changes in the activity for each pump. The next table lists the products that can be present on each pump:
Any other element (other than those listed in the table for each pump) will not be considered for later computations
raw_mass_acid_one (conc) | raw_mass_silicate | raw_mass_additive | raw_mass_acid_two (dil) |
WIR811_Masse | WIR611_Masse | WIR711_Masse | WIR511_Masse |
Sulfuric Acid Concentrate (default) | Silicate (default) | Aluminate (default) | Sulfuric Acid (default) |
Nitric Acid Concentrate | Other | Nitric Acid | |
Chlorhydric Acid Concentrate | R66 | Chlorhydric Acid | |
Other | Other | ||
R66 | R66 | ||
Water | Water |
For each sample, the compute scripts create three different tables:
ReactionDetails
The first table is composed of the columns previously extracted from the raw data files and the new columns calculated during the execution.
Dataset : raw_data_synthesis
For the columns details, please refers to the sheets "Details Mappings" on the Reaction Mapping spreadsheet (link to the spreadsheet on the Sum-up section).
ReactionSummary
The second table is composed of the new values computed from raw data. This is a atomic table and it aggregates the values by unique_id, study_id and sample_id which represents one line per data raw file.
Dataset : raw_data_synthesis
For the columns details, please refers to the sheets "Summary Mapping" on the Reaction Mapping spreadsheet (link to the spreadsheet on the Sum-up section).
ReactionMaterialBalance
To be documented
Presentation
The raw data (already parsed) and the computed columns are created as tables on BigQuery. A Talend job is responsable to push all this data to a dataset called raw_data_synthesis.



