EDI stands for Electrical Data Interchange. The Edi class read and write an EDI file(*.edi)
file as the standard MT/EMAP Data Interchange. It does the basic tensors operations. Each section
of the EDI file belongs to a class object, thus the elements of each section are attributes
for easy access. Edi is outputted following the SEG documentation.
- class watex.edi.Edi(verbose=0)[source]#
Bases:
objectElectrical Data Interchange class.
Each section of the .edi file belongs to a class object, thus the elements of each section are attributes for easy access. Edi is outputted following the SEG documentation and rules of EMAP (Electromagnetic Array Profiling) and MT sections [1].
Ediclass is for especialy dedicated to .edi files, mainly reading and writing which are meant to follow the archaic EDI format put forward by SEG. Can read impedance, Tipper but not spectra. To read spectra format please consult MTpy documentation https://mtpy2.readthedocs.io/en/develop/ The Edi class contains a class for each major section of the .edi file.
- Parameters:
edifile (str,) – Full path to SEG-EDI file.
- MTEMAP#
MT section or EMAP DataSection class, contains basic information on the data collected . Can read MT and EMAP section
- Type:
watex.edi.MTEMAP
- DefineMeasurement#
DefineMeasurement class, contains information on how the data was collected.
- Type:
watex.edi.DefineMeasurement
- HeaD#
Head class, contains metadata on where, when, and who collected the data Information class.
- Type:
watex.edi.Head
- Info#
contains information on how the data was processed and how the transfer functions where estimated.
- Type:
watex.edi.Info
- Z#
Z class, contains the impedance data
- Type:
watex.external.z.Z
- _block_size#
number of data in one line.
- Type:
int, defaut=7
- _data_header_com#
header string for each of the data section.
- Type:
str, Default=’>!****{0}****!’
- _bloc_num_format#
string format of data, Default is’ 16.6e’
- Type:
str, Default=’ 16.6e’
- _t_comps#
components for tipper blocks
- Type:
list,
- _z_comps#
components for impedance blocks
- Type:
list
- _res_comps#
resistivities components
- Type:
list
- _phs_comps#
phase components
- Type:
list
Notes
Frequency and components are ordered from highest to lowest frequency.
References
[1]Wight, D.E., Drive, B., 1988. MT/EMAP Data Interchange Standard, 1rt ed. Society of Exploration Geophysicists, Texas 7831, USA.
Examples
>>> from watex.edi import Edi >>> e=Edi().fit('data/edis/new_E1_1.edi') >>> e.Z.phase [0, 0, 1] Out[6]: 26.42546593360611
- property dataid#
- property elev#
- fit(edifile)[source]#
fit edifile and populate attribute to each data section of edi.
- Parameters:
edifile (str,) – full path to edifile
- Returns:
``self`` – returns
selffor chaining methods.- Return type:
watex.edi.Ediinstanciated object
- property inspect#
Inspect object whether is fitted or not
- interpolateZ(new_freq_array, interp_type='slinear', bounds_error=True, period_buffer=None)[source]#
Interpolate the impedance tensor onto different frequencies.
- Parameters:
new_freq_array (np.ndarray) – a 1-d array of frequencies to interpolate on to. Must be with in the bounds of the existing frequency range, anything outside and an error will occur.
period_buffer – maximum ratio of a data period and the closest interpolation period. Any points outside this ratio will be excluded from the interpolated impedance array.
- Returns:
a new impedance object with the corresponding frequencies and components.
- Return type:
watex.core.z.Z
- Interpolate:
>>> import watex.edi as CSedi >>> edi_fn = r"/home/edi_files/cs_01.edi" >>> edi_obj = CSedi.Edi(edi_fn) >>> # create a new frequency range to interpolate onto >>> new_freq = np.logspace(-3, 3, 24) >>> new_z_object= edi_obj.interpolate(new_freq) >>> edi_obj.write_new_edifile(new_edi_fn=r"/home/edi_files/cs_01_interp.edi", >>> ... new_Z_obj=new_z_object, >>> ... )
- property lat#
- property lon#
- property processingsoftware#
- property station#
- write_edifile(edifile=None, new_edifilename=None, datatype=None, savepath=None, filtered_array=None, prefix_edi='new_')[source]#
Method to write edifiles from data setting oin attribute of Edi or from existing file. Can write also EMAP data are filled attribute of EDI.
- Parameters:
edifile (str, Path-like object) – Full path to the edi-file. Should be the old EDI expected to be rewritten.
new_edifilename (str, Optional) – new edifile name .If None , will write edi using station_name plus type of survey (MT of EMAP) plus year of writing as< S00_emap.2021.edi> or <S00_mt.2021.edi>
datatype (str,) – type of file , “mt” or “emap” if None , program will detect which file is provided . If datatype is set , program will be force to rewrite edi into given format.
savepath (str, optional) – Path to save edifile. If
Nonesave to your current work directoryfiltered_array (Array-like of shape (nfreq, 2, 2)) – write filtered array especially if EDI edifile is EMAP section data,if add filter is provided , will recompute rho.
- Returns:
new_edifile – full path to the new edifile
- Return type:
str,
Examples
>>> from watex.edi import Edi >>> e=Edi().fit('data/edis/new_E1_1.edi').write_edifile ()
- write_new_edifile(new_edi_fn=None, new_Z=None, **kws)[source]#
write a new edi file if things have changed. Note if new_Z is not None, they are not changed in Edi object, you need to change them manually if you want them to be changed. Similarly, the new function name does not change the Edi object edi_filename attribute but does change Edi.edi_object.edi_filename attribute.
- Parameters:
edi_fn – full path to new edi file
new_Z (watex.core.z.Z) – new Z object
new_Tipper (watex.core.z.Tipper) – new Tipper object
- Returns edi_fn:
full path to edi file written
- Rtype edi_fn:
string