cloudnetpy 1.79.1__tar.gz → 1.80.0__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.79.1/cloudnetpy.egg-info → cloudnetpy-1.80.0}/PKG-INFO +2 -2
  2. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/ceilo.py +44 -29
  3. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/vaisala.py +7 -6
  4. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/version.py +2 -2
  5. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0/cloudnetpy.egg-info}/PKG-INFO +2 -2
  6. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy.egg-info/requires.txt +1 -1
  7. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/pyproject.toml +1 -1
  8. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/LICENSE +0 -0
  9. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/MANIFEST.in +0 -0
  10. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/README.md +0 -0
  11. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/__init__.py +0 -0
  12. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/__init__.py +0 -0
  13. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/atmos_utils.py +0 -0
  14. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuation.py +0 -0
  15. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuations/__init__.py +0 -0
  16. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuations/gas_attenuation.py +0 -0
  17. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuations/liquid_attenuation.py +0 -0
  18. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuations/melting_attenuation.py +0 -0
  19. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/attenuations/rain_attenuation.py +0 -0
  20. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/categorize.py +0 -0
  21. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/classify.py +0 -0
  22. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/containers.py +0 -0
  23. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/disdrometer.py +0 -0
  24. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/droplet.py +0 -0
  25. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/falling.py +0 -0
  26. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/freezing.py +0 -0
  27. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/insects.py +0 -0
  28. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/itu.py +0 -0
  29. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/lidar.py +0 -0
  30. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/melting.py +0 -0
  31. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/model.py +0 -0
  32. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/mwr.py +0 -0
  33. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/categorize/radar.py +0 -0
  34. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/cli.py +0 -0
  35. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/cloudnetarray.py +0 -0
  36. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/concat_lib.py +0 -0
  37. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/constants.py +0 -0
  38. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/datasource.py +0 -0
  39. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/exceptions.py +0 -0
  40. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/__init__.py +0 -0
  41. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/basta.py +0 -0
  42. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/bowtie.py +0 -0
  43. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/ceilometer.py +0 -0
  44. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/cl61d.py +0 -0
  45. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/cloudnet_instrument.py +0 -0
  46. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/copernicus.py +0 -0
  47. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/disdrometer/__init__.py +0 -0
  48. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/disdrometer/common.py +0 -0
  49. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/disdrometer/parsivel.py +0 -0
  50. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/disdrometer/thies.py +0 -0
  51. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/fd12p.py +0 -0
  52. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/galileo.py +0 -0
  53. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/hatpro.py +0 -0
  54. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/instruments.py +0 -0
  55. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/lufft.py +0 -0
  56. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/mira.py +0 -0
  57. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/mrr.py +0 -0
  58. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/nc_lidar.py +0 -0
  59. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/nc_radar.py +0 -0
  60. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/pollyxt.py +0 -0
  61. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/radiometrics.py +0 -0
  62. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/rain_e_h3.py +0 -0
  63. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/rpg.py +0 -0
  64. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/rpg_reader.py +0 -0
  65. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/toa5.py +0 -0
  66. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/instruments/weather_station.py +0 -0
  67. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/metadata.py +0 -0
  68. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/__init__.py +0 -0
  69. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/file_handler.py +0 -0
  70. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/metadata.py +0 -0
  71. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/model_metadata.py +0 -0
  72. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/plotting/__init__.py +0 -0
  73. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/plotting/plot_meta.py +0 -0
  74. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/plotting/plot_tools.py +0 -0
  75. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/plotting/plotting.py +0 -0
  76. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/__init__.py +0 -0
  77. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/advance_methods.py +0 -0
  78. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/grid_methods.py +0 -0
  79. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/model_products.py +0 -0
  80. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/observation_products.py +0 -0
  81. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/product_resampling.py +0 -0
  82. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/products/tools.py +0 -0
  83. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/statistics/__init__.py +0 -0
  84. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/statistics/statistical_methods.py +0 -0
  85. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/__init__.py +0 -0
  86. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/__init__.py +0 -0
  87. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/conftest.py +0 -0
  88. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/__init__.py +0 -0
  89. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/main.py +0 -0
  90. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_cf/tests.py +0 -0
  91. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/__init__.py +0 -0
  92. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/main.py +0 -0
  93. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_iwc/tests.py +0 -0
  94. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/__init__.py +0 -0
  95. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/main.py +0 -0
  96. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/e2e/process_lwc/tests.py +0 -0
  97. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/__init__.py +0 -0
  98. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/conftest.py +0 -0
  99. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_advance_methods.py +0 -0
  100. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_grid_methods.py +0 -0
  101. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_model_products.py +0 -0
  102. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_observation_products.py +0 -0
  103. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_plot_tools.py +0 -0
  104. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_plotting.py +0 -0
  105. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py +0 -0
  106. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/tests/unit/test_tools.py +0 -0
  107. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/model_evaluation/utils.py +0 -0
  108. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/output.py +0 -0
  109. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/plotting/__init__.py +0 -0
  110. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/plotting/plot_meta.py +0 -0
  111. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/plotting/plotting.py +0 -0
  112. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/__init__.py +0 -0
  113. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/classification.py +0 -0
  114. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/der.py +0 -0
  115. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/drizzle.py +0 -0
  116. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/drizzle_error.py +0 -0
  117. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/drizzle_tools.py +0 -0
  118. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/epsilon.py +0 -0
  119. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/ier.py +0 -0
  120. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/iwc.py +0 -0
  121. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/lwc.py +0 -0
  122. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/mie_lu_tables.nc +0 -0
  123. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/mwr_tools.py +0 -0
  124. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/products/product_tools.py +0 -0
  125. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/py.typed +0 -0
  126. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy/utils.py +0 -0
  127. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy.egg-info/SOURCES.txt +0 -0
  128. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy.egg-info/dependency_links.txt +0 -0
  129. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy.egg-info/entry_points.txt +0 -0
  130. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/cloudnetpy.egg-info/top_level.txt +0 -0
  131. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/docs/source/conf.py +0 -0
  132. {cloudnetpy-1.79.1 → cloudnetpy-1.80.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.79.1
3
+ Version: 1.80.0
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -38,7 +38,7 @@ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
38
38
  Requires-Python: >=3.10
39
39
  Description-Content-Type: text/markdown
40
40
  License-File: LICENSE
41
- Requires-Dist: ceilopyter
41
+ Requires-Dist: ceilopyter>=0.2.0
42
42
  Requires-Dist: doppy>=0.5.0
43
43
  Requires-Dist: matplotlib
44
44
  Requires-Dist: mwrpy>=1.3.0
@@ -4,6 +4,8 @@ import logging
4
4
  from itertools import islice
5
5
 
6
6
  import netCDF4
7
+ import numpy as np
8
+ from ceilopyter import read_ct25k
7
9
  from numpy import ma
8
10
 
9
11
  from cloudnetpy import output, utils
@@ -74,36 +76,49 @@ def ceilo2nc(
74
76
  range_corrected = site_meta.get("range_corrected", True)
75
77
  if range_corrected is False:
76
78
  logging.warning("Raw data not range-corrected.")
77
- ceilo_obj.read_ceilometer_file(calibration_factor)
78
- ceilo_obj.check_beta_raw_shape()
79
- n_negatives = _get_n_negatives(ceilo_obj)
80
- ceilo_obj.data["beta"] = ceilo_obj.calc_screened_product(
81
- ceilo_obj.data["beta_raw"],
82
- snr_limit,
83
- range_corrected=range_corrected,
84
- n_negatives=n_negatives,
85
- )
86
- ceilo_obj.data["beta_smooth"] = ceilo_obj.calc_beta_smooth(
87
- ceilo_obj.data["beta"],
88
- snr_limit,
89
- range_corrected=range_corrected,
90
- n_negatives=n_negatives,
91
- )
92
- if ceilo_obj.instrument is None or ceilo_obj.instrument.model is None:
93
- msg = "Failed to read ceilometer model"
94
- raise RuntimeError(msg)
95
- if (
96
- any(
97
- model in ceilo_obj.instrument.model.lower()
98
- for model in ("cl61", "chm15k", "chm15kx", "cl51", "cl31")
79
+ if isinstance(ceilo_obj, Ct25k):
80
+ c_obj = read_ct25k(full_path, calibration_factor, range_corrected)
81
+ ceilo_obj.data["beta"] = c_obj.beta
82
+ ceilo_obj.data["beta_raw"] = c_obj.beta_raw
83
+ ceilo_obj.data["time"] = c_obj.time
84
+ ceilo_obj.data["range"] = c_obj.range
85
+ if c_obj.zenith_angle is not None:
86
+ ceilo_obj.data["zenith_angle"] = np.median(c_obj.zenith_angle)
87
+ ceilo_obj.data["calibration_factor"] = c_obj.calibration_factor
88
+ ceilo_obj.sort_time()
89
+ ceilo_obj.screen_date()
90
+ ceilo_obj.convert_to_fraction_hour()
91
+ else:
92
+ ceilo_obj.read_ceilometer_file(calibration_factor)
93
+ ceilo_obj.check_beta_raw_shape()
94
+ n_negatives = _get_n_negatives(ceilo_obj)
95
+ ceilo_obj.data["beta"] = ceilo_obj.calc_screened_product(
96
+ ceilo_obj.data["beta_raw"],
97
+ snr_limit,
98
+ range_corrected=range_corrected,
99
+ n_negatives=n_negatives,
100
+ )
101
+ ceilo_obj.data["beta_smooth"] = ceilo_obj.calc_beta_smooth(
102
+ ceilo_obj.data["beta"],
103
+ snr_limit,
104
+ range_corrected=range_corrected,
105
+ n_negatives=n_negatives,
99
106
  )
100
- and range_corrected
101
- ):
102
- mask = ceilo_obj.data["beta_smooth"].mask
103
- ceilo_obj.data["beta"] = ma.masked_where(mask, ceilo_obj.data["beta_raw"])
104
- ceilo_obj.data["beta"][ceilo_obj.data["beta"] <= 0] = ma.masked
105
- if "depolarisation" in ceilo_obj.data:
106
- ceilo_obj.data["depolarisation"].mask = ceilo_obj.data["beta"].mask
107
+ if ceilo_obj.instrument is None or ceilo_obj.instrument.model is None:
108
+ msg = "Failed to read ceilometer model"
109
+ raise RuntimeError(msg)
110
+ if (
111
+ any(
112
+ model in ceilo_obj.instrument.model.lower()
113
+ for model in ("cl61", "chm15k", "chm15kx", "cl51", "cl31")
114
+ )
115
+ and range_corrected
116
+ ):
117
+ mask = ceilo_obj.data["beta_smooth"].mask
118
+ ceilo_obj.data["beta"] = ma.masked_where(mask, ceilo_obj.data["beta_raw"])
119
+ ceilo_obj.data["beta"][ceilo_obj.data["beta"] <= 0] = ma.masked
120
+ if "depolarisation" in ceilo_obj.data:
121
+ ceilo_obj.data["depolarisation"].mask = ceilo_obj.data["beta"].mask
107
122
  ceilo_obj.screen_depol()
108
123
  ceilo_obj.screen_invalid_values()
109
124
  ceilo_obj.prepare_data()
@@ -46,18 +46,18 @@ class VaisalaCeilo(Ceilometer):
46
46
  self.data["calibration_factor"] = calibration_factor or 1.0
47
47
  self.data["beta_raw"] *= self.data["calibration_factor"]
48
48
  self.data["zenith_angle"] = np.median([d.tilt_angle for d in data])
49
- self._sort_time()
50
- self._screen_date()
51
- self._convert_to_fraction_hour()
49
+ self.sort_time()
50
+ self.screen_date()
51
+ self.convert_to_fraction_hour()
52
52
  self._store_ceilometer_info()
53
53
 
54
- def _sort_time(self):
54
+ def sort_time(self):
55
55
  """Sorts timestamps and removes duplicates."""
56
56
  time = self.data["time"]
57
57
  _time, ind = np.unique(time, return_index=True)
58
58
  self._screen_time_indices(ind)
59
59
 
60
- def _screen_date(self):
60
+ def screen_date(self):
61
61
  time = self.data["time"]
62
62
  if self.sane_date is None:
63
63
  self.sane_date = time[0].date()
@@ -79,7 +79,7 @@ class VaisalaCeilo(Ceilometer):
79
79
  if hasattr(array, "shape") and array.shape[:1] == (n_time,):
80
80
  self.data[key] = self.data[key][valid_indices]
81
81
 
82
- def _convert_to_fraction_hour(self):
82
+ def convert_to_fraction_hour(self):
83
83
  time = self.data["time"]
84
84
  midnight = time[0].replace(hour=0, minute=0, second=0, microsecond=0)
85
85
  hour = datetime.timedelta(hours=1)
@@ -113,6 +113,7 @@ class Ct25k(VaisalaCeilo):
113
113
 
114
114
  def __init__(self, full_path, site_meta, expected_date=None):
115
115
  super().__init__(read_ct_file, full_path, site_meta, expected_date)
116
+ self._store_ceilometer_info()
116
117
 
117
118
  def _store_ceilometer_info(self):
118
119
  self.instrument = instruments.CT25K
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
- MINOR = 79
3
- PATCH = 1
2
+ MINOR = 80
3
+ PATCH = 0
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudnetpy
3
- Version: 1.79.1
3
+ Version: 1.80.0
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -38,7 +38,7 @@ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
38
38
  Requires-Python: >=3.10
39
39
  Description-Content-Type: text/markdown
40
40
  License-File: LICENSE
41
- Requires-Dist: ceilopyter
41
+ Requires-Dist: ceilopyter>=0.2.0
42
42
  Requires-Dist: doppy>=0.5.0
43
43
  Requires-Dist: matplotlib
44
44
  Requires-Dist: mwrpy>=1.3.0
@@ -1,4 +1,4 @@
1
- ceilopyter
1
+ ceilopyter>=0.2.0
2
2
  doppy>=0.5.0
3
3
  matplotlib
4
4
  mwrpy>=1.3.0
@@ -14,7 +14,7 @@ classifiers = [
14
14
  "Topic :: Scientific/Engineering :: Atmospheric Science",
15
15
  ]
16
16
  dependencies = [
17
- "ceilopyter",
17
+ "ceilopyter>=0.2.0",
18
18
  "doppy>=0.5.0",
19
19
  "matplotlib",
20
20
  "mwrpy>=1.3.0",
File without changes
File without changes
File without changes
File without changes