Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notes for upgrading to the 0p25_1hr model #3

Open
darksidelemm opened this issue Jul 9, 2023 · 0 comments
Open

Notes for upgrading to the 0p25_1hr model #3

darksidelemm opened this issue Jul 9, 2023 · 0 comments

Comments

@darksidelemm
Copy link
Member

darksidelemm commented Jul 9, 2023

Tawhiri currently uses the 0.5 degree spatial resolution, 3 hour time resolution model (0p50_3hr).

A good step forward in prediction accuracy (in some circumstances at least...) would be to move to the 0.25 degree spatial resolution, 1 hour time resolution GFS model (0p25_1hr). This will require changes in both the downloader and this repository.

I have made notes on the likely required changes in the downloader here.

The overall changes are are:

  • General increase in dataset size. We go from ~9GB to ~80GB per dataset file. The dataset is a multi-dimensional array of float32s, with axes:
    • hour - Time into the model, in hours
    • level - Pressure level
    • variables - what variables we have for each position (we use UGRD, VGRD and HGT)
    • Latitude
    • Longitude
  • Changing from a time-step that steps by 3 hours across the entire model time range, to one that starts out with 1 hour steps, then changes to 3 hour steps at +120 hours.

Some notes on where changes will need to be made in the code:

  • The dimensions of the dataset are defined here. This will change to 145, 47, 3, 721, 1440.
  • If there are any extra pressure levels available to us, they would need to be added here
  • The 'lookups' for each axis are defined here and will need to be adjusted for the new dataset sizes and values (e.g. for hour this will be something like: [x for x in range(0, 121)] + [x for x in range(123, 192+3, 3)]

In the interpolator code, a few changes need to be made:

  • Dataset dimensions here
  • A bunch of hardcoded dimensions in pick3 here. The pick call for the hour will get a bit more complicated, and may need a separate function due to the change in step size partway through the times.
  • Possible changes here - I think this refers to the number of pressure levels.
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

No branches or pull requests

1 participant