src/modelskill/plotting/_spatial_overview.py has accumulated debt over time. Worth a focused cleanup pass.
Symptoms
Suggested direction
- Make the accept list explicit: which model/geometry types does this function plot, and what does it do for each?
- Decide on
GridModelResult support (or document the gap) — the TODO has been there for a while
- Consider whether 3D-aware behavior belongs here or in a
model.outline helper on the model classes themselves (each type knows how to draw its own footprint)
- Type hints should match the accepted set, not the duck-typed reality
Out of scope for the fix PR
This issue is the place to design the cleanup; the immediate notebook-test breakage is fixed in #646.
src/modelskill/plotting/_spatial_overview.pyhas accumulated debt over time. Worth a focused cleanup pass.Symptoms
support Gridded ModelResultsbetter support for multiple modelsthis is not supported for all model typesgroup by lonlat bin or sample randomly(track downsampling)adjust xlim to accomodate text(annotation overflow)raise ValueErrorforPointModelResult,TrackModelResult,VerticalModelResult— a reject-list rather than an accept-listDfsuModelResult | GeometryFM2D | Iterable[...]but duck-typing in the body accepts moreGeometryFM3Dadded in fix: convert 3D geometry to 2D in spatial_overview #646 as a stop-gap — fine for now, but symptomaticg = m.data.geometry/g = m) with a stray indented comment between branchesSuggested direction
GridModelResultsupport (or document the gap) — the TODO has been there for a whilemodel.outlinehelper on the model classes themselves (each type knows how to draw its own footprint)Out of scope for the fix PR
This issue is the place to design the cleanup; the immediate notebook-test breakage is fixed in #646.