Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
edbda0b
add info on sensor configuration
j-atkins May 20, 2026
cd5b523
add list of available sensors to documentation
j-atkins May 20, 2026
4668e54
remove redundant TODO
j-atkins May 20, 2026
ae2d528
improve phrasing
j-atkins May 20, 2026
17d5b40
add details on sensor configurations to quickstart guide
j-atkins May 20, 2026
baa982a
update sail_the_ship with sensor configuration instructions
j-atkins May 20, 2026
a8a4978
enahnce phrasing
j-atkins May 20, 2026
6b3628e
add testing that docs match the code for sensor options, ensure instr…
j-atkins May 20, 2026
e23087b
add check that all instruments in code are addressed in sensor table
j-atkins May 20, 2026
a5ff3a4
update environments to pull parcels v4 alpha
j-atkins May 20, 2026
db44324
changed parcels logging api
j-atkins May 20, 2026
6f732d3
first wave of changes to the instrument logic with v4 logic, and part…
j-atkins May 20, 2026
71881cc
remove add dummy UV func, shouldn't be needed in v4 (?)
j-atkins May 20, 2026
62b2b1b
pull v4 from parcels/main
j-atkins May 20, 2026
38afc56
use AdvectionRK2
j-atkins May 20, 2026
573da9e
migrate fieldset ingestion protocol
j-atkins May 20, 2026
d13a036
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 20, 2026
5c7fd29
standardise variable naming for bathy data ingestion
j-atkins May 21, 2026
ee17230
env fixes
j-atkins May 21, 2026
72161df
Merge branch 'main' into migrate-v4
j-atkins May 21, 2026
92e74bd
add ipdb for devs
j-atkins May 21, 2026
0a83437
further changes to suit v4
j-atkins May 21, 2026
ca9e306
first steps considering handling depth positive up or down
j-atkins May 22, 2026
d4093cf
Merge branch 'migrate-v4' of github.com:OceanParcels/virtualship into…
j-atkins May 22, 2026
63122b9
refactor to _compute_max_depths; more changes in line with Parcels v4…
j-atkins May 26, 2026
a6ad631
depth -> z in ParticleSet's
j-atkins May 26, 2026
8e0a33f
times to datetime64 and update fieldset eval output
j-atkins May 28, 2026
8b76854
tmp ds.load() step for v4.0
j-atkins May 29, 2026
27c36e2
Merge branch 'main' into migrate-v4
j-atkins Jun 5, 2026
81f857f
error messaging in argo floats
j-atkins Jun 5, 2026
cd2f9ff
refactor _generate_fieldset()
j-atkins Jun 5, 2026
39e63d1
small tidy up
j-atkins Jun 5, 2026
0dc5975
from zarr -> parquet output
j-atkins Jun 5, 2026
3e52b10
endtime/time_origin API update
j-atkins Jun 5, 2026
07209bf
no temp sampling in phase 3
j-atkins Jun 5, 2026
9cb321c
endtimes access scalars directly
j-atkins Jun 5, 2026
137978d
fix wrong var name in kernel
j-atkins Jun 5, 2026
c29efe6
combined vector fields for instruments
j-atkins Jun 5, 2026
a8242c1
small tweaks/fixes
j-atkins Jun 5, 2026
95d84b7
cmo to pixi.toml and tweaked particleset API
j-atkins Jun 5, 2026
7f68c83
depth -> z for argo sampling, update interp method in base, fix ctd v…
j-atkins Jun 10, 2026
003f79f
move to positive down API throughout virtualship
j-atkins Jun 10, 2026
da86613
Revert "move to positive down API throughout virtualship"
j-atkins Jun 11, 2026
a468ade
negate *and* reindex depth in ds before fieldset creation
j-atkins Jun 11, 2026
fd2232a
fill land/nans with 0s
j-atkins Jun 11, 2026
0be180d
fixes to argo kernels + some refactoring
j-atkins Jun 12, 2026
c5b8378
Merge branch 'main' into migrate-v4
j-atkins Jun 16, 2026
1faf09d
Merge branch 'main' into migrate-v4
j-atkins Jul 13, 2026
c05d2f7
switch to using .to_windowed_arrays() for performance
j-atkins Jul 13, 2026
cff0240
neater way of negating depth
j-atkins Jul 13, 2026
d9df5b6
use interpolator object
j-atkins Jul 13, 2026
f89ce73
lat/lon/time -> y/x/t
j-atkins Jul 14, 2026
d8bd074
performance step: windowed arrays
j-atkins Jul 14, 2026
ca3ba1f
time -> t
j-atkins Jul 14, 2026
c740630
fix argo bug, min_depth spec to avoid immediately error out of bounds
j-atkins Jul 16, 2026
abb5380
remove ds.load/to_windowed_arrays experiments
j-atkins Jul 17, 2026
583fc7b
lon -> x
j-atkins Jul 20, 2026
f2becc0
use vertical_axis arg for depth convention
j-atkins Jul 20, 2026
ae98059
Refactor dataset retrieval specs (#359)
j-atkins Jul 22, 2026
391b930
add tmp file write/read step (#358)
j-atkins Jul 23, 2026
1ca6860
`to_windowed_arrays` only for non-underway instruments (#361)
j-atkins Jul 27, 2026
4dfa96f
Update underway (#360)
j-atkins Jul 31, 2026
ebd2c0c
Add initial Field sampling for non-underway instruments (#364)
j-atkins Aug 3, 2026
ac43f15
remove .fillna() now that it's in Parcels internals
j-atkins Aug 3, 2026
1e08b96
via_tmp_ds is only needed when streaming data
j-atkins Aug 4, 2026
c202418
FetchSpec takes the VirtualShip-native negative depth values
j-atkins Aug 4, 2026
9057312
bring --from-data methods up to date with new v4 workflows, also incl…
j-atkins Aug 4, 2026
d68aa09
update test_utils for new v4 workflows
j-atkins Aug 4, 2026
707328d
update test_expedition for v4 fieldset ingestion
j-atkins Aug 4, 2026
56bf4df
use context managers for _via_tmp_ds, fix using abs() for copernicusm…
j-atkins Aug 4, 2026
8954456
avoid annoying warnings concerning potential pixi build issues and co…
j-atkins Aug 4, 2026
acca7e3
revert need to specify h5netcdf engine
j-atkins Aug 4, 2026
fefcc20
update test_base.py for new v4 workflows
j-atkins Aug 4, 2026
de8c627
update tests for v4 workflows and enhance out of bounds error checking
j-atkins Aug 5, 2026
f17b43e
update tests for v4 workflows
j-atkins Aug 5, 2026
52ff1fd
update drifter tests for v4 workflows
j-atkins Aug 5, 2026
90bef40
fix bugs in xbt behavious, also update particleset inspection for v4
j-atkins Aug 5, 2026
12d87f6
update xbt tests for v4 workflows
j-atkins Aug 5, 2026
4e075a2
attempt to fix pixi env and CI
j-atkins Aug 5, 2026
dc783c0
update pixi and CI to python 3.14
j-atkins Aug 6, 2026
1d3955a
update contribution guide for pixi instructions
j-atkins Aug 6, 2026
616f5d8
fix pre-commit issue
j-atkins Aug 6, 2026
9a53435
sort out encoding to avoid UserWarnings
j-atkins Aug 6, 2026
f37ce1d
use fieldset.time_interval.left notation
j-atkins Aug 6, 2026
b3fe2de
add _handle_grounding test
j-atkins Aug 6, 2026
9601783
Merge branch 'main' into migrate-v4
j-atkins Aug 6, 2026
84db2eb
remove docstring for consistency
j-atkins Aug 7, 2026
fb789fc
filter out parcels v4 user warning for (temporary measure)
j-atkins Aug 7, 2026
d95cc5e
Merge branch 'migrate-v4' of github.com:OceanParcels/virtualship into…
j-atkins Aug 7, 2026
495c143
remove initial sampling from argo floats
j-atkins Aug 10, 2026
26d6681
argo kernel: solve issue of not updating cycle_age during ascent
j-atkins Aug 10, 2026
e40defd
Update docs for v4 migration (#371)
j-atkins Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
pixi-environment: ["test-latest"]
runs-on: [ubuntu-latest, windows-latest, macos-14]
include:
- pixi-environment: "test-py310"
- pixi-environment: "test-py311"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
Expand Down
5 changes: 2 additions & 3 deletions docs/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,8 @@ You can use the following Pixi commands to run common development tasks.

VirtualShip supports testing against different environments (e.g., different Python versions) with different feature sets. In CI we test against these environments, and you can too locally. For example:

- `pixi run -e test-py310 tests` - Run tests using Python 3.10
- `pixi run -e test-py311 tests` - Run tests using Python 3.11
- `pixi run -e test-py312 tests` - Run tests using Python 3.12
- `pixi run -e test-py311 tests` - Run tests using Python 3.11 (lower bound)
- `pixi run -e test-py314 tests` - Run tests using Python 3.14

The name of the workflow on GitHub contains the command you have to run locally to recreate the workflow - making it super easy to reproduce CI failures locally.

Expand Down
10 changes: 3 additions & 7 deletions docs/user-guide/assignments/Sail_the_ship.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -251,10 +251,6 @@
"\n",
"Small simulations (e.g. small space-time domains and fewer instrument deployments) will be relatively fast. For large, complex expeditions, it _could_ take up to an hour to simulate the measurements depending on your choices. Waiting for simulation is a great time to practice your level of patience. A skill much needed in oceanographic fieldwork ;-)\n",
"\n",
"<div class=\"alert alert-block alert-success\"> \n",
"**Tip**: Not using underway instruments will speed up the simulation time considerably. So, if you do not plan to use underway temperature/salinity or ADCP measurements, make sure to switch these off in the planning tool before running the expedition.\n",
"</div>\n",
"\n",
"<div class=\"alert alert-block alert-warning\"> \n",
"**Important**: VirtualShip may encounter 'real-life challenges' during the expedition, which simulate the various problems and unexpected events that can occur during real-life oceanographic expeditions (e.g. instrument and/or equipment failure, logistical challenges etc.). These may require your intervention to ensure your expedition schedule can continue!\n",
"</div>"
Expand All @@ -266,11 +262,11 @@
"source": [
"## 7) Results\n",
"\n",
"Upon successfully completing the simulation, results from the expedition will be stored in the `EXPEDITION_NAME/results` directory, written as [Zarr](https://zarr.dev/) files.\n",
"Upon successfully completing the simulation, results from the expedition will be stored in the `EXPEDITION_NAME/results` directory, written in `.parquet` [format](https://parquet.apache.org/).\n",
"\n",
"From here you can carry on your analysis. In general, we encourage you to explore and analyse these data using [Xarray](https://docs.xarray.dev/en/stable/). We also provide various further [VirtualShip tutorials](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/index.html) which provide examples of how to visualise data recorded by the VirtualShip instruments. Use these to help you get started!\n",
"From here you can carry on your analysis. In general, we encourage you to use [Parcels](https://Parcels-code.org/) (i.e. `parcels.read_particlefile()`) to read in VirtualShip output files, and tools such as [Polars](https://www.pola.rs/) and/or [Pandas](https://pandas.pydata.org/) for further data analysis. We also provide various further [VirtualShip tutorials](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/index.html) which provide examples of how to visualise data recorded by the VirtualShip instruments. Use these to help you get started!\n",
"\n",
"If you are using VirtualShip in class, the same tutorial notebooks will be uploaded in your SURF RC environment for you to use and interact directly with the code. These should be available in e.g. the `data/storage/tutorials/` directory. You will notice that there is a notebook file dedicated to visualising each of the different instruments available in VirtualShip. \n",
"If you are using VirtualShip in class, the same tutorial notebooks may be uploaded in your SURF RC environment for you to use and interact directly with the code. These should be available in e.g. the `data/storage/tutorials/` directory. You will notice that there is a notebook file dedicated to visualising each of the different instruments available in VirtualShip. \n",
"\n",
"To run these notebooks with your own data, you will need to copy the them over to your expedition working directory (i.e. `data/storage/{your-group-name}`). This can be done by either 1) using the file explorer panel in JupyterLab to copy the relevant files or the via the command line in Terminal. In the terminal, running `cp -r /data/storage/tutorials/* /data/storage/{your-group-name}/` would copy __all__ the tutorial notebooks to your group's directory, so if you only want to copy specific ones, make sure to adjust the command accordingly."
]
Expand Down
1 change: 1 addition & 0 deletions docs/user-guide/documentation/pre_download_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ The following assumptions are also made about the data:
3. If using BGC-enabled instruments (e.g. BGC variables on the `CTD`), the relevant biogeochemical data files must contain the following variables: `o2`, `chl`, `no3`, `po4`, `nppv`, `ph`, `phyc`.
- Or these strings must appear as substrings within the variable names (e.g. `o2_glor` is acceptable for `o2`).
4. Bathymetry data files must contain a variable named `deptho`.
5. Pre-downloaded data files must have a `"positive"` attribute for the depth dimension (e.g. `"positive": "down"` or `"positive": "up"`) in order to ensure that the depth dimension is correctly interpreted under-the-hood.

#### Also of note

Expand Down
6 changes: 4 additions & 2 deletions docs/user-guide/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ See the relevant [documentation](https://virtualship.readthedocs.io/en/latest/us

## 5) Results

Upon successfully completing the simulation, results from the expedition will be stored in the `EXPEDITION_NAME/results` directory, written as [Zarr](https://zarr.dev/) files.
Upon successfully completing the simulation, results from the expedition will be stored in the `EXPEDITION_NAME/results` directory, written in `.parquet` [format](https://parquet.apache.org/).

From here you can carry on your analysis (offline). We encourage you to explore and analyse these data using [Xarray](https://docs.xarray.dev/en/stable/). We also provide various further [VirtualShip tutorials](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/index.html) which provide examples of how to visualise data recorded by the VirtualShip instruments.
From here you can carry on your analysis (offline). We encourage you to use [Parcels](https://Parcels-code.org/) (i.e. `parcels.read_particlefile()`) to read in VirtualShip output files, and tools such as [Polars](https://www.pola.rs/) and/or [Pandas](https://pandas.pydata.org/) for further data analysis.

We also provide various [VirtualShip tutorials](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/index.html) with further examples of how to visualise data recorded by the VirtualShip instruments.
17 changes: 14 additions & 3 deletions docs/user-guide/teacher-content/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Teacher content

### Overview

VirtualShip is used as part of the VirtualShip Classroom, that combines authentic tools with VR to create a virtual fieldwork experience and allows you to teach about sea-based research from your regular classroom.

All VirtualShip Classroom (VSC) material is open under an MIT licence and freely available! You can use the VSC to teach anything from a 4 hour masterclass up to an open assignment of more than 40 hours. Example assignments are available below and please feel free to customize anything offline or [contribute](../../contributing/index.md) to the assignments provided here.
Expand All @@ -16,17 +18,26 @@ The VSC design focuses on creating didactically sound, authentic learning experi

We evaluated in several (under)graduate courses and find that the VirtualShip Classroom is highly engaging, and students report on enhanced confidence and knowledge [(Daniels et al. 2025)](https://current-journal.com/articles/10.5334/cjme.121).

### Teaching materials

```{toctree}
:maxdepth: 1
:caption: Teaching materials

ILOs.ipynb
letter.md
```

### Previous implementations

```{warning}
The following implementations are examples of how the VSC has been used in the past. They are provided here for reference only and may not be up to date with the latest version of the VSC and/or VirtualShip software.
```

#### Utrecht University

```{nbgallery}
---
caption: UU Ocean of the Future
caption: Ocean of the Future (BSc), 2025-26
---
UU-ocean-of-future/Tutorial1.ipynb
UU-ocean-of-future/CoordinatesExport-Transect.xlsx
Expand All @@ -37,7 +48,7 @@ UU-ocean-of-future/plot_slider.py

```{nbgallery}
---
caption: UU Dynamical Oceanography
caption: Dynamical Oceanography (MSc), 2025-26
---
UU-dyoc/example_expedition.md
UU-dyoc/file_permissions.md
Expand Down
Loading