watex.methods.DCMagic#
- class watex.methods.DCMagic(stations=None, dipole=10.0, auto=False, read_sheets=False, force=False, search=45.0, rho0=None, h0=1.0, strategy='HMCMC', vesorder=None, typeofop='mean', objective='coverall', **kws)[source]#
A super class that deals with ERP and VES objects to generate single DC features for prediction.
DCMagic reads the :term:`VES and ERP data and compute the corresponding features through its summary method. Note the number of ERP profiles and sounding sites must be consistent as well as the coordinates at this points. The best practice to have full control of the computed parameters is to used the
watex.methods.DCProfilingandwatex.methods.DCSoundingto compute the parameters of each line and site with their coordinates and constraints then call the fit methods to read each objects.- Parameters
stations (list or str (path-like object )) –
list of station name where the drilling is expected to be located. It strongly linked to the name of used to specify the center position of each dipole when the survey data is collected. Each survey can have its own way for numbering the positions, howewer if the station is given it should be one ( presumed to be the suitable point for drilling) in the survey lines. Commonly it is called the sves which mean at this point, the DC-sounding will be operated. Be sure to provide the correct station to compute the electrical parameters.
It is recommed to provide the positioning of the station expected to hold the drillings. However if stations is None, the auto-way for computing electrical features should be triggered. User can also provide the list of stations by hand. In that case, each station should numbered from 1 not 0. For instance:
- in a survey line of 20 positions. We considered the station 13
as the best point to locate the drilling. Therefore the name of the station should be ‘S13’. In other survey line (line2) the second point of my survey is considered the suitable one to locate my drilling. Considering the two survey lines, the list of stations sould be ‘[‘S13’, ‘S2’]
- stations can also be arrange in a single to be parsed which
refer to the string arguments.
dipole (float) – The dipole length used during the exploration area. If dipole value is set as keyword argument,i.e. the station name is overwritten and is henceforth named according to the value of the dipole. For instance for dipole equals to
10m, the first station should beS00, the secondS10, the thirdS20and so on. However, it is recommend to name the station using counting numbers rather than using the dipole position.auto (bool) – Auto dectect the best conductive zone. If
True, the station position should be the station of the lower resistivity value in Electrical Resistivity Profiling.
- read_sheets: bool,
Read the data in sheets. Here its assumes the data of each survey lines are arrange in a single excell worksheets. Note that if read_sheets is set to
Trueand the file is not in excell format, a TypError will raise.- search: float , list of float
The collection of the depth in meters from which one expects to find a fracture zone outside of pollutions. Indeed, the search parameter is used to speculate about the expected groundwater in the fractured rocks under the average level of water inrush in a specific area. For instance in `Bagoue region`_ , the average depth of water inrush is around
45m.So the search can be specified via the water inrush average value.- rho0: float
Value of the starting resistivity model. If
None, rho0 should be the half minumm value of the apparent resistivity collected. Units is in Ω.m not log10(Ω.m)- h0: float
Thickness in meter of the first layers in meters.If
None, it should be the minimum thickess as possible1.m.- strategy: str
Type of inversion scheme. The defaut is Hybrid Monte Carlo (HMC) known as
HMCMC. Another scheme is Bayesian neural network approach (BNN).- vesorder: int
The index to retrieve the resistivity data of a specific sounding point. Sometimes the sounding data are composed of the different sounding values collected in the same survey area into different Electrical Resistivity Profiling line. For instance:
AB/2
MN/2
SE1
SE2
SE3
…
SEn
Where SE are the electrical sounding data values and n is the number of the sounding points selected. SE1, SE2 and SE3 are three points selected for Vertical Electrical Sounding i.e. 3 sounding points carried out either in the same Electrical Resistivity Profiling or somewhere else. These sounding data are the resistivity data with a specific numbers. Commonly the number are randomly chosen. It does not refer to the expected best fracture zone selected after the prior-interpretation. After transformation via the function
vesSelector(), the header of the data should hold the resistivity. For instance, refering to the table above, the data should be:AB
MN
resistivity
resistivity
resistivity
…
Therefore, the vesorder is used to select the specific resistivity values i.e. select the corresponding sounding number of the Vertical Electrical Sounding expecting to locate the drilling operations or for computation. For esample, `vesorder`=1 should figure out:
AB/2
MN/2
SE2
–>
AB
MN
resistivity
If vesorder is
Noneand the number of sounding curves are more than one, by default the first sounding curve is selected ie rhoaIndex equals to0- typeofop: str
Type of operation to apply to the resistivity values rhoa of the duplicated spacing points AB. The default operation is
mean. Sometimes at the potential electrodes ( MN ),the measurement of AB are collected twice after modifying the distance of MN a bit. At this point, two or many resistivity values are targetted to the same distance AB (AB still remains unchangeable while while MN is changed). So the operation consists whether to the average (mean) resistiviy values or to take themedianvalues or toleaveOneOut(i.e. keep one value of resistivity among the different values collected at the same point AB ) at the same spacing AB. Note that for theLeaveOneOut, the selected resistivity value is randomly chosen.- objective: str
Type operation to output. By default, the function outputs the value of pseudo-area in \($ohm.m^2$\). However, for plotting purpose by setting the argument to
view, its gives an alternatively outputs of X and Y, recomputed and projected as weel as the X and Y values of the expected fractured zone. Where X is the AB dipole spacing when imaging to the depth and Y is the apparent resistivity computed.- fit_params: dict
Additional Electrical Resistivity Profiling keywords arguments
- rtable_#
ERP table that contains the different parameters computed at the selected drilling points sves.
- Type
pd.DataFrame
- vtable_#
VES table that contains the different parameters computed at the selected drilling points.
- Type
pd.DataFrame
- table_#
The complete table that contains VES and term`ERP` data composing the DC-Features.
- Type
pd.DataFrame
Examples
>>> import watex as wx >>> from watex.methods.erp import DCMagic >>> erp_data = wx.make_erp ( seed =33 ).frame >>> ves_data = wx.make_ves (seed =42).frame >>> v = wx.DCSounding ().fit(wx.make_ves (seed =10, as_frame =True, add_xy =True)) >>> r = wx.DCProfiling().fit( wx.make_erp ( seed =77 , as_frame =True)) >>> res= wx.methods.ResistivityProfiling(station='S4').fit(erp_data) >>> ves= wx.methods.VerticalSounding(search=60).fit(ves_data) dc-ves : 100%|################################| 1/1 [00:00<00:00, 111.13B/s] dc-erp : 100%|################################| 1/1 [00:00<00:00, 196.77B/s] >>> m = DCMagic().fit(erp_data, ves_data, v, r, ves, res ) dc-erp : 100%|################################| 2/2 [00:00<00:00, 307.40B/s] dc-o:erp: 100%|################################| 1/1 [00:00<00:00, 499.74B/s] dc-ves : 100%|################################| 2/2 [00:00<00:00, 222.16B/s] dc-o:ves: 100%|################################| 1/1 [00:00<00:00, 997.46B/s] >>> m.summary(keep_params =True) longitude latitude shape ... sfi sves_resistivity ohmic_area 0 NaN NaN W ... 1.310417 707.609756 263.213572 1 NaN NaN K ... 1.300024 1.000000 964.034554 2 109.332932 28.41193 U ... 1.184614 1.000000 276.340744