cloudnetpy-qc 1.20.0__py3-none-any.whl → 1.22.0__py3-none-any.whl

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.
@@ -1,8 +1,8 @@
1
1
  <?xml version="1.0"?>
2
2
  <standardized_region_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="region-list-1.1.xsd">
3
3
  <title>Standardized Region List</title>
4
- <version_number>4</version_number>
5
- <date>18 December 2018</date>
4
+ <version_number>5</version_number>
5
+ <date>12 November 2024</date>
6
6
  <institution>Centre for Environmental Data Analysis</institution>
7
7
  <contact>support@ceda.ac.uk</contact>
8
8
  <entry id="africa">
@@ -176,6 +176,9 @@
176
176
  <entry id="north_sea">
177
177
  <description></description>
178
178
  </entry>
179
+ <entry id="northern_hemisphere">
180
+ <description></description>
181
+ </entry>
179
182
  <entry id="norwegian_sea">
180
183
  <description></description>
181
184
  </entry>
@@ -206,6 +209,9 @@
206
209
  <entry id="south_china_sea">
207
210
  <description></description>
208
211
  </entry>
212
+ <entry id="southern_hemisphere">
213
+ <description></description>
214
+ </entry>
209
215
  <entry id="southern_ocean">
210
216
  <description></description>
211
217
  </entry>
cloudnetpy_qc/quality.py CHANGED
@@ -437,13 +437,14 @@ class TestGlobalAttributes(Test):
437
437
  Product.MWR_SINGLE,
438
438
  Product.MWR_MULTI,
439
439
  Product.DOPPLER_LIDAR_WIND,
440
+ Product.EPSILON_LIDAR,
440
441
  )
441
442
 
442
443
  def _required_attrs(self, product: Product):
443
444
  attrs = set(self.REQUIRED_ATTRS)
444
445
  if product == Product.MWR_L1C:
445
446
  attrs.add("mwrpy_coefficients")
446
- if product in (Product.MWR_SINGLE, Product.MWR_MULTI):
447
+ if product in (Product.MWR_SINGLE, Product.MWR_MULTI, Product.EPSILON_LIDAR):
447
448
  attrs.add("source_file_uuids")
448
449
  if product != Product.MODEL:
449
450
  attrs.add(
@@ -657,6 +658,17 @@ class TestRainfallConsistency(Test):
657
658
  # -------------------- #
658
659
 
659
660
 
661
+ class TestDataModel(Test):
662
+ name = "Data model"
663
+ description = "Test netCDF data model."
664
+
665
+ def run(self):
666
+ expected = "NETCDF4_CLASSIC"
667
+ received = self.nc.data_model
668
+ if expected != received:
669
+ self._add_error(utils.create_expected_received_msg(expected, received))
670
+
671
+
660
672
  class TestBrightnessTemperature(Test):
661
673
  name = "Brightness temperature"
662
674
  description = "Test that brightness temperature data are valid."
@@ -989,7 +1001,16 @@ class TestInstrumentPid(Test):
989
1001
  "https://vocabulary.actris.nilu.no/actris_vocab/ThiesLPM",
990
1002
  ],
991
1003
  "Thies Clima LPM": ["https://vocabulary.actris.nilu.no/actris_vocab/ThiesLPM"],
1004
+ "Vaisala WindCube WLS70": [
1005
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCubeWLS70"
1006
+ ],
1007
+ "Vaisala WindCube WLS100S": [
1008
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube100S"
1009
+ ],
992
1010
  "Vaisala WindCube WLS200S": [
993
- "https://vocabulary.actris.nilu.no/skosmos/actris_vocab/en/page/VaisalaWindCube200S"
1011
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube200S"
1012
+ ],
1013
+ "Vaisala WindCube WLS400S": [
1014
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube400S"
994
1015
  ],
995
1016
  }
@@ -36,6 +36,7 @@ class Product(Enum):
36
36
  DRIZZLE = "drizzle"
37
37
  MWR_SINGLE = "mwr-single"
