3.1.0 (2024-09-13) ---
Added
- support for Python 3.12.
- AP sensing .tra support, as the reference temperature sensor data by this device in only logged in .tra and not in the .xml log files.
- added functions in io/apsensing.py to read .tra files if they are in the same directory as the .xml files.
- more test data from AP sensing device N4386B, which do also contain their .tra log files
Fixed
- device ID bug for APSensing. Device ID is N4386B instead of C320. C320 was an arbitrary name given for the wellbore by the user.
Changed
- the verify_timedeltas keyword argument is now optional when merging two single ended datasets.
- removed statsmodels as a dependency. It is now optional, and only used for testing the wls_sparse solver
3.0.3 (2024-04-18) ---
Fixed
- Improved error message when some variables cannot be shifted by the suggest_shift_double_ended function.
Changed:
- [dev] Moved to Ruff instead of isort for import sorting
3.0.2 (2024-04-13) ---
Fixed
- Bumpversion configuration was incorrect since v3.0.0. Therefore the 3.0.1 release failed. This is a re-release of 3.0.1:
3.0.1 (2024-04-13) ---
Fixed
- Oryx v4 double ended could have the backward measurements incorrectly cut off during loading.
3.0.0 (2023-11-05) ---
Added
- Calibration functions are now accessed via the .dts accessor in favor of the DataStore class.
- Improved the functionality of merge_double_ended, by adding a check that handles measurements missing in one channel while present in the other ([#171](#171))
- Support for Python 3.11
- matching_sections is now similarly implemented as sections.
Fixed
- Single-ended measurements with fix_alpha failed due to a bug introduced in v2.0.0 ([#173](#173)).
- Headers in example notebooks and their appearance in the docs are now at correct levels
- Big clean up of the documentation. The documentation is now more consistent and easier to read.
Changed
- Notebooks now reflect the new API with the .dts accessor.
- Calibration functions now return only calibration results instead of adding the results to the Dataset inplace.
- Standardized parameter names. Reduced the freedom in choosing parameter names and dimension names in favor of simplifying the code.
- Requiring netcdf4 >= 1.6.4
- Optional dependencies of xarray that improve performance are now required by default.
- variance_stokes_linear() does not default through zero anymore.
- Refactored calibration_single_ended and calibration_double_ended()
- Moved ParameterIndices classes to calibration_utils.py
- Flox included in requirements to speed up resampling via xarray ([Xarray #5734](pydata/xarray#5734)).
Removed
- Removed the DataStore module in favor of the dts accessor.
- Removed ds.resample_datastore() in favor of using xarray's resample function. See example notebook 2.
- Removed support for Python 3.8
Developer changes
- Added mypy to dev dependencies and CI.
- Using ruff for most of the formattting. Black is used for the notebooks. Isort is used for sorting the imports.
- Changed all import statements to be absolute instead of relative.
- Cleaned up old 'pylint: disable' comments
- Faster approach on error propagation. As alternative to computational intensive Monte Carlo runs.
- Refractored some of the indexing logic of the calibration routines.
- Rewritten single-ended and double-ended example notebooks.
- Removed support for OLS calibration, as with minor extra efforts WLS could be used, which has significant benefits.
Bug fixes
- Fixed deprecated np.float and np.int
Other
- Moved project build system & scripts to hatch.
- Project is now fully configured using pyproject.toml
- Linting is handled by Ruff.
- Notebooks are now rendered as part of the documentation.
Removed
- cli.py script (unused) has been removed.
New contributors: * Karl Lapo (@klapo)
- Added support for Sensornet Sentinel v5 files.
- Deprecated Python 3.7
- Fixed documention rendering
- Updated readme badges
New features
- Added support for Python 3.9, 3.10.
- Silixa's xml version 8 is now supported
Bug fixes
- Loading in untested sensornet files will not give a UnboundLocalError error anymore
- Sensornet .ddf file version check is now more robust (commas are replaced to periods)
- Changed matplotlib's deprecated DivergingNorm to TwoSlopeNorm
- Updated the stokes_variance_linear docstring to remove incorrect and duplicate information
- Adjusted resample_datastore to avoid using deprecated 'base' kwarg, instead using the new arguments 'origin' and 'offset'. See http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html
Others
- Notebook 04 on Stokes variance has been updated to explain the different estimation methods for the variance, and their importance.
- Notebook 07 and 08 have been updated to take into account the changes in ds.stokes_variance.
- Silenced xarray's __slots__ warning
- Deprecated Python 3.6
- CI has been moved to GitHub Actions. Travis-CI and AppVeyor have been removed.
- Same as v1.0.1
New features
- st_var can now be array-like. The array-like can vary in x or time, or both.
- When converting from a xr.Dataset to a DataStore object, the attributes arenow transfered over
- Added 'verbose' kwarg to shift_double_ended utility function to silence theconsole output
Bug fixes
- If the '_sections' attribute is missing from a DataStore object it is automagically re-added.
- Assert that stokes variances are passed when running a double-ended WLS calibration
- Added check for NaN/inf values in wls_sparse solver to avoid unclear error messages
- Before calibration, the values of the used reference temperatures are checked if they are valid (float dtype, no NaN/inf values, correct time dimension)
Others
- European Geosciences Union conference 2020 presentation added
- Updated documentation with content article
- Use YAPF formatting of the Python files
- Travis-CI.org integration in GitHub restored.
- First major release
- Reduced flexibility in defining names under which the Stokes are stored
- 4 Averaging functions implemented, with uncertainty estimation. See notebook 16 for the various options
- Notebook about transient attenuation caused by for example connectors
- Bug in singel ended transient attenuation
- Check for consistent number of measurement locations across read files
- Reduced flexibility in defining Stokes labels
- Same as 0.9.2
- Increased precision of least squares solver, as this was limiting theprecision of the parameter estimation
- The variance of the noise in the Stokes can change linear with the intensity
- Improved residuals plot function
- Reduced the number of equations for double ended calibration
- Support for transient attenuation due to connectors along fibers
- Matching sections
- Valentine edition
- Added example for fixing parameters
- Bug fixed in routine for reading Sensornet files (Bor van der Scheer)
- Official support for Python 3.8
- When the datastore is printed to the screen, the mean and std of thereference temperature is plotted
- Integrated differential attenuation is reformulated. Starts integrating atthe first reference section location.
- Estimation of the variance of the Stokes that is linear dependent on theintensity (Poisson)
- Removed __slots__ attribute
- Update automated zenodo reference requires to draft a new release
- Solved xlim in subplots of plot_residuals_reference_sections funciton
- Solved YAML deprecation related problems
- Introduced new approach for double ended calibration, with a different Cfor the forward and backward channel
- First code added for time variant asymmetric attenuation, such as connectors.
- First code added for matching sections
- Set alpha and or gamma to known value, with corresponding variance.
- Bug in computation of the weights for single and double-ended calibration
- Added notebook about merging two single ended measurements
- Added example notebook on how to create a custom datastore
- Added notebook examples for loading in data from the different manufa..
- Loading AP Sensing files and tests
- Loading Sensortran files
- Ensure order of dimension upon initialization of DataStore. Resamplingwould lead to issues
- Bug in section definition (reported by Robert Law)
- Rewritten calibration solvers to align with article of this package
- Removed old calibration solvers
- New possibilities of saving and loading large DataStores saved to multiplenetCDF files
- Use twine to check if the compiled package meets all the requirements of Pypi
- Use twine to check if the compiled package meets all the requirements of Pypi
- Major bug fix version.
- More flexibility in defining the time and space dimensions
- Fixed unsave yaml loading
- Added support for Silixa 7 files
- Start using __slots__ as it is something new
- xarray doesn't have the attribute ._initialized anymore. Rewritten teststo make more sense by checking the sum of the Stokes instead.
- Support for double ended Sensornet files and tests
- Bug fixing
- More flexibility in defining the time dimension
- Cleanup of some plotting functions
- Added reading support for zipped silixa files. Still rarely fails due to upstream bug.
- pretty __repr__
- Reworked double ended calibration procedure. Integrated differential attenuation outside of reference sections is now calculated seperately.
- New approach for estimation of Stokes variance. Not restricted to a decaying exponential
- Bug in averaging TMPF and TMPB to TMPW
- Modified residuals plot, especially useful for long fibers (Great work Bart!)
- Example notebooks updatred accordingly
- Bug in to_netcdf when passing encodings
- Better support for sections that are not related to a timeseries.
- Double-ended weighted calibration procedure is rewritten so that the integrated differential attenuation outside of the reference sections is calculated seperately. Better memory usage and faster
- Other calibration routines cleaned up
- Official support for Python 3.7
- Coverage figures are now trustworthy
- String representation improved
- Include test for aligning double ended measurements
- Example for aligning double ended measurements
- Many examples were shown in the documentation
- Fixed verbose settings of solvers
- Revised example notebooks
- Moved to 80 characters per line (PEP)
- More Python formatting using YAPF
- Use example of plot_residuals_reference_sections function in Stokes variance example notebook
- Support Python 3.7
- Reworked the double-ended calibration routine and the routine for confidence intervals. The integrated differential attenuation is not zero at x=0 anymore.
- Verbose commands carpentry
- Bug fixed that would make the read_silixa routine crash if there are copies of the same file in the same folder
- Routine to read sensornet files. Only single-ended configurations supported for now. Anyone has double-ended measurements?
- Lazy calculation of the confidence intervals
- Bug solved. The x-coordinates where not calculated correctly. The bug only appeared for measurements along long cables.
- Example notebook of importing a timeseries. For example, importing measurments from an external temperature sensor for calibration.
- Updated documentation
- No changes
- New resample_datastore method (see basic usage notebook)
- New notebook on basic usage of DataStore
- Support for Silixa v4 (Windows xp based system) and Silixa v6 (Windows 7) measurement files
- The representation string now includes the sections
- Reorganized the IO related files
- CI: Add appveyor to continuesly test on Windows platform
- Auto load Silixa files to memory option, if size is small
- Rewritten the routine that reads Silixa measurement files
- dts-calibration is now citable
- Refractored the MC confidence interval routine
- MC confidence interval routine speed up, with full dask support
- Link to mybinder.org to try the example notebooks online
- Added a few missing dependencies
- The routine to read the Silixa files is completely refractored. Faster, smarter. Supports both the path to a directory and a list of file paths.
- Changed imports from dtscalibration to be relative
- Single ended calibration
- Confidence intervals for single ended calibration
- Example notebooks have figures embedded
- Several bugs squashed
- Reorganized DataStore functions
- Double ended calibration
- Confidence intervals for double ended calibration
- First release on PyPI.