cloudnetpy 1.78.1__tar.gz → 1.78.3__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 (132) hide show
  1. {cloudnetpy-1.78.1/cloudnetpy.egg-info → cloudnetpy-1.78.3}/PKG-INFO +1 -1
  2. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/containers.py +3 -1
  3. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/radar.py +11 -0
  4. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/bowtie.py +17 -0
  5. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/version.py +1 -1
  6. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3/cloudnetpy.egg-info}/PKG-INFO +1 -1
  7. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/LICENSE +0 -0
  8. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/MANIFEST.in +0 -0
  9. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/README.md +0 -0
  10. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/__init__.py +0 -0
  11. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/__init__.py +0 -0
  12. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/atmos_utils.py +0 -0
  13. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuation.py +0 -0
  14. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  15. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  16. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  17. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  18. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  19. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/categorize.py +0 -0
  20. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/classify.py +0 -0
  21. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/disdrometer.py +0 -0
  22. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/droplet.py +0 -0
  23. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/falling.py +0 -0
  24. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/freezing.py +0 -0
  25. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/insects.py +0 -0
  26. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/itu.py +0 -0
  27. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/lidar.py +0 -0
  28. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/melting.py +0 -0
  29. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/model.py +0 -0
  30. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/categorize/mwr.py +0 -0
  31. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/cli.py +0 -0
  32. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/cloudnetarray.py +0 -0
  33. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/concat_lib.py +0 -0
  34. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/constants.py +0 -0
  35. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/datasource.py +0 -0
  36. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/exceptions.py +0 -0
  37. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/__init__.py +0 -0
  38. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/basta.py +0 -0
  39. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/ceilo.py +0 -0
  40. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/ceilometer.py +0 -0
  41. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/cl61d.py +0 -0
  42. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  43. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/copernicus.py +0 -0
  44. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  45. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  46. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  47. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  48. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/fd12p.py +0 -0
  49. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/galileo.py +0 -0
  50. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/hatpro.py +0 -0
  51. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/instruments.py +0 -0
  52. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/lufft.py +0 -0
  53. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/mira.py +0 -0
  54. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/mrr.py +0 -0
  55. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/nc_lidar.py +0 -0
  56. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/nc_radar.py +0 -0
  57. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/pollyxt.py +0 -0
  58. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/radiometrics.py +0 -0
  59. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/rain_e_h3.py +0 -0
  60. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/rpg.py +0 -0
  61. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/rpg_reader.py +0 -0
  62. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/toa5.py +0 -0
  63. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/vaisala.py +0 -0
  64. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/instruments/weather_station.py +0 -0
  65. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/metadata.py +0 -0
  66. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/__init__.py +0 -0
  67. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  68. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/metadata.py +0 -0
  69. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  70. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  71. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  72. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  73. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  74. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  75. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  76. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  77. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  78. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  79. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  80. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  81. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  82. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  83. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  84. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  85. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  86. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  87. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  88. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  89. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  90. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  91. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  92. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  93. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  94. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  95. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  96. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  97. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  98. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  99. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  100. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  101. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  102. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  103. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  104. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  105. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/model_evaluation/utils.py +0 -0
  106. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/output.py +0 -0
  107. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/plotting/__init__.py +0 -0
  108. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/plotting/plot_meta.py +0 -0
  109. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/plotting/plotting.py +0 -0
  110. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/__init__.py +0 -0
  111. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/classification.py +0 -0
  112. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/der.py +0 -0
  113. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/drizzle.py +0 -0
  114. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/drizzle_error.py +0 -0
  115. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/drizzle_tools.py +0 -0
  116. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/epsilon.py +0 -0
  117. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/ier.py +0 -0
  118. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/iwc.py +0 -0
  119. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/lwc.py +0 -0
  120. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  121. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/mwr_tools.py +0 -0
  122. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/products/product_tools.py +0 -0
  123. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/py.typed +0 -0
  124. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy/utils.py +0 -0
  125. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  126. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  127. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy.egg-info/entry_points.txt +0 -0
  128. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy.egg-info/requires.txt +0 -0
  129. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/cloudnetpy.egg-info/top_level.txt +0 -0
  130. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/docs/source/conf.py +0 -0
  131. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/pyproject.toml +0 -0
  132. {cloudnetpy-1.78.1 → cloudnetpy-1.78.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.78.1
3
+ Version: 1.78.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -89,7 +89,9 @@ class ClassData:
89
89
  rain_from_disdrometer = self._find_rain_from_disdrometer()
90
90
  ind = ~rain_from_disdrometer.mask
91
91
  is_rain[ind] = rain_from_disdrometer[ind]
92
- is_positive_temp = self.tw[:, 0] > T0 + 5 # Filter snowfall
92
+ mask = ma.getmaskarray(self.tw)
93
+ first_valid_ind = np.nonzero(np.all(~mask, axis=0))[0][0]
94
+ is_positive_temp = self.tw[:, first_valid_ind] > T0 + 5 # Filter snowfall
93
95
  return is_rain & is_positive_temp
94
96
 
95
97
  def _find_rain_from_radar_echo(self) -> np.ndarray:
@@ -357,6 +357,16 @@ class Radar(DataSource):
357
357
  )
