Skip to content

Commit

Permalink
complete information from hdf5 file
Browse files Browse the repository at this point in the history
  • Loading branch information
schumannj committed Sep 25, 2024
1 parent 559f847 commit 4919ed6
Showing 1 changed file with 71 additions and 46 deletions.
117 changes: 71 additions & 46 deletions docs/how_to/use_this_plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 []'] * 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&#124;min]', <br> reagent can be 'NH3_high', 'NH3_low' or the name of the reagent| reaction_conditions.reagent[n].name and <br> reaction_conditions.reagent[n].flow_rate|
| reagent + 'Target Setpoint [mln&#124;min]'| reaction_conditions.set_total_flow_rate|
| ['W&#124;F [gs&#124;ml]']| reaction_conditions.contact_time|
| ['NH3 Conversion [%]']|results[0].reactants_conversions[0].conversion,<br> results[0].reactants_conversions[0].name = 'ammonia',<br> results[0].reactants_conversions[0].conversion_type='reactant-based'
| ['Space Time Yield [mmolH2 gcat-1 min-1]']| results[0].rates[0].reaction_rate, <br> results[0].rates[0].name='molecular hydrogen'|
| ['Catalyst Temperature []']| reaction_conditions.set_temperature, results[0].temperature|
|----|----|

self.experimenter = header['User'][0].decode()

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 |

0 comments on commit 4919ed6

Please sign in to comment.