virtualship 0.0.3.dev44__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. virtualship-0.0.3.dev44/.github/CODE_OF_CONDUCT.md +46 -0
  2. virtualship-0.0.3.dev44/.github/CONTRIBUTING.md +1 -0
  3. virtualship-0.0.3.dev44/.github/dependabot.yml +11 -0
  4. virtualship-0.0.3.dev44/.github/release.yml +5 -0
  5. virtualship-0.0.3.dev44/.github/workflows/cd.yml +60 -0
  6. virtualship-0.0.3.dev44/.github/workflows/ci.yml +55 -0
  7. virtualship-0.0.3.dev44/.gitignore +177 -0
  8. virtualship-0.0.3.dev44/.pre-commit-config.yaml +27 -0
  9. virtualship-0.0.3.dev44/.readthedocs.yaml +16 -0
  10. virtualship-0.0.3.dev44/LICENSE +21 -0
  11. virtualship-0.0.3.dev44/PKG-INFO +159 -0
  12. virtualship-0.0.3.dev44/README.md +104 -0
  13. virtualship-0.0.3.dev44/docs/_static/virtual_ship_logo.png +0 -0
  14. virtualship-0.0.3.dev44/docs/_static/virtual_ship_logo_inverted.png +0 -0
  15. virtualship-0.0.3.dev44/docs/conf.py +72 -0
  16. virtualship-0.0.3.dev44/docs/contributing.md +55 -0
  17. virtualship-0.0.3.dev44/docs/index.md +21 -0
  18. virtualship-0.0.3.dev44/docs/quickstart.md +5 -0
  19. virtualship-0.0.3.dev44/docs/tutorials/index.md +5 -0
  20. virtualship-0.0.3.dev44/docs/tutorials/my_tutorial.ipynb +33 -0
  21. virtualship-0.0.3.dev44/environment.yml +33 -0
  22. virtualship-0.0.3.dev44/meta.yaml +30 -0
  23. virtualship-0.0.3.dev44/pyproject.toml +105 -0
  24. virtualship-0.0.3.dev44/scripts/download_data.py +137 -0
  25. virtualship-0.0.3.dev44/setup.cfg +4 -0
  26. virtualship-0.0.3.dev44/src/virtualship/__init__.py +18 -0
  27. virtualship-0.0.3.dev44/src/virtualship/_version_setup.py +16 -0
  28. virtualship-0.0.3.dev44/src/virtualship/cli/__init__.py +1 -0
  29. virtualship-0.0.3.dev44/src/virtualship/cli/commands.py +40 -0
  30. virtualship-0.0.3.dev44/src/virtualship/cli/main.py +17 -0
  31. virtualship-0.0.3.dev44/src/virtualship/expedition/__init__.py +28 -0
  32. virtualship-0.0.3.dev44/src/virtualship/expedition/checkpoint.py +51 -0
  33. virtualship-0.0.3.dev44/src/virtualship/expedition/do_expedition.py +150 -0
  34. virtualship-0.0.3.dev44/src/virtualship/expedition/expedition_cost.py +27 -0
  35. virtualship-0.0.3.dev44/src/virtualship/expedition/input_data.py +177 -0
  36. virtualship-0.0.3.dev44/src/virtualship/expedition/instrument_type.py +11 -0
  37. virtualship-0.0.3.dev44/src/virtualship/expedition/schedule.py +44 -0
  38. virtualship-0.0.3.dev44/src/virtualship/expedition/ship_config.py +156 -0
  39. virtualship-0.0.3.dev44/src/virtualship/expedition/simulate_measurements.py +104 -0
  40. virtualship-0.0.3.dev44/src/virtualship/expedition/simulate_schedule.py +264 -0
  41. virtualship-0.0.3.dev44/src/virtualship/expedition/verify_schedule.py +164 -0
  42. virtualship-0.0.3.dev44/src/virtualship/expedition/waypoint.py +16 -0
  43. virtualship-0.0.3.dev44/src/virtualship/instruments/__init__.py +5 -0
  44. virtualship-0.0.3.dev44/src/virtualship/instruments/adcp.py +78 -0
  45. virtualship-0.0.3.dev44/src/virtualship/instruments/argo_float.py +184 -0
  46. virtualship-0.0.3.dev44/src/virtualship/instruments/ctd.py +137 -0
  47. virtualship-0.0.3.dev44/src/virtualship/instruments/drifter.py +111 -0
  48. virtualship-0.0.3.dev44/src/virtualship/instruments/ship_underwater_st.py +76 -0
  49. virtualship-0.0.3.dev44/src/virtualship/location.py +44 -0
  50. virtualship-0.0.3.dev44/src/virtualship/make_realistic/__init__.py +6 -0
  51. virtualship-0.0.3.dev44/src/virtualship/make_realistic/adcp_make_realistic.py +66 -0
  52. virtualship-0.0.3.dev44/src/virtualship/make_realistic/ctd_make_realistic.py +222 -0
  53. virtualship-0.0.3.dev44/src/virtualship/spacetime.py +14 -0
  54. virtualship-0.0.3.dev44/src/virtualship.egg-info/PKG-INFO +159 -0
  55. virtualship-0.0.3.dev44/src/virtualship.egg-info/SOURCES.txt +177 -0
  56. virtualship-0.0.3.dev44/src/virtualship.egg-info/dependency_links.txt +1 -0
  57. virtualship-0.0.3.dev44/src/virtualship.egg-info/entry_points.txt +2 -0
  58. virtualship-0.0.3.dev44/src/virtualship.egg-info/requires.txt +7 -0
  59. virtualship-0.0.3.dev44/src/virtualship.egg-info/top_level.txt +1 -0
  60. virtualship-0.0.3.dev44/tests/conftest.py +14 -0
  61. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/.gitignore +1 -0
  62. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/.gitignore +9 -0
  63. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/argo_float_s.nc +0 -0
  64. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/argo_float_t.nc +0 -0
  65. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/argo_float_uv.nc +0 -0
  66. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/bathymetry.nc +0 -0
  67. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/default_s.nc +0 -0
  68. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/default_t.nc +0 -0
  69. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/default_uv.nc +0 -0
  70. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/drifter_t.nc +0 -0
  71. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/input_data/drifter_uv.nc +0 -0
  72. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/schedule.yaml +16 -0
  73. virtualship-0.0.3.dev44/tests/expedition/expedition_dir/ship_config.yaml +21 -0
  74. virtualship-0.0.3.dev44/tests/expedition/test_do_expedition.py +9 -0
  75. virtualship-0.0.3.dev44/tests/expedition/test_schedule.py +24 -0
  76. virtualship-0.0.3.dev44/tests/expedition/test_simulate_schedule.py +48 -0
  77. virtualship-0.0.3.dev44/tests/instruments/test_adcp.py +118 -0
  78. virtualship-0.0.3.dev44/tests/instruments/test_argo_float.py +73 -0
  79. virtualship-0.0.3.dev44/tests/instruments/test_ctd.py +137 -0
  80. virtualship-0.0.3.dev44/tests/instruments/test_drifter.py +87 -0
  81. virtualship-0.0.3.dev44/tests/instruments/test_ship_underwater_st.py +102 -0
  82. virtualship-0.0.3.dev44/tests/make_realistic/.gitignore +2 -0
  83. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/.zattrs +8 -0
  84. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/.zgroup +3 -0
  85. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/.zmetadata +264 -0
  86. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/U/.zarray +23 -0
  87. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/U/.zattrs +9 -0
  88. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/U/0.0 +0 -0
  89. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/U/0.1 +0 -0
  90. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/V/.zarray +23 -0
  91. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/V/.zattrs +9 -0
  92. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/V/0.0 +0 -0
  93. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/V/0.1 +0 -0
  94. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lat/.zarray +23 -0
  95. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lat/.zattrs +10 -0
  96. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lat/0.0 +0 -0
  97. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lat/0.1 +0 -0
  98. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lon/.zarray +23 -0
  99. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lon/.zattrs +10 -0
  100. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lon/0.0 +0 -0
  101. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/lon/0.1 +0 -0
  102. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/obs/.zarray +21 -0
  103. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/obs/.zattrs +5 -0
  104. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/obs/0 +0 -0
  105. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/obs/1 +0 -0
  106. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/time/.zarray +23 -0
  107. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/time/.zattrs +11 -0
  108. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/time/0.0 +0 -0
  109. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/time/0.1 +0 -0
  110. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/trajectory/.zarray +20 -0
  111. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/trajectory/.zattrs +5 -0
  112. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/trajectory/0 +0 -0
  113. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/z/.zarray +23 -0
  114. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/z/.zattrs +10 -0
  115. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/z/0.0 +0 -0
  116. virtualship-0.0.3.dev44/tests/make_realistic/adcp.zarr/z/0.1 +0 -0
  117. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/.zattrs +8 -0
  118. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/.zgroup +3 -0
  119. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/.zmetadata +392 -0
  120. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lat/.zarray +23 -0
  121. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lat/.zattrs +10 -0
  122. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lat/0.0 +0 -0
  123. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lat/0.1 +0 -0
  124. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lat/0.2 +0 -0
  125. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lon/.zarray +23 -0
  126. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lon/.zattrs +10 -0
  127. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lon/0.0 +0 -0
  128. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lon/0.1 +0 -0
  129. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/lon/0.2 +0 -0
  130. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/max_depth/.zarray +23 -0
  131. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/max_depth/.zattrs +9 -0
  132. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/max_depth/0.0 +0 -0
  133. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/max_depth/0.1 +0 -0
  134. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/max_depth/0.2 +0 -0
  135. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/min_depth/.zarray +23 -0
  136. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/min_depth/.zattrs +9 -0
  137. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/min_depth/0.0 +0 -0
  138. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/min_depth/0.1 +0 -0
  139. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/min_depth/0.2 +0 -0
  140. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/obs/.zarray +21 -0
  141. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/obs/.zattrs +5 -0
  142. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/obs/0 +0 -0
  143. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/obs/1 +0 -0
  144. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/obs/2 +0 -0
  145. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/raising/.zarray +23 -0
  146. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/raising/.zattrs +9 -0
  147. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/raising/0.0 +0 -0
  148. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/raising/0.1 +0 -0
  149. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/raising/0.2 +0 -0
  150. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/salinity/.zarray +23 -0
  151. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/salinity/.zattrs +9 -0
  152. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/salinity/0.0 +0 -0
  153. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/salinity/0.1 +0 -0
  154. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/salinity/0.2 +0 -0
  155. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/temperature/.zarray +23 -0
  156. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/temperature/.zattrs +9 -0
  157. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/temperature/0.0 +0 -0
  158. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/temperature/0.1 +0 -0
  159. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/temperature/0.2 +0 -0
  160. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/time/.zarray +23 -0
  161. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/time/.zattrs +11 -0
  162. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/time/0.0 +0 -0
  163. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/time/0.1 +0 -0
  164. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/time/0.2 +0 -0
  165. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/trajectory/.zarray +20 -0
  166. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/trajectory/.zattrs +5 -0
  167. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/trajectory/0 +0 -0
  168. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/winch_speed/.zarray +23 -0
  169. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/winch_speed/.zattrs +9 -0
  170. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/winch_speed/0.0 +0 -0
  171. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/winch_speed/0.1 +0 -0
  172. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/winch_speed/0.2 +0 -0
  173. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/z/.zarray +23 -0
  174. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/z/.zattrs +10 -0
  175. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/z/0.0 +0 -0
  176. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/z/0.1 +0 -0
  177. virtualship-0.0.3.dev44/tests/make_realistic/ctd.zarr/z/0.2 +0 -0
  178. virtualship-0.0.3.dev44/tests/make_realistic/test_adcp_make_realistic.py +15 -0
  179. virtualship-0.0.3.dev44/tests/make_realistic/test_ctd_make_realistic.py +12 -0
