Skip to content

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

Open
gmcga wants to merge 2 commits into
developfrom
GEOPY-2942
Open

GEOPY-2942: Explore functionality of fast-RBF iso-surface ferreus-rmt#57
gmcga wants to merge 2 commits into
developfrom
GEOPY-2942

Conversation

@gmcga

@gmcga gmcga commented Aug 12, 2026

Copy link
Copy Markdown

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 on lines +828 to +832
"comparison_x, comparison_y, comparison_z = np.meshgrid(\n",
" comparison_grid[0],\n",
" comparison_grid[1],\n",
" comparison_grid[2],\n",
")\n",
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?

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