PyART and cfradial

It’s been a couple of years since I really looked into the latest cfradial formats. From looking at the documentation the cfradial1.4 format was a 1D varying gates storage. The cfradial2.0 is a 2-D (time, range) storage definition?

And the followup if that is correct is: Does Py-ART follow only the cfradial2.0 standard (that’s what it looks like is output from write_cfradial function?

Py-ART’s write_cfradial function returns a cfradial 1.x standard file.

This poster from Mike Dixon in 2016 outlines the difference between cfradial1 and cfradial2 pretty well, where cfradial1 can uses both time and range as the dimensions, with swee_start_ray_index sweep_end_ray_index values within the dataset indicating where one sweep starts and ends.

Cfradial2, on the other hand, makes use of netCDF4 groups, storing a hierarchal dataset where each sweep is an individual branch in the tree. For more information on the cfradial2 standard, check out Mark Curtis’s presentation from the European Weather Radar Conference (use the link below to download the poster, NET.P3.Curtis.pdf)

Figure 3 is probably the best illustration of this idea… where the volume is a file, with multiple groups (sweeps) inside.

Screen Shot 2022-10-18 at 2.40.01 PM

We (Py-ART + wradlib developers) are working on moving to a shared IO package, xradar, which will conform to this new cfradial2 standard, where the data model is explained here.

I encourage you (and others) to check out this new package! This will be compatible with the rest of the Py-ART functionality in the near future.


Thanks for this explanation, this is a great overview.
I’ll definitely look into xradar package!

The University of Wyoming’s airborne radars are also transitioning to Cfradial2, although with a slightly different application of a sweep do to the nature of the measurements. Each sweep will still store data for a constant pointing angle (relative to the aircraft) but this is because each sweep will contain data fields for an individual antenna. This means that the different sweeps (sweep_up, sweep_down, etc.) have the same time variable and are simultaneous rather than sequential.

Is this still using netCDF groups in the files?

Yes. Each file has the top-level root variables, followed by second-level sweep (antenna) groups for however many antennas were active. These contain additional monitoring/georeference groups.

1 Like

Great!! Very exciting - thanks for sharing this here!

1 Like

Yes, that sounds it will still fit into the model. Would be great if @cgrasmick could provide one example file for our testsuite, when available.

1 Like