Skip to content

Support ne256 in tc_analysis - #879

Draft
chengzhuzhang wants to merge 1 commit into
mainfrom
tc-analysis-ne256
Draft

chengzhuzhang wants to merge 1 commit into
mainfrom
tc-analysis-ne256

Conversation

@chengzhuzhang

Copy link
Copy Markdown
Collaborator

Addresses #855.

Summary

tc_analysis chose the DetectNodes warm-core search radius only for ne30 (1.0°) and ne120 (0.30°), and any other resolution failed with ERROR (13). This PR adds ne256 with 0.15°, the value @kaizhangpnl recommends in #855. The existing ne30 and ne120 values already match his.

Changes

  • zppy/templates/tc_analysis.bash
    • Add the res == 256 case (temp_threshold_radius=0.15).
    • The unsupported-resolution error now lists the supported values (30, 120, 256). The bad-input_grid error describes the neXpg2/neXnp4 format.
    • Correct the description of the warm-core criterion. temp_threshold_radius is the minmaxdist field of --closedcontourcmd. DetectNodes first finds the maximum of the 200/500 hPa average temperature within that distance of the SLP minimum (about one grid spacing, so it depends on resolution). The 0.6 K decrease within 4° is then tested from that maximum, not from the SLP minimum as the old comment said.
  • zppy/defaults/default.ini, docs/source/user_guide/tasks/tc_analysis.rst: add ne256pg2 to the input_grid examples and list the supported resolutions.
  • tests/test_tc_analysis_resolution.py (new): renders the template and runs its resolution block in bash. It checks the radius for 30, 120 and 256, and checks that an unsupported value exits with status 13.

No other ne256-specific changes were needed. Mesh generation (GenerateCSMesh --res, plus GenerateVolumetricMesh for pg2) and the input_grid parsing already accept any neX.

Not included

The second part of #855, the resolution-dependent NodeFileEditor radial wind profile bins, doesn't apply to zppy. zppy's tc_analysis runs DetectNodes, StitchNodes and HistogramNodes, followed by the AEW steps, and doesn't compute radial profiles.

Testing

  • The new tests and all 154 unit tests pass, and pre-commit is clean. Against main, the ne256 and error-message tests fail.
  • Not yet tested on ne256 data. The ne256 EAMxx run I checked (ne256pg2_ne256pg2.F2010xx-ZM-CICE.260306.splitform_TMSoff_Recipe2_updated) has 3-hourly native-grid output, but it lacks T_mid_at_200hPa, T_mid_at_500hPa, U/V_at_model_bot and U/V_at_850hPa. This PR stays a draft until the change can be run on ne256 output that has the tc_vars.

🤖 Generated with Claude Code

Add the ne256 warm-core search radius (0.15 degrees) recommended in #855,
list the supported resolutions in the error messages and docs, and
correct the description of the warm-core criterion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chengzhuzhang

Copy link
Copy Markdown
Collaborator Author

@kaizhangpnl hi, Kai. I quickly created this PR based on your recommendation. Could you provide some ne256 output that I can test this with? Thank you!

@chengzhuzhang chengzhuzhang added this to the v3.3.0 milestone Sep 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant