tobac 1.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. tobac/__init__.py +112 -0
  2. tobac/analysis/__init__.py +31 -0
  3. tobac/analysis/cell_analysis.py +628 -0
  4. tobac/analysis/feature_analysis.py +212 -0
  5. tobac/analysis/spatial.py +619 -0
  6. tobac/centerofgravity.py +226 -0
  7. tobac/feature_detection.py +1758 -0
  8. tobac/merge_split.py +324 -0
  9. tobac/plotting.py +2321 -0
  10. tobac/segmentation/__init__.py +10 -0
  11. tobac/segmentation/watershed_segmentation.py +1316 -0
  12. tobac/testing.py +1179 -0
  13. tobac/tests/segmentation_tests/test_iris_xarray_segmentation.py +0 -0
  14. tobac/tests/segmentation_tests/test_segmentation.py +1183 -0
  15. tobac/tests/segmentation_tests/test_segmentation_time_pad.py +104 -0
  16. tobac/tests/test_analysis_spatial.py +1109 -0
  17. tobac/tests/test_convert.py +265 -0
  18. tobac/tests/test_datetime.py +216 -0
  19. tobac/tests/test_decorators.py +148 -0
  20. tobac/tests/test_feature_detection.py +1321 -0
  21. tobac/tests/test_generators.py +273 -0
  22. tobac/tests/test_import.py +24 -0
  23. tobac/tests/test_iris_xarray_match_utils.py +244 -0
  24. tobac/tests/test_merge_split.py +351 -0
  25. tobac/tests/test_pbc_utils.py +497 -0
  26. tobac/tests/test_sample_data.py +197 -0
  27. tobac/tests/test_testing.py +747 -0
  28. tobac/tests/test_tracking.py +714 -0
  29. tobac/tests/test_utils.py +650 -0
  30. tobac/tests/test_utils_bulk_statistics.py +789 -0
  31. tobac/tests/test_utils_coordinates.py +328 -0
  32. tobac/tests/test_utils_internal.py +97 -0
  33. tobac/tests/test_xarray_utils.py +232 -0
  34. tobac/tracking.py +613 -0
  35. tobac/utils/__init__.py +27 -0
  36. tobac/utils/bulk_statistics.py +360 -0
  37. tobac/utils/datetime.py +184 -0
  38. tobac/utils/decorators.py +540 -0
  39. tobac/utils/general.py +753 -0
  40. tobac/utils/generators.py +87 -0
  41. tobac/utils/internal/__init__.py +2 -0
  42. tobac/utils/internal/coordinates.py +430 -0
  43. tobac/utils/internal/iris_utils.py +462 -0
  44. tobac/utils/internal/label_props.py +82 -0
  45. tobac/utils/internal/xarray_utils.py +439 -0
  46. tobac/utils/mask.py +364 -0
  47. tobac/utils/periodic_boundaries.py +419 -0
  48. tobac/wrapper.py +244 -0
  49. tobac-1.6.2.dist-info/METADATA +154 -0
  50. tobac-1.6.2.dist-info/RECORD +53 -0
  51. tobac-1.6.2.dist-info/WHEEL +5 -0
  52. tobac-1.6.2.dist-info/licenses/LICENSE +29 -0
  53. tobac-1.6.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,154 @@
