cloudnetpy 1.86.1__tar.gz → 1.86.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.

Potentially problematic release.


This version of cloudnetpy might be problematic. Click here for more details.

Files changed (133) hide show
  1. {cloudnetpy-1.86.1/cloudnetpy.egg-info → cloudnetpy-1.86.3}/PKG-INFO +1 -1
  2. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/concat_lib.py +12 -1
  3. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/mira.py +11 -2
  4. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/version.py +1 -1
  5. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3/cloudnetpy.egg-info}/PKG-INFO +1 -1
  6. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/LICENSE +0 -0
  7. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/MANIFEST.in +0 -0
  8. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/README.md +0 -0
  9. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/__init__.py +0 -0
  10. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/__init__.py +0 -0
  11. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/atmos_utils.py +0 -0
  12. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuation.py +0 -0
  13. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  14. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  15. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  16. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  17. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  18. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/categorize.py +0 -0
  19. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/classify.py +0 -0
  20. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/containers.py +0 -0
  21. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/disdrometer.py +0 -0
  22. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/droplet.py +0 -0
  23. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/falling.py +0 -0
  24. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/freezing.py +0 -0
  25. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/insects.py +0 -0
  26. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/itu.py +0 -0
  27. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/lidar.py +0 -0
  28. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/melting.py +0 -0
  29. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/model.py +0 -0
  30. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/mwr.py +0 -0
  31. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/categorize/radar.py +0 -0
  32. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/cli.py +0 -0
  33. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/cloudnetarray.py +0 -0
  34. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/constants.py +0 -0
  35. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/datasource.py +0 -0
  36. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/exceptions.py +0 -0
  37. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/__init__.py +0 -0
  38. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/basta.py +0 -0
  39. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/bowtie.py +0 -0
  40. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/ceilo.py +0 -0
  41. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/ceilometer.py +0 -0
  42. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/cl61d.py +0 -0
  43. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  44. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/copernicus.py +0 -0
  45. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/da10.py +0 -0
  46. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  47. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  48. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  49. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  50. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/fd12p.py +0 -0
  51. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/galileo.py +0 -0
  52. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/hatpro.py +0 -0
  53. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/instruments.py +0 -0
  54. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/lufft.py +0 -0
  55. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/mrr.py +0 -0
  56. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/nc_lidar.py +0 -0
  57. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/nc_radar.py +0 -0
  58. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/pollyxt.py +0 -0
  59. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/radiometrics.py +0 -0
  60. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/rain_e_h3.py +0 -0
  61. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/rpg.py +0 -0
  62. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/rpg_reader.py +0 -0
  63. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/toa5.py +0 -0
  64. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/vaisala.py +0 -0
  65. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/instruments/weather_station.py +0 -0
  66. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/metadata.py +0 -0
  67. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/__init__.py +0 -0
  68. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  69. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/metadata.py +0 -0
  70. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  71. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  72. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  73. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  74. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  75. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  76. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  77. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  78. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  79. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  80. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  81. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  82. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  83. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  84. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  85. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  86. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  87. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  88. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  89. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  90. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  91. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  92. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  93. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  94. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  95. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  96. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  97. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  98. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  99. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  100. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  101. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  102. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  103. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  104. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  105. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  106. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/model_evaluation/utils.py +0 -0
  107. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/output.py +0 -0
  108. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/plotting/__init__.py +0 -0
  109. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/plotting/plot_meta.py +0 -0
  110. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/plotting/plotting.py +0 -0
  111. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/__init__.py +0 -0
  112. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/classification.py +0 -0
  113. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/der.py +0 -0
  114. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/drizzle.py +0 -0
  115. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/drizzle_error.py +0 -0
  116. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/drizzle_tools.py +0 -0
  117. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/epsilon.py +0 -0
  118. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/ier.py +0 -0
  119. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/iwc.py +0 -0
  120. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/lwc.py +0 -0
  121. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  122. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/mwr_tools.py +0 -0
  123. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/products/product_tools.py +0 -0
  124. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/py.typed +0 -0
  125. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy/utils.py +0 -0
  126. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  127. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  128. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy.egg-info/entry_points.txt +0 -0
  129. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy.egg-info/requires.txt +0 -0
  130. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/cloudnetpy.egg-info/top_level.txt +0 -0
  131. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/docs/source/conf.py +0 -0
  132. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/pyproject.toml +0 -0
  133. {cloudnetpy-1.86.1 → cloudnetpy-1.86.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.86.1
3
+ Version: 1.86.3
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -132,13 +132,24 @@ class _Concat:
132
132
  concat_dimension: str = "time",
133
133
  interp_dim: str = "range",
134
134
  ) -> None:
