Processing of meteorological FODS data.
Project description
pyfocs
version==version==0.2.1.
pyfocs has been known by btmm_process (obscure non-pythonic name) and pyfox (an unmaintained package on PyPi) resulting in the new name for the library.
Getting Started
Installation
This installation assumes you have the anaconda distribution of python. If you do not have anaconda see the basic troubleshooting section.
Using a package manager
pyfocs can be installed by using:
pip install pyfocs
which installs pyfocs plus all dependencies. This install method has caused problems for Windows OS. If you encounter errors when running pyfocs using this method, we instead recommend following the below method. If installing through pip and using an anaconda environment, then this step should be performed after installing all necessary conda packages, preferably in a new anaconda environment. pip
and conda
can create conflicts in the packages, especially if used interchangeably multiple times..
From source
Alternatively you can download the source code from this repository (green button with "Clone or Download"), extract the package, navigate to the directory containing it, and run:
python setup.py install
Note that Windows users will need to use anaconda power prompt or a similar python environment.
Both methods should result in the PyFOX.py
being callable from the command line.
Dependency issues
Please see the troubleshooting section. For issues not covered there please raise an issue and include details on your own system, your python version, and the versions of the packages pyfocs requires.
Example
Download the data in the example
directory. Within that directory is an example configuration file in yaml format. Adjust the dir_pre
and external
paths to be those of the example folder. Then, you should be able to run
PyFOX.py path/to/example_configuration.yml
Alternatively, providing no path to the yaml file will open a file browser for selecting the configuration file.
Overview
The Bayreuth Micrometeorology python library for processing Fiber Optic Distributed Sensing (FODS) data. The library consists of a family of simple functions and a master script (PyFOX
) that can be used to process output from a Silixa Distribute Temperature Sensing (DTS) device, such as an Ultima or XT, from the original *.xml
files to calibrated temperatures with physical labels. This library is built around the xarray package for handling n-dimensional data, especially in a netcdf format.
Other libraries
Other similar libraries exist, such as the one developed at Delft University, which can be more useful for some applications, especially those with double-ended configurations.
PyFOX Steps
Data and the surrounding directory structure is assumed to follow this outline. .
Each Subdirectory corresponds to a particular step in the processing.
-
Archives original
.xml
files into specified time interval. -
Creates netcdfs of the raw data, including the instrument reported temperature, stokes intensity, and anti-stokes intensity. Dimensions of Length Along the Fiber,
LAF
, and time. -
Labels the data, integrates external data streams and other reference data, performs step-loss corrections, performs single ended calibration based on Hausner et al., (2011). Splits multicore data into individual cores. Reports instrument reported temperature, calibrated temperature, log-power ratio of stoke and anti-stokes intensities, stokes intensity, anti-stokes intensities, and all data labels. Dimensions are
LAF
andtime
. New coordinates specified by location type in the location library can be used to label the data along with anumber of labels
bynumber of LAF
coordinate. -
Converts data labels with physical coordinates. Drops the LAF label and only includes the physical location (
xyz
) andtime
. Eachcore
dimension is saved as a separate netcdf. Cores do not share thexyz
dimension and must be aligned with each other. They do share thetime
dimension.
Example jupyter notebook
For space reasons we only include the data for following steps 2-4 in the example notebook. The example notebook walks through the iterative approach for processing FODS data.
References
Hausner, M. B., Suárez, F., Glander, K. E., & Giesen, N. Van De. (2011). Calibrating Single-Ended Fiber-Optic Raman Spectra Distributed Temperature Sensing Data. Sensors, 11, 10859–10879. https://doi.org/10.3390/s111110859
Muppet Archiver
Batch script for scheduled archiving of .xml
files on the Silixa DTS devices. Why muppet? Unviersity of Bayreuth Micrometeorology names their Silixa devices after muppet characters. Requires an anaconda 3.* distribution of python. Task scheduler must point to the .bat
script and not the python script.
Troubleshooting/First time with python
Install the anaconda version of python
https://www.anaconda.com/distribution/#download-section
You should be prompted to install python for your particular OS. Install version 3.7*.
PyYAML updating
An error in an old version of pip stops the updating of PyYAML. If you get an error related to this library you can solve it with:
pip install --ignore-installed PyYAML
Windows specific stuff
You will always need to use the anaconda power prompt or a similar environment. You will find it difficult/impossible to run python outside of the anaconda environment.
For the first time, windows asks what application to use to run *.py files.
Select python in Anaconda directory: make sure check box "Always use this app to open .py files" is checked
Click "More Apps"
Click "Look for another app on this PC"
Find path to anaconda python, e.g. "C:\Users\Your Name\Anaconda3\python"
Click "Open"
Click "OK"
Other issues may be related to running the anaconda prompt without administrator issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.