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

Development of efficient conservative spherical polygon interpolation #129

Open
wdeconinck opened this issue May 2, 2023 · 0 comments
Open
Assignees
Labels
Status: In Progress This is currently being worked on

Comments

@wdeconinck
Copy link
Member

wdeconinck commented May 2, 2023

✅ Phase 1: #130

Problem:

  • Polygon intersection not precise for pole points with more than 10k edges going into it, e.g. S43200x21600 source to O1280 target has significant under-coverage of target cells at the poles.

Tasks:

  • Easier diagnosis: create automatic detection of one worst example of a target cell covering to be easily visualised in python polygon viewer.

  • Fix problem by revision of polygon intersection algorithm

Phase 2: Not started

Problem:

  • The algorithm to find suitable source polygons for intersection makes use of a "compare_pointxyz" function which contains an epsilon that needs to be tweaked depending on grid resolution.
  • The same algorithm is expensive and contains an OpenMP "critical" region.

Tasks:

  • Make use of deterministic information to detect source polygons. Only source polygons which are not in the periodic halo should be considered.

Phase 3: Not started

Problem:

  • The algorithm loops over source polygons and finds suitable target polygons for intersection. Interpolation weight contributions are then assembled for the target polygons. This prevents efficient OpenMP parallelisation, by introducing an OpenMP "critical" region.
  • The resulting vector of eckit::linalg::Triplet then contains multiple triplets corresponding to the same row, col of the interpolation matrix. Before creating the interpolation matrix these are now merged into unique contributions, which is very inefficient.

Task:

  • Invert the algorithm to loop over target polygons to detect source polygons. Probably a can of worms...
@wdeconinck wdeconinck added the Status: In Progress This is currently being worked on label May 2, 2023
@wdeconinck wdeconinck changed the title Fix issues with high resolution conservative spherical polygon interpolation Development of efficient conservative spherical polygon interpolation May 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: In Progress This is currently being worked on
Projects
None yet
Development

No branches or pull requests

2 participants