-
Notifications
You must be signed in to change notification settings - Fork 0
/
fileformat.rst
1233 lines (1072 loc) · 36.8 KB
/
fileformat.rst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
====================
Filename conventions
====================
Each radar filename is constructed as follows:
``<instrument_name>_<platform_name>_<date>-[<time>]_<scan_name>_[<option1>_<option2>_<option3>]_v<version>.nc``
Items in square brackets may or may not be present, depending on the data.
For example, if the data represent an entire day, the ``<time>`` will not be included.
The ``<scan_name>`` is the name of the scan strategy employed. If the file contains a single sweep (see below)
this should indicate the type of this sweep, e.g. ``rhi``, ``ppi``. If there are multiple sweeps in the file
the ``<scan_name>`` will represent the strategy used, e.g. ``vol`` for a volume scan.
More specific names for the scan strategy may be used such as ``hsrhi`` :cite:p:`Kollias_2014` for "hemispheric sky RHI", which is a volume
scan comprising a sequence of horizon-to-horizon RHI scans equally spaced in azimuth.
For NCAS instruments, the ``<instrument_name>`` follows a controlled vocabulary.
==================
NetCDF conventions
==================
The NCAS-Radar convention has at its heart the CfRadial format, and its
subconventions. CfRadial is a comprehensive specification, and we only
discuss required elements here. For more complex use, e.g. for pulsed radar
systems with complicated pulsing schemes, the user should consult the full
CfRadial documentation, which may be found on Github at
``https://github.com/NCAR/CfRadial``.
Version 1.0 of the NCAS-Radar standard is based on CfRadial-1.4.
Sub-conventions
---------------
The CfRadial-1.4 standard describes a number of sub-conventions related to instrument parameters and calibration.
The following sub-conventions are **obligatory** within the NCAS Radar 1.0 standard:
* instrument_parameters
* radar_parameters
* radar_calibration
NCAS Radar format files need to comply with the requirements set out for these sub-conventions within the
`CfRadial Version-1.4 <https://github.com/NCAR/CfRadial/blob/62cb351e16574baa9e7f2b54c6b93b13468077fb/docs/CfRadialDoc.v1.4.20160801.pdf>`_
documentation.
.. rubric:: Strict variable and attribute names for non-field variables
In CfRadial a ‘field’ variable stores such quantities as radar moments, derived quantities, quality
control measures, etc. These variables store the fundamental scientific data associated
with the instrument. By contrast, metadata variables store the dimensional information such as *time*,
*range*, *azimuth* and *elevation*, and other metadata such as calibration and radar characteristics.
CfRadial requires strict adherance to naming conventions for dimensions and for
metadata variables. The NCAS-Radar convention inherits this requirement.
For details see the CfRadial documentation on Github. A summary of metadata variables may be found in the
following :ref:`table <metadata_variables_table>`
This strictness requirement only applies to non-field metadata variables. The
field variables will be handled as usual in CF, where the standard
name is the definitive guide to the contents of the field. Suggested standard names for radar
variables not yet supported by CF have been proposed in the CfRadial documentation.
For convenience a summary of field variables relevant to radar instruments is
reproduced in the following :ref:`table <field_variables_table>`
========================
Overview of data content
========================
The data fields containing observables from a radar instrument, i.e. the
moments of the Doppler velocity spectrum are produced over a time or angular
interval at a sequence of ranges increasing radially away from the instrument.
The term "ray" is used to refer to a set of range gates at a given time or angle.
In most cases the spacing between range gates is constant along a ray, but this
is not compulsory.
Data fields are typically stored as 2-D arrays, with dimnesions **(time,range)**.
This is typical for current NCAS radars where each ray has the same number of gates.
CfRadial does allow for the more general case where rays have a variable number
of gates. For details see the CfRadial documentation.
In addition to the **time** and **range** dimensions, CfRadial introduces a third
"pseudo"-dimension, which allows the field data to be subdivided into so-called
"sweeps". For example, a single constant elevation PPI scan constitutes an
example of a sweep, and a typical NetCDF data file will have a **volume** that
comprises one or more such sweeps. The convention uses start and stop indices
to identify which rays belong to a given sweep. Also, some rays may contain
data collected during the transition between sweeps, and these are indicated
using an "antenna_transition" flag.
Metadata (Global Attributes)
============================
Attributes required by CfRadial-1.4
-----------------------------------
As the NCAS-Radar-1.0 convention uses CfRadial-1.4 as its basis, all global
attributes required by the latter must be included. The following global
attributes are required by CfRadial-1.4:
Conventions
A space-delineated list of the conventions (and sub-conventions) that are
followed by the dataset. As NCAS-Radar-1.0 uses version 1.4 of the CfRadial
standard, this should be included explicitly. Sub-conventions such as
"radar_parameters" are inherited from CfRadial-1.4. NCAS-Radar-1.0 does
not have a separate set of sub-conventions.
:Example: ``NCAS-Radar-1.0 CfRadial-1.4 instrument_parameters radar_parameters radar_calibration``
title
This is a short description of the file contents.
:Example: ``Moments from the NCAS Mobile X-band Radar unit 1 at Sandwith, UK``
institution
This is the name of the institution employing the creator. This is added to
help users of the data track down the creator if they need to.
:Example: ``National Centre for Atmospheric Science (NCAS)``
references
References that describe the data or the methods used to produce it.
For example, this may be a paper describing the instrument.
:Example: ``https://doi.org/10.5194/amt-11-6481-2018``
source
This is a descriptor that uniquely identifies the source of the original data.
:Example: ``NCAS Mobile X-band Radar unit 1``
history
This is free form text that gives the history of the data from collection to
the present version. A time-stamped new line should be appended to describe
each processing step.
comment
This is free form text and is used to provide the user with any additional
information that may be of use.
instrument_name
This should be filled with the unique NCAS instrument name
:Example: ``ncas-mobile-x-band-radar-1``
Attributes required by NCAS-Radar-1.0 that are optional in CfRadial-1.4
-----------------------------------------------------------------------
The following global attributes are optional within CfRadial-1.4, but are
required by NCAS-Radar-1.0.
platform_is_mobile
:Example: ``false``
Additional attributes required by NCAS-Radar-1.0
------------------------------------------------
The following global attributes are required by NCAS-Radar-1.0 but are not part
of the CfRadial-1.4 convention:
instrument_manufacturer
The name of the instrument manufacturer
:Example: ``Meteorologische Messtechnik (Metek) GmbH``
instrument_model
The instrument model name
:Example: ``MIRA-35``
instrument_serial_number
The instrument serial number which is registered to the instrument name used
in the file name and linked to the “source”
:Example: ``63270V``
instrument_pid
This is a unique persistent identifier (PID) for the instrument, for example
registered on the Handle.Net registry.
:Example: ``https://hdl.handle.net/21.12132/3.191564170f8a4686``
instrument_software
If known this is the name of the software running on the instrument that
actually controls and makes the measurement.
:Example: ``radar-camra-rec``
instrument_software_version
Manufacturers often update instrument software and subtle changes in this
code can result in changes in the quality of the data provided. To be able
to trace any such effect the version of software running is embedded in the
metadata.
:Example: ``v2.08.11``
creator_name
This is the name of the person who generated the file. This is the person to
contact if there are any questions about the data presented and how they were
produced.
:Example: ``A. Person``
creator_email
The contact email for the person who created the file. It is, however,
recognized that people move institution, and that this
may not always be valid.
:Example: ``A.Person@aplace.ac.uk``
creator_url
The ORCID URL of the person who created the file is something that goes with
them and unlike email using this to trace the creator has a greater chance of
success. Other PIDs may be used, but ORCID is the preferred option.
:Example: ``https://orcid.org/0000-0000-0000-0000``
processing_software_url
To go from the Level 0 data produced by the source to the files that are
to be archived requires the creator to do some sort of data processing.
This processing may involve various levels of QC and data formatting so that
it meets the archive standard. Where this code is developed by the creator
it is deposited on an open repository --- usually GitHub --- and this is the
url to that code. The use of a repository means that the code is version
controlled and the exact version used to create the file is accessible.
This only applies to creator-developed code -- no manufacturer proprietary
software is deposited in the repository.
:Example: ``https://github.com/name1/name2/``
processing_software_version
This is the version of the processing software.
:Example: ``v1.3``
product_version
Over time, the discovery of errors, introduction of new processing algorithms
or the refinement of calibration values may mean that the data need to be
reissued. Three levels of revision are indicated in the format ``v<n>.<m>.<p>``,
where ``n`` is a major revision (e.g. application of a new processing algorithm),
``m`` is a minor revision, and ``p`` is a patch (e.g. correction of typographical
errors). The reason for a the revision should always be detailed in the history
field.
:Example: ``v2.1.1``
processing_level
This indicates the level of quality control that has been applied to the data.
See the “Data Processing Levels” section for a full discussion.
Options: ``1``, ``2``, or ``3``
last_revised_date
This is the date of production of the data file. The time is UTC and is
given in ISO format.
:Example: ``2013-06-06T12:00:00``
project
This is the full name and associated acronym of the project and should match
that on official funding documents.
:Example: ``Microbiology-Ocean-Cloud-Coupling in the High Arctic (MOCCHA)``
project_principal_investigator
The name of the project Principal Investigator
:Example: ``B. Person``
project_principal_investigator_email
Contact email for project PI
:Example: ``B.Person@someplace.com``
project_principal_investigator_url
ORCID URL or other persistent identifier of the PI.
:Example: ``https://orcid.org/0000-0000-0000-0000``
licence
The UK Government Licensing Framework (UKGLF) provides a policy and legal
overview of the arrangements for licensing the use and re-use of public sector
information, both in central government and the wider public sector. It sets
out best practice, standardises the licensing principles for government
information, mandates the Open Government Licence (OGL) as the default
licence for Crown bodies and recommends OGL for other public sector bodies.
:Example: ``Data usage licence - UK Open Government Licence agreement: http://www.nationalarchives.gov.uk/doc/open-government-licence``
acknowledgement
Obtaining and producing these data represents a substantial amount of effort
and investment of resources. It is expected that users of these data
acknowledge this by following the request directive given in this field.
:Example: ``Acknowledgement of NCAS as the data provider is required whenever and wherever these data are used``
platform
The platform is the site or mobile platform where the instrument was deployed.
For example if it was deployed at Christmas Island then the value in this
field would be ``christmas island``. If the instrument was deployed on a
ship called Oden then the value in this field would be ``oden``
deployment_mode
Instruments can be deployed either on *land*, *sea* or *air*. The value in this field
indicates which.
time_coverage_start
This is the time value of the first ray of data in the file. The time is UTC
and in ISO format. Note that CfRadial-1.4 also incorporates this as a global
string variable. Including it here as a global attribute aligns with usage
in data files from other NCAS instruments.
:Example: ``2013-02-01T00:00:00Z``
time_coverage_end
This is the time value of the last ray of data in the file. The time is UTC
and in ISO format. Note that CfRadial-1.4 also incorporates this as a global
string variable. Including it here as a global attribute aligns with usage
in data files from other NCAS instruments.
:Example: ``2013-03-31T23:59:59Z``
geospatial_bounds
This field defines the latitude and longitude bounds associated with the file.
For a vertically pointing radar on a stationary platform this is just the latitude and longitude of the
point of deployment (as signed decimals). Otherwise it is the bounding box, i.e. a rectangle enclosing the
extent of the data resource described in latitude and longitude.
:Example: ``Bounding box: -111.29N 40.26E, -110.29N 41.26E``
platform_altitude
This is the altitude above the geoid of the platform at the location where
the instrument is deployed (i.e. the orthometric height), using the WGS84
ellipsoid and EGM2008 geoid model. For a land-based deployment this is the
orthometric height of the local ground level.
For a mobile platform this is the altitude at the start of the data volume.
Note that the altitude of the instrument is given in the variable *altitude* and
may be offset from the platform altitude.
location_keywords
These are words with geographical relevance that aid data discovery.
:Example: ``cumbria, sandwith``
Special case of a stationary vertically pointing radar
------------------------------------------------------
Vertically pointing radars on a stationary platform produce a series of profile features at the same
horizontal position with monotonically increasing times.
As such the data products conform to a CF-compliant feature type, and we should add the
following global attribute (and value).
featureType:
``timeSeriesProfile``
This attribute should be omitted for other radar configurations (e.g. scanning radars on a stationary
platform, or radars on a mobile platform).
==========
Dimensions
==========
As mentioned above, the naming of these dimensions must adhere strictly to the
CfRadial-1.4 requirements.
.. list-table::
:widths: 20 30
:header-rows: 1
:class: tight-table
* - Dimension name
- Description
* - time
- The number of rays. This dimension is optionally unlimited.
* - range
- The number of range bins.
* - sweep
- The number of sweeps.
* - string_length [#f1]_
- Length of char type variables.
.. [#f1] Any number of ‘string_length’ dimensions may be created and used. For
example, you may declare the dimensions ‘string_length', ‘string_length_short’
and ‘string_length_long’, and use them appropriately for strings of
various lengths. These are only used to indicate the length of the strings
actually stored, and have no effect on other parts of the format.
================
Global Variables
================
Variables named in **bold** in the following table are required by Cf-Radial-1.4
and NCAS-Radar-1.0. Others are optional.
.. list-table::
:widths: 20 10 20 50
:header-rows: 1
:class: tight-table
* - Variable name
- Type
- Dimension
- Comments
* - volume_number
- int
- none
- Volume numbers are sequential, relative to some arbitrary start time, and may wrap.
* - platform_type
- char
- (string_length)
- Options are: *"fixed"*, *"vehicle"*, *"ship"*, *"aircraft"*, *"aircraft_fore"*,
*"aircraft_aft"*, *"aircraft_tail"*, *"aircraft_belly"*, *"aircraft_roof"*,
*"aircraft_nose"*, *"satellite_orbit"*, *"satellite_geostat"*.
Assumed *"fixed"* if missing.
* - **time_coverage_start**
- char
- (string_length)
- UTC time of first ray in file. Resolution is integer seconds. The ''time(time)'' variable
is computed relative to this time unless time_reference is defined. Format is yyyy-mm-ddTHH:MM:SSZ
* - **time_coverage_end**
- char
- (string_length)
- UTC time of last ray in file. Resolution is integer seconds.
* - time_reference
- char
- (string_length)
- UTC time reference. Resolution is integer seconds. If defined, the time(time) variable
is computed relative to this time instead of relative to **time_coverage_start**.
====================
Coordinate Variables
====================
Variables in the following table are required by Cf-Radial-1.4 and
NCAS-Radar-1.0.
.. list-table::
:widths: 20 10 70
:header-rows: 1
:class: tight-table
* - Name
- Data type
- Dimension
* - **time**
- double
- (time)
* - **range**
- float
- (range) or (sweep,range)
Attributes for the time coordinate variable
-------------------------------------------
.. list-table::
:widths: 20 10 70
:header-rows: 1
:class: tight-table
* - Attribute name
- Type
- Value
* - **standard_name**
- string
- "time"
* - **long_name**
- string
- "time_in_seconds_since_volume_start" or "time_since_time_reference"
* - **units**
- string
- "seconds since yyyy-mm-ddTHH:MM:SSZ", where the actual reference
time values are used.
* - calendar
- string
- Defaults to "gregorian" if missing.
Attributes for the range coordinate variable
--------------------------------------------
.. list-table::
:widths: 30 10 60
:header-rows: 1
:class: tight-table
* - Attribute name
- Type
- Comments
* - **standard_name**
- string
- "projection_range_coordinate"
* - **long_name**
- string
- e.g. "range_to_measurement_volume" or "range_to_middle_of_each_range_gate"
* - **units**
- string
- "metres" or "meters"
* - **spacing_is_constant**
- string
- "true" or "false"
* - **meters_to_center_of_first_gate**
- float or float(sweep)
- Start range
* - meters_between_gates
- float or float(sweep)
- Gate spacing. Required if spacing_is_constant is "true".
* - **axis**
- string
- "radial_range_coordinate"
==================
Location Variables
==================
.. list-table::
:widths: 20 10 15 50
:header-rows: 1
:class: tight-table
* - Name
- Data type
- Dimension
- Comments
* - **latitude**
- double
- none or (time)
- Latitude of the instrument
* - **longitude**
- double
- none or (time)
- Longitude of the instrument
* - **altitude**
- double
- none or (time)
- Altitude of the instrument above the geoid (i.e. the orthometric height), using the WGS84
ellipsoid and EGM2008 geoid model [#f2]_. For a scanning radar this is the altitude of the centre of
rotation of the antenna.
.. [#f2] This definition is more specific than that given in the CfRadial-1.4 specification and aligns with that
used in CfRadial-2.1.
===============
Sweep Variables
===============
Sweep variables are always required, even if the volume only contains a single sweep.
.. list-table::
:widths: 20 10 15 10 50
:header-rows: 1
:class: tight-table
* - Name
- Data type
- Dimension
- Units
- Comments
* - **sweep_number**
- int
- (sweep)
-
- The number of the sweep in the volume scan, starting at 0.
* - **sweep_mode**
- char
- (sweep,string_length)
-
- Options are "sector", "coplane", "rhi", "vertical_pointing", "idle",
"azimuth_surveillance", "elevation_surveillance", "sunscan", "pointing",
"manual_ppi", "manual_rhi"
* - **fixed_angle**
- float
- (sweep)
- degree
- Target angle for the sweep.
* - sweep_start_ray_index
- int
- (sweep)
-
- Index of the first ray in sweep relative to the start of volume, 0-based.
* - sweep_end_ray_index
- int
- (sweep)
-
- Index of the last ray in sweep relaitve to the start of the volume. 0-based.
============================
Moments Field Data Variables
============================
Handling of moments field variables in NCAS Radar 1.0 follows that documented for CfRadial-1.4.
Most commonly data from NCAS radars will have a fixed number of range gates per ray, and the field variables
will be 2-dimensional arrays with the dimensions *time* and *range*. For the special case of variable
numbers of gates per ray see `CfRadial Version-1.4 <https://github.com/NCAR/CfRadial/blob/62cb351e16574baa9e7f2b54c6b93b13468077fb/docs/CfRadialDoc.v1.4.20160801.pdf>`_
documentation for more details.
The field data will be stored using one of the following:
.. list-table::
:widths: 10 10
:header-rows: 1
:class: tight-table
* - Type
- Byte width
* - byte
- 1
* - short
- 2
* - int
- 4
* - float
- 4
* - double
- 8
The netCDF variable name is interpreted as the short name for the field.
The following attributes are required for field variables:
.. list-table::
:widths: 10 10 10 50
:header-rows: 1
:class: tight-table
* - Attribute name
- Type
- Convention
- Description
* - **long_name**
- string
- CF
- Long name describing the field.
* - **standard_name** or **proposed_standard_name**
- string
- CF
- Proposed CF standard name for the field
* - **units**
- string
- CF
- Units for the field
* - **_FillValue**
- same type as field data
- CF
- Indicates data are missing at this range bin.
* - **coordinates**
- string
- CF
- See note below
.. rubric:: Use of coordinates attribute
The *"coordinates"* attribute lists the variables needed to compute the location of a data point in space.
For stationary platforms it should be set to *"elevation azimuth range"*. For moving platforms it should be
*"elevation azimuth range heading roll pitch rotation tilt"*
Quality control
---------------
In CfRadial-1.4 a field variable may make use of more than one reserved value to indicate a variety of conditions.
For example, with radar data, you may wish to indicate that the beam is blocked for a given gate, and that no echo
will ever be detected at that gate. That provides more information than just using *_FillValue*. The *flag_values* and
*flag_meanings* attributes can be used in this case, which specifies the associated quality-control field variable.
Although CfRadial-1.4 allows the assignment of *flag_values* directly to a moment field, this is **not** the
preferred approach in NCAS-Radar. Instead, quality control for a field variable is specified through one or more
associated "quality control fields", which are specified by the *ancillary_variables* attribute.
Quality control fields may be constructed using sets of *flag_values* together with associated *flag_meanings*.
For example, we might use a quality control field named *qc_flag* as follows:
.. code-block:: text
ubyte qc_flag(time, range) ;
qc_flag:is_quality_field = "true" ;
qc_flag:qualified_variables = "dBZH vel" ;
qc_flag:long_name = "Quality control flag" ;
qc_flag:flag_values = 0UB, 1UB, 2UB, 4UB, 255UB ;
qc_flag:flag_meanings = "not_used good_data bad_data data_in_blind_range no_qc_performed" ;
Note the use of the *is_quality_field* attribute to indicate that this is a quality control field.
This is important as it defaults to "false" if not present.
A quality control field uses the attribute *qualified_variables* (in this example variables with the short names
*dBZH* and *vel*) to specify (as a space delimited list) which field variables it qualifies.
Instead of a list of *flag_values*, we also have the option of specifying quality control using a flag_mask field.
This is an integer-type field variable where each element is constructed using a bit-wise OR to combine conditions.
In this case the *flag_masks* and *flag_meanings* attributes are used to indicate the valid values and
meanings.
A given field variable may be associated with more than one quality control field. For example,
in addition to a quality control flag we may have an associated quality control field to specify
the uncertainty in the field variable. Such a field would be of the same type as the field variable
it qualifies.
===================
Naming of variables
===================
.. _field_variables_table:
Table of field variables and proposed standard names
----------------------------------------------------
The attribute ``standard_name`` should only be used where it has already been accepted as a standard name
in the CF convention. Otherwise, the attribute ``proposed_standard_name`` shoud be used.
.. list-table::
:widths: 50 10 20 20
:header-rows: 1
:class: tight-table
* - Standard name
- Short name
- Units
- Aready in CF?
* - equivalent_reflectivity_factor
- DBZ
- dBZ
- yes
* - linear_equivalent_reflectivity_factor
- Z
- Z
- no
* - radial_velocity_of_scatterers_away_from_instrument
- VEL
- m s-1
- yes
* - doppler_spectrum_width
- WIDTH
- m s-1
- no
* - log_differential_reflectivity_hv
- ZDR
- dB
- no
* - log_linear_depolarization_ratio_hv
- LDR
- dB
- no
* - log_linear_depolarization_ratio_h
- LDRH
- dB
- no
* - log_linear_depolarization_ratio_v
- LDRV
- dB
- no
* - differential_phase_hv
- PHIDP
- degree
- no
* - specific_differential_phase_hv
- KDP
- degree km-1
- no
* - cross_polar_differential_phase
- PHIHX
- degree
- no
* - cross_correlation_ratio_hv
- RHOHV
-
- no
* - co_to_cross_polar_correlation_ratio_h
- RHOXH
-
- no
* - co_to_cross_polar_correlation_ratio_v
- RHOXV
-
- no
* - log_power
- DBM
- dBm
- no
* - log_power_co_polar_h
- DBMHC
- dBm
- no
* - log_power_cross_polar_h
- DBMHX
- dBm
- no
* - log_power_co_polar_v
- DBMVC
- dBm
- no
* - log_power_cross_polar_v
- DBMVX
- dBm
- no
* - linear_power
- PWR
- mW
- no
* - linear_power_co_polar_h
- PWRHC
- mW
- no
* - linear_power_cross_polar_h
- PWRHX
- mW
- no
* - linear_power_co_polar_v
- PWRVC
- mW
- no
* - linear_power_cross_polar_v
- PWRVX
- mW
- no
* - signal_to_noise_ratio
- SNR
- dB
- no
* - signal_to_noise_ratio_co_polar_h
- SNRHC
- dB
- no
* - signal_to_noise_ratio_cross_polar_h
- SNRHX
- dB
- no
* - signal_to_noise_ratio_co_polar_v
- SNRVC
- dB
- no
* - signal_to_noise_ratio_cross_polar_v
- SNRVX
- dB
- no
* - normalized_coherent_power
- NCP
-
- no
* - corrected_equivalent_reflectivity_factor
- DBZc
- dBZ
- no
* - corrected_radial_velocity_of_scatterers_away_from_instrument
- VELc
- m s-1
- no
* - corrected_log_differential_reflectivity_hv
- ZDRc
- dB
- no
* - radar_estimated_rain_rate
- RRR
- mm h-1
- no
* - rain_rate
- RR
- kg m-2 s-1
- yes
* - radar_echo_classification
- REC
- legend
- no
.. _metadata_variables_table:
Table of metadata variables with strict names and suggested long names
----------------------------------------------------------------------
.. list-table::
:widths: 30 50 20
:header-rows: 1
:class: tight-table
* - Variable name
- Long name
- Units
* - altitude_agl
- altitude_above_ground_level
- meters or metres
* - altitude_correction
- altitude_correction
- meters or metres
* - altitude
- altitude
- meters or metres
* - antenna_transition
- antenna_is_in_transition_between_sweeps
-
* - azimuth_correction
- azimuth_angle_correction
- degrees
* - azimuth
- ray_azimuth_angle
- degrees
* - drift_correction
- platform_drift_angle_correction
- degrees
* - drift
- platform_drift_angle
- degrees
* - eastward_velocity_correction
- platform_eastward_velocity_correction
- m s-1
* - eastward_velocity
- platform_eastward_velocity
- m s-1
* - eastward_wind
- eastward_wind
- m s-1
* - elevation_correction
- ray_elevation_angle_correction
- degrees
* - time_coverage_end
- data_volume_end_time_utc
- seconds
* - fixed_angle
- target_fixed_angle
- degrees
* - follow_mode
- follow_mode_for_scan_strategy
-
* - frequency
- radiation_frequency
- s-1
* - heading_change_rate
- platform_heading_angle_rate_of_change
- degrees
* - heading_correction
- platform_heading_angle_correction
- degrees
* - heading
- platform_heading_angle
- degrees
* - instrument_name
- name_of_instrument
-
* - instrument_type
- type_of_instrument
-
* - latitude_correction
- latitude_correction
- degrees
* - latitude
- latitude
- degrees_north
* - longitude
- longitude
- degrees_east
* - northward_velocity_correction
- platform_northward_velocity_correction
- m s-1
* - northward_velocity
- platform_northward_velocity
- m s-1
* - northward_wind
- northward_wind
- m s-1
* - nyquist_velocity
- unambiguous_doppler_velocity
- m s-1
* - n_samples
- number_of_samples_used_to_compute_moments
-
* - pitch_change_rate
- platform_pitch_angle_rate_of_change
- degree s-1
* - pitch_correction
- platform_pitch_angle_correction
- degrees
* - pitch
- platform_pitch_angle
- degrees
* - platform_is_mobile
- platform_is_mobile
-
* - platform_type
- platform_type
-
* - polarization_mode
- transmit_receive_polarization_mode
-
* - prt_mode
- transmit_pulse_mode
-
* - pressure_altitude_correction
- pressure_altitude_correction
- meters or metres
* - primary_axis
- primary_axis_of_rotation
-
* - prt
- pulse_repetition_time
- seconds
* - prt_ratio
- multiple_pulse_repetition_frequency_ratio
-
* - pulse_width
- transmitter_pulse_width