cloudnetpy 1.97.2__tar.gz → 1.97.3__tar.gz

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 (148) hide show
  1. {cloudnetpy-1.97.2/cloudnetpy.egg-info → cloudnetpy-1.97.3}/PKG-INFO +3 -3
  2. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/README.md +1 -1
  3. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/ceilo.py +20 -3
  4. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/instruments.py +8 -0
  5. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/lufft.py +1 -0
  6. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/vaisala.py +25 -2
  7. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/version.py +1 -1
  8. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3/cloudnetpy.egg-info}/PKG-INFO +3 -3
  9. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy.egg-info/requires.txt +1 -1
  10. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/pyproject.toml +1 -1
  11. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/LICENSE +0 -0
  12. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/MANIFEST.in +0 -0
  13. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/__init__.py +0 -0
  14. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/arm.py +0 -0
  15. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/__init__.py +0 -0
  16. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/atmos_utils.py +0 -0
  17. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuation.py +0 -0
  18. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  19. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  20. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  21. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  22. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  23. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/categorize.py +0 -0
  24. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/classify.py +0 -0
  25. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/containers.py +0 -0
  26. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/disdrometer.py +0 -0
  27. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/droplet.py +0 -0
  28. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/falling.py +0 -0
  29. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/freezing.py +0 -0
  30. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/insects.py +0 -0
  31. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/lidar.py +0 -0
  32. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/melting.py +0 -0
  33. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/model.py +0 -0
  34. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/mwr.py +0 -0
  35. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/categorize/radar.py +0 -0
  36. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/cli.py +0 -0
  37. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/cloudnetarray.py +0 -0
  38. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/concat_lib.py +0 -0
  39. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/constants.py +0 -0
  40. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/datasource.py +0 -0
  41. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/__init__.py +0 -0
  42. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/lpm.py +0 -0
  43. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/parsivel.py +0 -0
  44. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/process.py +0 -0
  45. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/rd80.py +0 -0
  46. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/disdronator/utils.py +0 -0
  47. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/exceptions.py +0 -0
  48. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/__init__.py +0 -0
  49. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/arm_ceilo.py +0 -0
  50. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/arm_ld.py +0 -0
  51. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/arm_utils.py +0 -0
  52. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/basta.py +0 -0
  53. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/bowtie.py +0 -0
  54. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/ceilometer.py +0 -0
  55. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/cl61d.py +0 -0
  56. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  57. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/copernicus.py +0 -0
  58. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/da10.py +0 -0
  59. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/dealias.py +0 -0
  60. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/disdrometer.py +0 -0
  61. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/fd12p.py +0 -0
  62. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/galileo.py +0 -0
  63. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/hatpro.py +0 -0
  64. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/kazr.py +0 -0
  65. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/mira.py +0 -0
  66. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/mmcr.py +0 -0
  67. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/mrr.py +0 -0
  68. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/mwr3c.py +0 -0
  69. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/mwrlos.py +0 -0
  70. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/nc_lidar.py +0 -0
  71. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/nc_radar.py +0 -0
  72. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/pollyxt.py +0 -0
  73. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/radiometrics.py +0 -0
  74. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/rain_e_h3.py +0 -0
  75. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/rpg.py +0 -0
  76. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/rpg_reader.py +0 -0
  77. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/toa5.py +0 -0
  78. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/weather_radar.py +0 -0
  79. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/instruments/weather_station.py +0 -0
  80. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/metadata.py +0 -0
  81. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/__init__.py +0 -0
  82. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  83. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/metadata.py +0 -0
  84. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  85. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  86. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  87. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  88. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  89. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  90. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  91. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  92. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  93. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  94. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  95. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  96. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  97. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  98. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  99. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  100. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  101. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  102. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  103. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  104. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  105. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  106. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  107. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  108. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  109. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  110. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  111. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  112. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  113. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  114. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  115. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  116. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  117. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  118. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  119. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  120. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/model_evaluation/utils.py +0 -0
  121. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/output.py +0 -0
  122. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/plotting/__init__.py +0 -0
  123. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/plotting/plot_meta.py +0 -0
  124. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/plotting/plotting.py +0 -0
  125. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/__init__.py +0 -0
  126. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/classification.py +0 -0
  127. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/cod.py +0 -0
  128. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/der.py +0 -0
  129. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/drizzle.py +0 -0
  130. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/drizzle_error.py +0 -0
  131. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/drizzle_tools.py +0 -0
  132. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/epsilon_lidar.py +0 -0
  133. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/epsilon_radar.py +0 -0
  134. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/ier.py +0 -0
  135. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/iwc.py +0 -0
  136. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/iwc_weather_radar.py +0 -0
  137. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/lwc.py +0 -0
  138. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  139. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/mwr_tools.py +0 -0
  140. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/products/product_tools.py +0 -0
  141. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/py.typed +0 -0
  142. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy/utils.py +0 -0
  143. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  144. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  145. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy.egg-info/entry_points.txt +0 -0
  146. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/cloudnetpy.egg-info/top_level.txt +0 -0
  147. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/docs/source/conf.py +0 -0
  148. {cloudnetpy-1.97.2 → cloudnetpy-1.97.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.97.2
3
+ Version: 1.97.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -39,7 +39,7 @@ Requires-Python: >=3.11
39
39
  Description-Content-Type: text/markdown
40
40
  License-File: LICENSE
41
41
  Requires-Dist: atmoslib>=2.4.2
42
- Requires-Dist: ceilopyter>=0.2.2
42
+ Requires-Dist: ceilopyter>=0.2.3
43
43
  Requires-Dist: cloudnet-api-client
44
44
  Requires-Dist: doppy>=0.5.0
45
45
  Requires-Dist: matplotlib
@@ -66,7 +66,7 @@ Dynamic: license-file
66
66
 
67
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)
68
68
  [![PyPI version](https://img.shields.io/pypi/v/cloudnetpy.svg)](https://pypi.org/project/cloudnetpy/)
69
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3666030.svg)](https://doi.org/10.5281/zenodo.3666030)
69
+ [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.3666030-blue)](https://doi.org/10.5281/zenodo.3666030)
70
70
  [![status](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7/status.svg)](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7)
71
71
 
72
72
  CloudnetPy is Python software designed for producing vertical profiles of cloud properties from ground-based
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CloudnetPy CI](https://github.com/actris-cloudnet/cloudnetpy/actions/workflows/test.yml/badge.svg)](https://github.com/actris-cloudnet/cloudnetpy/actions/workflows/test.yml)
4
4
  [![PyPI version](https://img.shields.io/pypi/v/cloudnetpy.svg)](https://pypi.org/project/cloudnetpy/)
5
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3666030.svg)](https://doi.org/10.5281/zenodo.3666030)
5
+ [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.3666030-blue)](https://doi.org/10.5281/zenodo.3666030)
6
6
  [![status](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7/status.svg)](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7)
7
7
 
8
8
  CloudnetPy is Python software designed for producing vertical profiles of cloud properties from ground-based
@@ -9,18 +9,18 @@ from uuid import UUID
9
9
 
10
10
  import netCDF4
11
11
  import numpy as np
12
- from ceilopyter import read_ct25k
12
+ from ceilopyter import read_ct25k, read_ld40
13
13
  from numpy import ma
14
14
 
15
15
  from cloudnetpy import output
16
16
  from cloudnetpy.instruments.cl61d import Cl61d
17
17
  from cloudnetpy.instruments.da10 import Da10
18
18
  from cloudnetpy.instruments.lufft import LufftCeilo
19
- from cloudnetpy.instruments.vaisala import ClCeilo, Cs135, Ct25k
19
+ from cloudnetpy.instruments.vaisala import ClCeilo, Cs135, Ct25k, Ld40
20
20
  from cloudnetpy.metadata import COMMON_ATTRIBUTES, MetaData
21
21
  from cloudnetpy.utils import get_uuid
22
22
 
23
- CeiloObject = ClCeilo | Ct25k | LufftCeilo | Cl61d | Cs135 | Da10
23
+ CeiloObject = ClCeilo | Ct25k | LufftCeilo | Cl61d | Cs135 | Da10 | Ld40
24
24
 
25
25
 
26
26
  def ceilo2nc(
@@ -90,6 +90,20 @@ def ceilo2nc(
90
90
  c_obj = read_ct25k(full_path, calibration_factor, range_corrected)
91
91
  ceilo_obj.data["beta"] = c_obj.beta
92
92
  ceilo_obj.data["beta_raw"] = c_obj.beta_raw
93
+ ceilo_obj.data["beta_smooth"] = c_obj.beta_smooth
94
+ ceilo_obj.data["time"] = c_obj.time
95
+ ceilo_obj.data["range"] = c_obj.range
96
+ if c_obj.zenith_angle is not None:
97
+ ceilo_obj.data["zenith_angle"] = np.median(c_obj.zenith_angle)
98
+ ceilo_obj.data["calibration_factor"] = c_obj.calibration_factor
99
+ ceilo_obj.sort_time()
100
+ ceilo_obj.screen_date()
101
+ ceilo_obj.convert_to_fraction_hour()
102
+ elif isinstance(ceilo_obj, Ld40):
103
+ c_obj = read_ld40(full_path, calibration_factor)
104
+ ceilo_obj.data["beta"] = c_obj.beta
105
+ ceilo_obj.data["beta_raw"] = c_obj.beta_raw
106
+ ceilo_obj.data["beta_smooth"] = c_obj.beta_smooth
93
107
  ceilo_obj.data["time"] = c_obj.time
94
108
  ceilo_obj.data["range"] = c_obj.range
95
109
  if c_obj.zenith_angle is not None:
@@ -174,6 +188,7 @@ def _initialize_ceilo(
174
188
  "chm15k",
175
189
  "cs135",
176
190
  "da10",
191
+ "ld40",
177
192
  ):
178
193
  msg = f"Invalid ceilometer model: {site_meta['model']}"
179
194
  raise ValueError(msg)
@@ -193,6 +208,8 @@ def _initialize_ceilo(
193
208
  return Da10(full_path, site_meta, date)
194
209
  if model == "cs135":
195
210
  return Cs135(full_path, site_meta, date)
211
+ if model == "ld40":
212
+ return Ld40(full_path, site_meta, date)
196
213
  return LufftCeilo(full_path, site_meta, date)
197
214
 
198
215
 
@@ -51,6 +51,14 @@ CT25K = Instrument(
51
51
  wavelength=905.0,
52
52
  )
53
53
 
54
+ LD40 = Instrument(
55
+ manufacturer="Vaisala",
56
+ domain="lidar",
57
+ category="ceilometer",
58
+ model="LD40",
59
+ wavelength=855.0,
60
+ )
61
+
54
62
  CL61D = Instrument(
55
63
  manufacturer="Vaisala",
56
64
  domain="lidar",
@@ -34,6 +34,7 @@ class LufftCeilo(Ceilometer):
34
34
  ceilo = read_chm15k(self.file_name, calibration_factor)
35
35
  self.data["beta"] = ceilo.beta
36
36
  self.data["beta_raw"] = ceilo.beta_raw
37
+ self.data["beta_smooth"] = ceilo.beta_smooth
37
38
  self.data["time"] = ceilo.time
38
39
  self.data["range"] = ceilo.range
39
40
  if ceilo.zenith_angle is not None:
@@ -7,7 +7,7 @@ from os import PathLike
7
7
  import ceilopyter.version
8
8
  import numpy as np
9
9
  import numpy.typing as npt
10
- from ceilopyter import read_cl_file, read_cs_file, read_ct_file
10
+ from ceilopyter import read_cl_file, read_cs_file
11
11
 
12
12
  from cloudnetpy.exceptions import ValidTimeStampError
13
13
  from cloudnetpy.instruments import instruments
@@ -118,13 +118,31 @@ class Ct25k(VaisalaCeilo):
118
118
  site_meta: dict,
119
119
  expected_date: datetime.date | None = None,
120
120
  ) -> None:
121
- super().__init__(read_ct_file, full_path, site_meta, expected_date)
121
+ super().__init__(no_reader, full_path, site_meta, expected_date)
122
122
  self._store_ceilometer_info()
123
123
 
124
124
  def _store_ceilometer_info(self) -> None:
125
125
  self.instrument = instruments.CT25K
126
126
 
127
127
 
128
+ class Ld40(VaisalaCeilo):
129
+ """Class for Vaisala LD40 ceilometer."""
130
+
131
+ noise_param = NoiseParam(noise_min=0.7e-7, noise_smooth_min=1.2e-8)
132
+
133
+ def __init__(
134
+ self,
135
+ full_path: str | PathLike,
136
+ site_meta: dict,
137
+ expected_date: datetime.date | None = None,
138
+ ) -> None:
139
+ super().__init__(no_reader, full_path, site_meta, expected_date)
140
+ self._store_ceilometer_info()
141
+
142
+ def _store_ceilometer_info(self) -> None:
143
+ self.instrument = instruments.LD40
144
+
145
+
128
146
  class Cs135(VaisalaCeilo):
129
147
  """Class for Campbell Scientific CS135 ceilometer."""
130
148
 
@@ -140,3 +158,8 @@ class Cs135(VaisalaCeilo):
140
158
 
141
159
  def _store_ceilometer_info(self) -> None:
142
160
  self.instrument = instruments.CS135
161
+
162
+
163
+ def no_reader() -> None:
164
+ msg = "No ceilometer reader"
165
+ raise RuntimeError(msg)
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 97
3
- PATCH = 2
3
+ PATCH = 3
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.97.2
3
+ Version: 1.97.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -39,7 +39,7 @@ Requires-Python: >=3.11
39
39
  Description-Content-Type: text/markdown
40
40
  License-File: LICENSE
41
41
  Requires-Dist: atmoslib>=2.4.2
42
- Requires-Dist: ceilopyter>=0.2.2
42
+ Requires-Dist: ceilopyter>=0.2.3
43
43
  Requires-Dist: cloudnet-api-client
44
44
  Requires-Dist: doppy>=0.5.0
45
45
  Requires-Dist: matplotlib
@@ -66,7 +66,7 @@ Dynamic: license-file
66
66
 
67
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)
68
68
  [![PyPI version](https://img.shields.io/pypi/v/cloudnetpy.svg)](https://pypi.org/project/cloudnetpy/)
69
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3666030.svg)](https://doi.org/10.5281/zenodo.3666030)
69
+ [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.3666030-blue)](https://doi.org/10.5281/zenodo.3666030)
70
70
  [![status](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7/status.svg)](https://joss.theoj.org/papers/959971f196f617dddc0e7d8333ff22b7)
71
71
 
72
72
  CloudnetPy is Python software designed for producing vertical profiles of cloud properties from ground-based
@@ -1,5 +1,5 @@
1
1
  atmoslib>=2.4.2
2
- ceilopyter>=0.2.2
2
+ ceilopyter>=0.2.3
3
3
  cloudnet-api-client
4
4
  doppy>=0.5.0
5
5
  matplotlib
@@ -15,7 +15,7 @@ classifiers = [
15
15
  ]
16
16
  dependencies = [
17
17
  "atmoslib>=2.4.2",
18
- "ceilopyter>=0.2.2",
18
+ "ceilopyter>=0.2.3",
19
19
  "cloudnet-api-client",
20
20
  "doppy>=0.5.0",
21
21
  "matplotlib",
File without changes
File without changes
File without changes