From 4919ed6f56755a47ae405da310344144e775701f Mon Sep 17 00:00:00 2001 From: Julia Schumann Date: Wed, 25 Sep 2024 17:03:28 +0200 Subject: [PATCH] complete information from hdf5 file --- docs/how_to/use_this_plugin.md | 117 ++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 46 deletions(-) diff --git a/docs/how_to/use_this_plugin.md b/docs/how_to/use_this_plugin.md index 69840f4..86ae382 100644 --- a/docs/how_to/use_this_plugin.md +++ b/docs/how_to/use_this_plugin.md @@ -25,53 +25,78 @@ For excel files with multiple sheets, only the first sheet is read. If a column it will be ignored. The following column headers will be recognized and mapped into the NOMAD schema: - - `catalyst` as name of the catalyst - - `sample_id` or `FHI-ID` - - `mass (mg)` or `mass (g)` as catalyst mass in the reactor - - `step` as number of reported measurement point - - `TOS (*unit*)` time on stream, *unit* can be s or min or h - - `x {reagent_name}` or `x {reagent_name} (%)` concentration of reagents at the inlet of the reactor - - `temperature (*unit*)` as reactor temperature, if *unit* is not K or Kelvin, degree Celsius is assumed - - `set_temperature (*unit*)` as desired or set reactor temperature - - `C-balance` as carbon-balance - - `GHSV *unit*` as Gas Hourly Space Velocity, unit can be 1/h or h^-1 - - `Vflow (ml/min)` as set total gas flow rate - - `pressure` or `set_pressure` as reactor pressure - - `r {name}` as reaction rate of reactant or product with {name} - - `x_p {name} (%)` product based conversion of reactant {name} - - `x_r {name} (%)` reactant based conversion of reactant {name} - - `y {name} (%)` concentration out - - `S_p {name} (%)` selectivity of product {name} +|excel column header | description | schema quantity| +|---|---|---| +| `catalyst` | name of the catalyst| reactor_filling.catalyst_name +| `sample_id` or `FHI-ID`| (unique) identification number of catalyst sample |sample[0].lab_id| +| `mass (mg)` or `mass (g)` | catalyst mass in the reactor| reactor_filling.catalyst_mass| +| `step` | number of reported measurement point| | +| `TOS (*unit*)` | time on stream, *unit* can be s or min or h| | +| `x {reagent_name}` or `x {reagent_name} (%)` |concentration of reagents at the inlet of the reactor| | +| `temperature (*unit*)` | reactor temperature, if *unit* is not K or Kelvin, degree Celsius is assumed| | +| `set_temperature (*unit*)` | desired or set reactor temperature| | +| `C-balance` | carbon-balance| | +| `GHSV *unit*`| Gas Hourly Space Velocity, unit can be 1/h or h^-1| | +| `Vflow (ml/min)` | set total gas flow rate| | +| `pressure` or `set_pressure` | reactor pressure | | +| `r {name}` | reaction rate of reactant or product with {name}| | +| `x_p {name} (%)` |product based conversion of reactant {name}| | +| `x_r {name} (%)` |reactant based conversion of reactant {name}| | +| `y {name} (%)` |concentration out| | +| `S_p {name} (%)` |selectivity of product {name}| | ### Structure of the hf5 data file: -- Header -- Raw Data -- Sorted Data +- 'Header' + - methodename + - 'Header' + - 'Header' +- *Raw Data* +- 'Sorted Data' + - methodname + - 'H2 Reduction' + - 'NH3 Decomposition' -#### Header: -- ['Bulk volume [mln]'] - reactor_setup.reactor_cross_section_area = ( - header['Inner diameter of reactor (D) [mm]'] * ureg.millimeter / 2 - ) ** 2 * np.pi - reactor_setup.reactor_diameter = ( - header['Inner diameter of reactor (D) [mm]'] * ureg.millimeter - ) - reactor_filling.diluent = header['Diluent material'][0].decode() - reactor_filling.diluent_sievefraction_upper_limit = ( - header['Diluent Sieve fraction high [um]'] * ureg.micrometer - ) - reactor_filling.diluent_sievefraction_lower_limit = ( - header['Diluent Sieve fraction low [um]'] * ureg.micrometer - ) - reactor_filling.catalyst_mass = header['Catalyst Mass [mg]'][0] * ureg.milligram - reactor_filling.catalyst_sievefraction_upper_limit = ( - header['Sieve fraction high [um]'] * ureg.micrometer - ) - reactor_filling.catalyst_sievefraction_lower_limit = ( - header['Sieve fraction low [um]'] * ureg.micrometer - ) - reactor_filling.particle_size = ( - header['Particle size (Dp) [mm]'] * ureg.millimeter - ) +| hf5 location and label | CatalyticReaction schema| +| ----------|---------| +|#### Header| | +| ['Header']['Header']['SampleID'][0]| lab_id| +|['Header'][methodname]['Header']:| | +| - ['Bulk volume [mln]']| reactor_setup.reactor_volume| +| - ['Inner diameter of reactor (D) [mm]']| reactor_setup.reactor_diameter| +| - ['Diluent material'][0].decode| reactor_filling.diluent| +| - ['Diluent Sieve fraction high [um]']|reactor_filling.diluent_sievefraction_upper_limit| +| - ['Diluent Sieve fraction low [um]']|reactor_filling.diluent_sievefraction_lower_limit| +| - ['Catalyst Mass [mg]'][0]| reactor_filling.catalyst_mass| +| - ['Sieve fraction high [um]']| reactor_filling.catalyst_sievefraction_upper_limit| +| - ['Sieve fraction low [um]']|reactor_filling.catalyst_sievefraction_lower_limit| +| - ['Particle size (Dp) [mm]']|reactor_filling.particle_size| +| - ['User'][0].decode()| experimenter| +| - ['Temporal resolution [Hz]']| reaction_conditions.sampling_frequency| +|#### ['Sorted Data'][methodname]['H2 Reduction']| | +| ['Catalyst Temperature [C°]'] * ureg.celsius| pretreatment.set_temperature| +| ['Massflow3 (H2) Target Calculated Realtime Value [mln|min]']| pretreatment.reagent[0].flow_rate, & name| +| ['Massflow5 (Ar) Target Calculated Realtime Value [mln|min]']| pretreatment.reagent[1].flow_rate & name| +| ['Target Total Gas (After Reactor) [mln|min]']| pretreatment.set_total_flow_rate +| ['Relative Time [Seconds]']|pretreatment.time_on_stream +| ['Date'][0].decode()| datetime| +|#### ['Sorted Data'][methodname]['NH3 Decomposition']| | +| ['Relative Time [Seconds]']| reaction_conditions.time_on_stream| +| reagent + 'Target Calculated Realtime Value [mln|min]',
reagent can be 'NH3_high', 'NH3_low' or the name of the reagent| reaction_conditions.reagent[n].name and
reaction_conditions.reagent[n].flow_rate| +| reagent + 'Target Setpoint [mln|min]'| reaction_conditions.set_total_flow_rate| +| ['W|F [gs|ml]']| reaction_conditions.contact_time| +| ['NH3 Conversion [%]']|results[0].reactants_conversions[0].conversion,
results[0].reactants_conversions[0].name = 'ammonia',
results[0].reactants_conversions[0].conversion_type='reactant-based' +| ['Space Time Yield [mmolH2 gcat-1 min-1]']| results[0].rates[0].reaction_rate,
results[0].rates[0].name='molecular hydrogen'| +| ['Catalyst Temperature [C°]']| reaction_conditions.set_temperature, results[0].temperature| +|----|----| - self.experimenter = header['User'][0].decode() \ No newline at end of file + +The following information is currently added by default to entries filled by a hdf5 file from the automated Haber reactor: + +|instance|quantity label| +|----|----| +| 'ammonia decomposition'|reaction_name | +| 'cracking' |reaction_type | +| 'Fritz-Haber-Institut Berlin / Abteilung AC'|location| +|molecular hydrogen, molecular nitrogen | results.products[n].name| +| 'Haber'| reactor_setup.name | +| 'plug flow reactor'| reactor_setup.reactor_type | \ No newline at end of file