cloudnetpy 1.65.0__tar.gz → 1.65.1__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 (121) hide show
  1. {cloudnetpy-1.65.0/cloudnetpy.egg-info → cloudnetpy-1.65.1}/PKG-INFO +1 -1
  2. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/categorize.py +29 -26
  3. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/hatpro.py +4 -0
  4. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/version.py +1 -1
  5. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1/cloudnetpy.egg-info}/PKG-INFO +1 -1
  6. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/LICENSE +0 -0
  7. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/MANIFEST.in +0 -0
  8. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/README.md +0 -0
  9. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/__init__.py +0 -0
  10. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/__init__.py +0 -0
  11. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/atmos.py +0 -0
  12. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/atmos_utils.py +0 -0
  13. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/classify.py +0 -0
  14. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/containers.py +0 -0
  15. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/disdrometer.py +0 -0
  16. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/droplet.py +0 -0
  17. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/falling.py +0 -0
  18. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/freezing.py +0 -0
  19. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/insects.py +0 -0
  20. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/lidar.py +0 -0
  21. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/melting.py +0 -0
  22. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/model.py +0 -0
  23. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/mwr.py +0 -0
  24. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/categorize/radar.py +0 -0
  25. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/cloudnetarray.py +0 -0
  26. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/concat_lib.py +0 -0
  27. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/constants.py +0 -0
  28. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/datasource.py +0 -0
  29. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/exceptions.py +0 -0
  30. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/__init__.py +0 -0
  31. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/basta.py +0 -0
  32. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/campbell_scientific.py +0 -0
  33. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/ceilo.py +0 -0
  34. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/ceilometer.py +0 -0
  35. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/cl61d.py +0 -0
  36. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  37. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/copernicus.py +0 -0
  38. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  39. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  40. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  41. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  42. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/galileo.py +0 -0
  43. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/instruments.py +0 -0
  44. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/lufft.py +0 -0
  45. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/mira.py +0 -0
  46. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/mrr.py +0 -0
  47. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/nc_lidar.py +0 -0
  48. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/nc_radar.py +0 -0
  49. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/pollyxt.py +0 -0
  50. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/radiometrics.py +0 -0
  51. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/rpg.py +0 -0
  52. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/rpg_reader.py +0 -0
  53. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/toa5.py +0 -0
  54. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/vaisala.py +0 -0
  55. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/instruments/weather_station.py +0 -0
  56. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/metadata.py +0 -0
  57. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/__init__.py +0 -0
  58. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  59. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/metadata.py +0 -0
  60. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  61. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  62. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  63. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  64. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  65. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  66. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  67. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  68. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  69. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  70. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  71. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  72. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  73. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  74. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  75. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  76. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  77. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  78. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  79. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  80. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  81. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  82. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  83. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  84. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  85. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  86. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  87. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  88. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  89. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  90. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  91. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  92. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  93. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  94. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  95. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  96. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/model_evaluation/utils.py +0 -0
  97. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/output.py +0 -0
  98. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/plotting/__init__.py +0 -0
  99. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/plotting/plot_meta.py +0 -0
  100. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/plotting/plotting.py +0 -0
  101. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/__init__.py +0 -0
  102. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/classification.py +0 -0
  103. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/der.py +0 -0
  104. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/drizzle.py +0 -0
  105. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/drizzle_error.py +0 -0
  106. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/drizzle_tools.py +0 -0
  107. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/ier.py +0 -0
  108. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/iwc.py +0 -0
  109. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/lwc.py +0 -0
  110. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  111. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/mwr_tools.py +0 -0
  112. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/products/product_tools.py +0 -0
  113. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/py.typed +0 -0
  114. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy/utils.py +0 -0
  115. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  116. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  117. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy.egg-info/requires.txt +0 -0
  118. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/cloudnetpy.egg-info/top_level.txt +0 -0
  119. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/docs/source/conf.py +0 -0
  120. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/pyproject.toml +0 -0
  121. {cloudnetpy-1.65.0 → cloudnetpy-1.65.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.65.0
3
+ Version: 1.65.1
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -20,47 +20,50 @@ def generate_categorize(
20
20
  uuid: str | None = None,
21
21
  options: dict | None = None,
22
22
  ) -> str:
23
- """Generates Cloudnet Level 1c categorize file.
23
+ """Generates a Cloudnet Level 1c categorize file.
24
24
 
25
- The measurements are rebinned into a common height / time grid,
26
- and classified as different types of scatterers such as ice, liquid,
27
- insects, etc. Next, the radar signal is corrected for atmospheric
28
- attenuation, and error estimates are computed. Results are saved
29
- in *output_file* which is a compressed netCDF4 file.
25
+ This function rebins measurements into a common height/time grid
26
+ and classifies them into different scatterer types, such as ice,
27
+ liquid, insects, etc. The radar signal is corrected for atmospheric
28
+ attenuation, and error estimates are computed. The results are saved in
29
+ *output_file*, a compressed netCDF4 file.
30
30
 
31
31
  Args:
32
- input_files: dict containing file names for calibrated `radar`, `lidar`,
33
- `model` and `mwr` files. Optionally also `lv0_files`, a list of
34
- RPG level 0 files.
35
- output_file: Full path of the output file.
36
- uuid: Set specific UUID for the file.
37
- options: Dictionary containing optional parameters.
32
+ input_files (dict): Contains filenames for calibrated `radar`, `lidar`,
33
+ and `model` files. Optionally, it can also include `disdrometer`,
34
+ `mwr` (containing the LWP variable), and `lv0_files` (a list of RPG
35
+ Level 0 files).
36
+ output_file (str): The full path of the output file.
37
+ uuid (str): Specific UUID to assign to the generated file.
38
+ options (dict): Dictionary containing optional parameters.
38
39
 
39
40
  Returns:
40
- UUID of the generated file.
41
+ str: UUID of the generated file.
41
42
 
42
43
  Raises:
43
- RuntimeError: Failed to create the categorize file.
44
+ RuntimeError: Raised if the categorize file creation fails.
44
45
 
45
46
  Notes:
46
- Separate mwr-file is not needed when using RPG cloud radar which
47
- measures liquid water path. Then, the radar file can be used as
48
- a mwr-file as well, i.e. {'mwr': 'radar.nc'}.
47
+ A separate MWR file is not required when using an RPG cloud radar that
48
+ measures liquid water path (LWP). In this case, the radar file can also
49
+ serve as the MWR file (e.g., {'mwr': 'radar.nc'}). If no MWR file
50
+ is provided, liquid attenuation correction cannot be performed.
49
51
 
50
- If RPG L0 files are provided as an additional input, Voodoo method is used
51
- to detect liquid droplets.
52
+ If RPG L0 files are included as additional input, the Voodoo method
53
+ is used to detect liquid droplets.
52
54
 
53
55
  Examples:
54
56
  >>> from cloudnetpy.categorize import generate_categorize
55
- >>> input_files = {'radar': 'radar.nc',
56
- 'lidar': 'lidar.nc',
57
- 'model': 'model.nc',
58
- 'mwr': 'mwr.nc'}
57
+ >>> input_files = {
58
+ ... 'radar': 'radar.nc',
59
+ ... 'lidar': 'lidar.nc',
60
+ ... 'model': 'model.nc',
61
+ ... 'mwr': 'mwr.nc'
62
+ ... }
59
63
  >>> generate_categorize(input_files, 'output.nc')
60
64
 
61
- >>> input_files["lv0_files"] = ["file1.LV0", "file2.LV0"] # Add RGP LV0 files
62
- >>> generate_categorize(input_files, 'output.nc') # Use Voodoo method
63
-
65
+ >>> input_files['lv0_files'] = ['file1.LV0', 'file2.LV0'] # Add RPG LV0 files
66
+ >>> generate_categorize(input_files, 'output.nc') # Use the Voodoo method
64
67
  """
65
68
 
66
69
  def _interpolate_to_cloudnet_grid() -> list:
@@ -60,6 +60,10 @@ def hatpro2l1c(
60
60
 
61
61
  hatpro = HatproL1c(hatpro_raw, site_meta)
62
62
 
63
+ if not np.any(hatpro.data["tb"][:]):
64
+ msg = "No valid brightness temperatures found"
65
+ raise HatproDataError(msg)
66
+
63
67
  timestamps = hatpro.data["time"][:]
64
68
  if date is not None:
65
69
  # Screen timestamps if these assertions start to fail
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 65
3
- PATCH = 0
3
+ PATCH = 1
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.65.0
3
+ Version: 1.65.1
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