cloudnetpy 1.66.16__tar.gz → 1.66.18__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 (129) hide show
  1. {cloudnetpy-1.66.16/cloudnetpy.egg-info → cloudnetpy-1.66.18}/PKG-INFO +1 -1
  2. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/mira.py +13 -2
  3. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/nc_radar.py +20 -31
  4. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/plotting/plotting.py +1 -0
  5. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/version.py +1 -1
  6. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18/cloudnetpy.egg-info}/PKG-INFO +1 -1
  7. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/LICENSE +0 -0
  8. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/MANIFEST.in +0 -0
  9. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/README.md +0 -0
  10. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/__init__.py +0 -0
  11. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/__init__.py +0 -0
  12. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/atmos_utils.py +0 -0
  13. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuation.py +0 -0
  14. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  15. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  16. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  17. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  18. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  19. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/categorize.py +0 -0
  20. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/classify.py +0 -0
  21. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/containers.py +0 -0
  22. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/disdrometer.py +0 -0
  23. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/droplet.py +0 -0
  24. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/falling.py +0 -0
  25. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/freezing.py +0 -0
  26. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/insects.py +0 -0
  27. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/itu.py +0 -0
  28. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/lidar.py +0 -0
  29. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/melting.py +0 -0
  30. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/model.py +0 -0
  31. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/mwr.py +0 -0
  32. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/categorize/radar.py +0 -0
  33. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/cli.py +0 -0
  34. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/cloudnetarray.py +0 -0
  35. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/concat_lib.py +0 -0
  36. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/constants.py +0 -0
  37. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/datasource.py +0 -0
  38. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/exceptions.py +0 -0
  39. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/__init__.py +0 -0
  40. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/basta.py +0 -0
  41. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/campbell_scientific.py +0 -0
  42. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/ceilo.py +0 -0
  43. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/ceilometer.py +0 -0
  44. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/cl61d.py +0 -0
  45. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  46. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/copernicus.py +0 -0
  47. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  48. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  49. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  50. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  51. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/galileo.py +0 -0
  52. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/hatpro.py +0 -0
  53. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/instruments.py +0 -0
  54. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/lufft.py +0 -0
  55. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/mrr.py +0 -0
  56. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/nc_lidar.py +0 -0
  57. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/pollyxt.py +0 -0
  58. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/radiometrics.py +0 -0
  59. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/rpg.py +0 -0
  60. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/rpg_reader.py +0 -0
  61. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/toa5.py +0 -0
  62. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/vaisala.py +0 -0
  63. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/instruments/weather_station.py +0 -0
  64. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/metadata.py +0 -0
  65. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/__init__.py +0 -0
  66. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  67. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/metadata.py +0 -0
  68. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  69. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  70. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  71. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  72. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  73. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  74. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  75. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  76. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  77. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  78. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  79. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  80. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  81. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  82. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  83. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  84. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  85. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  86. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  87. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  88. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  89. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  90. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  91. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  92. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  93. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  94. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  95. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  96. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  97. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  98. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  99. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  100. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  101. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  102. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  103. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  104. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/utils.py +0 -0
  105. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/output.py +0 -0
  106. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/plotting/__init__.py +0 -0
  107. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/plotting/plot_meta.py +0 -0
  108. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/__init__.py +0 -0
  109. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/classification.py +0 -0
  110. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/der.py +0 -0
  111. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle.py +0 -0
  112. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle_error.py +0 -0
  113. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle_tools.py +0 -0
  114. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/ier.py +0 -0
  115. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/iwc.py +0 -0
  116. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/lwc.py +0 -0
  117. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  118. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/mwr_tools.py +0 -0
  119. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/products/product_tools.py +0 -0
  120. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/py.typed +0 -0
  121. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy/utils.py +0 -0
  122. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  123. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  124. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/entry_points.txt +0 -0
  125. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/requires.txt +0 -0
  126. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/top_level.txt +0 -0
  127. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/docs/source/conf.py +0 -0
  128. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/pyproject.toml +0 -0
  129. {cloudnetpy-1.66.16 → cloudnetpy-1.66.18}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.66.16
3
+ Version: 1.66.18
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -72,6 +72,7 @@ def mira2nc(
72
72
  mira.screen_by_snr()
73
73
  mira.screen_invalid_ldr()
74
74
  mira.mask_invalid_data()
75
+ mira.mask_bad_angles()
75
76
  mira.add_time_and_range()
76
77
  mira.add_site_geolocation()
77
78
  mira.add_radar_specific_variables()
@@ -128,6 +129,18 @@ class Mira(NcRadar):
128
129
  )
129
130
  self.data["ldr"].data[:] = ma.masked
130
131
 
132
+ def mask_bad_angles(self) -> None:
133
+ """Masks clearly bad elevation and azimuth angles."""
134
+ limits = {
135
+ "elevation": (0, 180),
136
+ "azimuth_angle": (-360, 360),
137
+ }
138
+ for key, (lower, upper) in limits.items():
139
+ if (array := self.data[key].data) is not None:
140
+ margin = (upper - lower) * 0.05
141
+ array[array < (lower - margin)] = ma.masked
142
+ array[array > (upper + margin)] = ma.masked
143
+
131
144
 
