cloudnetpy 1.65.2__tar.gz → 1.65.4__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.65.2/cloudnetpy.egg-info → cloudnetpy-1.65.4}/PKG-INFO +1 -1
  2. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/atmos_utils.py +2 -12
  3. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/constants.py +3 -0
  4. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/disdrometer/thies.py +10 -0
  5. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/rpg.py +5 -3
  6. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/rpg_reader.py +2 -2
  7. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/weather_station.py +2 -2
  8. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/version.py +1 -1
  9. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4/cloudnetpy.egg-info}/PKG-INFO +1 -1
  10. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/LICENSE +0 -0
  11. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/MANIFEST.in +0 -0
  12. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/README.md +0 -0
  13. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/__init__.py +0 -0
  14. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/__init__.py +0 -0
  15. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/atmos.py +0 -0
  16. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/categorize.py +0 -0
  17. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/classify.py +0 -0
  18. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/containers.py +0 -0
  19. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/disdrometer.py +0 -0
  20. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/droplet.py +0 -0
  21. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/falling.py +0 -0
  22. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/freezing.py +0 -0
  23. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/insects.py +0 -0
  24. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/lidar.py +0 -0
  25. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/melting.py +0 -0
  26. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/model.py +0 -0
  27. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/mwr.py +0 -0
  28. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/categorize/radar.py +0 -0
  29. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/cloudnetarray.py +0 -0
  30. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/concat_lib.py +0 -0
  31. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/datasource.py +0 -0
  32. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/exceptions.py +0 -0
  33. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/__init__.py +0 -0
  34. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/basta.py +0 -0
  35. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/campbell_scientific.py +0 -0
  36. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/ceilo.py +0 -0
  37. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/ceilometer.py +0 -0
  38. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/cl61d.py +0 -0
  39. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  40. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/copernicus.py +0 -0
  41. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  42. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  43. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  44. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/galileo.py +0 -0
  45. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/hatpro.py +0 -0
  46. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/instruments.py +0 -0
  47. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/lufft.py +0 -0
  48. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/mira.py +0 -0
  49. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/mrr.py +0 -0
  50. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/nc_lidar.py +0 -0
  51. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/nc_radar.py +0 -0
  52. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/pollyxt.py +0 -0
  53. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/radiometrics.py +0 -0
  54. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/toa5.py +0 -0
  55. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/instruments/vaisala.py +0 -0
  56. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/metadata.py +0 -0
  57. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/__init__.py +0 -0
  58. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  59. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/metadata.py +0 -0
  60. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  61. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  62. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  63. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  64. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  65. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  66. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  67. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  68. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  69. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  70. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  71. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  72. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  73. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  74. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  75. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  76. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  77. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  78. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  79. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  80. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  81. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  82. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  83. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  84. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  85. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  86. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  87. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  88. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  89. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  90. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  91. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  92. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  93. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  94. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  95. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  96. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/model_evaluation/utils.py +0 -0
  97. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/output.py +0 -0
  98. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/plotting/__init__.py +0 -0
  99. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/plotting/plot_meta.py +0 -0
  100. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/plotting/plotting.py +0 -0
  101. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/__init__.py +0 -0
  102. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/classification.py +0 -0
  103. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/der.py +0 -0
  104. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/drizzle.py +0 -0
  105. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/drizzle_error.py +0 -0
  106. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/drizzle_tools.py +0 -0
  107. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/ier.py +0 -0
  108. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/iwc.py +0 -0
  109. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/lwc.py +0 -0
  110. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  111. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/mwr_tools.py +0 -0
  112. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/products/product_tools.py +0 -0
  113. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/py.typed +0 -0
  114. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy/utils.py +0 -0
  115. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  116. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  117. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy.egg-info/requires.txt +0 -0
  118. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/cloudnetpy.egg-info/top_level.txt +0 -0
  119. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/docs/source/conf.py +0 -0
  120. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/pyproject.toml +0 -0
  121. {cloudnetpy-1.65.2 → cloudnetpy-1.65.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.65.2
3
+ Version: 1.65.4
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -1,13 +1,8 @@
1
- from typing import Final
2
-
3
1
  import numpy as np
4
2
  from numpy import ma
5
3
 
6
4
  import cloudnetpy.constants as con
7
5
 
8
- HPA_TO_P: Final = 100
9
- P_TO_HPA: Final = 0.01
10
-
11
6
 
12
7
  def calc_wet_bulb_temperature(model_data: dict) -> np.ndarray:
13
8
  """Returns wet bulb temperature.
@@ -80,7 +75,7 @@ def calc_saturation_vapor_pressure(temperature: np.ndarray) -> np.ndarray:
80
75
  + 0.42873e-3 * (10 ** (4.76955 * (1 - ratio)) - 1)
81
76
  + 0.78614
82
77
  )
83
- ) * HPA_TO_P
78
+ ) * con.HPA_TO_PA
84
79
 
85
80
 
86
81
  def calc_psychrometric_constant(pressure: np.ndarray) -> np.ndarray:
@@ -114,7 +109,7 @@ def calc_dew_point_temperature(vapor_pressure: np.ndarray) -> np.ndarray:
114
109
  """
115
110
  vaisala_parameters_over_water = (6.116441, 7.591386, 240.7263)
116
111
  a, m, tn = vaisala_parameters_over_water
117
- dew_point_celsius = tn / ((m / np.log10(vapor_pressure * P_TO_HPA / a)) - 1)
112
+ dew_point_celsius = tn / ((m / np.log10(vapor_pressure * con.PA_TO_HPA / a)) - 1)
118
113
  return c2k(dew_point_celsius)
119
114
 
120
115
 
@@ -126,8 +121,3 @@ def c2k(temp: np.ndarray) -> np.ndarray:
126
121
  def k2c(temp: np.ndarray) -> np.ndarray:
127
122
  """Converts Kelvins to Celsius."""
128
123
  return ma.array(temp) - 273.15
129
-
130
-
131
- def mmh2ms(data: np.ndarray) -> np.ndarray:
132
- """Converts mm h-1 to m s-1."""
133
- return data / con.SEC_IN_HOUR * con.MM_TO_M
@@ -30,3 +30,6 @@ G_TO_KG: Final = 1e-3
30
30
  M_S_TO_MM_H: Final = SEC_IN_HOUR / MM_TO_M
31
31
  MM_H_TO_M_S: Final = 1 / M_S_TO_MM_H
32
32
  GHZ_TO_HZ: Final = 1e9
33
+ HPA_TO_PA: Final = 100
34
+ PA_TO_HPA: Final = 1 / HPA_TO_PA
35
+ KM_H_TO_M_S: Final = 1000 / SEC_IN_HOUR
@@ -154,6 +154,16 @@ class Thies(Disdrometer):
154
154
  units, process, rows = read_toa5(filename)
155
155
  for row in rows:
156
156
  self._read_line(row["RawString"], row["TIMESTAMP"])
157
+ elif first_line.startswith("Datetime [utc];Device address;"):
158
+ with open(filename) as file:
159
+ first_line = file.readline()
160
+ for line in file:
161
+ timestamp, telegram = line.split(";", maxsplit=1)
162
+ fixed_telegram = telegram.strip().rstrip(";") + ";"
163
+ parsed_timestamp = datetime.datetime.strptime(
164
+ timestamp, "%Y-%m-%d %H:%M:%S"
165
+ )
166
+ self._read_line(fixed_telegram, parsed_timestamp)
157
167
  else:
158
168
  with open(filename) as file:
159
169
  for line in file:
@@ -10,9 +10,8 @@ from numpy import ma
10
10
  from rpgpy import RPGFileError
11
11
 
12
12
  from cloudnetpy import output, utils
13
- from cloudnetpy.categorize.atmos_utils import mmh2ms
14
13
  from cloudnetpy.cloudnetarray import CloudnetArray
15
- from cloudnetpy.constants import G_TO_KG
14
+ from cloudnetpy.constants import G_TO_KG, HPA_TO_PA, KM_H_TO_M_S, MM_H_TO_M_S
16
15
  from cloudnetpy.exceptions import InconsistentDataError, ValidTimeStampError
17
16
  from cloudnetpy.instruments import instruments
18
17
  from cloudnetpy.instruments.cloudnet_instrument import CloudnetInstrument
@@ -307,8 +306,11 @@ class Fmcw(Rpg):
307
306
 
308
307
  def convert_units(self) -> None:
309
308
  """Converts units."""
310
- self.data["rainfall_rate"].data = mmh2ms(self.data["rainfall_rate"].data)
309
+ self.data["rainfall_rate"].data = self.data["rainfall_rate"].data * MM_H_TO_M_S
311
310
  self.data["lwp"].data *= G_TO_KG
311
+ self.data["relative_humidity"].data /= 100
312
+ self.data["air_pressure"].data *= HPA_TO_PA
313
+ self.data["wind_speed"].data *= KM_H_TO_M_S
312
314
 
313
315
  @staticmethod
314
316
  def _get_instrument(data: dict):
@@ -71,8 +71,8 @@ class Fmcw94Bin:
71
71
  "QF": "quality_flag",
72
72
  "RR": "rainfall_rate",
73
73
  "RelHum": "relative_humidity",
74
- "EnvTemp": "temperature",
75
- "BaroP": "pressure",
74
+ "EnvTemp": "air_temperature",
75
+ "BaroP": "air_pressure",
76
76
  "WS": "wind_speed",
77
77
  "WD": "wind_direction",
78
78
  "DDVolt": "voltage",
@@ -8,7 +8,7 @@ from numpy import ma
8
8
  from cloudnetpy import output
9
9
  from cloudnetpy.categorize import atmos_utils
10
10
  from cloudnetpy.cloudnetarray import CloudnetArray
11
- from cloudnetpy.constants import MM_H_TO_M_S, SEC_IN_HOUR
11
+ from cloudnetpy.constants import HPA_TO_PA, MM_H_TO_M_S, SEC_IN_HOUR
12
12
  from cloudnetpy.exceptions import ValidTimeStampError, WeatherStationDataError
13
13
  from cloudnetpy.instruments import instruments
14
14
  from cloudnetpy.instruments.cloudnet_instrument import CloudnetInstrument
@@ -137,7 +137,7 @@ class WS(CloudnetInstrument):
137
137
  self.data["rainfall_rate"].data = rainfall_rate / 60 / 1000 # mm/min -> m/s
138
138
 
139
139
  def convert_pressure(self) -> None:
140
- self.data["air_pressure"].data = self.data["air_pressure"][:] * 100 # hPa to Pa
140
+ self.data["air_pressure"].data = self.data["air_pressure"][:] * HPA_TO_PA
141
141
 
142
142
  def normalize_rainfall_amount(self) -> None:
143
143
  if "rainfall_amount" in self.data:
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 65
3
- PATCH = 2
3
+ PATCH = 4
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.65.2
3
+ Version: 1.65.4
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