v0.2.0 (March 25, 2023)#
These are major changes composed of new features and improvements from v0.1.9.
Major feature Add impedance tensor multiple correction class (
watex.methods.ZC) and gives opportunity to export new tensor data into EDI files if the argumentout=True. For instance:watex.methods.ZC.remove_static_shift()remove the static shift from correction factor from x and y using the spatial median filter. Inwatex.methods.ZC.remove_static_shift(), thewatex.externals.z.ResPhase.compute_resistivity_phase()is initialized with the corrected impedance tensor Z three dimensional array and number of frequency.watex.methods.ZC.remove_ss_emap()removes the static schift using the EMAP moving average filters such as:'ama': Adaptative moving average'tma': Trimming moving-average'flma': Fixed-length dipole moving average
watex.methods.ZC.remove_distortion()removes distortion D form an observed impedance tensor Z.watex.methods.ZC.get_ss_correction_factors()computes the static shift correction factor from a station using a spatial median filter.
Major feature Add new module (
watex.site.Profile) inwatex.siteas supplement site data transformation. Gives supplement materials (methods) for data transformation such as:watex.site.Profile.distance()computes the distance between profile coordinates pointswatex.site.Profile.bearing()computes the bearing between calculate bearing between two coordinates.watex.site.Profile.scale_positions()scale the position coordinates alongxandy. This is useful in complex terrain ( high topography )watex.site.Profile.shift_positions()shifts thexandyposition coordinates from the step and angle.watex.site.Profile.dms2ll()transforms arrayxandyfrom DD:MM:SS to degree decimal -longitude (x) and latitude (y)watex.site.Profile.ll2dms()does the revert process ofwatex.site.Profile.dms2ll()watex.site.Profile.make_xy_coordinates()generates synthetic coordinates from references latitude and longitude fromxandy.watex.site.Profile.interpolate()interpolatesx,yandelev( if applicable).
Major feature New features for interpolation and drop bad frequencies at once to avoid a gynastic using Numpy and
watex.utils.get2dtensor():watex.methods.Processing.interpolate_z(): Interpolate tensor Z and return new interpolated Z objects. Here is an example:import watex as wx sedis = wx.fetch_data ('huayuan', samples = 12 , return_data =True , key='raw') # collected twelve raw data from Huayuan p = wx.EMProcessing ().fit(sedis) # Let's visualize seven Z values at the first site component xy p.ediObjs_[0].Z.z[:, 0, 1][:7] Out[1]: array([ 4165.6 +2070.13j, 7072.81+6892.41j, 8725.84+5874.15j, 14771.8 -2831.28j, 21243.7 -6802.36j, 6381.48+3411.65j, 5927.85+5074.27j]) Zcol = p.interpolate_z (sedis) Zcol [0].z[:, 0, 1 ][:7] # let visualize the seven interpolated Z Out[2]: array([ 4165.6 +2070.13j, 4165.6 +2070.13j, 7072.81+6892.41j, 8725.84+5874.15j, 14771.8 -2831.28j, 21243.7 -6802.36j, 6381.48+3411.65j])
watex.methods.Processing.drop_frequencies(): drop useless frequencies in the EDI or Z objects using either the tolerance parameter tol fromwatex.methods.Processing.qc()orwatex.utils.qc()or by setting mannually the frequencies. Here is an example:import watex as wx sedis = wx.fetch_data ('huayuan', samples = 12 , key='raw').data Zcol = wx.EMProcessing ().fit(sedis).drop_frequencies (freqs = [49800 , 29700] ) Zcol [5].freq[:7] Out[3]: array([81920., 70000., 58800., 41600., 35000., 24700., 20800.])
Feature
watex.view.TPlot.plot_corrections()allows to visualize the static shift correction as well as the distortion.Feature Add a quick model evalutation with
watex.models.naive_evaluation()Enhancement Update
watex.utils.get2dtensor()to be able to output the complex data type especially when impedance tensor Z is given. This avoidComplexWarningcasting wich only keep therealpart.Enhancement in
watex.view.TPlot.plot_corrections(). Use the frequency of each site rather than the complete frequency of the survey investigation since all sites could not have the same frequency length. This will fix the possible crash when plotting the raw EDI data.Enhancement
forceparameter is now available towatex.methods.DCProfilingandwatex.methods.ResistivityProfilingIn principlewatex.methods.DCProfilingexpects users to provide either DC objects or pandas dataframe. This supposes that users have already transformed its data from sheets to a frame. If not the case, setting force toTruehenceforth coerces the algorithm to do the both tasks at once.Enhancement in the appearance of literal code in WATex documentation ( Issue #1267 ) credit to Daniel McCloy. Thanks for your constructive reply.