Add optional YAC remapping backend with NNN/conservative support and CI coverage#1440
Add optional YAC remapping backend with NNN/conservative support and CI coverage#1440
Conversation
|
In your application the setup of YAC should get much easier (e.g. no setting of calendar or start/end time required) by using the (unfortunately basically undocumented) Python bindings for the yac_core library. Here is some basic documentation: This is an example using this interface: You can configure YAC to only build the yac_core library (which does not depend on libfyaml). In addition libnetcdf is also optional. |
There was a problem hiding this comment.
Pull request overview
Adds an optional YAC-backed remapping backend to UXarray so users can route remap operations through YAC’s interpolation machinery when requested, while keeping existing UXarray behavior as the default.
Changes:
- Introduces a new YAC backend implementation for NNN (nearest-neighbor) and conservative remapping.
- Extends the
.remapaccessor API to acceptbackend="yac"plusyac_method/yac_options. - Adds YAC-only tests and a dedicated GitHub Actions workflow to build YAC/YAXT from source and run those tests.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
uxarray/remap/yac.py |
New YAC backend implementation and import/loading logic. |
uxarray/remap/accessor.py |
Adds backend/method/options parameters and routes to YAC backend when requested. |
test/test_remap_yac.py |
Adds YAC integration/parity tests (skipped when YAC unavailable). |
.github/workflows/yac-optional.yml |
New optional CI job that builds YAXT+YAC and runs YAC-specific tests. |
.github/workflows/ci.yml |
Sets MPLBACKEND=Agg in CI environment. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/UXARRAY/uxarray/sessions/72fb3867-9fe5-4b03-84df-804cb8a333c0 Co-authored-by: rljacob <947068+rljacob@users.noreply.github.com>
…_call__ Agent-Logs-Url: https://github.com/UXARRAY/uxarray/sessions/a6202885-cbf5-4760-816d-85f25f6fcf16 Co-authored-by: rljacob <947068+rljacob@users.noreply.github.com>
…Error for unknown values Agent-Logs-Url: https://github.com/UXARRAY/uxarray/sessions/228d9dce-524e-47fd-aadd-749b46604550 Co-authored-by: rljacob <947068+rljacob@users.noreply.github.com>
Raise NotImplementedError/ValueError for backend='yac' here until a real YAC-IDW implementation exists. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/UXARRAY/uxarray/sessions/2bbea446-87e6-475a-9f23-bff5112349c6 Co-authored-by: rljacob <947068+rljacob@users.noreply.github.com>
Pass the original remap_to label into _construct_remapped_ds instead of destination_dim. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Closes #1441, Close #897