Welcome to the repository for the integrated GUI version of PyFluxPro.
PyFluxPro is a suite of Python scripts, now integrated into a single GUI, that is designed to simplify and standardise the quality control, post-processing, gap filling and partitioning of data from flux towers. PyFluxPro has been developed by the OzFlux (http://ozflux.org.au) community in Australia and is used by the community as the operational tool for processing data from the OzFlux network of flux towers. PyFluxPro is not limited to Australia and can be used for flux tower data collected anywhere in the world. Using PyFluxPro does not require any knowledge of Python (though we would always recommend people learn Python anyway!), all aspects of the processing can be controlled via the integrated GUI. PyFluxPro can read data from Excel workbooks and CSV files and uses netCDF files (http://www.unidata.ucar.edu/software/netcdf/) for storing intermediate and final output data.
The following documentation gives basic information on how to install and use PyFluxPro. Details on the algorithms used in PyFluxPro and results for several sites in the Australian OzFlux network can be found in a recent publication in the OzFlux Special Issue of Biogeosciences (https://www.biogeosciences.net/14/2903/2017/).
There are 4 steps to installing PyFluxPro on Windows:
A fifth step is required when installing PyFluxPro on Linux or Mac OSX. The extra step is to build the executable files for the SOLO neural network, the MPT u* threshold detection scheme and the MDS gap filling routine, see below for details.
PyFluxPro is written for Python V3+ and uses a number of standard and 3rd party Python modules.
OzFlux uses and recommends the Miniconda3 (https://conda.io/miniconda.html) Python V3+ distribution. This is a minimilist installation of Python which installs into your home directory and can then be automatically configured to provide all of the Python modules used by PyFluxPro.
NOTE: The GUI version of PyFluxPro uses PyQt5 to provide the GUI elements. We have not found a way of installing PyQt5 using "pip" so a "requirements.txt" file for automatically configuring the Miniconda2 installation using "pip" is not supplied at present. The currently recommended way to configure the Miniconda2 installation is to create a virtual environment using "conda env create ..." using the YAML file ("environment.yml") supplied.
To install Miniconda3, follow these steps:
At the end of this process, you should have a functioning, although minimal, installation of the Python language interpeter.
The version control program "git" provides a convenient way to install PyFluxPro and to update PyFluxPro once it has been installed.
To install "git", follow these steps:
PyFluxPro is easily installed using the "git" version control software. This process is refered to as "cloning" the PyFluxPro repository (this web page). When PyFluxPro is installed using "git" then "git" can also be used to easily update PyFluxPro to make sure you are always using the most recent version. This is a good idea because PyFluxPro is frequently updated to fix bugs and add new features.
To install PyFluxPro, follow these steps:
Miniconda3 installs a minimal version of Python that does not include all of the packages required by PyFluxPro. The easiest way to configure the Miniconda3 installation so that it includes all of the required packages is to create a virtual environment using the "environment.yml" file supplied with PyFluxPro. Conda virtual environments are explained at https://conda.io/docs/user-guide/tasks/manage-environments.html. You can read the docs (always recommended!) or you can follow the steps below:
This step is only required if you are using PyFuxPro on Linux. The executable files are downloaded when the PyFluxPro repository is cloned under the Windows and MacOS operating systems. Building the executable files for use on Linux requires the GNU Compiler Collection (C and C++) and the GNU make utility to be installed. These are usually installed by default for common Linux distributions.
The build process is controlled by the "make_nix" shell script file in the PyFluxPro directory. To run the script file:
PyFluxPro is still being actively developed and there are frequent changes to fix bugs and add new features. It is always a good idea to update your installation to the latest version every few days. Updating PyFluxPro is easy when the installation was done using the "git" version control software.
To update a PyFluxPro installation done by "git", follow these steps:
The simplest way to run PyFluxPro is from the command line.
To run PyFluxPro, follow these steps:
The PyFluxPro wiki, see https://github.com/OzFlux/PyFluxPro/wiki, contains a great deal of information on what PyFluxPro does and how to run PyFluxPro.