ADF icon indicating copy to clipboard operation
ADF copied to clipboard

Better "pre-flight" checking and refactoring of polar maps

Open brianpm opened this issue 10 months ago • 1 comments

This PR contains a very tiny change in the global maps script. It is a bug fix to reverse the logic when checking whether all the plots for a given variable have been made. This will speed up ADF runs that don't need to re-make those plots.

It does the same for the polar plots, but with a much more substantial refactoring of the script. I think that it produces all the same plots, but the code is more efficient and easier to read. Essentially it has a more elaborate "pre-flight" part of the code, where it figures out all the plots that will be made and keeps all the information about them in a dictionary, and then iterates through a list of these dictionaries to do the calculations. This reduces the complexity of the code a lot because it removes nested loops for all the variations. It also updates the polar plots script to use the adf_dataset module, which also reduces code.

If we confirm this works and we like the approach, I think we should open an issue to refactor the other standard plotting scripts to use this structure.

brianpm avatar Mar 07 '25 16:03 brianpm

@justin-richling -- Could you test this and confirm that it is generating the same plots as the current ADF script? I'm kind of excited to reduce the size of the script by this much, I hope I'm not missing anything.

brianpm avatar Mar 07 '25 16:03 brianpm

Added a function in plotting_functions.py and adjusted make_polar_plot function. We now explicitly transform the coordinates as a separate step instead of trying to use cartopy's transform_first option. This allows fast polar plots and gets rid of the messed up polar plots (usually percent difference).

brianpm avatar Jun 27 '25 19:06 brianpm