cloudnetpy-qc 1.19.5__py3-none-any.whl → 1.21.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
@@ -226,6 +226,8 @@ class FindVariableOutliers(Test):
226
226
  Product.MWR_MULTI,
227
227
  ):
228
228
  return None
229
+ if key == "height" and self.product == Product.CPR:
230
+ return None
229
231
  if key == "air_pressure":
230
232
  pressure = utils.calc_pressure(self.nc["altitude"][:])
231
233
  max_diff = pressure * 0.05
@@ -655,6 +657,17 @@ class TestRainfallConsistency(Test):
655
657
  # -------------------- #
656
658
 
657
659
 
660
+ class TestDataModel(Test):
661
+ name = "Data model"
662
+ description = "Test netCDF data model."
663
+
664
+ def run(self):
665
+ expected = "NETCDF4_CLASSIC"
666
+ received = self.nc.data_model
667
+ if expected != received:
668
+ self._add_error(utils.create_expected_received_msg(expected, received))
669
+
670
+
658
671
  class TestBrightnessTemperature(Test):
659
672
  name = "Brightness temperature"
660
673
  description = "Test that brightness temperature data are valid."
@@ -987,7 +1000,16 @@ class TestInstrumentPid(Test):
987
1000
  "https://vocabulary.actris.nilu.no/actris_vocab/ThiesLPM",
988
1001
  ],
989
1002
  "Thies Clima LPM": ["https://vocabulary.actris.nilu.no/actris_vocab/ThiesLPM"],
1003
+ "Vaisala WindCube WLS70": [
1004
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCubeWLS70"
1005
+ ],
1006
+ "Vaisala WindCube WLS100S": [
1007
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube100S"
1008
+ ],
990
1009
  "Vaisala WindCube WLS200S": [
991
- "https://vocabulary.actris.nilu.no/skosmos/actris_vocab/en/page/VaisalaWindCube200S"
1010
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube200S"
1011
+ ],
1012
+ "Vaisala WindCube WLS400S": [
1013
+ "https://vocabulary.actris.nilu.no/actris_vocab/VaisalaWindCube400S"
992
1014
  ],
993
1015
  }
@@ -40,6 +40,7 @@ class Product(Enum):
40
40
  L3_CF = "l3-cf"
41
41
  L3_IWC = "l3-iwc"
42
42
  L3_LWC = "l3-lwc"
43
+ CPR = "cpr-simulation"
43
44
 
44
45
  @classmethod
45
46
  def all(cls) -> set[Product]:
@@ -74,6 +75,7 @@ LEVELS: dict[Product, Level] = {
74
75
  Product.L3_CF: "3",
75
76
  Product.L3_IWC: "3",
76
77
  Product.L3_LWC: "3",
78
+ Product.CPR: "3",
77
79
  }
78
80
 
79
81
 
@@ -789,6 +791,105 @@ VARIABLES = {
789
791
  ],
790
792
  dtype=Dtype.INT,
791
793
  ),
