cloudnetpy 1.66.2__py3-none-any.whl → 1.66.4__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()
@@ -897,10 +897,10 @@ def _reformat_units(unit: str) -> str:
897
897
 
898
898
 
899
899
  def _get_max_gap_in_minutes(figure_data: FigureData) -> float:
900
- source = getattr(figure_data.file, "source", "")
900
+ source = getattr(figure_data.file, "source", "").lower()
901
901
  file_type = getattr(figure_data.file, "cloudnet_file_type", "")
902
902
  max_allowed_gap = {
903
- "model": 181 if "gdas1" in source else 61,
903
+ "model": 181 if "gdas1" in source or "ecmwf open" in source else 61,
904
904
  "mwr-multi": 35,
905
905
  "weather-station": 12,
906
906
  "doppler-lidar-wind": 75,
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 = 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.66.2
3
+ Version: 1.66.4
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=qc-qhTq032xVqcHhGnWSa0UG4HwP1_BSs5hRJCjmpMA,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
@@ -100,7 +100,7 @@ cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py,sha256=Ra3r4V
100
100
  cloudnetpy/model_evaluation/tests/unit/test_tools.py,sha256=Ia_VrLdV2NstX5gbx_3AZTOAlrgLAy_xFZ8fHYVX0xI,3817
101
101
  cloudnetpy/plotting/__init__.py,sha256=lg9Smn4BI0dVBgnDLC3JVJ4GmwoSnO-qoSd4ApvwV6Y,107
102
102
  cloudnetpy/plotting/plot_meta.py,sha256=ZvaKU3eXy1KFxQomnsEu3mCYpwwBYKAYk7oAwOzAGSg,16143
103
- cloudnetpy/plotting/plotting.py,sha256=MoZhO4uKUvNCvlDFnQ6zr81y0NeFLvsvM0MIPF5zeBw,35320
103
+ cloudnetpy/plotting/plotting.py,sha256=7xkCBtzBToghaTcbbPBqDskQdTiiR44t8QcdeC0dENY,35354
104
104
  cloudnetpy/products/__init__.py,sha256=2hRb5HG9hNrxH1if5laJkLeFeaZCd5W1q3hh4ewsX0E,273
105
105
  cloudnetpy/products/classification.py,sha256=AKb9GCatvhS5KR0c9LfN96nUvzi02175ZCQlvMH1Dws,8077
106
106
  cloudnetpy/products/der.py,sha256=soypE7uSEP4uHUCCQVEhyXsKY6e9mzV9B_2S5GUizqk,12729
@@ -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.4.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
118
+ cloudnetpy-1.66.4.dist-info/METADATA,sha256=ZonRwFbO7fkwLDachNofxBgGK5TPHL-twxWpHdP1wRs,5784
119
+ cloudnetpy-1.66.4.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
120
+ cloudnetpy-1.66.4.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
121
+ cloudnetpy-1.66.4.dist-info/RECORD,,