{ "info": { "author": "Karl Lapo and Anita Freundorfer", "author_email": "karl.lapo@uni-bayreuth.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# pyfocs\n\npyfocs 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.\n\n# Getting Started\n\n## Installation\n\n### Using a package manager\npyfocs can be installed by using:\n\n`pip install pyfocs`\n\nwhich 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.\n\n### From source\nAlternatively 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:\n\n`python setup.py install`\n\nNote that Windows users will need to use anaconda power prompt or a similar python environment.\n\nBoth methods should result in the `PyFOX.py` being callable from the command line.\n\n### Dependency issues\nInstalling the code from source may allow some dependency issues. These can be resolved through\n\n`pip install -r requirements.txt`\n\n## Example\n\nDownload 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\n\n`PyFOX.py path/to/example_configuration.yml`\n\nAlternatively, providing no path to the yaml file will open a file browser for selecting the configuration file.\n\n# Overview\n\nThe 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](http://xarray.pydata.org) package for handling n-dimensional data, especially in a netcdf format.\n\n## Other libraries\n\nOther similar libraries exist, such as the [one developed at Delft University](https://github.com/bdestombe/python-geotechnical-profile), which can be more useful for some applications, especially those with double-ended configurations.\n\n# PyFOX Steps\n\nData and the surrounding directory structure is assumed to follow ![this outline.](data_structure_scheme.jpg).\n\nEach Subdirectory corresponds to a particular step in the processing.\n\n1) Archives original `.xml` files into specified time interval.\n\n2) 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.\n\n3) 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` and `time`. New coordinates specified by location type in the location library can be used to label the data along with a `number of labels` by `number of LAF` coordinate.\n\n4) Converts data labels with physical coordinates. Drops the LAF label and only includes the physical location (`xyz`) and `time`. Each `core` dimension is saved as a separate netcdf. Cores do not share the `xyz` dimension and must be aligned with each other. They do share the `time` dimension.\n\n## Example jupyter notebook\n\nFor 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.\n\n### References\n\nHausner, M. B., Su\u00e1rez, F., Glander, K. E., & Giesen, N. Van De. (2011). Calibrating Single-Ended Fiber-Optic Raman Spectra Distributed Temperature Sensing Data. Sensors, 11, 10859\u201310879. https://doi.org/10.3390/s111110859\n\n### Muppet Archiver\n\nBatch 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.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyfocs", "package_url": "https://pypi.org/project/pyfocs/", "platform": "", "project_url": "https://pypi.org/project/pyfocs/", "project_urls": null, "release_url": "https://pypi.org/project/pyfocs/0.1.3.1/", "requires_dist": [ "netcdf4", "pandas", "numpy", "xarray (<0.13)", "xmltodict", "pyyaml (>=5.1)", "dirsync", "scipy" ], "requires_python": "", "summary": "Processing of meteorological FODS data.", "version": "0.1.3.1" }, "last_serial": 5949039, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8a401fd4c1805cbc6f2e91fe1b2c305b", "sha256": "e123f39409abb72432b8a0d8f264d9b3dc5a8d94a9603b282c18371dbe020e4b" }, "downloads": -1, "filename": "pyfocs-0.1-py3.6.egg", "has_sig": false, "md5_digest": "8a401fd4c1805cbc6f2e91fe1b2c305b", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 28556, "upload_time": "2019-10-04T13:34:20", "url": "https://files.pythonhosted.org/packages/9a/d8/04cd00f4ca6fad8160b8b8d75cdc8b69aa7b9a56963538cb1eb0e6192ec8/pyfocs-0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "1c0e9b691b6319fd91a9e2137335fa8f", "sha256": "569ef22c5bf1b7b4ce1b87b959d88c77a81ef5e7ff81d68378d9e77e7b725598" }, "downloads": -1, "filename": "pyfocs-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1c0e9b691b6319fd91a9e2137335fa8f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16111, "upload_time": "2019-10-04T13:34:17", "url": "https://files.pythonhosted.org/packages/95/de/4a3d93634f9e7a79fd2faffd799f69d3f13a05dff9cf17b0d933d4f60955/pyfocs-0.1-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7a9770a1ea5ddf2fb669e082a977e933", "sha256": "953d9a6ba8c02fabec9acd233a20d4b8a7388961a3ffe02bc3ab471d758e63ef" }, "downloads": -1, "filename": "pyfocs-0.1.1-py3.6.egg", "has_sig": false, "md5_digest": "7a9770a1ea5ddf2fb669e082a977e933", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 34830, "upload_time": "2019-10-04T13:49:32", "url": "https://files.pythonhosted.org/packages/31/32/fa460638f8e72eb3a927571a579c4c956dd2a93165495e458f33595ccfc0/pyfocs-0.1.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "5cda28c5d1e589a7826b4594a69c7fb5", "sha256": "f278ec2e30acabb8d734c0aa201749c45c6904aa1d76eb234d2aa8309547dbee" }, "downloads": -1, "filename": "pyfocs-0.1.1-py3.7.egg", "has_sig": false, "md5_digest": "5cda28c5d1e589a7826b4594a69c7fb5", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 34876, "upload_time": "2019-10-04T16:11:50", "url": "https://files.pythonhosted.org/packages/53/5b/03f29168b322c41dc71bfff1394bc7a300dd6dc11665a033a465f7c6ac7d/pyfocs-0.1.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "e8ee4b05e0c90d17637c859e7a1acd2c", "sha256": "b6a04dacc215d64066c1e0fbe58d496fe93c58ec1a2bf8fc36a4d42719bd78d7" }, "downloads": -1, "filename": "pyfocs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e8ee4b05e0c90d17637c859e7a1acd2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22492, "upload_time": "2019-10-04T13:49:31", "url": "https://files.pythonhosted.org/packages/f2/bd/486327684f0b2d8e2cc915a5f9980914c0279d8307ea99ef81c334160fb2/pyfocs-0.1.1-py3-none-any.whl" } ], "0.1.1b0": [ { "comment_text": "", "digests": { "md5": "c2cb5e8defb85844f9e6f8f0ffa424e4", "sha256": "801e53ee48d7ac8d15cb77c0a5649ee988525409633f900371c9ba447dd3812d" }, "downloads": -1, "filename": "pyfocs-0.1.1b0-py3.6.egg", "has_sig": false, "md5_digest": "c2cb5e8defb85844f9e6f8f0ffa424e4", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 34822, "upload_time": "2019-10-04T16:55:56", "url": "https://files.pythonhosted.org/packages/59/d5/4664a870e2b9d294885e4205a453ea0867cf1680d499fd1e75544e8cbbd5/pyfocs-0.1.1b0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "68e809876e11a9f7e244463520f7d36d", "sha256": "06107527369d8b413c889f808193e2cf56fa215d09b918f10b5800bc60c4f19e" }, "downloads": -1, "filename": "pyfocs-0.1.1b0-py3.7.egg", "has_sig": false, "md5_digest": "68e809876e11a9f7e244463520f7d36d", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 34870, "upload_time": "2019-10-04T16:55:58", "url": "https://files.pythonhosted.org/packages/7a/5a/5f724ff06a1c0e36c609315315ae9d11dd9eba7acf27f393ce72adee62be/pyfocs-0.1.1b0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "5e9ac33367ef574275de093d50fbae3e", "sha256": "326d084ff781d7ed36f95bce3f2995ebc16a603ff523e20bd2e062bebb17f3aa" }, "downloads": -1, "filename": "pyfocs-0.1.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "5e9ac33367ef574275de093d50fbae3e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22497, "upload_time": "2019-10-04T16:11:49", "url": "https://files.pythonhosted.org/packages/ee/2e/a92eda31374c08e5808f37230bf6ab5a0ae77c497f2348798fc7d421d309/pyfocs-0.1.1b0-py3-none-any.whl" } ], "0.1.1rc0": [ { "comment_text": "", "digests": { "md5": "50bbf0b16db5945e522565a7d2b35fa9", "sha256": "17ee9f85457704464c20f30ad83880760f77aea3124fdc8a8692f531760de54e" }, "downloads": -1, "filename": "pyfocs-0.1.1rc0-py3.6.egg", "has_sig": false, "md5_digest": "50bbf0b16db5945e522565a7d2b35fa9", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 35279, "upload_time": "2019-10-04T16:56:00", "url": "https://files.pythonhosted.org/packages/b5/8c/b51ba3b43b1ed1a38ae7e5de94217b87958507ca5a9738d326e635b65ab5/pyfocs-0.1.1rc0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "caec8967c499ba15f48a15ab276a5da4", "sha256": "5745089dda0e951836fcfaa78b41c64bee064b3bc3172fa1fb481fbc7a3487cf" }, "downloads": -1, "filename": "pyfocs-0.1.1rc0-py3-none-any.whl", "has_sig": false, "md5_digest": "caec8967c499ba15f48a15ab276a5da4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22940, "upload_time": "2019-10-04T16:55:54", "url": "https://files.pythonhosted.org/packages/c3/8c/e811945133f81719040863304f262a04342b6a3dd12a448f5a8fa3409e70/pyfocs-0.1.1rc0-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4f603053a10af3a7eb553d5dc52daa1b", "sha256": "0af8cfff3db9c1b9b53b0c7d0e881c15af34313f4e209edaaa6d892e7d252824" }, "downloads": -1, "filename": "pyfocs-0.1.2-py3.6.egg", "has_sig": false, "md5_digest": "4f603053a10af3a7eb553d5dc52daa1b", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 35255, "upload_time": "2019-10-04T17:07:01", "url": "https://files.pythonhosted.org/packages/a3/d5/628a0beeeed344b89093dc390d51c3cb302b480ca24dda4978134e7c1361/pyfocs-0.1.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "be9cfe6c0866a180c979fa28212b5360", "sha256": "e52ac1b31a193017400e72c848c9d271787b726ba9ec249d281c42efb7cff783" }, "downloads": -1, "filename": "pyfocs-0.1.2-py3.7.egg", "has_sig": false, "md5_digest": "be9cfe6c0866a180c979fa28212b5360", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 39490, "upload_time": "2019-10-09T10:35:34", "url": "https://files.pythonhosted.org/packages/b5/81/9d9f60b38ae6433939fe490b6a052fcd86d3bad0f66d3a670a29e0587d13/pyfocs-0.1.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "d56bee0d3a70832b279ba3681cdc8045", "sha256": "94dec34adab6f6f4a5e958cfa447003600bc54f28d654888d9d1e4de1ea4f5c7" }, "downloads": -1, "filename": "pyfocs-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d56bee0d3a70832b279ba3681cdc8045", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22897, "upload_time": "2019-10-04T17:06:56", "url": "https://files.pythonhosted.org/packages/af/b0/e7f7401b184c1964640fa379aaef03cbff760b00c592ccea416a32c80595/pyfocs-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4f0c0033ac32e19a84bcf8e8fb3c82a0", "sha256": "a3fd62c24f08646756d65c4d21e5932f9938cb2e55b4a5b612aba376e9ca4c32" }, "downloads": -1, "filename": "pyfocs-0.1.3-py3.7.egg", "has_sig": false, "md5_digest": "4f0c0033ac32e19a84bcf8e8fb3c82a0", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 39692, "upload_time": "2019-10-09T10:35:35", "url": "https://files.pythonhosted.org/packages/39/f4/1f4fae354925458d4fa4cf669e261a9d4fd6132502c15635a9acecb0f0f2/pyfocs-0.1.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "bfed2a0b79125c54956df983350894d6", "sha256": "604e302d0d746130d8a3188c272f474dd16ce8c14392eb3e9e5895eb81040869" }, "downloads": -1, "filename": "pyfocs-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bfed2a0b79125c54956df983350894d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25502, "upload_time": "2019-10-09T10:35:32", "url": "https://files.pythonhosted.org/packages/ae/2e/2407dae7db5d9055657924f454afd80faecf69cd6be4866af55430069f5f/pyfocs-0.1.3-py3-none-any.whl" } ], "0.1.3.1": [ { "comment_text": "", "digests": { "md5": "25d2a9206dc0ae1d734d2485bd5ff2f8", "sha256": "8daab7f6124b6680fadecd9d489ff031f918473b644e866b3d00858d601d7814" }, "downloads": -1, "filename": "pyfocs-0.1.3.1-py3.7.egg", "has_sig": false, "md5_digest": "25d2a9206dc0ae1d734d2485bd5ff2f8", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 39719, "upload_time": "2019-10-09T10:40:07", "url": "https://files.pythonhosted.org/packages/0e/26/91c00f52166f24cec098d50728312fcb126305136c4dfd18f58e1d88d7b8/pyfocs-0.1.3.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "3da7193cb14ccad4aee52452f57a4b1f", "sha256": "eb5d07c389d441f02ea5987618a7d995abd948f2d24937169aa14b63b753e893" }, "downloads": -1, "filename": "pyfocs-0.1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3da7193cb14ccad4aee52452f57a4b1f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25533, "upload_time": "2019-10-09T10:40:05", "url": "https://files.pythonhosted.org/packages/5b/93/f507f09dbf57ee20a90698b2c6039696f61c0eb8b7b0d8fd745142ee60de/pyfocs-0.1.3.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25d2a9206dc0ae1d734d2485bd5ff2f8", "sha256": "8daab7f6124b6680fadecd9d489ff031f918473b644e866b3d00858d601d7814" }, "downloads": -1, "filename": "pyfocs-0.1.3.1-py3.7.egg", "has_sig": false, "md5_digest": "25d2a9206dc0ae1d734d2485bd5ff2f8", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 39719, "upload_time": "2019-10-09T10:40:07", "url": "https://files.pythonhosted.org/packages/0e/26/91c00f52166f24cec098d50728312fcb126305136c4dfd18f58e1d88d7b8/pyfocs-0.1.3.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "3da7193cb14ccad4aee52452f57a4b1f", "sha256": "eb5d07c389d441f02ea5987618a7d995abd948f2d24937169aa14b63b753e893" }, "downloads": -1, "filename": "pyfocs-0.1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3da7193cb14ccad4aee52452f57a4b1f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25533, "upload_time": "2019-10-09T10:40:05", "url": "https://files.pythonhosted.org/packages/5b/93/f507f09dbf57ee20a90698b2c6039696f61c0eb8b7b0d8fd745142ee60de/pyfocs-0.1.3.1-py3-none-any.whl" } ] }