[Feature]: Mesh layer for unstructured mesh results (SMS 2DM + DAT)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- rust
- Domain
- computer-graphics
Research direction
Read ROADMAP.md and related issues #396 and #726 to understand current data source plans. Obtain sample SMS 2DM and DAT files from the author to understand the format. Done means RustGIS can open these files as a mesh layer with coloring and legend.
Written by the indexing model from the issue text.
Description
Before you start
- I searched the existing issues and the roadmap and did not find a duplicate request.
What problem does this solve?
Before you start
- I searched the existing issues and the
roadmap and did not find a duplicate
request. (Related but different: #396 is about NetCDF/HDF5 data sources; #726's "mesh layer"
means 3D solids/glTF. What I am asking for is a 2D data-mesh layer, like QGIS's mesh layer.)
What problem does this solve?
I work with hydrodynamic simulation results that live on unstructured computational meshes. The
standard exchange format is SMS 2DM — a plain-text mesh of nodes and cells — with scalar or vector
results in companion .dat files: values per node or cell, one record per time step.
RustGIS cannot open these files today. The values sit on mesh nodes and cells rather than on a
regular grid, so they are neither vector features nor rasters. I currently keep QGIS alongside
RustGIS just to view these results, or resample them to GeoTIFF, which loses the mesh geometry and
misrepresents values where cells are large.
My meshes run from tens of thousands to about a million cells, usually with a dozen or so time
steps per plan.
What I would like
A mesh layer that:
- opens SMS 2DM + DAT files;
- colours the mesh by a chosen result variable and time step, with a legend;
- sits in the map like any other layer — over or under basemaps and other layers, honouring draw
order and opacity; - ideally offers both flat per-cell colouring and smooth interpolation between node values, the
way QGIS does.
Further out, I will eventually need to edit meshes as well (moving vertices, splitting cells) —
but viewing results well is the immediate need.
Alternatives considered
- QGIS/MDAL. Works, but the results live in a second tool and cannot take part in RustGIS
maps, annotation or sharing. - Resampling to GeoTIFF. Loses the mesh geometry and distorts values where cells are large.
- A script converting cells to polygon features. Workable for small meshes, heavy at ~10⁶
cells, and still misses smooth node-value rendering.
Proposed solution
I don't know the codebase well enough to estimate — leaving that to the team. Happy to provide
sample 2DM/DAT files from my work if that would help.
Estimated scope
Medium: a broader feature that is feasible in a reasonable timeframe
Alternatives considered
No response
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 268
- Avg merge
- 3h 37m
- Merged PRs (30d)
- 818
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from opengeos/RustGIS
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
[Feature]: Line labels try other places along the line, and sit a distance above or below it. Part 2Openenhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
[Feature]: Join Field: match a text key with a number key, so Census tables join to TIGER tractsPossibly taken @PawelKra claimed this today. Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
opengeos/RustGIS#1175 · 2 reactions ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 65/100
Maintainers usually reply within 1 day
All issues in opengeos/RustGIS
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
dekobon/big-code-analysis#1729 ·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
akitaonrails/ai-memory#1888 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
peteonrails/voxtype#941 ·
Maintainers usually reply within 4 days
-
bug priority:medium triage:maintainable
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ccusage/ccusage#2000 · 3 comments ·
Maintainers usually reply within 1 day