From 76385841cdd8e341e911839428306a289b737fc1 Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Wed, 5 Feb 2025 14:57:30 +0100 Subject: [PATCH 1/8] test notebook for sailing --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 docs/user-guide/tutorials/Sail_the_ship.ipynb diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb new file mode 100644 index 00000000..42f22e49 --- /dev/null +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -0,0 +1,166 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://www.youtube.com/watch?v=G82kIgc1imk\n", + "\n", + "\n", + "\n", + "### Time has come to start your expedition!\n", + "Make sure your datafiles, the JSON file and this file are all in the same folder.\n", + "\n", + "It might take up to an hour to gather the data depending on your choices, make sure your computer doesn't fall asleep while running the cells/script below.\n", + "\n", + "Meanwhile read up on some of the onboard safety procedures and browse through blogs and cruise reports if you want. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a folder for your expedition where the results will be saved. Initialize the virtualship using a ```!``` to use the tool from this notebook:\n", + "```\n", + "Usage: virtualship init [OPTIONS] PATH\n", + "\n", + " Initialize a directory for a new expedition, with an example schedule and\n", + " ship config files.\n", + " ```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!virtualship init ~/test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Populate the schedule.yaml file manually with each sampling CTD station and drifer/argo float deployment position. The route inbetween points will be sailed as the shortest great-cirlce distance. \n", + "[TODO: or initialize from a MFP csv file and correct where needed]\n", + "\n", + "When you finished your schedule, run the fetch command to download input data for the virtual ship from the Copernicus marine data store. \n", + "You will need to register via: https://data.marine.copernicus.eu/register and provide your username and password as command line arguments:\n", + "```\n", + "Usage: virtualship fetch [OPTIONS] PATH\n", + "\n", + " Download input data for an expedition.\n", + " ```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!virtualship fetch ~/test --username TEXT --password TEXT" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Sail the virtual ship!\n", + "%run virtualship.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Welcome aboard\n", + "\n", + "Welcome aboard, oceanography students, to our scientific research vessel! We're thrilled to have you join us for this exciting 3-week journey into the depths of the ocean. As we embark on this voyage of exploration and discovery, there are a few things I'd like to share with you to ensure a smooth and enriching experience:\n", + "\n", + "**Introduction to the Vessel:** Take some time to familiarize yourselves with the layout of the ship. Get to know key areas such as the laboratories, living quarters, dining area, and deck spaces. \n", + "\n", + "**Daily Routine:** Life on a research vessel follows a structured daily routine. We'll have designated times for meals, research activities, data analysis, and downtime. It's important to maintain this routine to ensure that our work is conducted efficiently and that everyone onboard has the opportunity to rest and recharge.\n", + "\n", + "**Safety Orientation:** Safety is our top priority. As we set sail, we'll conduct a comprehensive safety orientation. This will cover important topics such as emergency procedures, the location of safety equipment, and proper use of personal protective gear. Please pay close attention during this orientation to ensure your safety and the safety of others on board.\n", + "\n", + "**Respect for the Environment:** As we explore the ocean, it's essential to maintain a deep respect for the marine environment. We'll adhere to strict environmental protocols to minimize our impact on marine ecosystems and wildlife. Remember to dispose of waste properly and avoid disturbing marine life whenever possible.\n", + "\n", + "**Teamwork and Collaboration:** Oceanographic research is a collaborative effort that requires teamwork and cooperation. You'll be working closely with your fellow students. Embrace the opportunity to learn from each other and support one another throughout the journey.\n", + "\n", + "![Ship layout](https://ceoas.oregonstate.edu/sites/ceoas.oregonstate.edu/files/ship_design_bw_1400x500.jpg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Emergency procedures\n", + "\n", + "Before going on any research expedition you need follow a one day Safety at Sea course and get a medical check-up.\n", + "\n", + "Of course this is not needed for your virtual fieldwork, but I like to draw for your attention to the following on-board emergency procedures.\n", + "\n", + "**Safety Drills:** We conduct regular safety drills to ensure that everyone on board is well-prepared in case of an emergency. Specifically, fire and boat drills are held once a week. These drills are not just routine; they are essential survival training and should be taken seriously. To minimize disruption to the research program, science party members are usually notified in advance of the scheduled drills. In the event that you must continue working during a drill, prior arrangements can be made through the Chief Scientist.\n", + "\n", + "**Emergency Signal:** In the event of an emergency signal, your immediate action is crucial. Don life jackets, put on long-sleeved garments, and wear a hat or head covering if available. Then, proceed to the designated station indicated on the station card located next to your bunk.\n", + "\n", + "**On-Call Readiness:** Please keep in mind that while on board the ship, you may be called upon without warning to assist during your off-watch periods. Emergencies can happen at any time, and your readiness to respond promptly and efficiently is essential to the safety of all aboard.\n", + "\n", + "**Boat Drill (Abandon Ship):** The signal for abandon ship is seven or more short blasts followed by one long blast of the ship’s whistle and general alarm. When this signal is heard, report to your designated life raft station. There the Mate in charge will explain the procedures for launching and embarking into the life rafts. The rafts will not be launched during a drill.\n", + "\n", + "**Fire and Emergency Drills:** The signal is one long blast on the ship’s whistle and general alarm bell, lasting for ten seconds or more. During this drill, members of the science party muster in the designated area. Attendance will be taken and reported to the bridge.\n", + "\n", + "**Man Overboard:** If someone falls overboard, throw a life-ring into the water towards the person. Keep your eye on the person at all times and point towards the person. Shout “MAN OVERBOARD, STARBOARD (or PORT),” and call the bridge on the sound powered phone or squawk box to inform them without losing sight of the person if possible. If you hear someone hail \"Man Overboard,\" pass the word to the bridge." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reporting\n", + "Reporting your journey is an essential aspect of our oceanographic research expedition. It allows us to share our experiences, communicate our findings, and contribute to the broader scientific community. After each scientific expedition a cruise reports needs to be written. \n", + "You can find many cruise reports online, e.g. https://www.bodc.ac.uk/resources/inventories/cruise_inventory/reports/pe358.pdf and blogs from many different cruises, e.g. https://www.nioz.nl/en/blog/topic/1027. \n", + "\n", + "Reporting our journey allows us to validate the data collected during our research activities. It provides context for our findings and helps ensure that our results are accurately interpreted and understood. Detailed reports enable us to cross-reference our observations with environmental conditions, sampling locations, and other relevant factors, enhancing the reliability and credibility of our data. Our reports also serve as valuable educational resources for students, educators, and the general public. They provide insights into the process of scientific inquiry, the challenges of conducting research at sea, and the significance of oceanographic discoveries. \n", + "\n", + "I look forward to seeing the impact of your collective efforts during the presentations on March 22nd!\n", + "\n", + "Please don't worry if your results are insufficient to answer your research question. Share your failure and things you would do different a next time instead!\n", + "\n", + "E.g. Normalizing failure: when things go wrong in participatory marine social science fieldwork. https://academic.oup.com/icesjms/article/79/8/2184/6705562 \n", + "\n", + "E.g. Emotions and failure in academic life: Normalising the experience and building resilience. https://www.cambridge.org/core/journals/journal-of-management-and-organization/article/emotions-and-failure-in-academic-life-normalising-the-experience-and-building-resilience/91FD71A50A32404D8EDFFB7886FF3521\n", + "\n", + "![Our ocean provides](https://seewhatgrows.org/wp-content/uploads/2019/06/our-ocean.jpg)\n", + "![10 ways to help our ocean](https://oceanservice.noaa.gov/ocean/help-ocean.jpg)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ship", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 16bab25442c9fe8bb67f77cbf32746ae7293c5dc Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Wed, 5 Feb 2025 15:02:59 +0100 Subject: [PATCH 2/8] fix links --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index 42f22e49..dbaf09f2 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -6,21 +6,16 @@ "source": [ "https://www.youtube.com/watch?v=G82kIgc1imk\n", "\n", - "\n", + "\n", "\n", - "### Time has come to start your expedition!\n", - "Make sure your datafiles, the JSON file and this file are all in the same folder.\n", - "\n", - "It might take up to an hour to gather the data depending on your choices, make sure your computer doesn't fall asleep while running the cells/script below.\n", - "\n", - "Meanwhile read up on some of the onboard safety procedures and browse through blogs and cruise reports if you want. " + "### Time has come to start your expedition!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Create a folder for your expedition where the results will be saved. Initialize the virtualship using a ```!``` to use the tool from this notebook:\n", + "Create a folder for your expedition where the results will be saved. Initialize the virtualship using a ```!``` to use the tool directly from this notebook:\n", "```\n", "Usage: virtualship init [OPTIONS] PATH\n", "\n", @@ -63,14 +58,32 @@ "!virtualship fetch ~/test --username TEXT --password TEXT" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After your input data has been downloaded you can begin your expedition:\n", + "```\n", + "Usage: virtualship run [OPTIONS] PATH\n", + "\n", + " Run the expedition.\n", + " ```" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "# Sail the virtual ship!\n", - "%run virtualship.py" + "!virtualship run ~/test " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It might take up to an hour to gather the data depending on your choices. Meanwhile read up on some of the onboard safety procedures and browse through blogs and cruise reports if you want. " ] }, { From 1bbb6986a8f34db81c7474e1b6f589045ee8e15f Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Wed, 5 Feb 2025 15:28:21 +0100 Subject: [PATCH 3/8] more links --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index dbaf09f2..64b36d54 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -94,7 +94,7 @@ "\n", "Welcome aboard, oceanography students, to our scientific research vessel! We're thrilled to have you join us for this exciting 3-week journey into the depths of the ocean. As we embark on this voyage of exploration and discovery, there are a few things I'd like to share with you to ensure a smooth and enriching experience:\n", "\n", - "**Introduction to the Vessel:** Take some time to familiarize yourselves with the layout of the ship. Get to know key areas such as the laboratories, living quarters, dining area, and deck spaces. \n", + "**Introduction to the Vessel:** Take some time to familiarize yourselves with the layout of the ship. Get to know key areas such as the laboratories, living quarters, dining area, and deck spaces. E.g. at https://viewer.foleon.com/preview/vo2PZClgA/rv-wim-wolff\n", "\n", "**Daily Routine:** Life on a research vessel follows a structured daily routine. We'll have designated times for meals, research activities, data analysis, and downtime. It's important to maintain this routine to ensure that our work is conducted efficiently and that everyone onboard has the opportunity to rest and recharge.\n", "\n", @@ -104,7 +104,7 @@ "\n", "**Teamwork and Collaboration:** Oceanographic research is a collaborative effort that requires teamwork and cooperation. You'll be working closely with your fellow students. Embrace the opportunity to learn from each other and support one another throughout the journey.\n", "\n", - "![Ship layout](https://ceoas.oregonstate.edu/sites/ceoas.oregonstate.edu/files/ship_design_bw_1400x500.jpg)" + "![ship layout](https://www.nioz.nl/application/files/1116/0873/1068/CROP_bestand_3_SG_2.1_Bijlage_-_Algemeen_Plan.jpg)" ] }, { @@ -142,17 +142,22 @@ "\n", "Reporting our journey allows us to validate the data collected during our research activities. It provides context for our findings and helps ensure that our results are accurately interpreted and understood. Detailed reports enable us to cross-reference our observations with environmental conditions, sampling locations, and other relevant factors, enhancing the reliability and credibility of our data. Our reports also serve as valuable educational resources for students, educators, and the general public. They provide insights into the process of scientific inquiry, the challenges of conducting research at sea, and the significance of oceanographic discoveries. \n", "\n", - "I look forward to seeing the impact of your collective efforts during the presentations on March 22nd!\n", + "I look forward to seeing the impact of your collective efforts during the presentations!\n", "\n", "Please don't worry if your results are insufficient to answer your research question. Share your failure and things you would do different a next time instead!\n", "\n", - "E.g. Normalizing failure: when things go wrong in participatory marine social science fieldwork. https://academic.oup.com/icesjms/article/79/8/2184/6705562 \n", + "E.g. Normalizing failure: when things go wrong in participatory marine social science fieldwork. https://publications.csiro.au/publications/publication/PIcsiro:EP2022-3465\n", "\n", "E.g. Emotions and failure in academic life: Normalising the experience and building resilience. https://www.cambridge.org/core/journals/journal-of-management-and-organization/article/emotions-and-failure-in-academic-life-normalising-the-experience-and-building-resilience/91FD71A50A32404D8EDFFB7886FF3521\n", "\n", "![Our ocean provides](https://seewhatgrows.org/wp-content/uploads/2019/06/our-ocean.jpg)\n", "![10 ways to help our ocean](https://oceanservice.noaa.gov/ocean/help-ocean.jpg)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { From 1534950f143a9f003d865286e6200ff0268698ec Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Wed, 5 Feb 2025 16:48:01 +0100 Subject: [PATCH 4/8] more links --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index 64b36d54..6618e401 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -153,11 +153,6 @@ "![Our ocean provides](https://seewhatgrows.org/wp-content/uploads/2019/06/our-ocean.jpg)\n", "![10 ways to help our ocean](https://oceanservice.noaa.gov/ocean/help-ocean.jpg)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { From b9eab52b7e5139f5deb4b89838116ff0571790bf Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Fri, 14 Feb 2025 08:33:40 +0100 Subject: [PATCH 5/8] index and title --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 17 +++++++++++------ docs/user-guide/tutorials/index.md | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index 6618e401..62c309c6 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -4,18 +4,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "https://www.youtube.com/watch?v=G82kIgc1imk\n", + "### Time has come to start your expedition!\n", "\n", - "\n", + "https://www.youtube.com/watch?v=G82kIgc1imk\n", "\n", - "### Time has come to start your expedition!" + "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Create a folder for your expedition where the results will be saved. Initialize the virtualship using a ```!``` to use the tool directly from this notebook:\n", + "Create a folder for your expedition where the results will be saved. Initialize the virtualship using a `!` to use the tool directly from this notebook or copy the commands (without the `!`) directly into your terminal\n", "```\n", "Usage: virtualship init [OPTIONS] PATH\n", "\n", @@ -148,8 +148,13 @@ "\n", "E.g. Normalizing failure: when things go wrong in participatory marine social science fieldwork. https://publications.csiro.au/publications/publication/PIcsiro:EP2022-3465\n", "\n", - "E.g. Emotions and failure in academic life: Normalising the experience and building resilience. https://www.cambridge.org/core/journals/journal-of-management-and-organization/article/emotions-and-failure-in-academic-life-normalising-the-experience-and-building-resilience/91FD71A50A32404D8EDFFB7886FF3521\n", - "\n", + "E.g. Emotions and failure in academic life: Normalising the experience and building resilience. https://www.cambridge.org/core/journals/journal-of-management-and-organization/article/emotions-and-failure-in-academic-life-normalising-the-experience-and-building-resilience/91FD71A50A32404D8EDFFB7886FF3521" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "![Our ocean provides](https://seewhatgrows.org/wp-content/uploads/2019/06/our-ocean.jpg)\n", "![10 ways to help our ocean](https://oceanservice.noaa.gov/ocean/help-ocean.jpg)" ] diff --git a/docs/user-guide/tutorials/index.md b/docs/user-guide/tutorials/index.md index 67140320..b3ca1452 100644 --- a/docs/user-guide/tutorials/index.md +++ b/docs/user-guide/tutorials/index.md @@ -1,6 +1,7 @@ # Tutorials ```{nbgallery} +Sail_the_ship.ipynb ADCP_data_tutorial.ipynb CTD_data_tutorial.ipynb Drifter_data_tutorial.ipynb From 2cccb8debb1807f5d634791d8add4696f939fd03 Mon Sep 17 00:00:00 2001 From: Erik van Sebille Date: Fri, 14 Feb 2025 13:15:47 +0100 Subject: [PATCH 6/8] Minor changes to the text of the notebook --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index 62c309c6..c0e4d5ec 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -30,17 +30,19 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship init ~/test" + "!virtualship init " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Populate the schedule.yaml file manually with each sampling CTD station and drifer/argo float deployment position. The route inbetween points will be sailed as the shortest great-cirlce distance. \n", + "This will create a folder `` with two files: `schedule.yaml` and\t`ship_config.yaml`.\n", + "\n", + "Populate the `schedule.yaml` file manually with each sampling CTD station and drifer/argo float deployment position. The route between points will be sailed as the shortest great-cirlce distance. \n", "[TODO: or initialize from a MFP csv file and correct where needed]\n", "\n", - "When you finished your schedule, run the fetch command to download input data for the virtual ship from the Copernicus marine data store. \n", + "When you have finished your schedule, run the fetch command to download input data for the virtual ship from the Copernicus marine data store. \n", "You will need to register via: https://data.marine.copernicus.eu/register and provide your username and password as command line arguments:\n", "```\n", "Usage: virtualship fetch [OPTIONS] PATH\n", @@ -55,7 +57,7 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship fetch ~/test --username TEXT --password TEXT" + "!virtualship fetch --username --password " ] }, { @@ -76,7 +78,7 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship run ~/test " + "!virtualship run " ] }, { From aea055cf4193875c10016a6b289c17e3ee6e040e Mon Sep 17 00:00:00 2001 From: Erik van Sebille Date: Fri, 14 Feb 2025 13:24:36 +0100 Subject: [PATCH 7/8] Removing <> from EXPEDITION_NAME --- docs/user-guide/tutorials/Sail_the_ship.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/tutorials/Sail_the_ship.ipynb b/docs/user-guide/tutorials/Sail_the_ship.ipynb index c0e4d5ec..a21b39f5 100644 --- a/docs/user-guide/tutorials/Sail_the_ship.ipynb +++ b/docs/user-guide/tutorials/Sail_the_ship.ipynb @@ -30,14 +30,14 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship init " + "!virtualship init EXPEDITION_NAME" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This will create a folder `` with two files: `schedule.yaml` and\t`ship_config.yaml`.\n", + "This will create a folder `EXPEDITION_NAME` with two files: `schedule.yaml` and\t`ship_config.yaml`.\n", "\n", "Populate the `schedule.yaml` file manually with each sampling CTD station and drifer/argo float deployment position. The route between points will be sailed as the shortest great-cirlce distance. \n", "[TODO: or initialize from a MFP csv file and correct where needed]\n", @@ -57,7 +57,7 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship fetch --username --password " + "!virtualship fetch EXPEDITION_NAME --username --password " ] }, { @@ -78,7 +78,7 @@ "metadata": {}, "outputs": [], "source": [ - "!virtualship run " + "!virtualship run EXPEDITION_NAME" ] }, { From c6615dc2e3083c5c41683fa65866f5924e35c4eb Mon Sep 17 00:00:00 2001 From: Emma Daniels Date: Fri, 14 Feb 2025 13:50:48 +0100 Subject: [PATCH 8/8] add thumbnail --- docs/conf.py | 1 + docs/user-guide/_images/vessel.jpg | Bin 0 -> 11260 bytes 2 files changed, 1 insertion(+) create mode 100644 docs/user-guide/_images/vessel.jpg diff --git a/docs/conf.py b/docs/conf.py index 503025a3..00f2a180 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -76,4 +76,5 @@ "user-guide/assignments/Research_Proposal_only": "user-guide/_images/MFP.jpg", "user-guide/assignments/Virtualship_research_proposal": "user-guide/_images/AnnaWeber.jpeg", "user-guide/assignments/sciencecommunication_assignment": "user-guide/_images/marine_ss.jpg", + "user-guide/tutorials/Sail_the_ship": "user-guide/_images/vessel.jpg", } diff --git a/docs/user-guide/_images/vessel.jpg b/docs/user-guide/_images/vessel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c0d54f0f95299396adb35c598087af5a9447b95 GIT binary patch literal 11260 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 M$i%Z2@r?-mKe+IE761SM literal 0 HcmV?d00001