IPART is a Python package for the detection and tracking of atmospheric rivers from gridded IVT data using image-processing techniques.
Image-Processing based Atmospheric River Tracking (IPART) algorithms
- Python2.7 or Python3.7.
- netCDF4 (tested 1.4.2, 1.5.3 in py2, tested 1.5.3 in py3)
- numpy (developed in 1.16.5 in py2, tested 1.18.1, 1.19.0 in py3)
- scipy (developed in 1.2.1 in py2, tested 1.4.1, 1.5.1 in py3)
- matplotlib (2.2.3 for both py2 and py3, having issues with 3.1.3)
- basemap (developed in 1.2.0, 1.3.0 in py2, tested 1.2.0 in py3)
- pandas (developed in 0.23.4, 0.24.2 in py2, tested 1.0.3, 1.0.5 in py3)
- networkx (developed in 1.11 and 2.2 in py2, tested 2.4 in py3)
- scikit-image (developed in 0.14.2, 0.14.3 in py2, tested 0.16.2, 0.17.2 in py3)
- OS: Linux or Mac, may work in Windows.
Recommend building the Python environment using Anaconda.
Create conda env using environment file
After Anaconda installation, git clone this repository:
git clone https://github.com/ihesp/IPART
Then build a new conda environment using the environment file provided. For example:
cd IPART conda env create -f environment_py3.yml
This creates a new environment named
ipartpy3. Activate the environment using
conda activate ipartpy3
After that, you can check the list of packages installed by
Similarly for Python 2.7, use
conda env create -f environment_py2.yml
Finally install IPART using:
pip install -e .
To validate installation, issue a new Python session and run
If nothing prints out, installation is successful.
tests folder also contains a number of
unittests, to run them:
python -m unittest discover -s tests
Further documentation can be found at https://ipart.readthedocs.io/en/latest/.
Example use case
|(a) The IVT field in kg/m/s at 1984-01-26 00:00 UTC over the North Hemisphere. (b) the IVT reconstruction field (IVT_rec) at the same time point. (c) the IVT anomaly field (IVT_ano) from the THR process at the same time point.|
|Locations of a track labelled "198424" found in year 1984. Black to yellow color scheme indicates the evolution.|
- docs: readthedocs documentation.
- ipart: core module functions.
- notebooks: a series of jupyter notebooks illustrating the major functionalities of the package.
- scripts: example computation scripts. Can be used as templates to quickly develop your own working scripts.
Make algorithms zonally cyclic.
- restructure into a module
ipart, separate module from scripts.
- add a
findARsGen()generator function to yield results at each time point separately.
- initial upload. Can perform AR detection and tracing through time.
If you encounter problems or would like to help improve the code, please don't hesitate to fire up an issue or pull request.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.