132
145
  def _parse_input_files(input_files: str | list[str], temp_dir: str) -> tuple:
133
146
  if isinstance(input_files, list) or os.path.isdir(input_files):
@@ -219,7 +232,6 @@ def _get_keymap(filetype: str) -> dict:
219
232
  ("SNRh2l", "SNR"),
220
233
  ("elv", "elevation"),
221
234
  ("azi", "azimuth_angle"),
222
- ("aziv", "azimuth_velocity"),
223
235
  ("nfft", "nfft"),
224
236
  ("nave", "nave"),
225
237
  ("prf", "prf"),
@@ -234,7 +246,6 @@ def _get_keymap(filetype: str) -> dict:
234
246
  "SNRg": "SNR",
235
247
  "elv": "elevation",
236
248
  "azi": "azimuth_angle",
237
- "aziv": "azimuth_velocity",
238
249
  "nfft": "nfft",
239
250
  "nave": "nave",
240
251
  "prf": "prf",
@@ -94,36 +94,26 @@ class NcRadar(DataSource, CloudnetInstrument):
94
94
  """Adds non-varying instrument zenith and azimuth angles and returns valid
95
95
  time indices.
96
96
  """
97
- if "azimuth_velocity" in self.data:
98
- azimuth = self.data["azimuth_velocity"].data
99
- azimuth_reference = azimuth[0] if np.all(azimuth == azimuth[0]) else 0
100
- azimuth_tolerance = 1e-6
101
- else:
102
- azimuth = self.data["azimuth_angle"].data
103
- azimuth_reference = ma.median(azimuth)
104
- azimuth_tolerance = 0.1
105
-
106
- zenith = 90 - self.data["elevation"].data
107
-
108
- is_valid_zenith = np.abs(zenith) < 10
109
- if not np.any(is_valid_zenith):
110
- msg = "No valid zenith angles"
111
- raise ValidTimeStampError(msg)
97
+ elevation = self.data["elevation"].data
98
+ azimuth = self.data["azimuth_angle"].data
99
+
100
+ elevation_diff = ma.diff(elevation, prepend=elevation[1])
101
+ azimuth_diff = ma.diff(azimuth, prepend=azimuth[1])
102
+
103
+ is_stable = np.abs(elevation - 90) < 1
104
+ is_stable &= np.abs(elevation_diff) < 1e-6
105
+ is_stable &= np.abs(azimuth_diff) < 1e-3
112
106
 
113
- valid_zenith = zenith[is_valid_zenith]
114
- is_stable_zenith = np.isclose(zenith, ma.median(valid_zenith), atol=0.1)
115
- is_stable_azimuth = np.isclose(
116
- azimuth,
117
- azimuth_reference,
118
- atol=azimuth_tolerance,
119
- )
120
- is_stable_profile = is_stable_zenith & is_stable_azimuth
107
+ # If scanning unit is broken, data are missing
108
+ # (assume it's vertically pointing)
109
+ missing_info = elevation.mask & azimuth.mask
110
+ is_stable[missing_info] = True
121
111
 
122
- if ma.isMaskedArray(is_stable_profile):
123
- is_stable_profile[is_stable_profile.mask] = False
124
- n_removed = np.count_nonzero(~is_stable_profile)
112
+ if ma.isMaskedArray(is_stable):
113
+ is_stable[is_stable.mask] = False
114
+ n_removed = np.count_nonzero(~is_stable)
125
115
 
126
- if n_removed >= len(zenith) - 1:
116
+ if n_removed >= len(elevation) - 1:
127
117
  msg = "Less than two profiles with valid zenith / azimuth angles"
128
118
  raise ValidTimeStampError(msg)
129
119
 
@@ -132,11 +122,10 @@ class NcRadar(DataSource, CloudnetInstrument):
132
122
  "Filtering %s profiles due to varying zenith / azimuth angle",
133
123
  n_removed,
134
124
  )
125
+ zenith = 90 - elevation
135
126
  self.append_data(zenith, "zenith_angle")
136
- for key in ("elevation", "azimuth_velocity"):
137
- if key in self.data:
138
- del self.data[key]
139
- return list(is_stable_profile)
127
+ del self.data["elevation"]
128
+ return list(is_stable)
140
129
 
141
130
  def add_radar_specific_variables(self) -> None:
142
131
  """Adds radar specific variables."""
@@ -910,6 +910,7 @@ def _get_max_gap_in_minutes(figure_data: FigureData) -> float:
910
910
  "mwr-multi": 35,
911
911
  "weather-station": 12,
912
912
  "doppler-lidar-wind": 75,
913
+ "radar": 5,
913
914
  }
914
915
  return max_allowed_gap.get(file_type, 10)
915
916
 
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 66
3
- PATCH = 16
3
+ PATCH = 18
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.66.16
3
+ Version: 1.66.18
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