@@ -0,0 +1,46 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ - Using welcoming and inclusive language
12
+ - Being respectful of differing viewpoints and experiences
13
+ - Gracefully accepting constructive criticism
14
+ - Focusing on what is best for the community
15
+ - Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ - The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ - Trolling, insulting/derogatory comments, and personal or political attacks
21
+ - Public or private harassment
22
+ - Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ - Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at E.vanSebille@uu.nl. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
+
45
+ [homepage]: http://contributor-covenant.org
46
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1 @@
1
+ See the following [contributing guide](../docs/contributing.md).
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ groups:
9
+ actions:
10
+ patterns:
11
+ - "*"
@@ -0,0 +1,5 @@
1
+ changelog:
2
+ exclude:
3
+ authors:
4
+ - dependabot
5
+ - pre-commit-ci
@@ -0,0 +1,60 @@
1
+ name: CD
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - main
9
+ release:
10
+ types:
11
+ - published
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ env:
18
+ # Many color libraries just need this to be set to any value, but at least
19
+ # one distinguishes color depth, where "3" -> "256-bit color".
20
+ FORCE_COLOR: 3
21
+
22
+ jobs:
23
+ dist:
24
+ name: Distribution build
25
+ runs-on: ubuntu-latest
26
+
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ with:
30
+ fetch-depth: 0
31
+
32
+ - uses: hynek/build-and-inspect-python-package@v2
33
+
34
+ publish:
35
+ needs: [dist]
36
+ name: Publish to PyPI
37
+ environment: pypi
38
+ permissions:
39
+ id-token: write
40
+ attestations: write
41
+ contents: read
42
+ runs-on: ubuntu-latest
43
+ if: github.event_name == 'release' && github.event.action == 'published'
44
+
45
+ steps:
46
+ - uses: actions/download-artifact@v4
47
+ with:
48
+ name: Packages
49
+ path: dist
50
+
51
+ - name: Generate artifact attestation for sdist and wheel
52
+ uses: actions/attest-build-provenance@v1.4.1
53
+ with:
54
+ subject-path: "dist/*"
55
+
56
+ - uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ # Remember to tell (test-)pypi about this repo before publishing
59
+ # Remove this line to publish to PyPI
60
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,55 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ env:
15
+ # Many color libraries just need this to be set to any value, but at least
16
+ # one distinguishes color depth, where "3" -> "256-bit color".
17
+ FORCE_COLOR: 3
18
+
19
+ jobs:
20
+ # pylint:
21
+ # name: Format
22
+ # runs-on: ubuntu-latest
23
+ # steps:
24
+ # - name: Run PyLint
25
+ # run: pipx run nox -s pylint -- --output-format=github
26
+
27
+ tests:
28
+ name: tests (${{ matrix.runs-on }} | Python ${{ matrix.python-version }})
29
+ runs-on: ${{ matrix.runs-on }}
30
+ strategy:
31
+ fail-fast: false
32
+ matrix:
33
+ python-version: ["3.10", "3.13"]
34
+ runs-on: [ubuntu-latest, windows-latest, macos-14]
35
+
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ with:
39
+ fetch-depth: 0
40
+
41
+ - uses: conda-incubator/setup-miniconda@v3
42
+ with:
43
+ environment-file: environment.yml
44
+ python-version: ${{ matrix.python-version }}}
45
+ channels: conda-forge
46
+
47
+ - name: Test package
48
+ run: >-
49
+ python -m pytest -ra --cov --cov-report=xml --cov-report=term
50
+ --durations=20
51
+
52
+ - name: Upload coverage report
53
+ uses: codecov/codecov-action@v4.5.0
54
+ with:
55
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,177 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Figures
7
+ *.jpg
8
+ *.gif
9
+
10
+ # Data files created
11
+ /results
12
+ *.geojson
13
+ *.zarr
14
+ *.nc
15
+ *.zip
16
+
17
+ # C extensions
18
+ *.so
19
+
20
+ # Distribution / packaging
21
+ .Python
22
+ build/
23
+ develop-eggs/
24
+ dist/
25
+ downloads/
26
+ eggs/
27
+ .eggs/
28
+ lib/
29
+ lib64/
30
+ parts/
31
+ sdist/
32
+ var/
33
+ wheels/
34
+ share/python-wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .nox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ coverage.xml
59
+ *.cover
60
+ *.py,cover
61
+ .hypothesis/
62
+ .pytest_cache/
63
+ cover/
64
+
65
+ # Translations
66
+ *.mo
67
+ *.pot
68
+
69
+ # Django stuff:
70
+ *.log
71
+ local_settings.py
72
+ db.sqlite3
73
+ db.sqlite3-journal
74
+
75
+ # Flask stuff:
76
+ instance/
77
+ .webassets-cache
78
+
79
+ # Scrapy stuff:
80
+ .scrapy
81
+
82
+ # Sphinx documentation
83
+ docs/_build/
84
+ docs/api/
85
+
86
+ # PyBuilder
87
+ .pybuilder/
88
+ target/
89
+
90
+ # Jupyter Notebook
91
+ .ipynb_checkpoints
92
+
93
+ # IPython
94
+ profile_default/
95
+ ipython_config.py
96
+
97
+ # pyenv
98
+ # For a library or package, you might want to ignore these files since the code is
99
+ # intended to run in multiple environments; otherwise, check them in:
100
+ # .python-version
101
+
102
+ # pipenv
103
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
104
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
105
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
106
+ # install all needed dependencies.
107
+ #Pipfile.lock
108
+
109
+ # poetry
110
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
111
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
112
+ # commonly ignored for libraries.
113
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
114
+ #poetry.lock
115
+
116
+ # pdm
117
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
118
+ #pdm.lock
119
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
120
+ # in version control.
121
+ # https://pdm.fming.dev/#use-with-ide
122
+ .pdm.toml
123
+
124
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
125
+ __pypackages__/
126
+
127
+ # Celery stuff
128
+ celerybeat-schedule
129
+ celerybeat.pid
130
+
131
+ # SageMath parsed files
132
+ *.sage.py
133
+
134
+ # Environments
135
+ .env
136
+ .venv
137
+ env/
138
+ venv/
139
+ ENV/
140
+ env.bak/
141
+ venv.bak/
142
+
143
+ # Spyder project settings
144
+ .spyderproject
145
+ .spyproject
146
+
147
+ # Rope project settings
148
+ .ropeproject
149
+
150
+ # mkdocs documentation
151
+ /site
152
+
153
+ # mypy
154
+ .mypy_cache/
155
+ .dmypy.json
156
+ dmypy.json
157
+
158
+ # Pyre type checker
159
+ .pyre/
160
+
161
+ # pytype static type analyzer
162
+ .pytype/
163
+
164
+ # Cython debug symbols
165
+ cython_debug/
166
+
167
+ # PyCharm
168
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
169
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
170
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
171
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
172
+ #.idea/
173
+
174
+ # Auto generated by setuptools scm
175
+ src/virtualship/_version_setup.py
176
+
177
+ .vscode/
@@ -0,0 +1,27 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.6.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ exclude: .*\.zarr/
8
+ - id: check-yaml
9
+ - id: check-ast
10
+ - id: check-json
11
+ types: [text]
12
+ files: \.(json|ipynb)$
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ rev: v0.6.5
15
+ hooks:
16
+ - id: ruff
17
+ args: [--fix, --show-fixes]
18
+ - id: ruff
19
+ name: ruff (isort jupyter)
20
+ args: [--select, I, --fix]
21
+ types_or: [jupyter]
22
+ - id: ruff-format
23
+ types_or: [python, jupyter]
24
+ - repo: https://github.com/rbubley/mirrors-prettier # Update mirror as official mirror is deprecated
25
+ rev: v3.3.3
26
+ hooks:
27
+ - id: prettier
@@ -0,0 +1,16 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ version: 2
5
+
6
+ build:
7
+ os: ubuntu-22.04
8
+ tools:
9
+ python: mambaforge-22.9
10
+ jobs:
11
+ pre_build:
12
+ - sphinx-build -b linkcheck docs/ _build/linkcheck
13
+ - sphinx-apidoc -o docs/api/ --module-first --no-toc --force src/virtualship
14
+
15
+ conda:
16
+ environment: environment.yml
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 OceanParcels
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,159 @@
1
+ Metadata-Version: 2.1
2
+ Name: virtualship
3
+ Version: 0.0.3.dev44
4
+ Summary: Code for the Virtual Ship Classroom, where Marine Scientists can combine Copernicus Marine Data with an OceanParcels ship to go on a virtual expedition.
5
+ Author: oceanparcels.org team
6
+ License: MIT License
7
+
8
+ Copyright (c) 2023 OceanParcels
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://oceanparcels.org/
29
+ Project-URL: Repository, https://github.com/OceanParcels/virtualship
30
+ Project-URL: Bug Tracker, https://github.com/OceanParcels/virtualship/issues
31
+ Project-URL: Changelog, https://github.com/OceanParcels/virtualship/releases
32
+ Classifier: Development Status :: 3 - Alpha
33
+ Classifier: License :: OSI Approved :: MIT License
34
+ Classifier: Programming Language :: Python
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3 :: Only
37
+ Classifier: Programming Language :: Python :: 3.10
38
+ Classifier: Programming Language :: Python :: 3.11
39
+ Classifier: Programming Language :: Python :: 3.12
40
+ Classifier: Programming Language :: Python :: 3.13
41
+ Classifier: Operating System :: OS Independent
42
+ Classifier: Topic :: Scientific/Engineering
43
+ Classifier: Topic :: Education
44
+ Classifier: Intended Audience :: Education
45
+ Requires-Python: >=3.10
46
+ Description-Content-Type: text/markdown
47
+ License-File: LICENSE
48
+ Requires-Dist: click
49
+ Requires-Dist: parcels<4,>=3
50
+ Requires-Dist: pyproj<4,>=3
51
+ Requires-Dist: sortedcontainers==2.4.0
52
+ Requires-Dist: opensimplex==0.4.5
53
+ Requires-Dist: numpy<2,>=1
54
+ Requires-Dist: pydantic<3,>=2
55
+
56
+ <p align="center">
57
+ <picture>
58
+ <source media="(prefers-color-scheme: dark)" srcset="./docs/_static/virtual_ship_logo_inverted.png">
59
+ <img alt="VirtualShipParcels logo'" width="200" src="./docs/_static/virtual_ship_logo.png">
60
+ </picture>
61
+ </p>
62
+
63
+ <!-- Badges -->
64
+
65
+ ---
66
+
67
+ <!-- SPHINX-START -->
68
+ <table>
69
+ <tr>
70
+ <th>Project Owner</th>
71
+ <td>Emma Daniels (e.e.daniels1@uu.nl)</td>
72
+ </tr>
73
+ <tr>
74
+ <!-- Should mirror pyproject.toml. Use one of the "Development status" flags from https://pypi.org/classifiers/-->
75
+ <th>Development status</th>
76
+ <td>Alpha</td>
77
+ </tr>
78
+ </table>
79
+
80
+ <!-- Insert catchy summary -->
81
+
82
+ VirtualShipParcels is a command line simulator allowing students to plan and conduct a virtual research expedition, receiving measurements as if they were coming from actual oceanographic instruments including:
83
+
84
+ - ADCP (for currents)
85
+ - CTD (for conductivity, and temperature)
86
+ - underwater measurements (salinity and temperature)
87
+ - surface drifters
88
+ - argo float deployments
89
+
90
+ <!-- TODO: future. Along the way students will encounter difficulties such as: -->
91
+
92
+ ## Installation
93
+
94
+ For a normal installation do:
95
+
96
+ ```bash
97
+ conda create -n my_env python=3.12
98
+ conda activate my_env
99
+ conda install -c conda-forge virtualship
100
+ ```
101
+
102
+ For a development installation, please follow the instructions detailed in the [contributing page](.github/CONTRIBUTING.md).
103
+
104
+ ## Usage
105
+
106
+ ```console
107
+ $ virtualship --help
108
+ Usage: virtualship [OPTIONS] COMMAND [ARGS]...
109
+
110
+ Options:
111
+ --version Show the version and exit.
112
+ --help Show this message and exit.
113
+
114
+ Commands:
115
+ fetch Download the relevant data specified in an expedition directory...
116
+ init Initialize a directory for a new expedition, with an example...
117
+ run Do the expedition.
118
+ ```
119
+
120
+ ```console
121
+ $ virtualship init --help
122
+ Usage: virtualship init [OPTIONS] PATH
123
+
124
+ Initialize a directory for a new expedition, with an example configuration.
125
+
126
+ Options:
127
+ --help Show this message and exit.
128
+ ```
129
+
130
+ ```console
131
+
132
+ $ virtualship fetch --help
133
+ Usage: virtualship fetch [OPTIONS] PATH
134
+
135
+ Download the relevant data specified in an expedition directory (i.e., by
136
+ the expedition config).
137
+
138
+ Options:
139
+ --help Show this message and exit.
140
+ ```
141
+
142
+ ```console
143
+ $ virtualship run --help
144
+ Usage: virtualship run [OPTIONS] PATH
145
+
146
+ Do the expedition.
147
+
148
+ Options:
149
+ --help Show this message and exit.
150
+
151
+ ```
152
+
153
+ For examples, see LINK_TO_TURORIALS.
154
+
155
+ <!-- TODO: Link to tutorials -->
156
+
157
+ ## Input data
158
+
159
+ The scripts are written to work with A-grid ocean data from CMEMS.
@@ -0,0 +1,104 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="./docs/_static/virtual_ship_logo_inverted.png">
4
+ <img alt="VirtualShipParcels logo'" width="200" src="./docs/_static/virtual_ship_logo.png">
5
+ </picture>
6
+ </p>
7
+
8
+ <!-- Badges -->
9
+
10
+ ---
11
+
12
+ <!-- SPHINX-START -->
13
+ <table>
14
+ <tr>
15
+ <th>Project Owner</th>
16
+ <td>Emma Daniels (e.e.daniels1@uu.nl)</td>
17
+ </tr>
18
+ <tr>
19
+ <!-- Should mirror pyproject.toml. Use one of the "Development status" flags from https://pypi.org/classifiers/-->
20
+ <th>Development status</th>
21
+ <td>Alpha</td>
22
+ </tr>
23
+ </table>
24
+
25
+ <!-- Insert catchy summary -->
26
+
27
+ VirtualShipParcels is a command line simulator allowing students to plan and conduct a virtual research expedition, receiving measurements as if they were coming from actual oceanographic instruments including:
28
+
29
+ - ADCP (for currents)
30
+ - CTD (for conductivity, and temperature)
31
+ - underwater measurements (salinity and temperature)
32
+ - surface drifters
33
+ - argo float deployments
34
+
35
+ <!-- TODO: future. Along the way students will encounter difficulties such as: -->
36
+
37
+ ## Installation
38
+
39
+ For a normal installation do:
40
+
41
+ ```bash
42
+ conda create -n my_env python=3.12
43
+ conda activate my_env
44
+ conda install -c conda-forge virtualship
45
+ ```
46
+
47
+ For a development installation, please follow the instructions detailed in the [contributing page](.github/CONTRIBUTING.md).
48
+
49
+ ## Usage
50
+
51
+ ```console
52
+ $ virtualship --help
53
+ Usage: virtualship [OPTIONS] COMMAND [ARGS]...
54
+
55
+ Options:
56
+ --version Show the version and exit.
57
+ --help Show this message and exit.
58
+
59
+ Commands:
60
+ fetch Download the relevant data specified in an expedition directory...
61
+ init Initialize a directory for a new expedition, with an example...
62
+ run Do the expedition.
63
+ ```
64
+
65
+ ```console
66
+ $ virtualship init --help
67
+ Usage: virtualship init [OPTIONS] PATH
68
+
69
+ Initialize a directory for a new expedition, with an example configuration.
70
+
71
+ Options:
72
+ --help Show this message and exit.
73
+ ```
74
+
75
+ ```console
76
+
77
+ $ virtualship fetch --help
78
+ Usage: virtualship fetch [OPTIONS] PATH
79
+
80
+ Download the relevant data specified in an expedition directory (i.e., by
81
+ the expedition config).
82
+
83
+ Options:
84
+ --help Show this message and exit.
85
+ ```
86
+
87
+ ```console
88
+ $ virtualship run --help
89
+ Usage: virtualship run [OPTIONS] PATH
90
+
91
+ Do the expedition.
92
+
93
+ Options:
94
+ --help Show this message and exit.
95
+
96
+ ```
97
+
98
+ For examples, see LINK_TO_TURORIALS.
99
+
100
+ <!-- TODO: Link to tutorials -->
101
+
102
+ ## Input data
103
+
104
+ The scripts are written to work with A-grid ocean data from CMEMS.