cloudnetpy 1.80.0__py3-none-any.whl → 1.80.1__py3-none-any.whl

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.
@@ -121,6 +121,7 @@ def ceilo2nc(
121
121
  ceilo_obj.data["depolarisation"].mask = ceilo_obj.data["beta"].mask
122
122
  ceilo_obj.screen_depol()
123
123
  ceilo_obj.screen_invalid_values()
124
+ ceilo_obj.screen_sunbeam()
124
125
  ceilo_obj.prepare_data()
125
126
  ceilo_obj.data_to_cloudnet_arrays()
126
127
  ceilo_obj.add_site_geolocation()
@@ -137,6 +137,24 @@ class Ceilometer:
137
137
  msg = f"Invalid beta_raw shape: {beta_raw.shape}"
138
138
  raise ValidTimeStampError(msg)
139
139
 
140
+ def screen_sunbeam(self) -> None:
141
+ high_alt_mask = self.data["range"] > 10000
142
+ if not np.any(high_alt_mask):
143
+ return
144
+
145
+ is_data = ~self.data["beta"][:, high_alt_mask].mask
146
+ n_bins = 20
147
+
148
+ n_profiles, n_heights = is_data.shape
149
+ bin_size = n_heights // n_bins
150
+ reshaped = is_data[:, : bin_size * n_bins].reshape(n_profiles, n_bins, bin_size)
151
+
152
+ valid_profiles = np.any(reshaped, axis=2).sum(axis=1) < 15
153
+
154
+ for key, value in self.data.items():
155
+ if key == "time" or (isinstance(value, np.ndarray) and value.ndim == 2):
156
+ self.data[key] = value[valid_profiles]
157
+
140
158
 
141
159
  class NoisyData:
142
160
  def __init__(
cloudnetpy/version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 80
3
- PATCH = 0
3
+ PATCH = 1
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.80.0
3
+ Version: 1.80.1
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -9,7 +9,7 @@ cloudnetpy/metadata.py,sha256=lO7BCbVAzFoH3Nq-VuezYX0f7MnbG1Zp11g5GSiuQwM,6189
9
9
  cloudnetpy/output.py,sha256=gupxt4f_-eUrFsWMto8tnknoV-p9QauC9L6CJAqBILU,15988
10
10
  cloudnetpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cloudnetpy/utils.py,sha256=WczDeGN408XSgGeaRLXFmlLjgAS67lK1osV0YEuKmwo,32027
12
- cloudnetpy/version.py,sha256=3SiH4gJlcuEOGDz63kQkJlurcgqt5RcwIPvPtt8WVKg,72
12
+ cloudnetpy/version.py,sha256=3m_TWVm1w7D_LWUssqw3Dz6luV3AUQL5hIn7k2KVs78,72
13
13
  cloudnetpy/categorize/__init__.py,sha256=s-SJaysvVpVVo5kidiruWQO6p3gv2TXwY1wEHYO5D6I,44
14
14
  cloudnetpy/categorize/atmos_utils.py,sha256=RcmbKxm2COkE7WEya0mK3yX5rzUbrewRVh3ekm01RtM,10598
15
15
  cloudnetpy/categorize/attenuation.py,sha256=Y_-fzmQTltWTqIZTulJhovC7a6ifpMcaAazDJcnMIOc,990
@@ -35,8 +35,8 @@ cloudnetpy/categorize/attenuations/rain_attenuation.py,sha256=qazJzRyXf9vbjJhh4y
35
35
  cloudnetpy/instruments/__init__.py,sha256=PEgrrQNoiOuN_ctYilmt4LV2QCLg1likPjJdWtuGlLs,528
36
36
  cloudnetpy/instruments/basta.py,sha256=Lb_EhQTI93S5Bd9osDbCE_tC8gZreRsHz7D2_dFOjmE,3793
37
37
  cloudnetpy/instruments/bowtie.py,sha256=EyE8HAE8rjO7JelJDbQte_rnwE3VoVJVc6TBpSNK3IU,3930
38
- cloudnetpy/instruments/ceilo.py,sha256=gHCh8222Csso9JOaE2f9r5ydzq_DJv112M8qMBVBFcI,10442
39
- cloudnetpy/instruments/ceilometer.py,sha256=XS2hVJ7rn9WOUKq19wpNL5MJr59fKSEWHC_1pOE_Bm4,12323
38
+ cloudnetpy/instruments/ceilo.py,sha256=arXI7i8UiTVIk4N1P8Mnpgs_oXN79ReeBjpYuqqwL04,10473
39
+ cloudnetpy/instruments/ceilometer.py,sha256=8DzOUC7PUZYLfCC9t9LA5YSsF78xs4B4VjBLx6S-wDE,12980
40
40
  cloudnetpy/instruments/cl61d.py,sha256=0QMqXHIy0hn2mksAwTdaKMOaEWjsZmj7QZ8hCbcHwxE,2225
41
41
  cloudnetpy/instruments/cloudnet_instrument.py,sha256=SGPsRYYoGPoRoDY7hHJcKUVX0A23X0Telc00Fu01PnY,4495
42
42
  cloudnetpy/instruments/copernicus.py,sha256=hCphEKyFCc3f1uLRdjL2435kuh64M5q-V1bI68bzGbA,6528
@@ -117,10 +117,10 @@ cloudnetpy/products/lwc.py,sha256=sl6Al2tuH3KkCBrPbWTmuz3jlD5UQJ4D6qBsn1tt2CQ,18
117
117
  cloudnetpy/products/mie_lu_tables.nc,sha256=It4fYpqJXlqOgL8jeZ-PxGzP08PMrELIDVe55y9ob58,16637951
118
118
  cloudnetpy/products/mwr_tools.py,sha256=8HPZpQMTojKZP1JS1S83IE0sxmbDE9bxlaWoqmGnUZE,6199
119
119
  cloudnetpy/products/product_tools.py,sha256=uu4l6reuGbPcW3TgttbaSrqIKbyYGhBVTdnC7opKvmg,11101
120
- cloudnetpy-1.80.0.dist-info/licenses/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
120
+ cloudnetpy-1.80.1.dist-info/licenses/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
121
121
  docs/source/conf.py,sha256=IKiFWw6xhUd8NrCg0q7l596Ck1d61XWeVjIFHVSG9Og,1490
122
- cloudnetpy-1.80.0.dist-info/METADATA,sha256=fk5uizRi5azdU4nz8DQRzMMuOSvlEbR_ZW19xbXvOvI,5803
123
- cloudnetpy-1.80.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
- cloudnetpy-1.80.0.dist-info/entry_points.txt,sha256=HhY7LwCFk4qFgDlXx_Fy983ZTd831WlhtdPIzV-Y3dY,51
125
- cloudnetpy-1.80.0.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
126
- cloudnetpy-1.80.0.dist-info/RECORD,,
122
+ cloudnetpy-1.80.1.dist-info/METADATA,sha256=to7qpA_egtY91A4EKfa0SckgPWNMr2AkbZ2iWM8VYzA,5803
123
+ cloudnetpy-1.80.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ cloudnetpy-1.80.1.dist-info/entry_points.txt,sha256=HhY7LwCFk4qFgDlXx_Fy983ZTd831WlhtdPIzV-Y3dY,51
125
+ cloudnetpy-1.80.1.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
126
+ cloudnetpy-1.80.1.dist-info/RECORD,,