cloudnetpy 1.80.3__tar.gz → 1.80.4__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.80.3/cloudnetpy.egg-info → cloudnetpy-1.80.4}/PKG-INFO +1 -1
  2. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuations/melting_attenuation.py +1 -0
  3. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/categorize.py +2 -3
  4. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/classify.py +2 -3
  5. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/melting.py +1 -1
  6. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/mwr.py +1 -1
  7. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/cli.py +1 -1
  8. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/fd12p.py +2 -2
  9. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/rpg.py +2 -4
  10. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/rpg_reader.py +2 -2
  11. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/weather_station.py +1 -1
  12. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/plotting/plot_tools.py +1 -4
  13. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/plotting/plotting.py +4 -4
  14. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/epsilon.py +1 -1
  15. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/version.py +1 -1
  16. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4/cloudnetpy.egg-info}/PKG-INFO +1 -1
  17. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/pyproject.toml +2 -0
  18. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/LICENSE +0 -0
  19. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/MANIFEST.in +0 -0
  20. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/README.md +0 -0
  21. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/__init__.py +0 -0
  22. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/__init__.py +0 -0
  23. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/atmos_utils.py +0 -0
  24. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuation.py +0 -0
  25. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  26. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  27. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  28. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  29. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/containers.py +0 -0
  30. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/disdrometer.py +0 -0
  31. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/droplet.py +0 -0
  32. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/falling.py +0 -0
  33. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/freezing.py +0 -0
  34. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/insects.py +0 -0
  35. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/itu.py +0 -0
  36. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/lidar.py +0 -0
  37. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/model.py +0 -0
  38. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/categorize/radar.py +0 -0
  39. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/cloudnetarray.py +0 -0
  40. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/concat_lib.py +0 -0
  41. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/constants.py +0 -0
  42. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/datasource.py +0 -0
  43. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/exceptions.py +0 -0
  44. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/__init__.py +0 -0
  45. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/basta.py +0 -0
  46. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/bowtie.py +0 -0
  47. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/ceilo.py +0 -0
  48. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/ceilometer.py +0 -0
  49. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/cl61d.py +0 -0
  50. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  51. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/copernicus.py +0 -0
  52. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  53. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  54. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  55. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  56. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/galileo.py +0 -0
  57. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/hatpro.py +0 -0
  58. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/instruments.py +0 -0
  59. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/lufft.py +0 -0
  60. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/mira.py +0 -0
  61. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/mrr.py +0 -0
  62. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/nc_lidar.py +0 -0
  63. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/nc_radar.py +0 -0
  64. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/pollyxt.py +0 -0
  65. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/radiometrics.py +0 -0
  66. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/rain_e_h3.py +0 -0
  67. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/toa5.py +0 -0
  68. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/instruments/vaisala.py +0 -0
  69. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/metadata.py +0 -0
  70. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/__init__.py +0 -0
  71. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  72. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/metadata.py +0 -0
  73. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  74. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  75. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  76. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  77. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  78. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  79. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  80. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  81. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  82. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  83. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  84. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  85. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  86. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  87. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  88. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  89. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  90. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  91. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  92. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  93. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  94. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  95. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  96. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  97. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  98. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  99. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  100. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  101. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  102. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  103. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  104. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  105. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  106. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  107. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  108. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/model_evaluation/utils.py +0 -0
  109. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/output.py +0 -0
  110. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/plotting/__init__.py +0 -0
  111. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/plotting/plot_meta.py +0 -0
  112. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/__init__.py +0 -0
  113. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/classification.py +0 -0
  114. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/der.py +0 -0
  115. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/drizzle.py +0 -0
  116. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/drizzle_error.py +0 -0
  117. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/drizzle_tools.py +0 -0
  118. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/ier.py +0 -0
  119. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/iwc.py +0 -0
  120. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/lwc.py +0 -0
  121. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  122. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/mwr_tools.py +0 -0
  123. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/products/product_tools.py +0 -0
  124. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/py.typed +0 -0
  125. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy/utils.py +0 -0
  126. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  127. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  128. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy.egg-info/entry_points.txt +0 -0
  129. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy.egg-info/requires.txt +0 -0
  130. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/cloudnetpy.egg-info/top_level.txt +0 -0
  131. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/docs/source/conf.py +0 -0
  132. {cloudnetpy-1.80.3 → cloudnetpy-1.80.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.80.3
3
+ Version: 1.80.4
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -29,6 +29,7 @@ def calc_melting_attenuation(
29
29
  )
30
30
 
31
31
  rainfall_rate = data.disdrometer.data["rainfall_rate"][:]
32
+ rainfall_rate[is_rain == 0] = ma.masked
32
33
  frequency = data.radar.radar_frequency
33
34
 
34
35
  attenuation_array = _calc_melting_attenuation(rainfall_rate, frequency)
@@ -240,7 +240,7 @@ def _save_cat(
240
240
  extra=extra_references,
241
241
  )
242
242
  if is_voodoo:
243
- import voodoonet.version
243
+ import voodoonet.version # noqa: PLC0415
244
244
 
245
245
  nc.voodoonet_version = voodoonet.version.__version__
246
246
  output.add_source_instruments(nc, data_obs)
@@ -325,8 +325,7 @@ COMMENTS = {
325
325
  "have\n a reflectivity of 0 dBZ at all frequencies."
326
326
  ),
327
327
  "bias": (
328
- "This variable is an estimate of the one-standard-deviation\n"
329
- "calibration error."
328
+ "This variable is an estimate of the one-standard-deviation\ncalibration error."
330
329
  ),
331
330
  "insect_prob": (
332
331
  "Ad-hoc estimation of the probability that the pixel contains insects."
@@ -64,10 +64,9 @@ def classify_measurements(data: Observations) -> ClassificationResult:
64
64
  if "rpg-fmcw-94" not in obs.radar_type.lower():
65
65
  msg = "VoodooNet is only implemented for RPG-FMCW-94 radar."
66
66
  raise NotImplementedError(msg)
67
- import voodoonet
68
- from voodoonet.utils import VoodooOptions
67
+ import voodoonet # noqa: PLC0415
69
68
 
70
- options = VoodooOptions(progress_bar=False)
69
+ options = voodoonet.VoodooOptions(progress_bar=False)
71
70
  target_time = voodoonet.utils.decimal_hour2unix(obs.date, obs.time)
72
71
  liquid_prob = voodoonet.infer(
73
72
  obs.lv0_files, target_time=target_time, options=options
@@ -151,7 +151,7 @@ def _find_melting_layer_from_v(
151
151
  v_prof[base] < -2,
152
152
  ]
153
153
  if all(conditions):
154
- base = int(round(top - (top - base) / 2))
154
+ base = round(top - (top - base) / 2)
155
155
  return np.arange(base, top)
156
156
  return None
157
157
 
@@ -45,6 +45,6 @@ class Mwr(DataSource):
45
45
  self.data["lwp_error"].comment = (
46
46
  "This variable is a rough estimate of the one-standard-deviation\n"
47
47
  f"error in liquid water path, calculated as a combination of\n"
48
- f"a {bias} g m-2 linear error and a {round(random_error*100)} %\n"
48
+ f"a {bias} g m-2 linear error and a {round(random_error * 100)} %\n"
49
49
  "fractional error."
50
50
  )
@@ -519,7 +519,7 @@ def _process_mwrpy_product(
519
519
  filename = f"{args.date}_{args.site}_{product}.nc"
520
520
  output_file = _create_output_folder("geophysical", args) / filename
521
521
  module = importlib.import_module("cloudnetpy.products")
522
- getattr(module, f"generate_{product.replace('-','_')}")(mwr_l1c_file, output_file)
522
+ getattr(module, f"generate_{product.replace('-', '_')}")(mwr_l1c_file, output_file)
523
523
  logging.info("Processed %s: %s", product, output_file)
524
524
  return str(output_file)
525
525
 
@@ -107,9 +107,9 @@ class FD12P(CSVFile):
107
107
  logging.info("Skipped %d lines", invalid_lines)
108
108
  for key in ("visibility", "synop_WaWa", "snowfall_amount"):
109
109
  values = np.array(
110
- [0 if x is math.nan else x for x in self._data[key]], dtype=np.int32
110
+ [0 if math.isnan(x) else x for x in self._data[key]], dtype=np.int32
111
111
  )
112
- mask = np.array([x is math.nan for x in self._data[key]])
112
+ mask = np.array([math.isnan(x) for x in self._data[key]])
113
113
  self._data[key] = ma.array(values, mask=mask)
114
114
  self._data["snowfall_amount"] = self._data["snowfall_amount"].astype(np.float32)
115
115
  if expected_date:
@@ -156,10 +156,8 @@ def _mask_invalid_data(data_in: dict) -> dict:
156
156
  fill_values = (-999, 1e-10)
157
157
  extra_keys = ("air_temperature", "air_pressure")
158
158
  for name in data:
159
- if (
160
- np.issubdtype(data[name].dtype, np.integer)
161
- or data[name].ndim < 2
162
- and name not in extra_keys
159
+ if np.issubdtype(data[name].dtype, np.integer) or (
160
+ data[name].ndim < 2 and name not in extra_keys
163
161
  ):
164
162
  continue
165
163
  data[name] = ma.masked_equal(data[name], 0)
@@ -242,7 +242,7 @@ class HatproBinLwp(HatproBin):
242
242
  elif self.header["file_code"] == 934501000:
243
243
  self.version = 2
244
244
  else:
245
- msg = f'Unknown HATPRO version. {self.header["file_code"]}'
245
+ msg = f"Unknown HATPRO version. {self.header['file_code']}"
246
246
  raise ValueError(msg)
247
247
 
248
248
  def _read_data(self, file) -> None:
@@ -281,7 +281,7 @@ class HatproBinIwv(HatproBin):
281
281
  elif self.header["file_code"] == 594811000:
282
282
  self.version = 2
283
283
  else:
284
- msg = f'Unknown HATPRO version. {self.header["file_code"]}'
284
+ msg = f"Unknown HATPRO version. {self.header['file_code']}"
285
285
  raise ValueError(msg)
286
286
 
287
287
  def _read_data(self, file) -> None:
@@ -626,7 +626,7 @@ def _parse_sirta(filename: str | PathLike):
626
626
  if m is None:
627
627
  continue
628
628
  if m[1] != str(len(columns) + 1):
629
- msg = f"Expected column {m[1]}, found {len(columns)+1}"
629
+ msg = f"Expected column {m[1]}, found {len(columns) + 1}"
630
630
  raise ValueError(msg)
631
631
  columns.append(m[2])
632
632
  output[m[2]] = []
@@ -14,10 +14,7 @@ def parse_wanted_names(
14
14
  advance: bool = False,
15
15
  ) -> tuple[list, list]:
16
16
  """Returns standard and advection lists of product types to plot."""
17
- if variables:
18
- names = variables
19
- else:
20
- names = parse_dataset_keys(nc_file, name, advance=advance, model=model)
17
+ names = variables or parse_dataset_keys(nc_file, name, advance=advance, model=model)
21
18
  standard_n = [n for n in names if name in n and "adv" not in n]
22
19
  standard_n = sort_model2first_element(standard_n, model)
23
20
  advection_n = [n for n in names if name in n and "adv" in n]
@@ -100,10 +100,10 @@ class Dimensions:
100
100
  .translated(-tightbbox.x0, -tightbbox.y0)
101
101
  .extents
102
102
  )
103
- self.margin_top = int(self.height - round(y1))
104
- self.margin_right = int(self.width - round(x1) - 1)
105
- self.margin_bottom = int(round(y0) - 1)
106
- self.margin_left = int(round(x0))
103
+ self.margin_top = self.height - round(y1)
104
+ self.margin_right = self.width - round(x1) - 1
105
+ self.margin_bottom = round(y0) - 1
106
+ self.margin_left = round(x0)
107
107
 
108
108
 
109
109
  class FigureData:
@@ -174,7 +174,7 @@ def _infer_pulse_repetition_frequency(range_: npt.NDArray[np.float64]):
174
174
  return 15e3
175
175
  if round_trip_time / T_LOW < 1:
176
176
  return 10e3
177
- msg = f"Suspiciously large range ({dist}m). " "Cannot infer pulse repetition rate"
177
+ msg = f"Suspiciously large range ({dist}m). Cannot infer pulse repetition rate"
178
178
  raise ValueError(msg)
179
179
 
180
180
 
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 80
3
- PATCH = 3
3
+ PATCH = 4
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.3
3
+ Version: 1.80.4
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -80,9 +80,11 @@ ignore = [
80
80
  "DTZ00", # do not check timezone info
81
81
  "FIX002", # TODOs
82
82
  "ISC001", # Formatter wants me
83
+ "LOG015", # call on root logger
83
84
  "N8", # uppercase variable names
84
85
  "PD011", # false positive
85
86
  "PERF", # try except in loop
87
+ "PLC0206", # dict.items not used
86
88
  "PLR", # too many arguments etc.
87
89
  "PTH", # use pathlib, fix me later
88
90
  "RUF002", # unicode in doc string
File without changes
File without changes
File without changes
File without changes