python-dts-calibration
python-dts-calibration copied to clipboard
A Python package to load raw Distributed Temperature Sensing (DTS) files, perform a calibration, and plot the result.
======== Overview
.. start-badges
.. list-table::
* - Docs
- |docs|
* - Tests
- |tests|
* - Package
- | |version| |supported-versions| |commits-since|
* - Citable
- |zenodo|
* - Example notebooks
- |example-notebooks|
.. |docs| image:: https://readthedocs.org/projects/python-dts-calibration/badge/?style=flat :target: https://python-dts-calibration.readthedocs.io/en/latest/ :alt: Documentation Status
.. |tests| image:: https://github.com/dtscalibration/python-dts-calibration/actions/workflows/build.yml/badge.svg :target: https://github.com/dtscalibration/python-dts-calibration/actions/workflows/build.yml :alt: Test Status
.. |version| image:: https://img.shields.io/pypi/v/dtscalibration.svg :alt: PyPI Package latest release :target: https://pypi.python.org/pypi/dtscalibration
.. |commits-since| image:: https://img.shields.io/github/commits-since/dtscalibration/python-dts-calibration/v3.0.3.svg :alt: Commits since latest release :target: https://github.com/dtscalibration/python-dts-calibration/compare/v1.1.1...main
.. |wheel| image:: https://img.shields.io/pypi/wheel/dtscalibration.svg :alt: PyPI Wheel :target: https://pypi.python.org/pypi/dtscalibration
.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/dtscalibration.svg :alt: Supported versions :target: https://pypi.python.org/pypi/dtscalibration
.. |zenodo| image:: https://zenodo.org/badge/143077491.svg :alt: It would be greatly appreciated if you could cite this package in eg articles presentations :target: https://zenodo.org/badge/latestdoi/143077491
.. |example-notebooks| image:: https://mybinder.org/badge.svg :alt: Interactively run the example notebooks online :target: https://mybinder.org/v2/gh/dtscalibration/python-dts-calibration/main?labpath=docs%2Fnotebooks
.. end-badges
A Python package to load Distributed Temperature Sensing files, perform a calibration, and plot the result. A detailed description of the calibration procedure can be found at https://doi.org/10.3390/s20082235 .
Do you have questions, ideas or just want to say hi? Please leave a message on the discussions page <https://github.com/dtscalibration/python-dts-calibration/discussions>_!
Installation
.. code-block:: zsh
pip install dtscalibration
Or the development version directly from GitHub
.. code-block:: zsh
pip install https://github.com/dtscalibration/python-dts-calibration/zipball/main --upgrade
Package features
DTS measures temperature by calibrating backscatter measurements to sections with a known temperature. DTS devices provide a simple interface to perform a limited calibration. Re-calibrating your measurements with this Python package gives you better temperature estimates and additional options.
- Advanced calibration routine
- Supports
single <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/07Calibrate_single_ended.ipynb>- anddouble-ended <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/08Calibrate_double_ended.ipynb>setups - Compute uncertainty of the calibrated temperature
- All measurements are used to estimate parameter values that are constant over time.
- Weighted least-squares calibration
Fixing parameters to a previously determined value <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/13Fixed_parameter_calibration.ipynb>_(Asymmetric) step loss correction <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/14Lossy_splices.ipynb>_ so that fiber connectors can be used instead of welds/splices.Matching temperature sections <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/15Matching_sections.ipynb>_ to support J-configurations
- Supports
- Dynamic reference section definition
- Tools for merging and aligning double-ended setups
- Data formats of most manufacturers are supported
Devices currently supported
- Silixa Ltd.: Ultima & XT-DTS .xml files (up to version 8.1)
- Sensornet Ltd.: Oryx, Halo & Sentinel .ddf files
- AP Sensing: CP320 .xml files (single ended only)
- SensorTran: SensorTran 5100 .dat binary files (single ended only)
Documentation
- A full calibration procedure for single-ended setups is presented in notebook
07Calibrate_single_ended.ipynb <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/07Calibrate_single_ended.ipynb>_ and for double-ended setups in08Calibrate_double_ended.ipynb <https://github.com/dtscalibration/python-dts-calibration/blob/main/docs/notebooks/08Calibrate_double_ended.ipynb>_. - Documentation at
readthedocs <https://python-dts-calibration.readthedocs.io/en/latest/>_. - Example notebooks (
./docs/notebooks) that work within the browser can be viewedhere <https://mybinder.org/v2/gh/dtscalibration/python-dts-calibration/main?labpath=docs%2Fnotebooks>_.
How to cite
The following article explains and discusses the calibration procedure:
des Tombe, B., Schilperoort, B., & Bakker, M. (2020). Estimation of Temperature and Associated Uncertainty from Fiber-Optic Raman-Spectrum Distributed Temperature Sensing. Sensors, 20(8), 2235. https://doi.org/10.3390/s20082235
Cite the specific implementation / repository via Zenodo:
-
Check the version of
dtscalibrationthat is used in your Python console with:The following line introduces the .dts accessor for xarray datasets
import dtscalibration # noqa: E401 dtscalibration.version '3.0.1'
-
Go to
Zenodo <https://zenodo.org/search?q=conceptrecid:%221410097%22&sort=-version&all_versions=True>_ and follow the link to the version of interest. -
The citation is found on the bottom right of the page.