794
+ # ---------------------------------------
795
+ # Required in cpr-simulation Level 3 file
796
+ # ---------------------------------------
797
+ "sat_ifov": Variable(
798
+ long_name="Satellite instantaneous field of view",
799
+ units="m",
800
+ required=[Product.CPR],
801
+ ),
802
+ "sat_range_resolution": Variable(
803
+ long_name="Satellite range resolution",
804
+ units="m",
805
+ required=[Product.CPR],
806
+ ),
807
+ "sat_along_track_resolution": Variable(
808
+ long_name="Satellite along-track resolution",
809
+ units="m",
810
+ required=[Product.CPR],
811
+ ),
812
+ "ze": Variable(
813
+ long_name="Radar reflectivity factor of input",
814
+ units="dBZ",
815
+ required=[Product.CPR],
816
+ ),
817
+ "vm": Variable(
818
+ long_name="Mean Doppler velocity of input",
819
+ units="m s-1",
820
+ required=[Product.CPR],
821
+ ),
822
+ "ze_sat": Variable(
823
+ long_name="Convolved and integrated radar reflectivity factor",
824
+ units="dBZ",
825
+ required=[Product.CPR],
826
+ ),
827
+ "vm_sat": Variable(
828
+ long_name="Convolved and integrated mean Doppler velocity",
829
+ units="m s-1",
830
+ required=[Product.CPR],
831
+ ),
832
+ "vm_sat_vel": Variable(
833
+ long_name="Convolved and integrated mean Doppler velocity with satellite motion error",
834
+ units="m s-1",
835
+ required=[Product.CPR],
836
+ ),
837
+ "vm_sat_noise": Variable(
838
+ long_name="Convolved and integrated mean Doppler velocity with noise and satellite motion error",
839
+ units="m s-1",
840
+ required=[Product.CPR],
841
+ ),
842
+ "ze_sat_noise": Variable(
843
+ long_name="Convolved and integrated radar reflectivity factor with noise",
844
+ units="dBZ",
845
+ required=[Product.CPR],
846
+ ),
847
+ "vm_sat_folded": Variable(
848
+ long_name="Doppler velocity with noise, satellite motion error, and folding",
849
+ units="m s-1",
850
+ required=[Product.CPR],
851
+ ),
852
+ "nubf": Variable(
853
+ long_name="Non-uniform beam filling",
854
+ units="dBZ",
855
+ required=[Product.CPR],
856
+ ),
857
+ "nubf_flag": Variable(
858
+ long_name="Non-uniform beam filling flag",
859
+ dtype=Dtype.INT,
860
+ required=[Product.CPR],
861
+ ),
862
+ "ms_flag": Variable(
863
+ long_name="Multiple scattering flag",
864
+ dtype=Dtype.INT,
865
+ required=[Product.CPR],
866
+ ),
867
+ "folding_flag": Variable(
868
+ long_name="Folding flag",
869
+ dtype=Dtype.INT,
870
+ required=[Product.CPR],
871
+ ),
872
+ "along_track_sat": Variable(
873
+ long_name="Along-track distance at satellite resolution",
874
+ units="m",
875
+ required=[Product.CPR],
876
+ ),
877
+ "along_track": Variable(
878
+ long_name="Along-track distance",
879
+ units="m",
880
+ required=[Product.CPR],
881
+ ),
882
+ "mean_wind": Variable(
883
+ long_name="Mean horizontal wind",
884
+ units="m s-1",
885
+ required=[Product.CPR],
886
+ ),
887
+ "height_sat": Variable(
888
+ long_name="Height above mean sea level at satellite resolution",
889
+ units="m",
890
+ dtype=Dtype.FLOAT,
891
+ required=[Product.CPR],
892
+ ),
792
893
  # -------------------------
793
894
  # Required in several files
794
895
  # -------------------------
cloudnetpy_qc/version.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Cloudnetpy-QC version."""
2
2
 
3
3
  MAJOR = 1
4
- MINOR = 19
5
- PATCH = 5
4
+ MINOR = 21
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.19.5
3
+ Version: 1.21.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=ToBErPLERhh08ZBFE-7-tOpHAr23lMI71upCpP5ezQI,34679
4
+ cloudnetpy_qc/utils.py,sha256=ssRqu8Auz7YpfZ79mTKmms4DkP9_ExLthbIpQGNq4jc,3270
5
+ cloudnetpy_qc/variables.py,sha256=Jg1H-4yrqzuE0YLuj6PJI1NKIzKbyCnPyUcFePTN9Qs,50055
6
+ cloudnetpy_qc/version.py,sha256=rWrguHf8ML_3gjxW3MeDMxnaSjhpNs88CWM3QPUDymE,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.21.0.dist-info/LICENSE,sha256=P0wszB7Cq2M390SKaqT4DGvECfwGOMdTTdxsWBpEUUc,1094
12
+ cloudnetpy_qc-1.21.0.dist-info/METADATA,sha256=gzSIXetl6_bRksEOmUl3emxK9oq6FiYd7hhiJco570w,7820
13
+ cloudnetpy_qc-1.21.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
14
+ cloudnetpy_qc-1.21.0.dist-info/top_level.txt,sha256=shrf8A1KyrrnhbHocc4gHmTl38YY-DHflgf-gXiKnKs,14
15
+ cloudnetpy_qc-1.21.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=eWnZLAzohJZPitiaNFHtVN2J-caBX1Fer19ofgRcabE,33913
4
- cloudnetpy_qc/utils.py,sha256=ssRqu8Auz7YpfZ79mTKmms4DkP9_ExLthbIpQGNq4jc,3270
5
- cloudnetpy_qc/variables.py,sha256=fWLqJvpABimNlcZocqx9Mr4laSVZfhvHQ1-6OC8nZy8,46973
6
- cloudnetpy_qc/version.py,sha256=hnhoyQ74uur9emNcb6Z1_VRqo1tIOJGD4HSEJKQVxUw,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.19.5.dist-info/LICENSE,sha256=P0wszB7Cq2M390SKaqT4DGvECfwGOMdTTdxsWBpEUUc,1094
12
- cloudnetpy_qc-1.19.5.dist-info/METADATA,sha256=3ifzxGgvSM7shI8_5uhD-FTmnoZwSAlp1eKGm-9edrk,7698
13
- cloudnetpy_qc-1.19.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
14
- cloudnetpy_qc-1.19.5.dist-info/top_level.txt,sha256=shrf8A1KyrrnhbHocc4gHmTl38YY-DHflgf-gXiKnKs,14
15
- cloudnetpy_qc-1.19.5.dist-info/RECORD,,