cloudnetpy 1.66.17__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.17/cloudnetpy.egg-info → cloudnetpy-1.66.18}/PKG-INFO +1 -1
  2. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/mira.py +13 -2
  3. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/nc_radar.py +17 -33
  4. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/plotting/plotting.py +1 -0
  5. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/version.py +1 -1
  6. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18/cloudnetpy.egg-info}/PKG-INFO +1 -1
  7. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/LICENSE +0 -0
  8. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/MANIFEST.in +0 -0
  9. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/README.md +0 -0
  10. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/__init__.py +0 -0
  11. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/__init__.py +0 -0
  12. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/atmos_utils.py +0 -0
  13. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuation.py +0 -0
  14. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  15. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  16. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  17. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  18. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  19. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/categorize.py +0 -0
  20. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/classify.py +0 -0
  21. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/containers.py +0 -0
  22. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/disdrometer.py +0 -0
  23. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/droplet.py +0 -0
  24. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/falling.py +0 -0
  25. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/freezing.py +0 -0
  26. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/insects.py +0 -0
  27. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/itu.py +0 -0
  28. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/lidar.py +0 -0
  29. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/melting.py +0 -0
  30. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/model.py +0 -0
  31. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/mwr.py +0 -0
  32. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/categorize/radar.py +0 -0
  33. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/cli.py +0 -0
  34. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/cloudnetarray.py +0 -0
  35. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/concat_lib.py +0 -0
  36. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/constants.py +0 -0
  37. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/datasource.py +0 -0
  38. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/exceptions.py +0 -0
  39. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/__init__.py +0 -0
  40. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/basta.py +0 -0
  41. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/campbell_scientific.py +0 -0
  42. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/ceilo.py +0 -0
  43. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/ceilometer.py +0 -0
  44. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/cl61d.py +0 -0
  45. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  46. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/copernicus.py +0 -0
  47. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  48. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  49. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  50. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  51. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/galileo.py +0 -0
  52. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/hatpro.py +0 -0
  53. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/instruments.py +0 -0
  54. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/lufft.py +0 -0
  55. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/mrr.py +0 -0
  56. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/nc_lidar.py +0 -0
  57. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/pollyxt.py +0 -0
  58. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/radiometrics.py +0 -0
  59. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/rpg.py +0 -0
  60. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/rpg_reader.py +0 -0
  61. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/toa5.py +0 -0
  62. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/vaisala.py +0 -0
  63. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/instruments/weather_station.py +0 -0
  64. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/metadata.py +0 -0
  65. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/__init__.py +0 -0
  66. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  67. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/metadata.py +0 -0
  68. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  69. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  70. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  71. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  72. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  73. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  74. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  75. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  76. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  77. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  78. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  79. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  80. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  81. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  82. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  83. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  84. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  85. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  86. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  87. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  88. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  89. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  90. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  91. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  92. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  93. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  94. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  95. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  96. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  97. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  98. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  99. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  100. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  101. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  102. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  103. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  104. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/model_evaluation/utils.py +0 -0
  105. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/output.py +0 -0
  106. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/plotting/__init__.py +0 -0
  107. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/plotting/plot_meta.py +0 -0
  108. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/__init__.py +0 -0
  109. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/classification.py +0 -0
  110. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/der.py +0 -0
  111. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle.py +0 -0
  112. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle_error.py +0 -0
  113. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/drizzle_tools.py +0 -0
  114. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/ier.py +0 -0
  115. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/iwc.py +0 -0
  116. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/lwc.py +0 -0
  117. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  118. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/mwr_tools.py +0 -0
  119. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/products/product_tools.py +0 -0
  120. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/py.typed +0 -0
  121. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy/utils.py +0 -0
  122. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  123. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  124. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/entry_points.txt +0 -0
  125. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/requires.txt +0 -0
  126. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/cloudnetpy.egg-info/top_level.txt +0 -0
  127. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/docs/source/conf.py +0 -0
  128. {cloudnetpy-1.66.17 → cloudnetpy-1.66.18}/pyproject.toml +0 -0
  129. {cloudnetpy-1.66.17 → 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.17
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,41 +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
97
  elevation = self.data["elevation"].data
98
+ azimuth = self.data["azimuth_angle"].data
107
99
 
108
- # Elevation is sometimes around -1000 indicating missing value
109
- # Assume the instrument is pointing vertically in these cases
110
- elevation[elevation < 0] = 90
111
- zenith = 90 - elevation
100
+ elevation_diff = ma.diff(elevation, prepend=elevation[1])
101
+ azimuth_diff = ma.diff(azimuth, prepend=azimuth[1])
112
102
 
113
- is_valid_zenith = np.abs(zenith) < 10
114
- if not np.any(is_valid_zenith):
115
- msg = "No valid zenith angles"
116
- raise ValidTimeStampError(msg)
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
117
106
 
118
- valid_zenith = zenith[is_valid_zenith]
119
- is_stable_zenith = np.isclose(zenith, ma.median(valid_zenith), atol=0.1)
120
- is_stable_azimuth = np.isclose(
121
- azimuth,
122
- azimuth_reference,
123
- atol=azimuth_tolerance,
124
- )
125
- 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
126
111
 
127
- if ma.isMaskedArray(is_stable_profile):
128
- is_stable_profile[is_stable_profile.mask] = False
129
- 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)
130
115
 
131
- if n_removed >= len(zenith) - 1:
116
+ if n_removed >= len(elevation) - 1:
132
117
  msg = "Less than two profiles with valid zenith / azimuth angles"
133
118
  raise ValidTimeStampError(msg)
134
119
 
@@ -137,11 +122,10 @@ class NcRadar(DataSource, CloudnetInstrument):
137
122
  "Filtering %s profiles due to varying zenith / azimuth angle",
138
123
  n_removed,
139
124
  )
125
+ zenith = 90 - elevation
140
126
  self.append_data(zenith, "zenith_angle")
141
- for key in ("elevation", "azimuth_velocity"):
142
- if key in self.data:
143
- del self.data[key]
144
- return list(is_stable_profile)
127
+ del self.data["elevation"]
128
+ return list(is_stable)
145
129
 
146
130
  def add_radar_specific_variables(self) -> None:
147
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 = 17
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.17
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