Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a8a1e0a
move verify methods up to Expedition model; give method names reflect…
j-atkins Sep 23, 2026
8d35fc7
move sensor_kernels check to register_instrument rather than __init__…
j-atkins Sep 25, 2026
69d429a
add deceleration and acceleration times to ship config
j-atkins Sep 25, 2026
f5f59ec
enforce each instrument has an abstract deployment_time method (CTD d…
j-atkins Sep 25, 2026
952ce82
move stationkeeping_time to Expedition model; use new model of statio…
j-atkins Sep 25, 2026
45b9ed5
remove now redundant INSTRUMENT_CONFIG_MAP
j-atkins Sep 25, 2026
d1aad15
remove stationkeeping_time fields from instrument configs
j-atkins Sep 25, 2026
9e0b3ff
update docs to reflect new stationkeeping_time model + information on…
j-atkins Sep 23, 2026
6051b8b
update test for updated stationkeeping time calcs
j-atkins Oct 19, 2026
df4a9c2
remove unnecessary messaging and remove references to now deleted
j-atkins Oct 19, 2026
9b9d755
add ship deceleration and acceleration times to the plan tool
j-atkins Oct 19, 2026
49b301f
revert plan tool changes, need to consider how want to present this t…
j-atkins Oct 19, 2026
8cdcb14
add deceleration and acceleration fields to plan TUI
j-atkins Oct 20, 2026
28e8a21
Apply suggestion from @erikvansebille
j-atkins Oct 20, 2026
171de72
explicit about default times for slow down and speed up
j-atkins Oct 20, 2026
e7174b3
"deceleration"/"acceleration" -> "slow-down"/"speed-up" times
j-atkins Oct 20, 2026
677f905
"station" -> "waypoint"
j-atkins Oct 20, 2026
4f794b2
new class attribute allowing specify whether ship needs to slow down …
j-atkins Oct 20, 2026
149e623
Merge branch 'depth-dependent-stationkeeping' of github.com:OceanParc…
j-atkins Oct 20, 2026
15ade71
make docstring more consistent with rest of codebase lingo
j-atkins Oct 20, 2026
801b4cf
add more docs info on times stationkeeping time per instrument
j-atkins Oct 20, 2026
a0e6b07
Merge remote-tracking branch 'origin/main' into depth-dependent-stati…
j-atkins Oct 20, 2026
4883e28
typos and make differences between ctd and xbt timings clearer
j-atkins Oct 20, 2026
20210d2
fix duplication mistake
j-atkins Oct 20, 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
27 changes: 13 additions & 14 deletions docs/user-guide/assignments/Research_proposal_intro.ipynb

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does drifters now have the same new sentence twice? o is that a rendering mistake in my git diff?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Oops that's my mistake, good spot thanks!

Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Underway Data \n",
"### Underway Temperature and Salinity measurements\n",
"\n",
"Underway data collection, also known as underway sampling, refers to the process of collecting oceanographic and environmental data while a research vessel is in motion. This method allows scientists to continuously gather data on various parameters such as sea surface temperature and salinity. The water inlet is located on the hull of the ship at approximately 2 meters under the surface.\n",
"\n",
"You can collect underway data during your entire cruise or on specific transects and may assume it doesn’t take any time to start or stop taking measurements."
"You can collect underway data during your entire cruise. These measurements can be taken continuously without interrupting the ship's speed. It doesn’t take any time to start or stop the ship for these measurements."
]
},
{
Expand All @@ -60,7 +60,9 @@
"\n",
"An Acoustic Doppler Current Profiler (ADCP) is an instrument used to measure the speed and direction of ocean currents at various depths. It operates based on the principle of Doppler shift, where sound waves emitted by the instrument are reflected off moving particles in the water, such as plankton or sediment, and the frequency shift of the returning waves is used to calculate the velocity of the water.\n",
"\n",
"You can deploy the ADCP on transects and choose between a shallow profiler capable of providing information to a depth of 150 m every 4 meters (the 300kHz seaSeven), or a long-range profiler capable of providing about 1000m of range every 24 meters (the 38kHz Ocean Observer). You can collect ADCP data during your entire cruise or on specific transects and may assume it doesn’t take any time to start or end ADCP measurements.\n",
"You can choose between a shallow profiler capable of providing information to a depth of 150 m every 4 meters (the 300kHz seaSeven), or a long-range profiler capable of providing about 1000m of range every 24 meters (the 38kHz Ocean Observer). \n",
"\n",
"You can collect ADCP data during your entire cruise. These measurements can be taken continuously without interrupting the ship's speed. It doesn’t take any time to start or stop the ship for these measurements.\n",
"\n",
"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/mDyoZagght8?si=VCXfJC7knpQpR2p9&amp;start=37\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
]
Expand All @@ -73,7 +75,7 @@
"\n",
"An eXpendable BathyThermograph (XBT) is a probe that is dropped from a ship and measures the temperature as it falls through the water. The probe is designed to fall at a known rate, so that the depth of the temperature profile can be inferred from the time since it enters the water.\n",
"\n",
"You may assume it doesn’t take any time to deploy XBTs.\n",
"You may assume it doesn’t take any time to deploy XBTs. They can be deployed while the ship is moving at full speed, so there is no time cost for slowing down or speeding up the ship.\n",
"\n",
"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/gAvxRYCnSXY?si=owx8YEPS-0FBIGSf\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
]
Expand All @@ -87,15 +89,12 @@
"\n",
"A Conductivity, Temperature, and Depth (CTD) sensor is an instrument used to measure the physical (or biogeochemical) properties of seawater in oceanographic and environmental research. It typically consists of sensors for conductivity (used to derive salinity), temperature, and pressure (used to derive depth). CTDs can also be equipped with additional sensors to measure biogeochemical parameters such as dissolved oxygen, chlorophyll, and nutrients. \n",
"\n",
"Throughout a CTD deployment, the research vessels needs to stay in the same location. To calculate the time needed for a CTD deployment, take the following information into account:\n",
"\n",
"<!-- TODO: this should be updated when the time is calculated as depth dependent (see [#249](https://github.com/Parcels-code/virtualship/issues/249)) -->\n",
"* Add time to lower the vessels speed to zero and set the vessel to the appropriate direction against swell, current, wind, etc = 15 minutes \n",
"* Add time to deploy the CTD, and to recover = 10 minutes (2*5 min) \n",
"* Add time to raise the CTD down and up, usually at 1 m/s (winch capacity). We make an assumption in VirtualShip that the average CTD downcast/upcast takes 15 minutes.\n",
"* Add time to speed the ship back up again and set course to the next waypoint = 10 minutes\n",
"Throughout a CTD deployment, the research vessels needs to stay in the same location. To calculate the time needed for a CTD deployment at a given waypoint, take the following information into account:\n",
"\n",
"In total, therefore, you can expect a CTD deployment to take approximately 50 minutes.\n",
"* The ship needs to slow down to a stop, which takes 15 minutes (default in VirtualShip)\n",
"* The CTD is lowered to the configured maximum depth or the sea floor, whichever is shallowest. The time taken therefore depends on the depth in that location and the winch speed (default is 1 m/s in VirtualShip). Remember that the time is doubled as well because the CTD needs to be brought back up.\n",
" * For example, if the CTD is lowered to 1000 m at a speed of 1 m/s, it will take approximately 16.7 minutes to reach that depth, and the same amount of time to raise it back up, so in total: approx. 33.4 minutes.\n",
"* The ship needs to speed back up again and set course to the next waypoint, which takes another 15 minutes (default in VirtualShip).\n",
"\n",
"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/7N2UsPDczTw\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"
]
Expand All @@ -108,7 +107,7 @@
"\n",
"A surface drifter is an oceanographic instrument used to study surface currents and ocean circulation patterns. These devices are designed to drift passively with the surface currents while transmitting data on their position and sea surface temperature.\n",
"\n",
"You should assume it takes a combined 20 minutes to both slow down and speed the ship back up, in order to safely deploy drifters from the ship. Make sure to account for this time in your planning.\n",
"For deployment, the ship needs to slow down to a stop, which takes 15 minutes (default in VirtualShip). You can assume the actual release takes no time but then after the deployment the ship needs to speed back up again and set course to the next waypoint, which takes another 15 minutes (default in VirtualShip).\n",
"\n",
"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/3m_CxEE8Bhs?si=XdyMFAVq9RVxQdcE&amp;start=15\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
]
Expand All @@ -123,7 +122,7 @@
"\n",
"The floats periodically descend to a predetermined depth, typically around 1000 meters, and then ascend to the surface, measuring temperature and salinity profiles along the way.\n",
"\n",
"You should assume it takes a combined 20 minutes to both slow down and speed the ship back up, in order to safely deploy Argo floats from the ship. Make sure to account for this time in your planning.\n",
"For deployment, the ship needs to slow down to a stop, which takes 15 minutes (default in VirtualShip). You can assume the actual release takes no time but then after the deployment the ship needs to speed back up again and set course to the next waypoint, which takes another 15 minutes (default in VirtualShip).\n",
" \n",
"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/IgcYQML5se4?si=Y7m1kLqUl14QZfcd\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
]
Expand Down
16 changes: 15 additions & 1 deletion docs/user-guide/assignments/sail_the_ship.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,12 @@ The `{CruiseDataExport}.xlsx` in the command above refers to the `.xlsx` file ex
The `--start-date` should be set to your intended departure date/time. MFP's estimated travel and station durations are then used to automatically fill in a time for each waypoint relative to this start date.
```

```{important}
MFP usually allows a default of **45 minutes** stationkeeping time at each station. This may be enough for your expedition, but it may not be, so expect to adjust some of your timings once you have chosen your instruments (in step 5) [below](#waypoint-datetimes)).

Hint: pay particular attention to CTDs deployments in deep waters. A CTD is lowered on a winch all the way to the seabed and brought back up, so the deeper the water, the longer the ship has to sit still.
```

This will create a folder/directory called `EXPEDITION_NAME` (or what you have changed this to) with a single file: `expedition.yaml`. This file contains details on the ship and instrument configurations, as well as the expedition schedule based on the sampling site coordinates (and, if specified, ports of departure/arrival) from your MFP export. The `--from-mfp` flag indicates that the exported route will be used, and `--start-date` is required alongside it.

## 5) Expedition scheduling & ship configuration
Expand Down Expand Up @@ -149,7 +155,15 @@ Your Port of Departure and Port of Arrival (if set in MFP) appear as special way
```

```{note}
It is important to ensure that the timings for each station are realistic. There must be enough time for the ship to travel to each site at the prescribed speed (10 knots). The expedition schedule will be automatically verified when you press _Save Changes_ in the planning tool.
It is important to ensure that the timings for each station are realistic. There must be enough time for the ship to travel to each site at the prescribed speed (10 knots), **and** enough time to actually carry out your deployments once you arrive. The expedition schedule will be automatically verified when you press _Save Changes_ in the planning tool.
```

```{important}
Remember that MFP's default of 45 minutes per station may not be enough once your instruments are selected. Time at a station is made up of slowing the ship down (15 minutes by default), carrying out the deployments (which depends on which instruments you deploy), and getting back up to speed again (15 minutes by default).

Deployments can take place side by side, so only the slowest one matters for the total stationkeeping time at each waypoint. Drifters and Argo floats are simply released into the water and left behind, so they have no time cost apart from slowing down and speeding up the ship. A CTD is different. It takes longer because it has to be lowered and brought back up, so the ship waits for the full round trip, and a cast at a deep station can easily take longer than the MFP default. An XBT is different in the opposite way. It doesn't even need the ship to slow down, so it can be deployed while the ship is moving at full speed.

**See [here](../assignments/Research_proposal_intro.ipynb) for more information on the times taken for each instrument deployment.**
```

### Instrument selection
Expand Down
12 changes: 12 additions & 0 deletions docs/user-guide/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ The `CruiseDataExport.xlsx` in the `virtualship init` command refers to the .xls
The `--start-date` should be set to your intended departure date/time. MFP's estimated travel and station durations are then used to automatically fill in a time for each waypoint relative to this start date.
```

```{important}

MFP usually allows a default of **45 minutes** stationkeeping time at each station, and that default is what determines the waypoint times written into your `expedition.yaml`. That may well be enough for your expedition, but it may not be, so be prepared to adjust the times once you have chosen your instruments and come to [adjusting the waypoint datetimes](#waypoint-datetimes).
```

This will create a folder/directory called `EXPEDITION_NAME` with a single file: `expedition.yaml` containing details on the ship and instrument configurations, as well as the expedition schedule based on the sampling site coordinates (and, if specified, ports of departure/arrival) from your MFP export. The `--from-mfp` flag indicates that the exported route will be used, and `--start-date` is required alongside it.

```{note}
Expand Down Expand Up @@ -122,6 +127,13 @@ Your Port of Departure and Port of Arrival (if set in MFP) appear as special way

```{note}
It is important to ensure that the timings for each station are realistic. There must be enough time for the ship to travel to each site at a realistic speed (~ 10 knots). The expedition schedule (and the ship's configuration) will be automatically verified when you press _Save Changes_ in the planning tool.

Remember that MFP's default of 45 minutes per station may not be enough once your instruments are selected (see [below](#instrument-selection)). Time at a station is made up of slowing the ship down (15 minutes by default), carrying out the deployments (which depends on which instruments you deploy), and getting back up to speed again (15 minutes by default).

Deployments can take place side by side, so only the slowest one matters for the total stationkeeping time at each waypoint. Drifters and Argo floats are simply released into the water and left behind, so they have no time cost apart from slowing down and speeding up the ship. A CTD is different. It takes longer because it has to be lowered and brought back up, so the ship waits for the full round trip, and a cast at a deep station can easily take longer than the MFP default. An XBT is different in the opposite way. It doesn't even need the ship to slow down, so it can be deployed while the ship is moving at full speed.

**See [here](../assignments/Research_proposal_intro.ipynb) for more information on the times taken for each instrument deployment.**

```

### Instrument selection
Expand Down
12 changes: 7 additions & 5 deletions docs/user-guide/tutorials/working_with_expedition_yaml.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ schedule: # <-- 1. expedition schedule section
location:
latitude: 45.604174
longitude: -43.886739
sea_depth_meter: -4400.0
time: 1998-03-08 03:37:00
# Waypoint 2
- instrument:
Expand All @@ -49,6 +50,7 @@ schedule: # <-- 1. expedition schedule section
location:
latitude: 48.185988
longitude: -32.988302
sea_depth_meter: -3200.0
time: 1998-03-10 03:05:00
# Port of Arrival
- location:
Expand All @@ -75,6 +77,8 @@ instruments_config: # <-- 2. instrument configuration section
#
ship_config: # <-- 3. ship configuration section
ship_speed_knots: 10.0
waypoint_slowdown_time_minutes: 15.0
waypoint_speedup_time_minutes: 15.0
```

```{note}
Expand Down Expand Up @@ -113,9 +117,7 @@ You can do multiple `DRIFTER` deployments at the same waypoint by adding multipl

- **Time (`time`)**: The scheduled time for reaching the waypoint, specifically in YYYY-MM-DD HH:MM:SS format.

##### Comments

You may notice comments such as `# Port of Departure`, `# Waypoint 1`, `# Waypoint 2`, etc. next to each entry in the `waypoints` list, as in the example above. These are added automatically whenever `virtualship init` or `virtualship plan` writes the file, purely to aid readability. They are not required when editing the file by hand and won't be automatically added/renumbered by doing so.
- **Sea depth (`sea_depth_meter`)**: The estimated depth of the water column at the waypoint. This value matters because it determines how a long a deployment takes if there is a depth dependence, e.g. for a CTD that has to be lowered and raised. If you leave it as `null`, VirtualShip doesn't know how deep the water is and assumes the CTD descends all the way to its configured `max_depth_meter`. That is the slowest possible cast, so your schedule is verified against a worst case rather than an optimistic one in the simulations.

#### 2. `instruments_config`

Expand All @@ -129,7 +131,7 @@ For most users, the most important instrument configuration setting to consider
ctd_config:
max_depth_meter: -2000.0
min_depth_meter: -11.0
stationkeeping_time_minutes: 50.0
winch_speed_meter_per_second: 1.0
sensors:
- TEMPERATURE
- SALINITY
Expand Down Expand Up @@ -158,4 +160,4 @@ This section contains setting related to the ship itself, specifically:

- **Ship speed (`ship_speed_knots`)**: The speed of the ship in knots (nautical miles per hour; where 1 knot = 1.852 km/h). Note in most cases this should be left as the default value unless there is a specific reason to change it.

<!-- TODO: more details on ship configuration if added in the future -->
- **Waypoint slow-down and speed-up times (`waypoint_slowdown_time_minutes`, `waypoint_speedup_time_minutes`)**: How long the ship takes to slow to a stop before deployments begin at a waypoint, and to get back up to cruising speed afterwards, respectively. These are added once at every waypoint where you deploy instruments which require the ship to slow down.
Loading
Loading