-
Notifications
You must be signed in to change notification settings - Fork 10
Plan UI usability (adding expedition.yaml guidance)
#277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
b20b981
784fa57
ea17e9b
56d2966
40de54b
6b0d886
e631a99
60fa983
a074eb0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,105 @@ | ||||||
| ## Working with the `expedition.yaml` file | ||||||
|
|
||||||
| This tutorial will guide you through the structure of the `expedition.yaml` file and how to modify it. | ||||||
|
|
||||||
| The `expedition.yaml` file is ingested by `virtualship run` and is used to configure expeditions. It contains metadata and settings that define the parameters of an expedition, including information about ship speed, instrument configurations, waypoint timings and instrument selections. | ||||||
|
|
||||||
| This tutorial describes an alternative means to using the `virtualship plan` command, which provides a user-friendly interface for interacting with `expedition.yaml` but can become cumbersome for long, complex expeditions with many waypoints and instruments. Interacting with the `expedition.yaml` file directly tends to be faster for larger expeditions and experienced users. | ||||||
|
|
||||||
| ### Editing the file | ||||||
|
|
||||||
| The `expedition.yaml` file can be opened and edited using any text editor that supports YAML format. Make your changes and save the file to write the changes to your expedition directory. | ||||||
|
|
||||||
| ```{tip} | ||||||
| The `expedition.yaml` file can also be opened and edited in Jupyter Lab environments using the built-in text editor. Simply navigate to the file in the file browser and (double) click to open it in a new tab. | ||||||
| ``` | ||||||
|
|
||||||
| ```{important} | ||||||
| The `expedition.yaml` file is highly sensitive to indentation and formatting, so please ensure that you maintain the correct formatting (as described [below](#specifics-for-each-section)) when making modifications. | ||||||
| ``` | ||||||
|
|
||||||
| ### Structure | ||||||
|
|
||||||
| The `expedition.yaml` file is written in [YAML](https://en.wikipedia.org/wiki/YAML) format, which is a human-readable data serialization standard. Below is an annotated example of a simple `expedition.yaml` file with two waypoints: | ||||||
|
|
||||||
| ```yaml | ||||||
| # EXAMPLE EXPEDITION.YAML | ||||||
| # | ||||||
| schedule: # <-- 1. expedition schedule section | ||||||
| waypoints: | ||||||
| - instrument: # <-- Waypoint 1 | ||||||
| - CTD | ||||||
| - CTD_BGC | ||||||
| - ARGO_FLOAT | ||||||
| - DRIFTER | ||||||
| location: | ||||||
| latitude: 45.604174 | ||||||
| longitude: -43.886739 | ||||||
| time: 1998-03-08 03:37:00 | ||||||
| - instrument: # <-- Waypoint 2 | ||||||
| - ARGO_FLOAT | ||||||
| - DRIFTER | ||||||
| - XBT | ||||||
| location: | ||||||
| latitude: 48.185988 | ||||||
| longitude: -32.988302 | ||||||
| time: 1998-03-10 03:05:00 | ||||||
| # | ||||||
| instruments_config: # <-- 2. instrument configuration section | ||||||
| adcp_config: | ||||||
| num_bins: 40 | ||||||
| max_depth_meter: -1000.0 | ||||||
| period_minutes: 5.0 | ||||||
| ship_underwater_st_config: | ||||||
| period_minutes: 5.0 | ||||||
| argo_float_config: ... | ||||||
| ctd_bgc_config: ... | ||||||
| ctd_config: ... | ||||||
| drifter_config: ... | ||||||
| xbt_config: ... | ||||||
| # | ||||||
| ship_config: # <-- 3. ship configuration section | ||||||
| ship_speed_knots: 10.0 | ||||||
| ``` | ||||||
|
|
||||||
| ```{note} | ||||||
| In the example above, some instrument configuration parameters are replaced by ellipses (`...`) for brevity. In a real `expedition.yaml` file, these sections would contain detailed configuration settings for each instrument. | ||||||
| ``` | ||||||
|
|
||||||
| ### Specifics for each section | ||||||
|
|
||||||
| #### 1. `schedule` | ||||||
|
|
||||||
| This section contains a list of `waypoints` that define the expedition's route. Each waypoint includes: | ||||||
|
|
||||||
| - **Instruments (`instrument`)**: A list of instruments to be deployed at that waypoint. Add or remove instruments by adding or deleting entries on _new lines_. The instrument selection can also be left empty (i.e., no instruments deployed at that waypoint) by setting the parameter to: `instrument: null`. | ||||||
|
|
||||||
| ```{tip} | ||||||
| Full list of instruments supported for deployment at waypoints (case-sensitive): `CTD`, `CTD_BGC`, `DRIFTER`, `ARGO_FLOAT`, `XBT`. | ||||||
| ``` | ||||||
|
|
||||||
| - **Location (`location`)**: The geographical coordinates (latitude and longitude) of the waypoint. These must be in decimal degrees (DD) format. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need to say whether longitude has to be between -180 to 180, or 0 to 360? Or does that not matter? |
||||||
|
|
||||||
| - **Time (`time`)**: The scheduled time for reaching the waypoint, specifically in YYYY-MM-DD HH:MM:SS format. | ||||||
|
|
||||||
| #### 2. `instruments_config` | ||||||
|
|
||||||
| This section defines the configuration settings for each instrument used in the expedition. Each instrument has its own subsection where specific parameters can be set. | ||||||
|
|
||||||
| Because **underway instruments** (e.g., ADCP, Ship Underwater ST) collect data continuously while the ship is moving, their deployment is not tied to specific waypoints. Instead, the presence of their configuration sections in `instruments_config` indicates that they will be active throughout the expedition. This means that if you wish to turn off an underway instrument, you can remove its configuration section or simply set it to `null`, for example: | ||||||
|
|
||||||
| ```yaml | ||||||
| instruments_config: | ||||||
| adcp_config: null | ||||||
| ship_underwater_st_config: null | ||||||
| ``` | ||||||
|
|
||||||
| For **all other instruments**, e.g. CTD, ARGO_FLOAT etc., the paramters can often be left as the default values unless advanced customisations are required. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| #### 3. `ship_config` | ||||||
|
|
||||||
| This section contains setting related to the ship itself, specifically: | ||||||
|
|
||||||
| - **Ship speed (`ship_speed_knots`)**: The speed of the ship in knots. Note in most cases this should be left as the default value unless there is a specific reason to change it. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| <!-- TODO: more details on ship configuration if added in the future --> | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add
nullhere, too?