358
358
  # store this in the file
359
359
  self.append_data(max_folding_binned, "nyquist_velocity")
360
+
361
+ if "correction_bits" in self.dataset.variables:
362
+ bits = self.dataset.variables["correction_bits"][:]
363
+ dealiasing_bit = utils.isbit(bits, 0)
364
+ if ma.all(dealiasing_bit):
365
+ return utils.rebin_2d(self.time, data, time_new, "mean")[0]
366
+ if ma.any(dealiasing_bit):
367
+ msg = "Data are only party dealiased. Deal with this later."
368
+ raise NotImplementedError(msg)
369
+
360
370
  # with original shape (repeat maximum value for each point in every bin)
361
371
  max_folding_full, _ = utils.rebin_2d(
362
372
  self.time,
@@ -365,6 +375,7 @@ class Radar(DataSource):
365
375
  "max",
366
376
  keepdim=True,
367
377
  )
378
+
368
379
  data_scaled = data * (np.pi / max_folding_full)
369
380
  vel_x = ma.cos(data_scaled)
370
381
  vel_y = ma.sin(data_scaled)
@@ -1,6 +1,7 @@
1
1
  from os import PathLike
2
2
 
3
3
  import numpy as np
4
+ from numpy import ma
4
5
 
5
6
  from cloudnetpy import output
6
7
  from cloudnetpy.constants import G_TO_KG, MM_H_TO_M_S
@@ -8,6 +9,7 @@ from cloudnetpy.exceptions import ValidTimeStampError
8
9
  from cloudnetpy.instruments.instruments import FMCW94
9
10
  from cloudnetpy.instruments.nc_radar import NcRadar
10
11
  from cloudnetpy.metadata import MetaData
12
+ from cloudnetpy.utils import bit_field_definition
11
13
 
12
14
 
13
15
  def bowtie2nc(
@@ -63,6 +65,7 @@ def bowtie2nc(
63
65
  bowtie.convert_units()
64
66
  bowtie.fix_chirp_start_indices()
65
67
  bowtie.test_if_all_masked()
68
+ bowtie.add_correction_bits()
66
69
  attributes = output.add_time_attribute(ATTRIBUTES, bowtie.date)
67
70
  output.update_attributes(bowtie.data, attributes)
68
71
  return output.save_level1b(bowtie, output_file, uuid)
@@ -84,6 +87,11 @@ class Bowtie(NcRadar):
84
87
  self.data["chirp_start_indices"].data = np.array(array, dtype=np.int32)
85
88
  self.data["chirp_start_indices"].data_type = "int32"
86
89
 
90
+ def add_correction_bits(self):
91
+ bits = ma.ones(self.data["v"].data.shape, dtype=np.uint32)
92
+ bits.mask = self.data["v"].data.mask
93
+ self.append_data(bits, "correction_bits")
94
+
87
95
  def check_date(self, date: str):
88
96
  if "-".join(self.date) != date:
89
97
  raise ValidTimeStampError
@@ -100,4 +108,13 @@ ATTRIBUTES: dict = {
100
108
  "applied to it."
101
109
  ),
102
110
  ),
111
+ "correction_bits": MetaData(
112
+ long_name="Correction bits",
113
+ units="1",
114
+ definition=bit_field_definition({0: """Doppler velocity is dealiased."""}),
115
+ comment=(
116
+ "This parameter is a bit field that indicates which corrections have\n"
117
+ "been applied to radar measurements."
118
+ ),
119
+ ),
103
120
  }
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 78
3
- PATCH = 1
3
+ PATCH = 3
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.78.1
3
+ Version: 1.78.3
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
File without changes