38
38
  MWR_MULTI = "mwr-multi"
39
+ EPSILON_LIDAR= "epsilon-lidar"
39
40
  # Level 3
40
41
  L3_CF = "l3-cf"
41
42
  L3_IWC = "l3-iwc"
@@ -72,6 +73,7 @@ LEVELS: dict[Product, Level] = {
72
73
  Product.DRIZZLE: "2",
73
74
  Product.MWR_SINGLE: "2",
74
75
  Product.MWR_MULTI: "2",
76
+ Product.EPSILON_LIDAR: "2",
75
77
  Product.L3_CF: "3",
76
78
  Product.L3_IWC: "3",
77
79
  Product.L3_LWC: "3",
@@ -890,6 +892,23 @@ VARIABLES = {
890
892
  dtype=Dtype.FLOAT,
891
893
  required=[Product.CPR],
892
894
  ),
895
+ # ----------------------------------------
896
+ # Required in Epsilon (lidar)
897
+ # ----------------------------------------
898
+ "epsilon": Variable(
899
+ long_name="Dissipation rate of turbulent kinetic energy",
900
+ units="m2 s-3",
901
+ required=[
902
+ Product.EPSILON_LIDAR,
903
+ ],
904
+ ),
905
+ "rolling_window_period": Variable(
906
+ long_name="Rolling window period",
907
+ units="s",
908
+ required=[
909
+ Product.EPSILON_LIDAR,
910
+ ],
911
+ ),
893
912
  # -------------------------
894
913
  # Required in several files
895
914
  # -------------------------
@@ -1659,6 +1678,16 @@ VARIABLES = {
1659
1678
  "polariser_bleed_through": Variable(
1660
1679
  long_name="Polariser bleed-through",
1661
1680
  ),
1681
+ "pulses_per_ray": Variable(
1682
+ long_name="Pulses per ray",
1683
+ units="1",
1684
+ dtype=Dtype.INT
1685
+ ),
1686
+ "ray_accumulation_time": Variable(
1687
+ long_name="Ray accumulation time",
1688
+ units="s",
1689
+ dtype=Dtype.FLOAT
1690
+ ),
1662
1691
  "lifted_index": Variable(
1663
1692
  long_name="Lifted index",
1664
1693
  ),
cloudnetpy_qc/version.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Cloudnetpy-QC version."""
2
2
 
3
3
  MAJOR = 1
4
- MINOR = 20
4
+ MINOR = 22
5
5
  PATCH = 0
6
6
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cloudnetpy_qc
3
- Version: 1.20.0
3
+ Version: 1.22.0
4
4
  Summary: Quality control routines for CloudnetPy products
5
5
  Author-email: Finnish Meteorological Institute <actris-cloudnet@fmi.fi>
6
6
  License: MIT License
@@ -136,6 +136,7 @@ print(json_object)
136
136
  | `TestCFConvention` | Test compliance with the CF metadata conventions. |
137
137
  | `TestComment` | Check that variables have expected comments. |
138
138
  | `TestDataCoverage` | Test that file contains enough data. |
139
+ | `TestDataModel` | Test netCDF data model. |
139
140
  | `TestDataTypes` | Check that variables have expected data types. |
140
141
  | `TestFillValue` | Test that fill value is explicitly set for variables with missing data. |
141
142
  | `TestFloatingPointValues` | Test for special floating-point values which may indicate problems with the processing. |
@@ -0,0 +1,15 @@
1
+ cloudnetpy_qc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ cloudnetpy_qc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ cloudnetpy_qc/quality.py,sha256=8rn2Rf6_SpZtGSFD8HKi4NIJNTsOiz3_YN9dgrUOaK0,34737
4
+ cloudnetpy_qc/utils.py,sha256=ssRqu8Auz7YpfZ79mTKmms4DkP9_ExLthbIpQGNq4jc,3270
5
+ cloudnetpy_qc/variables.py,sha256=xDNjk2urxULN8cbTlOCDysgtaqt4tzVouBC0adyFDWc,50862
6
+ cloudnetpy_qc/version.py,sha256=tPPWkvK9wfbVke3_M0r3FdTi01ZTbCHkiVoDRPqrbPw,102
7
+ cloudnetpy_qc/data/area-type-table.xml,sha256=F3lzCQR5LjmsB7qhlBt3CpZRNAH3UZoYJs6fmkvmCCM,17203
8
+ cloudnetpy_qc/data/cf-standard-name-table.xml,sha256=BO6fEXQB6SRDeyP0wb7nyv3koKflM1s-0dIlgNF0KAI,4374043
9
+ cloudnetpy_qc/data/data_quality_config.ini,sha256=URRc93Du2_YFX6Q7GxMHptKIVl6kwxXw-kVyftmsEJk,1242
10
+ cloudnetpy_qc/data/standardized-region-list.xml,sha256=gLRE2G7RQLD9hmvW5dTzyK7XPhORxWv2bfbrvAp5Uto,6426
11
+ cloudnetpy_qc-1.22.0.dist-info/LICENSE,sha256=P0wszB7Cq2M390SKaqT4DGvECfwGOMdTTdxsWBpEUUc,1094
12
+ cloudnetpy_qc-1.22.0.dist-info/METADATA,sha256=IIJcwKxdKddViufkf0iJDVxFw68eQS5FDAEA1Tfa98s,7820
13
+ cloudnetpy_qc-1.22.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
14
+ cloudnetpy_qc-1.22.0.dist-info/top_level.txt,sha256=shrf8A1KyrrnhbHocc4gHmTl38YY-DHflgf-gXiKnKs,14
15
+ cloudnetpy_qc-1.22.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,15 +0,0 @@
1
- cloudnetpy_qc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- cloudnetpy_qc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- cloudnetpy_qc/quality.py,sha256=T3uVWjxoOoF_1Z2FwDL2HDaU1ZfLDj4FX4JkH-WFsjk,33997
4
- cloudnetpy_qc/utils.py,sha256=ssRqu8Auz7YpfZ79mTKmms4DkP9_ExLthbIpQGNq4jc,3270
5
- cloudnetpy_qc/variables.py,sha256=Jg1H-4yrqzuE0YLuj6PJI1NKIzKbyCnPyUcFePTN9Qs,50055
6
- cloudnetpy_qc/version.py,sha256=G702fy-w_yPEuiP1RRs38W3bUgcPUvkxr9MuDE_cvNI,102
7
- cloudnetpy_qc/data/area-type-table.xml,sha256=ePvw1b95ng3rNSQ7rDQFWtWjhJvMgCkkz53LRN-NVMo,14435
8
- cloudnetpy_qc/data/cf-standard-name-table.xml,sha256=X_gbS481eXsxydGEsdYDYkU-idiB02GqpXloR5YfgF4,4135875
9
- cloudnetpy_qc/data/data_quality_config.ini,sha256=URRc93Du2_YFX6Q7GxMHptKIVl6kwxXw-kVyftmsEJk,1242
10
- cloudnetpy_qc/data/standardized-region-list.xml,sha256=65RqAqEFLwC01iAwkFEitPbAPEnjaCMcKYg2utjttls,6274
11
- cloudnetpy_qc-1.20.0.dist-info/LICENSE,sha256=P0wszB7Cq2M390SKaqT4DGvECfwGOMdTTdxsWBpEUUc,1094
12
- cloudnetpy_qc-1.20.0.dist-info/METADATA,sha256=uIY7mftgbkMVkV5fNKSvS8Cmn-tcgFUVsAx5pD6up_I,7698
13
- cloudnetpy_qc-1.20.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
14
- cloudnetpy_qc-1.20.0.dist-info/top_level.txt,sha256=shrf8A1KyrrnhbHocc4gHmTl38YY-DHflgf-gXiKnKs,14
15
- cloudnetpy_qc-1.20.0.dist-info/RECORD,,