cloudnetpy-qc 1.21.0__tar.gz → 1.23.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.
- {cloudnetpy_qc-1.21.0/cloudnetpy_qc.egg-info → cloudnetpy_qc-1.23.0}/PKG-INFO +4 -2
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/README.md +1 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/quality.py +17 -1
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/variables.py +29 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/version.py +1 -1
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0/cloudnetpy_qc.egg-info}/PKG-INFO +4 -2
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/LICENSE +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/MANIFEST.in +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/__init__.py +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/data/area-type-table.xml +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/data/cf-standard-name-table.xml +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/data/data_quality_config.ini +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/data/standardized-region-list.xml +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/py.typed +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/utils.py +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc.egg-info/SOURCES.txt +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc.egg-info/dependency_links.txt +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc.egg-info/requires.txt +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc.egg-info/top_level.txt +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/pyproject.toml +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/setup.cfg +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/tests/test_qc.py +0 -0
- {cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudnetpy_qc
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.23.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
|
|
@@ -49,6 +49,7 @@ Requires-Dist: types-requests; extra == "test"
|
|
|
49
49
|
Provides-Extra: dev
|
|
50
50
|
Requires-Dist: pre-commit; extra == "dev"
|
|
51
51
|
Requires-Dist: release-version; extra == "dev"
|
|
52
|
+
Dynamic: license-file
|
|
52
53
|
|
|
53
54
|
# CloudnetPy-QC
|
|
54
55
|
|
|
@@ -135,6 +136,7 @@ print(json_object)
|
|
|
135
136
|
| `TestBrightnessTemperature` | Test that brightness temperature data are valid. |
|
|
136
137
|
| `TestCFConvention` | Test compliance with the CF metadata conventions. |
|
|
137
138
|
| `TestComment` | Check that variables have expected comments. |
|
|
139
|
+
| `TestCoordinateVariables` | Test dimensions of coordinate variables are correct. |
|
|
138
140
|
| `TestDataCoverage` | Test that file contains enough data. |
|
|
139
141
|
| `TestDataModel` | Test netCDF data model. |
|
|
140
142
|
| `TestDataTypes` | Check that variables have expected data types. |
|
|
@@ -83,6 +83,7 @@ print(json_object)
|
|
|
83
83
|
| `TestBrightnessTemperature` | Test that brightness temperature data are valid. |
|
|
84
84
|
| `TestCFConvention` | Test compliance with the CF metadata conventions. |
|
|
85
85
|
| `TestComment` | Check that variables have expected comments. |
|
|
86
|
+
| `TestCoordinateVariables` | Test dimensions of coordinate variables are correct. |
|
|
86
87
|
| `TestDataCoverage` | Test that file contains enough data. |
|
|
87
88
|
| `TestDataModel` | Test netCDF data model. |
|
|
88
89
|
| `TestDataTypes` | Check that variables have expected data types. |
|
|
@@ -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(
|
|
@@ -796,6 +797,21 @@ class TestModelData(Test):
|
|
|
796
797
|
self._add_error(f"{noun} {values} {verb} missing from variable '{key}'.")
|
|
797
798
|
|
|
798
799
|
|
|
800
|
+
class TestCoordinateVariables(Test):
|
|
801
|
+
name = "Coordinate variables"
|
|
802
|
+
description = "Test dimensions of coordinate variables are correct."
|
|
803
|
+
|
|
804
|
+
def run(self):
|
|
805
|
+
for key, variable in self.nc.variables.items():
|
|
806
|
+
if key in self.nc.dimensions and (
|
|
807
|
+
len(variable.dimensions) != 1 or key != variable.dimensions[0]
|
|
808
|
+
):
|
|
809
|
+
received = "', '".join(variable.dimensions)
|
|
810
|
+
self._add_error(
|
|
811
|
+
f"Expected variable '{key}' to have dimensions '{key}' but received '{received}'"
|
|
812
|
+
)
|
|
813
|
+
|
|
814
|
+
|
|
799
815
|
# ------------------------------#
|
|
800
816
|
# ------ Error / Warning ------ #
|
|
801
817
|
# ----------------------------- #
|
|
@@ -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
|
),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudnetpy_qc
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.23.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
|
|
@@ -49,6 +49,7 @@ Requires-Dist: types-requests; extra == "test"
|
|
|
49
49
|
Provides-Extra: dev
|
|
50
50
|
Requires-Dist: pre-commit; extra == "dev"
|
|
51
51
|
Requires-Dist: release-version; extra == "dev"
|
|
52
|
+
Dynamic: license-file
|
|
52
53
|
|
|
53
54
|
# CloudnetPy-QC
|
|
54
55
|
|
|
@@ -135,6 +136,7 @@ print(json_object)
|
|
|
135
136
|
| `TestBrightnessTemperature` | Test that brightness temperature data are valid. |
|
|
136
137
|
| `TestCFConvention` | Test compliance with the CF metadata conventions. |
|
|
137
138
|
| `TestComment` | Check that variables have expected comments. |
|
|
139
|
+
| `TestCoordinateVariables` | Test dimensions of coordinate variables are correct. |
|
|
138
140
|
| `TestDataCoverage` | Test that file contains enough data. |
|
|
139
141
|
| `TestDataModel` | Test netCDF data model. |
|
|
140
142
|
| `TestDataTypes` | Check that variables have expected data types. |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloudnetpy_qc-1.21.0 → cloudnetpy_qc-1.23.0}/cloudnetpy_qc/data/standardized-region-list.xml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|