resistics.transfunc.data module¶
-
class
resistics.transfunc.data.
TransferFunctionData
(freq: numpy.ndarray, data: Dict, variances: Dict)[source]¶ Bases:
resistics.common.base.ResisticsBase
Class for holding information time data
Notes
Information about data units Magnetic permeability in nT . m / A Electric (E) data is in mV/m Magnetic (H) data is in nT Z = E/H is in mV / m . nT Units of resistance = Ohm = V / A T = H/H is dimensionless
- Attributes
- freqnp.ndarray
The evaluation frequencies for which transfer functions were estimated
- periodnp.ndarray
The evaluation periods for which the transfer functions were estimated (1/freq)
- dataDict
The transfer function data keyed by polarisations. Data is in the units E = mV, H = nT
- polarisationsList[str]
List of polarisations in the data
- variancesDict
The variances of the estimates to give an idea of uncertainty
Methods
__init__(freq, data, variances)
Initialise the transfer function data
getComponent(component)
Set data with parameters
getVariance(component)
Add a comment to the dataset
getResAndPhase(component)
A datetime array of the sample times
getResAndPhaseErrors(component)
View the spectra data
view()
View the impedance tensor components
viewTipper()
View the tipper
printList()
Class status returned as list of strings
-
getComponent
(self, component: str) → numpy.ndarray[source]¶ Get data for a polarisation
- Parameters
- componentstr
The polarisation to return the data for
- Returns
- np.ndarray
The data for the polarisation component
-
getResAndPhase
(self, component: str) → Tuple[numpy.ndarray, numpy.ndarray][source]¶ Return the resistivity and phase for a component
The raw data is expected to be units E = mV, H = nT Resisitivity is calculated as 0.2 * period * (abs(data))^2 Phase is calculated as the complex angle, unwrapped and then shifted for components ExHx and ExHy to put them in 0-90 degree quadrant
- Parameters
- componentstr
The polarisation to return the data for
- Returns
- resnp.ndarray
The resistivity for the evaluation frequencies
- phasenp.ndarray
The phase for the evaluation frequencies
-
getResAndPhaseErrors
(self, component: str) → Tuple[numpy.ndarray, numpy.ndarray][source]¶ Return the resistivity and phase errors for a component
The raw data is expected to be units E = mV, H = nT Errors are calculated parameterically (for confidence intervals) Error in resistivity is given by 1.96 * sqrt(2 * period * res * var / 5.0) Error in phase is given by 1.96 * (180 / pi) * (sqrt(var / 2.0) / abs(data))
Todo
Is there are better way to calculate errors
- Parameters
- componentstr
The polarisation to return the data for
- Returns
- resErrornp.ndarray
The errors in resistivity data for the evaluation frequencies
- phaseErrornp.ndarray
The errors in phase data for the evaluation frequencies
-
getTipper
(self)[source]¶ Return tipper length and angle
The tipper are the Tx = HzHx and Ty = HzHy components The tipper length is sqrt(Re(Tx)^2 + Re(Ty)^2) The tipper angle is arctan (Re(Ty)/Re(Tx))
This needs HzHx and HzHy to be components of the transfer function
- Returns
- tipperLengthnp.ndarray
The tipper length
- tipperAnglenp.ndarray
The tipper angle
-
getVariance
(self, component: str) → numpy.ndarray[source]¶ Get the variance for a component
- Parameters
- componentstr
The polarisation to return the data for
- Returns
- np.ndarray
The data for the polarisation component
-
printList
(self) → List[str][source]¶ Class information as a list of strings
- Returns
- outList[str]
List of strings with information
-
viewImpedance
(self, **kwargs) → matplotlib.figure.Figure[source]¶ Plots the transfer function data
For resistivity data, both axes are log scale (period and resistivity). For phase data, period is in log scale and phase is linear scale. Units, x axis is seconds, resistivity is Ohm m and phase is degrees.
- Parameters
- polarisationsList[str], optional
Polarisations to plot
- figmatplotlib.pyplot.figure, optional
A figure object
- oneplotbool, optional
Boolean flag for plotting all polarisations on one plot rather than separate plots
- coloursDict[str, str], optional
Colours dictionary for plotting impedance components
- mkstr, optional
Plot marker type
- lsstr, optional
Line style
- plotfontsDict, optional
A dictionary of plot fonts
- labelstr, optional
Label for the plots
- xlimList, optional
Limits for the x axis
- res_ylimList, optional
Limits for the resistivity y axis
- phase_ylimList, optional
Limits for the phase y axis
- Returns
- plt.figure
Matplotlib figure object
-
viewTipper
(self, **kwargs) → matplotlib.figure.Figure[source]¶ Plots tipper data where available
For length data, both axes are log scale (period and length). For angle data, period is in log scale and phase is linear scale. Units, x axis is seconds, length is dimensionless and angle is degrees.
- Parameters
- figmatplotlib.pyplot.figure, optional
A figure object
- colsbool, optional
There are three tipper plots: tipper length, tipper real angle, tipper imaginary angle. These can either be plotted in rows or columns. Set to True to plot in with one row and three columns.
- coloursstr, optional
Colour of plot
- mkstr, optional
Plot marker type
- lsstr, optional
Line style
- plotfontsDict, optional
A dictionary of plot fonts
- labelstr, optional
Label for the plots
- xlimList, optional
Limits for the x axis
- length_ylimList, optional
Limits for the length y axis
- angle_ylimList, optional
Limits for the angle y axis