Skip to content

Vertical skill#585

Draft
otzi5300 wants to merge 16 commits intomainfrom
vertical-skill
Draft

Vertical skill#585
otzi5300 wants to merge 16 commits intomainfrom
vertical-skill

Conversation

@otzi5300
Copy link

@otzi5300 otzi5300 commented Feb 19, 2026

See vertical_skill notebook for plots examples, implementation ideas etc.

Summary of qustionnaire ~40 answers

  • People use sigma-layers (some use Mike Wave but I guess it also work with sigma)
  • Most use fixed profile location in time
  • Some use Matlab and excel but most use python and Mike Zero Probably P or M in combination with Mike Zero
  • Most people interpolate model depth to exact obs pos. However, ~1/3 binned the obs to model cells (with or without aggregate)
  • Clear, ready to use visualizations are highly valued: observed vs modelled vertical profiles
  • Vertical profile analysis is a key gap: e.g. depth range stats, and easier profile to profile comparisons.
  • Advanced diagnostic plots are requested: e.g. Hovmöller diagrams
  • Users have example plots and scripts

What does this mean for Modelskill dev:

  1. Focus on sigma-z layers
  2. Start with x,y fixed profiles
  3. Options to interpolate or bin observations
  4. Need dedicated vertical plots
  5. Vertical profiles stats, e.g. vertical_grid_stats

Features needed for minimal version

  • Support vertical observations with fixed position and depth coordinates. Time coordinate should support non-equidistant timsteps.
  • Match 3D sigma model to these observations with binning and interpolation. Get a comparerer.
  • Calculate statistics on vertical grids (e.g. rmse with depth)
  • Slice Comparer in vertical (results similar as comaprer with pointObs)
  • Aggregate Comparerer in vertical (results similar as comaprer with pointObs)
  • Plots

Copy link
Member

@ecomodeller ecomodeller left a comment

Choose a reason for hiding this comment

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

Great summary.

Nice to have some plots to use as inspiration.

otzi5300 added 15 commits March 3, 2026 16:21
* Adds vertical geometry type
* Adds additional check for zcoord if gtype is vertical
Very similar to parsing of tracks (_track.py) but z-coordinate is now needed.

* remove duplicated (time,z) pairs. Note, duplicated time allowed ( obs with same time on multiple depth)
Stores timeseries data for vertical profiles.

data structure

time(time) = [t1, t1, t1, t2, t2, t2, t3 ...]
z(time) = [z1. z2, z3, z4, z5, z6, z7 ...]
data(time) = [d1, d2, d3, d4,d5,d6,d7....]
fn = Path("tests/testdata/vertical/VerticalProfile_ST.dfs0")
# no item specified, but multiple items in file
with pytest.raises(ValueError):
obs = ms.observation(fn, z_item="z")
index=[pd.Timestamp("2019-01-01")] * 3,
)
with pytest.warns(UserWarning, match="Removed 1 duplicate"):
obs = ms.VerticalObservation(
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.

2 participants