Skip to content

GEOPY-2942: Explore functionality of fast-RBF iso-surface ferreus-rmt - #57

Merged
domfournier merged 9 commits into
developfrom
GEOPY-2942
Aug 21, 2026
Merged

GEOPY-2942: Explore functionality of fast-RBF iso-surface ferreus-rmt#57
domfournier merged 9 commits into
developfrom
GEOPY-2942

Conversation

@gmcga

@gmcga gmcga commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

GEOPY-2942 - Explore functionality of fast-RBF iso-surface ferreus-rmt

Copilot AI lite review requested due to automatic review settings August 12, 2026 15:49
@github-actions github-actions Bot changed the title geopy-2942 GEOPY-2942: Explore functionality of fast-RBF iso-surface ferreus-rmt Aug 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds exploratory Ferreus RMT / RBF proof-of-concept notebooks and a sample geoH5 dataset to evaluate iso-surface extraction workflows against existing marching-cubes behavior.

Changes:

  • Add a geoH5 (Git LFS) sample dataset for real geochemistry point testing.
  • Add notebooks to (a) validate RMT extraction/export on synthetic fields and (b) compare marching cubes vs RMT on a shared gridded field.
  • Introduce a surface_apps.ferreus package marker (__init__.py) with the standard project header.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
surface_apps/ferreus/geochem_pts/geochem_pts_example.geoh5 Adds sample geoH5 dataset via Git LFS for notebook experiments.
surface_apps/ferreus/ferreus_rmt_real_geochem_comparison.ipynb Notebook comparing existing marching-cubes extraction vs RMT on real geochem data.
surface_apps/ferreus/ferreus_rmt_geoh5_poc.ipynb Notebook POC for RMT extraction/export plus RBF-fitted synthetic workflow and MC vs RMT comparison.
surface_apps/ferreus/init.py Adds package initializer with standard license header.
Suppressed comments (1)

surface_apps/ferreus/ferreus_rmt_geoh5_poc.ipynb:1210

  • The notebook metadata advertises a Python 2 kernel (pygments_lexer ipython2 / version 2.7.6) while kernelspec is Python 3. This inconsistency can cause Jupyter/JupyterLab to select the wrong kernel or render syntax highlighting incorrectly.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread surface_apps/ferreus/ferreus_rmt_geoh5_poc.ipynb Outdated
Comment on lines +122 to +123
" source_object = input_workspace.get_entity(OBJECT_NAME)[0]\n",
" source_data = input_workspace.get_entity(DATA_NAME)[0]\n",
"id": "21305e00d59c4e30",
"metadata": {},
"source": [
"'''MAX_PREVIEW_TRIANGLES = 2_500\n",
"\n",
"Objectives:\n",
"\n",
"Explore if the packages allows for\n",

@domfournier domfournier left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent analysis - you did great. A couple of comments to address before we close this

Marching cube versus ferreus-rmt

I think you might have a transpose issue with the marching cubes results (which would explain why the accuracy is so poor)

Image

Which could be happening during the reshape.

Image

You might need to set the order="F".

That said, triangles are nicer with rmt, so that's a win.

RBF interpolation
At the core of extracting surfaces is how the scalar field is generated. I don't see much testing of the RBF interpolator. Scipy has one too, so it would be useful to know how they compare.

Contact and exclusion/inequality
You've alluded to the fact that the free Python doesn't support fields or inequality observations, but you might have a workaround? How much work would that involve to try?

@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.95%. Comparing base (0fd36e6) to head (d5f1f5d).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop      #57   +/-   ##
========================================
  Coverage    84.95%   84.95%           
========================================
  Files            5        5           
  Lines          246      246           
  Branches        30       30           
========================================
  Hits           209      209           
  Misses          22       22           
  Partials        15       15           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@domfournier
domfournier merged commit 4fedaf0 into develop Aug 21, 2026
15 of 16 checks passed
@domfournier
domfournier deleted the GEOPY-2942 branch August 21, 2026 18:10
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.

3 participants