cloudnetpy 1.66.2__py3-none-any.whl → 1.66.3__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.
@@ -67,6 +67,9 @@ def mira2nc(
67
67
  mira.sort_timestamps()
68
68
  mira.remove_duplicate_timestamps()
69
69
  mira.linear_to_db(("Zh", "ldr", "SNR"))
70
+ n_profiles = utils.n_elements(mira.time, 5, "time")
71
+ valid_ind = utils.remove_masked_blocks(mira.data["Zh"][:], limit=n_profiles)
72
+ mira.screen_time_indices(valid_ind)
70
73
  mira.screen_by_snr()
71
74
  mira.screen_invalid_ldr()
72
75
  mira.mask_invalid_data()
cloudnetpy/utils.py CHANGED
@@ -1017,3 +1017,14 @@ def bit_field_definition(definitions: dict[T, str]) -> str:
1017
1017
 
1018
1018
  def path_lengths_from_ground(height: np.ndarray) -> np.ndarray:
1019
1019
  return np.diff(height, prepend=0)
1020
+
1021
+
1022
+ def remove_masked_blocks(array: ma.MaskedArray, limit: int = 50) -> np.ndarray:
1023
+ """Filters out large blocks of completely masked profiles."""
1024
+ if array.ndim == 1:
1025
+ return np.array(not ma.all(array.mask))
1026
+ masked_profiles = ma.all(array.mask, axis=1)
1027
+ labeled_array, _ = ndimage.label(masked_profiles)
1028
+ mask = np.bincount(labeled_array) < limit
1029
+ mask[0] = True
1030
+ return mask[labeled_array]
cloudnetpy/version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 66
3
- PATCH = 2
3
+ PATCH = 3
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.2
3
+ Version: 1.66.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -7,8 +7,8 @@ cloudnetpy/exceptions.py,sha256=ns48useL9RN3mPh7CqIiLA19VI9OmVbyRsKTkwbThF8,1760
7
7
  cloudnetpy/metadata.py,sha256=v_VDo2vbdTxB0zIsfP69IcrwSKiRlLpsGdq6JPI4CoA,5306
8
8
  cloudnetpy/output.py,sha256=YrWRBEZg0QNZRVnd9ziAziH-eJSh7O5JuWiH4ZxM0_s,15584
9
9
  cloudnetpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- cloudnetpy/utils.py,sha256=1gne8Qqa-e4CNNJMynWr4LVirGK0Be-KcskVZMD72ac,28621
11
- cloudnetpy/version.py,sha256=QNhVoqczSkHAVtreP1GvqhEji08PJijyS3ffL4FpI08,72
10
+ cloudnetpy/utils.py,sha256=RIqxZoB62JmMOOfYH6_fqpaudH8wqS9WDbpnR2HCcTM,29040
11
+ cloudnetpy/version.py,sha256=zhcZNAONGXJka0B3BYGCqhzx8q3OnD5Qn1D-g_JSQh4,72
12
12
  cloudnetpy/categorize/__init__.py,sha256=s-SJaysvVpVVo5kidiruWQO6p3gv2TXwY1wEHYO5D6I,44
13
13
  cloudnetpy/categorize/atmos_utils.py,sha256=9-ymI6i1xASf-XAFyO87FaTfvq6bF89N1i_27OkUp-M,10104
14
14
  cloudnetpy/categorize/attenuation.py,sha256=Y_-fzmQTltWTqIZTulJhovC7a6ifpMcaAazDJcnMIOc,990
@@ -43,7 +43,7 @@ cloudnetpy/instruments/galileo.py,sha256=yQBedd7dmDnwuWi1MtXOsg4-RyRx0uRAXumCY4Y
43
43
  cloudnetpy/instruments/hatpro.py,sha256=DzCWzTJxTc5BSOgoeyM8RjYkSXX6NDi3QXgKRp0uxlI,8759
44
44
  cloudnetpy/instruments/instruments.py,sha256=jG5TYnZ8bdCZXnI303ZsaJBEdSKaIjKMbkGtnq6kQX0,3261
45
45
  cloudnetpy/instruments/lufft.py,sha256=ugXF6pssHAAz1Y_hqPdpKuluAjxxHSR88xBmQuS6RlI,3705
46
- cloudnetpy/instruments/mira.py,sha256=EyzEBTpWfDlgaspZVuIfaP4l73GYSVnSzEzBZc0lZNg,9333
46
+ cloudnetpy/instruments/mira.py,sha256=s1gexccWoYeQ8qX0IFiKjmoVPqN4hOT5RNVLo5ODSx0,9534
47
47
  cloudnetpy/instruments/mrr.py,sha256=efxqsxy0G-qj4uCWVZztgNwGxYooSxIpI6K2tYF36GA,5833
48
48
  cloudnetpy/instruments/nc_lidar.py,sha256=5gQG9PApnNPrHmS9_zanl8HEYIQuGRpbnzC3wfTcOyQ,1705
49
49
  cloudnetpy/instruments/nc_radar.py,sha256=7bKwIZZHM-RagW9AEdgldweaulfy9n61N3RH5fopTqo,6936
@@ -114,8 +114,8 @@ cloudnetpy/products/mie_lu_tables.nc,sha256=It4fYpqJXlqOgL8jeZ-PxGzP08PMrELIDVe5
114
114
  cloudnetpy/products/mwr_tools.py,sha256=rd7UC67O4fsIE5SaHVZ4qWvUJTj41ZGwgQWPwZzOM14,5377
115
115
  cloudnetpy/products/product_tools.py,sha256=01Zc6xV8CSuYcIcLpchFf5POL3_c629-YMNDZJ51udA,10853
116
116
  docs/source/conf.py,sha256=IKiFWw6xhUd8NrCg0q7l596Ck1d61XWeVjIFHVSG9Og,1490
117
- cloudnetpy-1.66.2.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
118
- cloudnetpy-1.66.2.dist-info/METADATA,sha256=0AHK4Y0_sA73jUp9MTRFixzP4dp5nX_SXm-IJrA3jZM,5784
119
- cloudnetpy-1.66.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
120
- cloudnetpy-1.66.2.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
121
- cloudnetpy-1.66.2.dist-info/RECORD,,
117
+ cloudnetpy-1.66.3.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
118
+ cloudnetpy-1.66.3.dist-info/METADATA,sha256=f7Ll3J-iSnH8OvAHj_BLVC8md7Vwa1czXPI4RHbbb2Q,5784
119
+ cloudnetpy-1.66.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
120
+ cloudnetpy-1.66.3.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
121
+ cloudnetpy-1.66.3.dist-info/RECORD,,