sitem1d.empex module

class sitem1d.empex.EM1DThicknessChannelCollection

Bases: object

add_channel_sit(channel_sit)
property channel_ids
property channels
get_channel(channel_id)
get_channel_index(channel_id)
Parameters:

channel_id

Returns:

get_thickness(channel_id, index=None)
Parameters:
  • channel_id

  • index

Returns:

property n_channels
property n_records
property record_id
class sitem1d.empex.EM1DThicknessData(channel_id, record_id, thickness)

Bases: object

property n_records
class sitem1d.empex.EM1DThicknessTransform(emdata, cal, transform)

Bases: object

_compute_sea_ice_thickness()

Compute sea_ice thickness. The general workflow is:

  1. Calibrate ppms (each channel)

  2. Transform ppms to thickness (each channel) -> Output depends on transform, but usually thickness per i/q per frequency

Returns:

export_data_csv(file_path)

Write a comma separated output file

Parameters:

file_path

Returns:

export_metadata_yaml(file_path)
Parameters:

file_path

Returns:

quickview(output_path, dpi=300, selected_channels='all', title='')

Create a simple plot of the thickness :return:

class sitem1d.empex.EMPEX(*args, **kwargs)

Bases: EMTransform

Empirical exponential transformation for homogenous halfspace

_thickness_transform(emdata)

Compute the thickness transform for each channel. For the EMPEX transform, this means one thickness estimate for inphase and quadrature per frequency. If the transform has no data information (e.g. fit parameter) for a given frequency :param emdata: :return:

get_channel_transform_parameters(channel_id)

Return channel transform parameters for a given ID :param channel_id: :return:

get_empex_parameter(channel_id, component)

Get the order and coefficients of the empex transform for a given component (i/q) and frequency :param channel_id: :param component: :return:

halfspace_distance_from_ppm(ppm, order, coefs)

Compute halfspace distance from ppm :param ppm: :param order: :param coefs: :return:

static single_exponential(value, coefs)

Inverse transform with single exponential function :param value: channel data for the inverse transformation :param coefs: coefficients definind the exponential function :return: result of the inverse transform (e.g. distance to halfspace interface)

static single_exponential_inverse(value, coefs)

Inverse transform with single exponential function :param value: channel data for the inverse transformation :param coefs: coefficients definind the exponential function :return: result of the inverse transform (e.g. distance to halfspace interface)

property transform_channel_ids
class sitem1d.empex.EMPEXChannelData(order, frequency_id, coefs_i, r2_i, coefs_q, r2_q)

Bases: object

Container for empirical exponential

get_parameters(component)

Return the parameters for a given component (either inphase or quadrature) :param component: :return:

property property_dict

Return a dictionary required for calibration files

class sitem1d.empex.EMPEXFit(order, frequency_id, distance, inphase, quadrature)

Bases: object

Container to produce fit coefficients for the EMPEX transform

_fit_data()

Compute and store the fit coefficients :return:

get_func()
get_func_name()
class sitem1d.empex.EMPEXFitChannels

Bases: object

Container for fitting all channels of all frequencies

add_channel(*args)

Add a channel to be fitted (same args as EMPEXfit

property frequency_ids
get_channel(frequency_id)

Get the EMPEX fit parameters for a given frequency_id :param frequency_id: :return: EMPEXFit instance or None

class sitem1d.empex.EMTransform(channel_transforms, metadata=None, sensor_def=None)

Bases: object

Baseclass for all EM transformation classes for ppms -> thickness

static _thickness_transform(emdata)

Placeholder class, should not be used as this class should be overwritten by the inheriting actual transform class :param emdata: :return:

classmethod from_yaml(yaml_filepath, sensor_def=None)

Init the class from an empex fit :param yaml_filepath: :param sensor_def: :return: an initialized transform class

get_thickness(emdata)

Get thicknesses for the emdata object. NOTE: the _thickness_transform based will on :param emdata: :return:

class sitem1d.empex.EMTransformSettings(caltype, sensor_def_id, cal, metadata=None)

Bases: object

A class that can be passed to the thickness transform with the data to get thickness

property channel_ids
get_cal_property_dict()

Return a dictionary with the calibration properties :return:

write_to_yaml(filepath)

Writes a yaml file with the calibration content :param filepath: :return:

sitem1d.empex.coeficient_of_determination(y, y_fit)

Compute coeficient of determination :param y: :param y_fit: :return:

sitem1d.empex.double_exp_fit(x, a, b, c, d, e)

Function for scipy fit (double exponential function) :param x: :param a: :param b: :param c: :param d: :param e: :return:

sitem1d.empex.single_exp_fit(x, a, b, c)

Function for scipy fit (single exponential function) :param x: :param a: :param b: :param c: :return: