watex.methods.em.MT.remove_static_shift#
- MT.remove_static_shift(ss_fx=None, ss_fy=None, stations=None, rotate=0.0, r=100, nfreq=7, skipfreq=5, tol=0.12, update_z=True, bounds_error=True)[source]#
Remove the static shift from correction factor from x and y.
The correction factors ss_fx and ss_fy are used for the resistivity in the x and y components for static shift removal.
Factors can be determined by using the
get_ss_correction_factors()IfNone, factors are found using the spatial median filter. Assume the original observed tensor Z is built by a static shift \(S\) and an unperturbated “correct” \(Z_{0}\) :\[Z = S * Z_{0}\]therefore the correct Z will be:
\[Z_{0} = S^{(-1)} * Z\]- Parameters
ss_fx (float, Optional) – static shift factor to be applied to x components (ie z[:, 0, :]). This is assumed to be in resistivity scale. If None should be automatically computed using the spatial median filter.
ss_fy (float, optional) – static shift factor to be applied to y components (ie z[:, 1, :]). This is assumed to be in resistivity scale. If
None, should be computed using the spatial filter median.rotate (float, default=0.) – Rotate Z array by angle alpha in degrees. All angles are referenced to geographic North, positive in clockwise direction. (Mathematically negative!). In non-rotated state, X refs to North and Y to East direction.
r (float, default=1000.) – radius to look for nearby stations, in meters.
nfreq (int, default=21) – number of frequencies calculate the median static shift. This is assuming the first frequency is the highest frequency. Cause usually highest frequencies are sampling a 1D earth.
skipfreq** (int, default=5) – number of frequencies to skip from the highest frequency. Sometimes the highest frequencies are not reliable due to noise or low signal in the AMT deadband. This allows you to skip those frequencies.
bounds_error (bool, default=True) – Check whether the frequency for interpolation is within the frequency range. Otherwise, raises an error.
tol (float, default=0.12) – Tolerance on the median static shift correction. If the data is noisy the correction factor can be biased away from 1. Therefore the shift_tol is used to stop that bias. If
1-tol < correction < 1+tolthen the correction factor is set to1force (bool, default=False,) – Ignore the frequency bounds and compute the static shift with the total station with all frequencies.
out (bool , default =False,) – Output new filtered EDI. Otherwise return Z collections objects of corrected Tensors.
force –
Ignore the frequency bounds and compute the static shift with the total station with all frequencies.
New in version 0.2.8: Ignore frequency bound errors with
force=True.update_z (bool, default=True) – Update Impendance tensor Z after correcting the static shift effect.
- Returns
self
- Return type
watex.methods.ZCfor methods chaining.
Note
The factors are in resistivity scale, so the entries of the matrix “S” need to be given by their square-roots. Furhermore, ss_fx and ss_fy must be supplied for a manual correction. If one argument of the aforementionned parameters is missing, the auto factor computation could be triggered and reset the previous given factor.
Examples
>>> import watex >>> from watex.methods import ZC >>> edi_sample = watex.fetch_data ('edis', samples =17 , return_data =True ) >>> zo = ZC ().fit(edi_sample) >>> zo.ediObjs_[0].Z.z[:, 0, 1][:7] array([10002.46 +9747.34j , 11679.44 +8714.329j, 15896.45 +3186.737j, 21763.01 -4539.405j, 28209.36 -8494.808j, 19538.68 -2400.844j, 8908.448+5251.157j]) >>> zc = zo.remove_static_shift () >>> zc[0].z[:, 0, 1] [:7] array([ 8028.46578676+7823.69394148j, 9374.49231974+6994.54856416j, 12759.27171475+2557.831671j , 17468.06097719-3643.54946031j, 22642.21817697-6818.35022516j, 15682.70444455-1927.03534064j, 7150.35801004+4214.83658174j])