135
- self.filenames = sorted(map(Path, filenames), key=lambda f: f.name)
136
135
  self.concat_dimension = concat_dimension
137
136
  self.interp_dim = interp_dim
137
+ self.filenames = sorted(
138
+ [Path(filename) for filename in filenames if self._is_valid_file(filename)],
139
+ key=lambda f: f.name,
140
+ )
138
141
  self.first_filename = self.filenames[0]
139
142
  self.first_file = netCDF4.Dataset(self.first_filename)
140
143
  self.concatenated_file = self._init_output_file(output_file)
141
144
 
145
+ def _is_valid_file(self, filename: str | PathLike) -> bool:
146
+ # Added to handle strange .znc files with no time and huge range
147
+ # dimension resulting in large memory usage (e.g. Jülich 2019-05-18).
148
+ with netCDF4.Dataset(filename) as nc:
149
+ return (
150
+ nc[self.concat_dimension].size > 0 and nc[self.interp_dim].size < 10_000
151
+ )
152
+
142
153
  def create_global_attributes(self, new_attributes: dict | None) -> None:
143
154
  """Copies global attributes from one of the source files."""
144
155
  _copy_attributes(self.first_file, self.concatenated_file)
@@ -3,6 +3,7 @@
3
3
  import datetime
4
4
  import logging
5
5
  import os
6
+ import re
6
7
  from collections import OrderedDict
7
8
  from collections.abc import Sequence
8
9
  from os import PathLike
@@ -224,7 +225,7 @@ def _parse_input_files(
224
225
  )
225
226
  raise FileNotFoundError(msg)
226
227
 
227
- filetypes = list({f.split(".")[-1].lower() for f in valid_files})
228
+ filetypes = list({_get_suffix(f) for f in valid_files})
228
229
 
229
230
  if len(filetypes) > 1:
230
231
  err_msg = "Mixed mmclx and znc files. Please use only one filetype."
@@ -241,7 +242,7 @@ def _parse_input_files(
241
242
  )
242
243
  else:
243
244
  input_filename = input_files
244
- keymap = _get_keymap(str(input_filename).split(".")[-1])
245
+ keymap = _get_keymap(_get_suffix(input_filename))
245
246
 
246
247
  return input_filename, keymap
247
248
 
@@ -258,6 +259,13 @@ def _get_ignored_variables(filetype: str) -> list | None:
258
259
  return keymaps.get(filetype.lower(), keymaps.get("mmclx"))
259
260
 
260
261
 
262
+ def _get_suffix(filename: str | PathLike) -> str:
263
+ m = re.search(r"\.(\w+)(\.\d+)?$", str(filename))
264
+ if m is None:
265
+ return ""
266
+ return m[1].lower()
267
+
268
+
261
269
  def _get_keymap(filetype: str) -> dict[str, str]:
262
270
  """Returns a dictionary mapping the variables in the raw data to the processed
263
271
  Cloudnet file.
@@ -284,6 +292,7 @@ def _get_keymap(filetype: str) -> dict[str, str]:
284
292
  ("nave", "nave"),
285
293
  ("prf", "prf"),
286
294
  ("rg0", "rg0"),
295
+ ("tpow", "tpow"),
287
296
  ],
288
297
  ),
289
298
  "mmclx": OrderedDict(
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 86
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.86.1
3
+ Version: 1.86.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