cloudnetpy 1.62.0__tar.gz → 1.63.0__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 (121) hide show
  1. {cloudnetpy-1.62.0/cloudnetpy.egg-info → cloudnetpy-1.63.0}/PKG-INFO +1 -1
  2. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/containers.py +18 -3
  3. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/insects.py +1 -14
  4. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/weather_station.py +5 -2
  5. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/version.py +1 -1
  6. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0/cloudnetpy.egg-info}/PKG-INFO +1 -1
  7. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/LICENSE +0 -0
  8. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/MANIFEST.in +0 -0
  9. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/README.md +0 -0
  10. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/__init__.py +0 -0
  11. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/__init__.py +0 -0
  12. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/atmos.py +0 -0
  13. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/atmos_utils.py +0 -0
  14. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/categorize.py +0 -0
  15. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/classify.py +0 -0
  16. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/disdrometer.py +0 -0
  17. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/droplet.py +0 -0
  18. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/falling.py +0 -0
  19. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/freezing.py +0 -0
  20. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/lidar.py +0 -0
  21. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/melting.py +0 -0
  22. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/model.py +0 -0
  23. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/mwr.py +0 -0
  24. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/categorize/radar.py +0 -0
  25. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/cloudnetarray.py +0 -0
  26. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/concat_lib.py +0 -0
  27. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/constants.py +0 -0
  28. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/datasource.py +0 -0
  29. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/exceptions.py +0 -0
  30. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/__init__.py +0 -0
  31. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/basta.py +0 -0
  32. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/campbell_scientific.py +0 -0
  33. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/ceilo.py +0 -0
  34. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/ceilometer.py +0 -0
  35. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/cl61d.py +0 -0
  36. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  37. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/copernicus.py +0 -0
  38. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  39. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  40. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  41. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  42. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/galileo.py +0 -0
  43. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/hatpro.py +0 -0
  44. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/instruments.py +0 -0
  45. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/lufft.py +0 -0
  46. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/mira.py +0 -0
  47. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/mrr.py +0 -0
  48. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/nc_lidar.py +0 -0
  49. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/nc_radar.py +0 -0
  50. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/pollyxt.py +0 -0
  51. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/radiometrics.py +0 -0
  52. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/rpg.py +0 -0
  53. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/rpg_reader.py +0 -0
  54. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/toa5.py +0 -0
  55. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/instruments/vaisala.py +0 -0
  56. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/metadata.py +0 -0
  57. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/__init__.py +0 -0
  58. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  59. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/metadata.py +0 -0
  60. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  61. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  62. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  63. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  64. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  65. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  66. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  67. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  68. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  69. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  70. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  71. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  72. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  73. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  74. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  75. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  76. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  77. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  78. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  79. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  80. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  81. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  82. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  83. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  84. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  85. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  86. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  87. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  88. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  89. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  90. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  91. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  92. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  93. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  94. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  95. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  96. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/model_evaluation/utils.py +0 -0
  97. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/output.py +0 -0
  98. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/plotting/__init__.py +0 -0
  99. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/plotting/plot_meta.py +0 -0
  100. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/plotting/plotting.py +0 -0
  101. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/__init__.py +0 -0
  102. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/classification.py +0 -0
  103. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/der.py +0 -0
  104. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/drizzle.py +0 -0
  105. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/drizzle_error.py +0 -0
  106. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/drizzle_tools.py +0 -0
  107. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/ier.py +0 -0
  108. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/iwc.py +0 -0
  109. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/lwc.py +0 -0
  110. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  111. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/mwr_tools.py +0 -0
  112. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/products/product_tools.py +0 -0
  113. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/py.typed +0 -0
  114. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy/utils.py +0 -0
  115. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  116. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  117. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy.egg-info/requires.txt +0 -0
  118. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/cloudnetpy.egg-info/top_level.txt +0 -0
  119. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/docs/source/conf.py +0 -0
  120. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/pyproject.toml +0 -0
  121. {cloudnetpy-1.62.0 → cloudnetpy-1.63.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.62.0
3
+ Version: 1.63.0
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -74,13 +74,28 @@ class ClassData:
74
74
 
75
75
  def _find_rain_from_radar_echo(self) -> np.ndarray:
76
76
  gate_number = 3
77
- threshold = 0
77
+ threshold = {"z": 3, "v": 0, "ldr": -15}
78
78
  z = self.z[:, gate_number]
79
- return np.where((~ma.getmaskarray(z)) & (z > threshold), 1, 0)
79
+ v = self.v[:, gate_number]
80
+ if hasattr(self, "ldr"):
81
+ ldr = self.ldr[:, gate_number]
82
+ elif hasattr(self, "sldr"):
83
+ ldr = self.sldr[:, gate_number]
84
+ else:
85
+ ldr = np.full(self.time.shape, threshold["ldr"] - 1)
86
+
87
+ return np.where(
88
+ (~ma.getmaskarray(z))
89
+ & (z > threshold["z"])
90
+ & (v < threshold["v"])
91
+ & (ldr < threshold["ldr"]),
92
+ 1,
93
+ 0,
94
+ )
80
95
 
81
96
  def _find_rain_from_disdrometer(self) -> ma.MaskedArray:
82
97
  threshold_mm_h = 0.25 # Standard threshold for drizzle -> rain
83
- threshold_particles = 10 # This is arbitrary and should be better tested
98
+ threshold_particles = 30 # This is arbitrary and should be better tested
84
99
  threshold_rate = threshold_mm_h * MM_H_TO_M_S
85
100
  try:
86
101
  rainfall_rate = self.data["disdrometer"].data["rainfall_rate"].data
@@ -148,8 +148,7 @@ def _screen_insects(
148
148
  prob[(above_liquid == 1) & (insect_prob_no_ldr > 0)] = 0
149
149
 
150
150
  def _screen_rainy_profiles() -> None:
151
- rain_smoothed = _smooth_rain(obs.time, obs.is_rain)
152
- prob[rain_smoothed == 1, :] = 0
151
+ prob[obs.is_rain == 1, :] = 0
153
152
 
154
153
  prob = np.copy(insect_prob)
155
154
  _screen_liquid_layers()
@@ -157,15 +156,3 @@ def _screen_insects(
157
156
  _screen_above_liquid()
158
157
  _screen_rainy_profiles()
159
158
  return prob
160
-
161
-
162
- def _smooth_rain(time: np.ndarray, is_rain: np.ndarray) -> np.ndarray:
163
- is_rain_smoothed = np.copy(is_rain)
164
- time_buffer = 5 # minutes
165
- n_profiles = len(is_rain)
166
- n_steps = utils.n_elements(time, time_buffer, "time")
167
- for rain_idx in np.where(is_rain)[0]:
168
- idx_start = max(0, rain_idx - n_steps)
169
- idx_end = min(rain_idx + n_steps, n_profiles)
170
- is_rain_smoothed[idx_start : idx_end + 1] = True
171
- return is_rain_smoothed
@@ -288,9 +288,12 @@ class GranadaWS(WS):
288
288
  continue
289
289
  parsed = value
290
290
  if keymap[key] != "time":
291
- parsed = float(value)
291
+ try:
292
+ parsed = float(value)
293
+ except ValueError:
294
+ parsed = math.nan
292
295
  data[keymap[key]].append(parsed)
293
- return data
296
+ return self.format_data(data)
294
297
 
295
298
 
296
299
  class KenttarovaWS(WS):
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
- MINOR = 62
2
+ MINOR = 63
3
3
  PATCH = 0
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.62.0
3
+ Version: 1.63.0
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
File without changes
File without changes
File without changes
File without changes
File without changes