Data Containers¶
REDA uses so-called data containers to manage various types of data. A data container provides a curated interface to importer functions, exporter functions, and processing functionality that is useful to a given data type. It also stores the data and associated metadata.
Available data containers:
reda.containers.ERT
: The ERT (Electrical Resistivity Tomography) data container stored electrical measurements targeted at imaging processing. This implies lots of measurements (hundreds to thousands).reda.containers.TDIP
: Time-domain induced polarization container (derived from the ERT container)reda.containers.CR
: Complex resistivity container (derived from the ERT container)reda.containers.sEIT
: (experimental) Stores spectral Electrical Impedance Tomography (frequency domain complex electrical impedance) measurement data.reda.containers.SIP
: Stores spectral spectral induced polarization data.
Electrode numbers and positions¶
By default we deal with logical electrode numbers in the columns a, b, m, n. That is, electrode positions must be declared separately. This has some advantages, but also disadvantages:
Note
The logical electrode numbers a, b, m, n are assumed to be 1-indexed in the sense that no offsets are automatically applied when dealing with those numbers.
While arbitrary electrode numbers are not forbidden, we still encourage you to denote the first electrode number with 1 for single-profile measurements.
Also note that electrode numbers do not need to be continuous, for example, in the case when only certain electrodes of a multi-electrode profile are used.
We can easily create new measurement configurations without needing to know the exact electrode positions
Some analysis steps can be simplified if we do not take electrode positions into account
Consistency: we also support measurement modes that do not have an inherent spatial aspect (SIP) in the sense of a distributed measurement. Here we only have four electrodes used to measure one (complex) resistance.
Disadvantage: we need to be careful that data keeps consistent if new data is added.
Container basics¶
If not otherwise stated, a container stores measurement data in a pandas DataFrame located in container.data.
Electrode positions (if available) are stored in an
pandas.DataFrame
in container.electrode_positions (columns x, y, z, plus an integer index). The integer index hereby connects the positions to the electrode numbers in container.data[[‘a’, ‘b’, ‘m’, ‘n’]]. The index is not required to be continuous and numbers do not need to start with 1. For example, the index 0, 1, 10, 20, 21 would be allowed (although we suggest to start with 1 to not falsely indicate a zero-indexing of the electrode numbers. Electrode positions, and complex operations with them, can be handled with the electrode managerreda.utils.electrode_manager.electrode_manager
. The corresponding data frame can then easily be access via electrode_manager.electrode_positionsTopograhy nodes (if available) are stored in a pandas DataFrame in container.topography (columns x, y, z). Electrodes located on the topography should be included here.
Required data columns¶
Each data container requires a minimal set of data variables (columns) that any importer must return.
ERT¶
column |
description |
---|---|
a |
First current electrode of quadpole |
b |
Second current electrode of quadpole |
m |
First potential electrode of quadpole |
n |
Second potential electrode of quadpole |
r |
Measured resistance [Ohm] |
Optional columns can be named arbitrarily, but the following are usually used:
column |
description |
---|---|
k |
Geometric factor [m] |
rhoa |
Apparent resistivity, k * r, [Ohm m] |
TDIP¶
column |
description |
---|---|
a |
First current electrode of quadpole |
b |
Second current electrode of quadpole |
m |
First potential electrode of quadpole |
n |
Second potential electrode of quadpole |
r |
Measured resistance [Ohm] |
chargeability |
Global chargeability |
Note
Tm, Mx optional? JG: Decay Curve properties as Sub-DF in Container with absolute time as index and Mx as column; Tm deriveable from there
Optional columns can be named arbitrarily, but the following are usually used:
column |
description |
---|---|
k |
Geometric factor [m] |
rhoa |
Apparent resistivity, k * r, [Ohm m] |
CR¶
column |
description |
---|---|
a |
First current electrode of quadpole |
b |
Second current electrode of quadpole |
m |
First potential electrode of quadpole |
n |
Second potential electrode of quadpole |
z |
Measured transfer impedance [Ohm] |
r |
Measured resistance [Ohm] |
rpha |
Resistance phase value [mrad] |
Optional columns can be named arbitrarily, but the following are usually used:
column |
description |
---|---|
k |
Geometric factor [m] |
rhoa |
Apparent resistivity, k * r, [Ohm m] |
SIP¶
column |
description |
---|---|
a |
First current electrode of quadpole |
b |
Second current electrode of quadpole |
m |
First potential electrode of quadpole |
n |
Second potential electrode of quadpole |
frequency |
Mesurement frequency |
z |
Measured transfer impedance [Ohm] |
r |
Measured resistance [Ohm] |
rpha |
Resistance phase value [mrad] |
Optional columns can be named arbitrarily, but the following are usually used:
column |
description |
---|---|
k |
Geometric factor [m] |
rhoa |
Apparent resistivity, k * r, [Ohm m] |
sEIT¶
column |
description |
---|---|
a |
First current electrode of quadpole |
b |
Second current electrode of quadpole |
m |
First potential electrode of quadpole |
n |
Second potential electrode of quadpole |
frequency |
Mesurement frequency |
zt |
Measured transfer impedance [Ohm] |
r |
Measured resistance [Ohm] |
rpha |
Resistance phase value [mrad] |
Optional columns can be named arbitrarily, but the following are usually used:
column |
description |
---|---|
k |
Geometric factor [m] |
rhoa |
Apparent resistivity, k * r, [Ohm m] |