1
+ Metadata-Version: 2.4
2
+ Name: tobac
3
+ Version: 1.6.2
4
+ Summary: A package for identifying and tracking atmospheric phenomena
5
+ Author-email: Max Heikenfeld <max.heikenfeld@physics.ox.ac.uk>, William Jones <william.jones@physics.ox.ac.uk>, Fabian Senf <senf@tropos.de>, Sean Freeman <sean.freeman@uah.edu>, Julia Kukulies <kukulies@ucar.edu>, Kelcy Brunner <Kelcy.Brunner@ttu.edu>, Sven Starzer <sven.starzer@proton.me>
6
+ License-Expression: BSD-3-Clause
7
+ Project-URL: Homepage, http://github.com/tobac-project/tobac
8
+ Project-URL: Documentation, http://tobac.io
9
+ Project-URL: Issues, http://github.com/tobac-project/tobac/issues
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Education
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Operating System :: MacOS :: MacOS X
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Topic :: Scientific/Engineering
27
+ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
28
+ Requires-Python: <3.14,>=3.9
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ Requires-Dist: numpy
32
+ Requires-Dist: scipy
33
+ Requires-Dist: scikit-image
34
+ Requires-Dist: scikit-learn
35
+ Requires-Dist: pandas
36
+ Requires-Dist: matplotlib
37
+ Requires-Dist: scitools-iris
38
+ Requires-Dist: xarray
39
+ Requires-Dist: cartopy
40
+ Requires-Dist: trackpy
41
+ Requires-Dist: typing_extensions
42
+ Provides-Extra: dev
43
+ Requires-Dist: pre-commit; extra == "dev"
44
+ Requires-Dist: black; extra == "dev"
45
+ Requires-Dist: pytest; extra == "dev"
46
+ Requires-Dist: nbconvert; extra == "dev"
47
+ Provides-Extra: examples
48
+ Requires-Dist: jupyter; extra == "examples"
49
+ Requires-Dist: notebook; extra == "examples"
50
+ Requires-Dist: pytables; extra == "examples"
51
+ Requires-Dist: s3fs; extra == "examples"
52
+ Requires-Dist: arm_pyart; extra == "examples"
53
+ Requires-Dist: seaborn; extra == "examples"
54
+ Requires-Dist: h5netcdf; extra == "examples"
55
+ Requires-Dist: rioxarray; extra == "examples"
56
+ Requires-Dist: numba; extra == "examples"
57
+ Requires-Dist: dask; extra == "examples"
58
+ Requires-Dist: intake==0.7.0; extra == "examples"
59
+ Requires-Dist: intake-xarray==0.7.0; extra == "examples"
60
+ Requires-Dist: healpix; extra == "examples"
61
+ Requires-Dist: easygems; extra == "examples"
62
+ Provides-Extra: all
63
+ Requires-Dist: pre-commit; extra == "all"
64
+ Requires-Dist: black; extra == "all"
65
+ Requires-Dist: pytest; extra == "all"
66
+ Requires-Dist: nbconvert; extra == "all"
67
+ Requires-Dist: jupyter; extra == "all"
68
+ Requires-Dist: notebook; extra == "all"
69
+ Requires-Dist: pytables; extra == "all"
70
+ Requires-Dist: s3fs; extra == "all"
71
+ Requires-Dist: arm_pyart; extra == "all"
72
+ Requires-Dist: seaborn; extra == "all"
73
+ Requires-Dist: h5netcdf; extra == "all"
74
+ Requires-Dist: rioxarray; extra == "all"
75
+ Requires-Dist: numba; extra == "all"
76
+ Requires-Dist: dask; extra == "all"
77
+ Requires-Dist: intake==0.7.0; extra == "all"
78
+ Requires-Dist: intake-xarray==0.7.0; extra == "all"
79
+ Requires-Dist: healpix; extra == "all"
80
+ Requires-Dist: easygems; extra == "all"
81
+ Dynamic: license-file
82
+
83
+ # tobac - Tracking and Object-based Analysis of Clouds
84
+
85
+ [![Release Version](https://img.shields.io/conda/vn/conda-forge/tobac.svg)](https://anaconda.org/conda-forge/tobac)[![Download Counter](https://img.shields.io/conda/dn/conda-forge/tobac.svg)](https://anaconda.org/conda-forge/tobac)[![Documentation Status](https://readthedocs.org/projects/tobac/badge/?version=latest)](https://tobac.readthedocs.io/en/latest/?badge=latest)
86
+
87
+ ## What is it?
88
+
89
+ _tobac_ is a Python package for identifiying, tracking and analysing of clouds and other meteorological phenomena in different types of gridded datasets. _tobac_ is unique in its ability to track phenomena using **any** variable on **any** grid, including radar data, satellite observations, and numerical model output. _tobac_ has been used in a variety of peer-reviewed [publications](https://tobac.readthedocs.io/en/latest/publications.html) and is an international, multi-institutional collaboration.
90
+
91
+ ## Documentation
92
+
93
+ Individual features are identified as either maxima or minima in a two dimensional time varying field.
94
+ The volume/area associated with the identified objects can be determined based on a time-varying 2D or 3D field and a threshold value. The in thre tracking step, the identified objects are linked into consistent trajectories representing the cloud over its lifecycle.
95
+
96
+ Detailed documentation of the package can be found at https://tobac.readthedocs.io.
97
+
98
+ Release announcements, workshop and conference announcements, and other information of interest to the broader _tobac_ users group are sent to the [tobac core group](https://groups.google.com/g/tobac/about) mailing list. If you are interested in contributing to the development of _tobac_, we invite you to join the [tobac developers](https://groups.google.com/u/1/g/tobac-developers) mailing list. Information on monthly developers' meetings and other developer discussion and announcements are sent to that list.
99
+
100
+ We also have a Slack server for both users and developers. For information on joining that, please contact the _tobac_ developers mailing list, or see the information in the _tobac_ release notes sent to the _tobac_ mailing list.
101
+
102
+ ## Installation
103
+
104
+ tobac requires Python 3, and support for Python versions before 3.9 (i.e., 3.8 and lower) is deprecated and will be removed in tobac version 1.6.
105
+
106
+ The easiest way is to install the most recent version of tobac via conda and the conda-forge channel:
107
+
108
+ ```
109
+ conda install -c conda-forge tobac
110
+ ```
111
+
112
+ This will take care of all necessary dependencies and should do the job for most users and also allows for an easy update of the installation by
113
+
114
+ ```
115
+ conda update -c conda-forge tobac
116
+ ```
117
+
118
+ You can also install conda via git, either for development purposes or to use specific development branches for the Github repository.
119
+
120
+ If you are using anaconda, the following command from within the cloned repository should make sure all dependencies are met and up to date:
121
+
122
+ ```
123
+ conda install -c conda-forge --yes --file requirements.txt
124
+ ```
125
+
126
+ You can directly install the package directly from github with pip and either of the two following commands:
127
+
128
+ ```
129
+ pip install --upgrade git+ssh://git@github.com/tobac-project/tobac.git
130
+ pip install --upgrade git+https://github.com/tobac-project/tobac.git
131
+ ```
132
+
133
+ You can also clone the package with any of the two following commands
134
+
135
+ ```
136
+ git clone git@github.com:tobac-project/tobac.git
137
+ git clone https://github.com/tobac-project/tobac.git
138
+ ```
139
+
140
+ and install the package from the locally cloned version:
141
+
142
+ ```
143
+ pip install tobac/
144
+ ```
145
+
146
+ ## Contributing
147
+
148
+ We encourage bug reports, questions, and code contributions. For more details on contributing, please see https://github.com/tobac-project/tobac/blob/v2.0-dev/CONTRIBUTING.md
149
+
150
+ We are currently in a transition phase between versions 1.x and 2.x. v2.x will enable the use of multiple tracking methods (including TINT) and will use xarray for gridded data instead of Iris. Preliminary development on v2.x has taken place on the `v2.0-dev` branch, while work on the `main` and `RC_v1.x.x` branches (containing v1.x development) is ongoing to unify these development efforts.
151
+
152
+ ## Roadmap
153
+
154
+ A roadmap for the future development of tobac is available here: https://github.com/tobac-project/tobac-roadmap/blob/master/tobac-roadmap-main.md
@@ -0,0 +1,53 @@
1
+ tobac/__init__.py,sha256=Au5BW9GLvQ6zR8GFQWf84MhPNIVPw0PtXC4asKwhHSk,3124
2
+ tobac/centerofgravity.py,sha256=4aEqK-T3w1zQ1CwqSSyD7AKQpnu3tmGqG8Rsp4ieAcM,7312
3
+ tobac/feature_detection.py,sha256=DVgngbmCYeOFKt9dCrMZ-d7jEtdo44TDi-kmoAETbjw,71504
4
+ tobac/merge_split.py,sha256=Y3jMCkb3IbWztZ9261JDvJMCRdDPT1AO-snDAWe2cjc,12291
5
+ tobac/plotting.py,sha256=PBlISvYu9dWNCdHBNNvkWjC32sPQ04nAFncBIyH4u6Q,78926
6
+ tobac/testing.py,sha256=zj6k0Oag8jEzbcZctQ46fpmLMZolIhshX1DIZ7EoLzg,38842
7
+ tobac/tracking.py,sha256=DglRXtzJfU9nQwG4tkgPSqcm2eqXHdRGLXPA2pLuC04,23392
8
+ tobac/wrapper.py,sha256=NAvoO4iuhul41y8wXZotwzKtREQNxBp0gG8vxibTvdA,8632
9
+ tobac/analysis/__init__.py,sha256=ly4XQQknjf1Y8oXF69z6hERwz7JMHkiJw72rXH9ccbQ,1379
10
+ tobac/analysis/cell_analysis.py,sha256=0lt-u1qSQylVE_Sy4xYksWPnA83DUoGTzVyPExqsdqY,20846
11
+ tobac/analysis/feature_analysis.py,sha256=Z23yLxkMR3L7GvPraZ4LNEjHVIo1LcFEHGFWdDc-3hs,6726
12
+ tobac/analysis/spatial.py,sha256=Gryz3N3HYTDkKM3qQBeyJeZac9vuXgrHg1vvJcfcJD4,22774
13
+ tobac/segmentation/__init__.py,sha256=jal-uj581IXyJRJNoor7ktxH_EqDAmnvs5mJDhPSPKQ,225
14
+ tobac/segmentation/watershed_segmentation.py,sha256=J6Yo14HuqjVsunzoORLLw8WVefqn-GpLiIh6mWlDO0o,54848
15
+ tobac/tests/test_analysis_spatial.py,sha256=FLl7CJ2N9x7OR1ipON-OhdyMOMiR1egAEShEQoxN7wI,31997
16
+ tobac/tests/test_convert.py,sha256=xOrUPfUCtUlHLAN1HpEp72g5XiOii6bB7U4COQRHSTQ,8821
17
+ tobac/tests/test_datetime.py,sha256=UKQqdA5yHWHYBrqp8ebn82kQZt07Mwh1r0BGNHQ3PZ4,7120
18
+ tobac/tests/test_decorators.py,sha256=Hbus1UPA1uKoAXiDsjITBzZFPwMRb15ete9XawY8ylg,4903
19
+ tobac/tests/test_feature_detection.py,sha256=6BoOf2nTn8cCtyEP-0zNKe5VQjSXrLKLOVem8EI3B0E,38910
20
+ tobac/tests/test_generators.py,sha256=zvbv0DRw9EYFEggjBgNtYvxtOTZUlJBbl_lyO20rl5k,7829
21
+ tobac/tests/test_import.py,sha256=NtyS_dUKIm9eBERHx3H_0x0WUQPB1A5MfnyiJVP1gWc,663
22
+ tobac/tests/test_iris_xarray_match_utils.py,sha256=4ku2ALQxT-2fUQQauNgwlkzYG7-K4ZAafaYt-cW-ljk,7996
23
+ tobac/tests/test_merge_split.py,sha256=VReTarl5tFHsc5DPN_L3Za0HKHS9umCW3FwfvYfHbzU,9399
24
+ tobac/tests/test_pbc_utils.py,sha256=PlixzDS2SogDcTCbOsq9tfKh36ZFplYUmVjTTSPZ_4Y,19545
25
+ tobac/tests/test_sample_data.py,sha256=_0Sff3imY3gqpadX_DdpmdF6998Nx4sTUiJBqbiVk5c,7181
26
+ tobac/tests/test_testing.py,sha256=Hp1CPK_L-UXimZQsG4KHL7FFXv3wlDpVRtaHTKke0ak,22590
27
+ tobac/tests/test_tracking.py,sha256=AIvPuNfrv4mfeq7ZMSPhODbgbZfmIT7SEPPrjkXX0Mo,20051
28
+ tobac/tests/test_utils.py,sha256=Ep0i-A7n1akEz-XaI6uctBNYYvE6GRuwBRgR8z27asg,22145
29
+ tobac/tests/test_utils_bulk_statistics.py,sha256=w3CtQ3sKSGFD2B-R6Sg50zAerVAUNIIyNmJrYA-_vNs,21398
30
+ tobac/tests/test_utils_coordinates.py,sha256=dDyhrrYDHgjlzOt80QDvsVUARy4719dnbj-qDXPtMJw,11022
31
+ tobac/tests/test_utils_internal.py,sha256=GF6DaEb4C0zCWOTLvB0e-PVhNl0mX_73HXE2BxxI_jc,2985
32
+ tobac/tests/test_xarray_utils.py,sha256=pAFQ73gN--ph1WTqjgfCTj-u8lw_7448PL-m7Ikex0A,6852
33
+ tobac/tests/segmentation_tests/test_iris_xarray_segmentation.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ tobac/tests/segmentation_tests/test_segmentation.py,sha256=qow8b54Rsz4_Gqvu0GIxwdr-AuVxIxsPtckOK-xWFqI,39257
35
+ tobac/tests/segmentation_tests/test_segmentation_time_pad.py,sha256=HF2VHf0qihisaIK65Zgx1NazCIYqRWqsgQEkk1oEhLs,3432
36
+ tobac/utils/__init__.py,sha256=_Oo5j2RSJimy_MehrN0f4uedvq57chGgbtOcp17Hrwo,627
37
+ tobac/utils/bulk_statistics.py,sha256=1JpL4wUB8kTb0JE3BnnD0GPxfbN_NzeWBymsZULn2NA,15382
38
+ tobac/utils/datetime.py,sha256=wJDwV9ylikk1EjrSJQhAcPxv07TyYR8CeE-rstD6Bgo,6201
39
+ tobac/utils/decorators.py,sha256=BWzef9-SQp05lr0VnzMOy2EEPovZiviNz-l34zNTpC0,17630
40
+ tobac/utils/general.py,sha256=c2fySaGvNE_K7jwoF4PPKgCVKj634MZPs2WgXlF6iuU,29011
41
+ tobac/utils/generators.py,sha256=cqhh9PevrqOWFxZKxLsPOywanuoxULoxDrVOb7QWcD0,3232
42
+ tobac/utils/mask.py,sha256=hcqgLs-Bw5WOl6zjDW0q2qNW8z8UfSGM1fb_8L9ysVc,9696
43
+ tobac/utils/periodic_boundaries.py,sha256=pVgXHiRzLX7-8mniOLayh9FTsWVue3QWgW8kpizYay4,14948
44
+ tobac/utils/internal/__init__.py,sha256=R7RSo6H59_VWM5YiwluwwVyhb3hO0xhhr212x8MMC5w,54
45
+ tobac/utils/internal/coordinates.py,sha256=11CQpFakt0R2DtCJZxF68e2zuFGAJUhx7UXd2NBJ-JU,13799
46
+ tobac/utils/internal/iris_utils.py,sha256=kvIQmSEnC3e0oZSeOgOZJ9GdGbmSb-jaXtaUUE1AZ8o,17333
47
+ tobac/utils/internal/label_props.py,sha256=3xfnHrjZH_OZ3BAewVvRf3xIzNS5ubPFbsuIg8I8QIQ,2654
48
+ tobac/utils/internal/xarray_utils.py,sha256=8EeG5gDQ8kTyOPSLR3AZTxUeQlgjVUrU9F_RGj9qBBM,14708
49
+ tobac-1.6.2.dist-info/licenses/LICENSE,sha256=K4976MT1KjThzaCHoyvqiMt8QQCS-ldJ5jJXGzUTpHk,1517
50
+ tobac-1.6.2.dist-info/METADATA,sha256=fCoMZqJ3JzIQYnBetaoQa98ZBhuBFTkrMqjVI20A3so,7769
51
+ tobac-1.6.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
+ tobac-1.6.2.dist-info/top_level.txt,sha256=9D2iec8rq7k-nI49UeTTBQYgBYULzK9HzTf06r-5SEI,6
53
+ tobac-1.6.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2019, climate-processes
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ tobac