-
Hello, I've been trying to use pyart for "simple" task of essentially assembling the composite of NEXRAD radar Level 2 data (but specifically limited to simple reflectivity) between the latitude of 29N and 44N and longitude of 87W 70W, so... essentially the most of USA East Coast and then a good bit inland. I've actually been successful, and I'm at glance fairly happy with the result. The issue is, this area (with real world boundary of roughly 1650x1650km) with the ~40 NEXRAD radars that seem active at April 2015 (my testing sample) take 30s to load and then staggering 3 minutes to run through grid_from_radars on a fairly powerful machine (Ryzen 5950X). It also requires ~40GB of RAM when processing the grid. The load I can probably get a good bit of performance for by parallelizing it and making it run concurrently with the processing, but the grid_from_radars I am helpless with. I'm aiming to produce a dataset here that will span years with 10 minute steps; that's a lot of pictures and, since it runs at ~third of the ten minute "realtime"; it'd process at this rate for years again. my (truncated) code looks like this;
Making the grid smaller doesn't really seem to have much effect. The non-default gridding_algo was so slow I haven't even waited to find out how long is it going to take. What can I do to bring this closer to realm of speed that's realistically acceptable for me? Worst case, I could make do with plain nearest-neighbor zmax aggregate (and worst case, I'll write that from scratch), but I was really hoping to make use of pyart's native support for reading the files, taking care of the earth curvature, etcetera. Is there way to squeeze that speed out? |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
First, this great! It shows how far Py-ART has come this is doable. Just getting rid of invalid gates will speed things up
|
Beta Was this translation helpful? Give feedback.
-
@mgrover1 we should move this or document this in the discourse |
Beta Was this translation helpful? Give feedback.
-
here is a better example https://github.com/ARM-Development/PyART-Training/blob/main/2-Cloud_Examples/1-NEXRAD_on_Amazon.ipynb
Also you can save memory by popping unused fields.
|
Beta Was this translation helpful? Give feedback.
-
While this isn't in Py-ART itself, the "radar mosaic creation" use-case is what I am building OpenMosaic for on top of Py-ART using Dask and other Pangeo tools. I'm in the midst of a significant API overhaul, so there unfortunately isn't a version immediately ready to use (hopefully by mid-January it'll be ready), but if you wanted to take a look at the prior version (either to use, or take inspiration from), see https://github.com/jthielen/OpenMosaic/tree/old-api. |
Beta Was this translation helpful? Give feedback.
here is a better example https://github.com/ARM-Development/PyART-Training/blob/main/2-Cloud_Examples/1-NEXRAD_on_Amazon.ipynb