Skip to content

Enhance MET to calculate power spectra on global domains using spherical harmonics #3436

Description

@gsketefian

Describe the Enhancement

Once PR #3411 is merged, MET will have the ability to calculate power spectra on regional grids using the discrete cosine transform (DCT).

However, the DCT is appropriate only for regional grids because it assumes a symmetric extension of the domain in both directions (an assumption that is not valid for a global domain). Thus, it should not be applied to global domains. For global domains (which are periodic in the zonal direction but not in the meridional), the proper transform to use is the spherical harmonics. This uses the Fourier transform in the zonal direction and the Legendre transform in the meridional. Thus, add to MET the capability to calculate the spherical harmonic transform of a global field.

Also consider the following options:

  • For grids that wrap the earth but do not include the poles, a hybrid approach would be appropriate. Use spherical harmonics in the horizontal paired with DCT in the vertical.
  • Consider whether adding support for DFT (Discrete Fourier Transform) would be worthwhile. If added, we'd need to revisit how the wavelenghts are reported. A source paper groups together adjacent DCT bins to make the DCT output comparable to DFT.
  • Consider where the decomposition method choice should be made configurable. Recommend that the code "choose" the recommended option based on the grid geometry, but should users be able to override that default?

Time Estimate

Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.

Sub-Issues

Consider breaking the enhancement down into sub-issues.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a MET-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a MET-X.Y.Z version, select the MET-X.Y Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y Development project for development toward the next coordinated release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Activity

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

Metadata

Metadata

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions