cloudnetpy 1.49.9__py3-none-any.whl → 1.87.3__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 (116) hide show
  1. cloudnetpy/categorize/__init__.py +1 -2
  2. cloudnetpy/categorize/atmos_utils.py +297 -67
  3. cloudnetpy/categorize/attenuation.py +31 -0
  4. cloudnetpy/categorize/attenuations/__init__.py +37 -0
  5. cloudnetpy/categorize/attenuations/gas_attenuation.py +30 -0
  6. cloudnetpy/categorize/attenuations/liquid_attenuation.py +84 -0
  7. cloudnetpy/categorize/attenuations/melting_attenuation.py +78 -0
  8. cloudnetpy/categorize/attenuations/rain_attenuation.py +84 -0
  9. cloudnetpy/categorize/categorize.py +332 -156
  10. cloudnetpy/categorize/classify.py +127 -125
  11. cloudnetpy/categorize/containers.py +107 -76
  12. cloudnetpy/categorize/disdrometer.py +40 -0
  13. cloudnetpy/categorize/droplet.py +23 -21
  14. cloudnetpy/categorize/falling.py +53 -24
  15. cloudnetpy/categorize/freezing.py +25 -12
  16. cloudnetpy/categorize/insects.py +35 -23
  17. cloudnetpy/categorize/itu.py +243 -0
  18. cloudnetpy/categorize/lidar.py +36 -41
  19. cloudnetpy/categorize/melting.py +34 -26
  20. cloudnetpy/categorize/model.py +84 -37
  21. cloudnetpy/categorize/mwr.py +18 -14
  22. cloudnetpy/categorize/radar.py +215 -102
  23. cloudnetpy/cli.py +578 -0
  24. cloudnetpy/cloudnetarray.py +43 -89
  25. cloudnetpy/concat_lib.py +218 -78
  26. cloudnetpy/constants.py +28 -10
  27. cloudnetpy/datasource.py +61 -86
  28. cloudnetpy/exceptions.py +49 -20
  29. cloudnetpy/instruments/__init__.py +5 -0
  30. cloudnetpy/instruments/basta.py +29 -12
  31. cloudnetpy/instruments/bowtie.py +135 -0
  32. cloudnetpy/instruments/ceilo.py +138 -115
  33. cloudnetpy/instruments/ceilometer.py +164 -80
  34. cloudnetpy/instruments/cl61d.py +21 -5
  35. cloudnetpy/instruments/cloudnet_instrument.py +74 -36
  36. cloudnetpy/instruments/copernicus.py +108 -30
  37. cloudnetpy/instruments/da10.py +54 -0
  38. cloudnetpy/instruments/disdrometer/common.py +126 -223
  39. cloudnetpy/instruments/disdrometer/parsivel.py +453 -94
  40. cloudnetpy/instruments/disdrometer/thies.py +254 -87
  41. cloudnetpy/instruments/fd12p.py +201 -0
  42. cloudnetpy/instruments/galileo.py +65 -23
  43. cloudnetpy/instruments/hatpro.py +123 -49
  44. cloudnetpy/instruments/instruments.py +113 -1
  45. cloudnetpy/instruments/lufft.py +39 -17
  46. cloudnetpy/instruments/mira.py +268 -61
  47. cloudnetpy/instruments/mrr.py +187 -0
  48. cloudnetpy/instruments/nc_lidar.py +19 -8
  49. cloudnetpy/instruments/nc_radar.py +109 -55
  50. cloudnetpy/instruments/pollyxt.py +135 -51
  51. cloudnetpy/instruments/radiometrics.py +313 -59
  52. cloudnetpy/instruments/rain_e_h3.py +171 -0
  53. cloudnetpy/instruments/rpg.py +321 -189
  54. cloudnetpy/instruments/rpg_reader.py +74 -40
  55. cloudnetpy/instruments/toa5.py +49 -0
  56. cloudnetpy/instruments/vaisala.py +95 -343
  57. cloudnetpy/instruments/weather_station.py +774 -105
  58. cloudnetpy/metadata.py +90 -19
  59. cloudnetpy/model_evaluation/file_handler.py +55 -52
  60. cloudnetpy/model_evaluation/metadata.py +46 -20
  61. cloudnetpy/model_evaluation/model_metadata.py +1 -1
  62. cloudnetpy/model_evaluation/plotting/plot_tools.py +32 -37
  63. cloudnetpy/model_evaluation/plotting/plotting.py +327 -117
  64. cloudnetpy/model_evaluation/products/advance_methods.py +92 -83
  65. cloudnetpy/model_evaluation/products/grid_methods.py +88 -63
  66. cloudnetpy/model_evaluation/products/model_products.py +43 -35
  67. cloudnetpy/model_evaluation/products/observation_products.py +41 -35
  68. cloudnetpy/model_evaluation/products/product_resampling.py +17 -7
  69. cloudnetpy/model_evaluation/products/tools.py +29 -20
  70. cloudnetpy/model_evaluation/statistics/statistical_methods.py +30 -20
  71. cloudnetpy/model_evaluation/tests/e2e/conftest.py +3 -3
  72. cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +9 -5
  73. cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +15 -14
  74. cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +9 -5
  75. cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +15 -14
  76. cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +9 -5
  77. cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +15 -14
  78. cloudnetpy/model_evaluation/tests/unit/conftest.py +42 -41
  79. cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +41 -48
  80. cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +216 -194
  81. cloudnetpy/model_evaluation/tests/unit/test_model_products.py +23 -21
  82. cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +37 -38
  83. cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +43 -40
  84. cloudnetpy/model_evaluation/tests/unit/test_plotting.py +30 -36
  85. cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +68 -31
  86. cloudnetpy/model_evaluation/tests/unit/test_tools.py +33 -26
  87. cloudnetpy/model_evaluation/utils.py +2 -1
  88. cloudnetpy/output.py +170 -111
  89. cloudnetpy/plotting/__init__.py +2 -1
  90. cloudnetpy/plotting/plot_meta.py +562 -822
  91. cloudnetpy/plotting/plotting.py +1142 -704
  92. cloudnetpy/products/__init__.py +1 -0
  93. cloudnetpy/products/classification.py +370 -88
  94. cloudnetpy/products/der.py +85 -55
  95. cloudnetpy/products/drizzle.py +77 -34
  96. cloudnetpy/products/drizzle_error.py +15 -11
  97. cloudnetpy/products/drizzle_tools.py +79 -59
  98. cloudnetpy/products/epsilon.py +211 -0
  99. cloudnetpy/products/ier.py +27 -50
  100. cloudnetpy/products/iwc.py +55 -48
  101. cloudnetpy/products/lwc.py +96 -70
  102. cloudnetpy/products/mwr_tools.py +186 -0
  103. cloudnetpy/products/product_tools.py +170 -128
  104. cloudnetpy/utils.py +455 -240
  105. cloudnetpy/version.py +2 -2
  106. {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/METADATA +44 -40
  107. cloudnetpy-1.87.3.dist-info/RECORD +127 -0
  108. {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/WHEEL +1 -1
  109. cloudnetpy-1.87.3.dist-info/entry_points.txt +2 -0
  110. docs/source/conf.py +2 -2
  111. cloudnetpy/categorize/atmos.py +0 -361
  112. cloudnetpy/products/mwr_multi.py +0 -68
  113. cloudnetpy/products/mwr_single.py +0 -75
  114. cloudnetpy-1.49.9.dist-info/RECORD +0 -112
  115. {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info/licenses}/LICENSE +0 -0
  116. {cloudnetpy-1.49.9.dist-info → cloudnetpy-1.87.3.dist-info}/top_level.txt +0 -0
cloudnetpy/version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
- MINOR = 49
3
- PATCH = 9
2
+ MINOR = 87
3
+ PATCH = 3
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.49.9
3
+ Version: 1.87.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -26,69 +26,73 @@ License: MIT License
26
26
  SOFTWARE.
27
27
 
28
28
  Project-URL: Homepage, https://github.com/actris-cloudnet/cloudnetpy
29
- Project-URL: Documentation, https://cloudnetpy.readthedocs.io
29
+ Project-URL: Documentation, https://actris-cloudnet.github.io/cloudnetpy/
30
30
  Project-URL: Repository, https://github.com/actris-cloudnet/cloudnetpy
31
31
  Project-URL: Changelog, https://github.com/actris-cloudnet/cloudnetpy/blob/main/CHANGELOG.md
32
32
  Classifier: Development Status :: 5 - Production/Stable
33
33
  Classifier: Intended Audience :: Science/Research
34
34
  Classifier: License :: OSI Approved :: MIT License
35
35
  Classifier: Operating System :: OS Independent
36
- Classifier: Programming Language :: Python :: 3.10
37
- Classifier: Programming Language :: Python :: 3.11
38
- Classifier: Topic :: Scientific/Engineering
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
39
38
  Requires-Python: >=3.10
40
39
  Description-Content-Type: text/markdown
41
40
  License-File: LICENSE
42
- Requires-Dist: cloudnetpy-qc (>=1.10.2)
41
+ Requires-Dist: ceilopyter>=0.2.0
42
+ Requires-Dist: cloudnet-api-client
43
+ Requires-Dist: doppy>=0.5.0
43
44
  Requires-Dist: matplotlib
44
- Requires-Dist: mwrpy (>=0.1.6)
45
+ Requires-Dist: mwrpy>=1.3.5
45
46
  Requires-Dist: netCDF4
46
47
  Requires-Dist: requests
47
- Requires-Dist: rpgpy (>=0.14.2)
48
- Requires-Dist: scikit-image
48
+ Requires-Dist: rpgpy>=0.14.5
49
49
  Requires-Dist: scipy
50
+ Requires-Dist: typing-extensions
51
+ Provides-Extra: test
52
+ Requires-Dist: cloudnetpy_qc; extra == "test"
53
+ Requires-Dist: mypy; extra == "test"
54
+ Requires-Dist: pytest; extra == "test"
55
+ Requires-Dist: pytest-flakefinder; extra == "test"
56
+ Requires-Dist: ruff; extra == "test"
57
+ Requires-Dist: types-requests; extra == "test"
50
58
  Provides-Extra: dev
51
- Requires-Dist: pre-commit ; extra == 'dev'
59
+ Requires-Dist: pre-commit; extra == "dev"
60
+ Requires-Dist: release-version; extra == "dev"
52
61
  Provides-Extra: extras
53
- Requires-Dist: voodoonet (>=0.1.1) ; extra == 'extras'
54
- Provides-Extra: test
55
- Requires-Dist: mypy ; extra == 'test'
56
- Requires-Dist: pylint ; extra == 'test'
57
- Requires-Dist: pytest ; extra == 'test'
58
- Requires-Dist: pytest-flakefinder ; extra == 'test'
59
- Requires-Dist: types-requests ; extra == 'test'
62
+ Requires-Dist: voodoonet>=0.1.7; extra == "extras"
63
+ Dynamic: license-file
60
64
 
61
65
  # CloudnetPy
62
66
 
63
67
  [![CloudnetPy CI](https://github.com/actris-cloudnet/cloudnetpy/actions/workflows/test.yml/badge.svg)](https://github.com/actris-cloudnet/cloudnetpy/actions/workflows/test.yml)
64
- [![Documentation Status](https://readthedocs.org/projects/cloudnetpy/badge/?version=latest)](https://cloudnetpy.readthedocs.io/en/latest/?badge=latest)
65
68
  [![PyPI version](https://badge.fury.io/py/cloudnetpy.svg)](https://badge.fury.io/py/cloudnetpy)
66
69
  [![DOI](https://zenodo.org/badge/233602651.svg)](https://zenodo.org/badge/latestdoi/233602651)
67
70
  [![status](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7/status.svg)](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7)
68
71
 
69
- CloudnetPy is a Python software for producing vertical profiles of cloud properties from ground-based
70
- remote sensing measurements. The Cloudnet processing combines cloud radar, optical lidar, microwave
71
- radiometer and model data. Measurements and model data are brought into common grid and
72
+ CloudnetPy is Python software designed for producing vertical profiles of cloud properties from ground-based
73
+ remote sensing measurements. The Cloudnet processing combines data from cloud radar, optical lidar,
74
+ microwave radiometer, and numerical weather prediction models.
75
+ Measurements and model data are brought into a common grid and
72
76
  classified as ice, liquid, aerosol, insects, and so on.
73
- Then, geophysical products such as ice water content can be
74
- retrieved in the further processing steps. See [Illingworth et al. (2007)](https://doi.org/10.1175/BAMS-88-6-883) for more details about the concept.
77
+ Subsequently, geophysical products such as ice water content can be
78
+ retrieved in further processing steps. See [Illingworth et al. (2007)](https://doi.org/10.1175/BAMS-88-6-883) for more details about the concept.
75
79
 
76
- CloudnetPy is a rewritten version of the original Cloudnet Matlab code. CloudnetPy features several revised methods, extensive documentation, and more.
80
+ CloudnetPy is a rewritten version of the original Cloudnet MATLAB code. It features several revised methods, extensive documentation, and more.
77
81
 
78
- - CloudnetPy documentation: https://cloudnetpy.readthedocs.io/en/latest/
79
- - Cloudnet data portal: https://cloudnet.fmi.fi
82
+ - CloudnetPy documentation: <https://actris-cloudnet.github.io/cloudnetpy/>
83
+ - Cloudnet data portal: <https://cloudnet.fmi.fi>
80
84
 
81
- ![CloudnetPy example output](https://raw.githubusercontent.com/actris-cloudnet/cloudnetpy/main/docs/source/_static/20190423_mace-head_classification.png)
85
+ ![CloudnetPy example output](https://raw.githubusercontent.com/actris-cloudnet/cloudnetpy/main/docs/source/_static/20230831_lindenberg_classification-9b74f4ac-target_classification.png)
82
86
 
83
87
  ## Installation
84
88
 
85
- ### From PyPI
89
+ ### Option 1: From PyPI
86
90
 
87
91
  ```
88
92
  python3 -m pip install cloudnetpy
89
93
  ```
90
94
 
91
- ### From the source
95
+ ### Option 2: From the source
92
96
 
93
97
  ```sh
94
98
  git clone https://github.com/actris-cloudnet/cloudnetpy
@@ -99,6 +103,14 @@ python3 -m pip install --upgrade pip
99
103
  python3 -m pip install .
100
104
  ```
101
105
 
106
+ ### Verification
107
+
108
+ To verify the installation:
109
+
110
+ ```sh
111
+ cloudnetpy --help
112
+ ```
113
+
102
114
  ## Citing
103
115
 
104
116
  If you wish to acknowledge CloudnetPy in your publication, please cite:
@@ -121,12 +133,7 @@ pre-commit install
121
133
  Run unit tests:
122
134
 
123
135
  ```sh
124
- python3 -m pytest --flake-finder --flake-runs=2
125
- ```
126
-
127
- Run single unit test:
128
-
129
- ```sh
136
+ python3 -m pytest
130
137
  python3 -m pytest tests/unit/test_hatpro.py
131
138
  ```
132
139
 
@@ -134,13 +141,10 @@ Run end-to-end tests:
134
141
 
135
142
  ```sh
136
143
  python3 tests/e2e_test.py
137
- ```
138
-
139
- ```sh
140
144
  for f in cloudnetpy/model_evaluation/tests/e2e/*/main.py; do $f; done
141
145
  ```
142
146
 
143
- Force `pre-commit` checks (`pylint`, `mypy`, etc.) for all files:
147
+ Force `pre-commit` checks (`ruff`, `mypy`, etc.) for all files:
144
148
 
145
149
  ```sh
146
150
  pre-commit run --all
@@ -0,0 +1,127 @@
1
+ cloudnetpy/__init__.py,sha256=X_FqY-4yg5GUj5Edo14SToLEos6JIsC3fN-v1FUgQoA,43
2
+ cloudnetpy/cli.py,sha256=5zi1NgXYZlWJyxVzydL46CNUCQj6vdVEicQJ7V0cg8E,20192
3
+ cloudnetpy/cloudnetarray.py,sha256=I_U1W2rEXw8lbLwg3XBrr_qHGPqhQG9z_ouvVEg7p24,4908
4
+ cloudnetpy/concat_lib.py,sha256=Bl_wcD98gKBS1OzALScoui9vKVQYDrt0C-L40_5txAE,13874
5
+ cloudnetpy/constants.py,sha256=YnoSzZm35NDooJfhlulSJBc7g0eSchT3yGytRaTaJEI,845
6
+ cloudnetpy/datasource.py,sha256=d-qQOkPY5gfxUWyRExlBChSh3F_jkIwODjZdGMn7FS8,6286
7
+ cloudnetpy/exceptions.py,sha256=_87MSAg4A5rbuvaYkZcPG6l_0yx2E3wN-6ikcDKk_Ww,1625
8
+ cloudnetpy/metadata.py,sha256=9NEiKVqZFohogsz3zwWPbm_otKf-knkkA0EzgbuB7CI,7362
9
+ cloudnetpy/output.py,sha256=YqcPILk9Q0miZ4BvORSHZLkLr-rWzu882AoJkSJOnLQ,15732
10
+ cloudnetpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ cloudnetpy/utils.py,sha256=j9hKiFWuhoRsAGlx4WczazK6e28ItWyNrrcSLhY-uZg,33594
12
+ cloudnetpy/version.py,sha256=zlyiUzoFoP41iMaDDvdZl5DRJJnOJxNvQT_Yh04By5w,72
13
+ cloudnetpy/categorize/__init__.py,sha256=gtvzWr0IDRn2oA6yHBvinEhTGTuub-JkrOv93lBsgrE,61
14
+ cloudnetpy/categorize/atmos_utils.py,sha256=F2BoZxr0Cj6V_L5O6Al7dCM4YBRVekm7pV6yQqmC4Rc,10741
15
+ cloudnetpy/categorize/attenuation.py,sha256=Y_-fzmQTltWTqIZTulJhovC7a6ifpMcaAazDJcnMIOc,990
16
+ cloudnetpy/categorize/categorize.py,sha256=UZph73hVCU-UIxB2837oyLFKvTk8fdgLC-krgJDg8zk,23227
17
+ cloudnetpy/categorize/classify.py,sha256=fxW9xmlQ8N70m3Qb50GjrPt9EuNhFzs6_GZOgqD-BmY,8534
18
+ cloudnetpy/categorize/containers.py,sha256=oXvDazVtd9u3PwNP8ssKMfjW8s6O1bKNcTYHif6AHko,5808
19
+ cloudnetpy/categorize/disdrometer.py,sha256=gJW6qD2Cn3w0JbH69wqtlxDFUhKb2ioR-e9f7VZwxvc,1283
20
+ cloudnetpy/categorize/droplet.py,sha256=wnMN9rHNSMZLXNXuYEd-RAS_8eAIIo2vkE7pp3DSTKs,8725
21
+ cloudnetpy/categorize/falling.py,sha256=99QQW14XexYNFSzV1wydbzet8hEUxKaAwPRikGZl3PY,4499
22
+ cloudnetpy/categorize/freezing.py,sha256=TjvJ0tQqum4HmsU4kcXm10vWubshAPnH0_taq06yJc4,3814
23
+ cloudnetpy/categorize/insects.py,sha256=bAqm4kFRtU16RPttsRLedofPd-yfbALNqz26jKlMNUE,5357
24
+ cloudnetpy/categorize/itu.py,sha256=ffXK27guyRS4d66VWQ2h4UEGjUIhGjPKbFmj7kh698c,10304
25
+ cloudnetpy/categorize/lidar.py,sha256=CkIbsMFHROYnhIc1e1ci61-POqeL8AOf6RCZicpNBVc,2452
26
+ cloudnetpy/categorize/melting.py,sha256=vhc6zq3L4gp7oEPHMnQlT2m6YBE5-CS5gdTNA7gVHRg,6329
27
+ cloudnetpy/categorize/model.py,sha256=26AKT4tRf3pieXc59KIHxz8LU2hzsRqu-Rgq1rPm9M8,6850
28
+ cloudnetpy/categorize/mwr.py,sha256=QKc6f_h0mCVjzSa4BrwTtVAPx0Tn1VJ4jqGmIBke5II,1710
29
+ cloudnetpy/categorize/radar.py,sha256=O4YAIPYq5c23Ghpc2HHmCEq0AVMYX7ms1X1ZlS6OX1k,16042
30
+ cloudnetpy/categorize/attenuations/__init__.py,sha256=3yZa3Fe64zizssD42FsqSlXxxSyhyVX7wu9S1iqr0Cc,1067
31
+ cloudnetpy/categorize/attenuations/gas_attenuation.py,sha256=DKbJgmm_ovovcWhN7zmzIVqpJzhN-Kihfh_CAISI0eU,979
32
+ cloudnetpy/categorize/attenuations/liquid_attenuation.py,sha256=FOJlVXOu4t3SI82m9mijHcyCcYpbmb_WHJas5xacwLA,3115
33
+ cloudnetpy/categorize/attenuations/melting_attenuation.py,sha256=zmpF7Gek4W9cF-5tGoXqi8yAUCFC5jzK6DqyVndXUnQ,2403
34
+ cloudnetpy/categorize/attenuations/rain_attenuation.py,sha256=MIOfgZJ4bXmPGOWshlKht8PVodHeb7FOHQkSFfr50_w,2847
35
+ cloudnetpy/instruments/__init__.py,sha256=PEgrrQNoiOuN_ctYilmt4LV2QCLg1likPjJdWtuGlLs,528
36
+ cloudnetpy/instruments/basta.py,sha256=N-kRgl5Vm52pXzr9umo4YsA0hn4zZCOa-0_zZTzhheY,4284
37
+ cloudnetpy/instruments/bowtie.py,sha256=1wavsYkVMC81CflUD-nTjeyjmATGKYfEJ6aNcwOOapM,4450
38
+ cloudnetpy/instruments/ceilo.py,sha256=scb3n0gLOZ1gPs_WdWw9KS5Ut_mtCvSdWFMKKCvXhBI,8979
39
+ cloudnetpy/instruments/ceilometer.py,sha256=lZZCBiesIcmniWWCx1dC6SdzvzB6v_OAXwszgv_vVPc,13076
40
+ cloudnetpy/instruments/cl61d.py,sha256=JsCHqVzFGhZi-5xcnsB507FDpyuw83uSWK3IFO3DhdI,2238
41
+ cloudnetpy/instruments/cloudnet_instrument.py,sha256=B1UkiB0ytnT3MWYalEegql5QIPaMLg5bJy5xI50JEco,4503
42
+ cloudnetpy/instruments/copernicus.py,sha256=ePTP9R_1_khGb7CcTNkzhhZnvzHJS-bWHy5LEiNTwio,7723
43
+ cloudnetpy/instruments/da10.py,sha256=FcXEu6dfAVvYzMvauiJBSyEkYhGa8hBuwrrdo-3LwHE,1960
44
+ cloudnetpy/instruments/fd12p.py,sha256=kFptcm6eyeUQ6SmoQKsjajVrS5tmHS9swCBhuFrbLiI,6916
45
+ cloudnetpy/instruments/galileo.py,sha256=pJ5WaB-Nwzs5zgj8c2oaH7HieYxq4HF0aUilYTSRhYE,5682
46
+ cloudnetpy/instruments/hatpro.py,sha256=TGOqwW0TfoPEYk13MFvFzwgJGzm6MVE5AsPavcIoj3I,10248
47
+ cloudnetpy/instruments/instruments.py,sha256=WZgH7HjzM9Ane1CSnYCSLidbST8hunUeSt2lPntq9As,4999
48
+ cloudnetpy/instruments/lufft.py,sha256=G6KeJOeltLUlGCHHEk8ns2K7WJ9ImAr25rSB2JltawE,4286
49
+ cloudnetpy/instruments/mira.py,sha256=fLDpEdsoq-TArT49s6-YmrntnqsF5bxi01WWdc1tLP4,12831
50
+ cloudnetpy/instruments/mrr.py,sha256=KvhfNIY2ozHE1MRLNYPqtBFThxLGN_YuCpBUGDIR76s,6319
51
+ cloudnetpy/instruments/nc_lidar.py,sha256=PtZauDdI3bX3bv4gIVvV6N53e2Co-ehBL_tByHM9hj8,1713
52
+ cloudnetpy/instruments/nc_radar.py,sha256=jOTk6U8NglaDVyBIPFKYkmpr-Ftqwoc50S520HPaYE0,7633
53
+ cloudnetpy/instruments/pollyxt.py,sha256=ehGP_3P3f6vHI0DC8-83ysJAsVN8V1VDcWRndoq2S5k,11048
54
+ cloudnetpy/instruments/radiometrics.py,sha256=ti8OxMf-6tR3qkCyuQlkGoDAhIhCCjDwK7CVdge48-I,17053
55
+ cloudnetpy/instruments/rain_e_h3.py,sha256=fjv3SgeUNx9GisYqLrBnX9AjnO17VtouyoPh12VE9uo,5465
56
+ cloudnetpy/instruments/rpg.py,sha256=JRnF3sGaGzWxmASrSJIE8MA_qn675ACB9HeOPelnL1I,21630
57
+ cloudnetpy/instruments/rpg_reader.py,sha256=nkVr80dgPw_vWLMfhZrjGSQNysrSLJX4EItI2qaULG8,11908
58
+ cloudnetpy/instruments/toa5.py,sha256=CfmmBMv5iMGaWHIGBK01Rw24cuXC1R1RMNTXkmsm340,1760
59
+ cloudnetpy/instruments/vaisala.py,sha256=LmaUox3SJc6mbfeQfDGFvAg3xmf9pPcjY094EjNCcLk,4832
60
+ cloudnetpy/instruments/weather_station.py,sha256=7TdWC_5zDX0_YWSSwvQzxQvY6II1MjtMiJ7l_ZXomIE,31690
61
+ cloudnetpy/instruments/disdrometer/__init__.py,sha256=lyjwttWvFvuwYxEkusoAvgRcbBmglmOp5HJOpXUqLWo,93
62
+ cloudnetpy/instruments/disdrometer/common.py,sha256=WCPRCfAlElUzZpllOSjjWrLG2jgkiRIy0rWz_omFoJQ,10815
63
+ cloudnetpy/instruments/disdrometer/parsivel.py,sha256=Ph2rWymq7sZbk0_r9In9g3A5SIqQgclMOMmvS1n2dj4,26912
64
+ cloudnetpy/instruments/disdrometer/thies.py,sha256=_j-U9HI7yRmdck3YFxaRvC95CVbKMFRdiYI0O9a64UM,11207
65
+ cloudnetpy/model_evaluation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ cloudnetpy/model_evaluation/file_handler.py,sha256=yAbJ3yOqufQGV3rahwOm9-k1swEDDq8V8n-zaNVaN54,6473
67
+ cloudnetpy/model_evaluation/metadata.py,sha256=7Gf2w10tu2SYw5sy4-AYVUdVIRW4OgcgTXxjBjUL300,9260
68
+ cloudnetpy/model_evaluation/model_metadata.py,sha256=HZLPZ8a6NvTfny_nwukeL7CxUNiRrtAkf8i4xGnhSuI,1420
69
+ cloudnetpy/model_evaluation/utils.py,sha256=u7K5Lpt2kojKpPvD9xlB7K8yFJf_YMbFdnt4h0m-p9w,160
70
+ cloudnetpy/model_evaluation/plotting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ cloudnetpy/model_evaluation/plotting/plot_meta.py,sha256=K18Ugohh24uVAIxjZgJsmK80YwsMstm6B7ptVafONAw,3557
72
+ cloudnetpy/model_evaluation/plotting/plot_tools.py,sha256=CHbcwo3jXC45J6EBtEy-CDo7Rt1sOCryl8e98XXJLSQ,5070
73
+ cloudnetpy/model_evaluation/plotting/plotting.py,sha256=ZpfL16dKUYb6VugmvyJPaQ3rAULBsS6FgFzWHLR-Sbk,31736
74
+ cloudnetpy/model_evaluation/products/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ cloudnetpy/model_evaluation/products/advance_methods.py,sha256=-57z69YL8VVauypa0W1ZAZGHoNybna_CYcxQVORCV9c,8658
76
+ cloudnetpy/model_evaluation/products/grid_methods.py,sha256=gAbRjM8jL0FBmH1t6U9Hvi0-f8GbmmF9Ctrcckluwh8,9110
77
+ cloudnetpy/model_evaluation/products/model_products.py,sha256=vt104hKBM3KoLx-4r8E_LXKRR-FZU0X2gRS2TJ1sVII,7036
78
+ cloudnetpy/model_evaluation/products/observation_products.py,sha256=4zmfSA8tantURcXAMh9vbjplWEEqj7wmhMt3hgdrAuI,5574
79
+ cloudnetpy/model_evaluation/products/product_resampling.py,sha256=PO9PIJFeh2Nhl1bJ5Vg0_mB2xR5Xvj-qMjfD8n28KvY,3781
80
+ cloudnetpy/model_evaluation/products/tools.py,sha256=pIF3cw3LDhdRfBTuknpzXdr7cxPuD0Reyb_lwLxR-v0,3075
81
+ cloudnetpy/model_evaluation/statistics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ cloudnetpy/model_evaluation/statistics/statistical_methods.py,sha256=sRp34zWwuKuMWUya36sEaRPZqIpKH3v5Amo7zJBi06I,6023
83
+ cloudnetpy/model_evaluation/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ cloudnetpy/model_evaluation/tests/e2e/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ cloudnetpy/model_evaluation/tests/e2e/conftest.py,sha256=TENW6O-OsqNmFEtS0gZLlzVCoF0eXfLBEuFGB5bZ-k8,305
86
+ cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
+ cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py,sha256=1BhHb6hhJF68pTXhzd_tsUtIRzyt14aZHdw1HAIWNPo,1289
88
+ cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py,sha256=2PrANQKp7vMlWp1y0XPQnkNpcpYx0kScrCOlRgS48z0,1787
89
+ cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
+ cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py,sha256=9hndE5kVF31PH5zkjBnN9Jko865PMGHawRg13BujD6I,1368
91
+ cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py,sha256=0pgqdGmv4T9lbQ4DYXAsAHEf05WgKmO4xUSNIzx3Lf0,1903
92
+ cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py,sha256=IFcPj-Vce9Yn0CfCy9gASxRf7NzlKFMfsDHzAuapY4I,1306
94
+ cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py,sha256=ANBA0LVao3Xrm-prRnwUmxM6BdQzqM7GZNKB3uz5BXQ,1725
95
+ cloudnetpy/model_evaluation/tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
+ cloudnetpy/model_evaluation/tests/unit/conftest.py,sha256=WL_FgrDeoUYGp4PKjb37HLu79D9uu33PGQL40_ctqS0,7446
97
+ cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py,sha256=clglJgGd51oWWEdGcCzv_tYLSDrQBgj6eTKQvtUPgfc,10295
98
+ cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py,sha256=80304wp4r6FtmQUjE6jCRSMvYpqJrUUItBo3RNjToQ8,26887
99
+ cloudnetpy/model_evaluation/tests/unit/test_model_products.py,sha256=FRbYLshSHH2E527uJPwvUIyZKTsPFSZrwDsPsNrFSSU,3475
100
+ cloudnetpy/model_evaluation/tests/unit/test_observation_products.py,sha256=DN3yVqq8vFYca_9POjcrJ8XViMrJks_jM-aQznfN8QQ,4936
101
+ cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py,sha256=POdypGWjV2NA4DCU7w8Unk_IdPfOpUb1qBDhfA3x1Bw,9222
102
+ cloudnetpy/model_evaluation/tests/unit/test_plotting.py,sha256=5hkhtqX-JQ8-Yy6DA-ZT6g7yQv5JqySXxiYa2Vi0M-Y,3257
103
+ cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py,sha256=gEpA1Xj8CqubJMSU3DX_6GOZvH4xmuxMGHHS444qHYw,9999
104
+ cloudnetpy/model_evaluation/tests/unit/test_tools.py,sha256=Hx-VYr8MpDnoRNYr2RAUsw8idgyDFp1Z600kdZmovgs,4004
105
+ cloudnetpy/plotting/__init__.py,sha256=lg9Smn4BI0dVBgnDLC3JVJ4GmwoSnO-qoSd4ApvwV6Y,107
106
+ cloudnetpy/plotting/plot_meta.py,sha256=SLzVYb7crHyw15p5sqIFtIvpzMd1j6q0VbZadfAK4qU,19959
107
+ cloudnetpy/plotting/plotting.py,sha256=0CQAAcsOxiwXC9jeVPmsR-RBhDEkAJqYZNJMQLbxLkM,46723
108
+ cloudnetpy/products/__init__.py,sha256=cBJdJBYltz5ZTKDqnRo-0StytAZK8gE3RYxxriFA4ak,295
109
+ cloudnetpy/products/classification.py,sha256=Vbx2A43XP8F6q82wOPA_7pyUhuoyDty199bLU_7aNd0,17382
110
+ cloudnetpy/products/der.py,sha256=mjlIKfwaAXbw9zos6BXxodAWmvhsx2kVXL38w6d1jJU,13169
111
+ cloudnetpy/products/drizzle.py,sha256=E5q10rHoNUYrjQiOuaKrI2dzOAbBv7WPI4qBPOAjvwI,11865
112
+ cloudnetpy/products/drizzle_error.py,sha256=QN98Io9UsBoEYxKBqfwoS88OGBiK5U5RYnVQjyTWHCI,6220
113
+ cloudnetpy/products/drizzle_tools.py,sha256=n-YcaF4jObZTm-_1SMpQixmCUhhV_0h1AXMgq0rrJzg,11310
114
+ cloudnetpy/products/epsilon.py,sha256=EHrpfAbykQv4PYdi2yk7cQxOrg-kL-FhzGPVnPm98C0,7928
115
+ cloudnetpy/products/ier.py,sha256=Eb5AK-6l5mN_7vWP1cxcXQzj886zAwDDsHXueUju0N0,6262
116
+ cloudnetpy/products/iwc.py,sha256=4hohOwSXtme04jLdRSvzkWQPKY0PSID3RUjpT3X-Rc0,9805
117
+ cloudnetpy/products/lwc.py,sha256=jfTCEkquhLW4HDzK05tHJa0--y8h58r0xZohaU6FF6U,19376
118
+ cloudnetpy/products/mie_lu_tables.nc,sha256=It4fYpqJXlqOgL8jeZ-PxGzP08PMrELIDVe55y9ob58,16637951
119
+ cloudnetpy/products/mwr_tools.py,sha256=MMWnp68U7bv157-CPB2VeTQvaR6zl7sexbBT_kJ_pn8,6734
120
+ cloudnetpy/products/product_tools.py,sha256=eyqIw_0KhlpmmYQE69RpGdRIAOW7JVPlEgkTBp2kdps,11302
121
+ cloudnetpy-1.87.3.dist-info/licenses/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
122
+ docs/source/conf.py,sha256=IKiFWw6xhUd8NrCg0q7l596Ck1d61XWeVjIFHVSG9Og,1490
123
+ cloudnetpy-1.87.3.dist-info/METADATA,sha256=amEGtheiA2U1YoQGCqL4cxaloSthtv8OdRGPXlH7-fM,5843
124
+ cloudnetpy-1.87.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
125
+ cloudnetpy-1.87.3.dist-info/entry_points.txt,sha256=HhY7LwCFk4qFgDlXx_Fy983ZTd831WlhtdPIzV-Y3dY,51
126
+ cloudnetpy-1.87.3.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
127
+ cloudnetpy-1.87.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cloudnetpy = cloudnetpy.cli:main
docs/source/conf.py CHANGED
@@ -1,3 +1,4 @@
1
+ # noqa: INP001
1
2
  import os
2
3
  import sys
3
4
 
@@ -15,7 +16,7 @@ sys.path.insert(0, os.path.abspath("../../cloudnetpy/"))
15
16
  # -- Project information -----------------------------------------------------
16
17
 
17
18
  project = "CloudnetPy"
18
- copyright = "2022, Finnish Meteorological Institute"
19
+ copyright = "2022, Finnish Meteorological Institute" # noqa: A001
19
20
  author = "Finnish Meteorological Institute"
20
21
 
21
22
  # -- General configuration ---------------------------------------------------
@@ -40,7 +41,6 @@ autodoc_member_order = "bysource"
40
41
  # -- Options for HTML output -------------------------------------------------
41
42
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
42
43
 
43
- # html_theme = 'alabaster'
44
44
  html_theme = "sphinx_rtd_theme"
45
45
  html_static_path = ["_static"]
46
46