User Directions

Table of Contents

How to Install and Use

To install OceanRobots.jl in julia proceed as usual via the package manager (using Pkg; Pkg.add("OceanRobots")).

To run a notebook interactively (.jl files) you want to use Pluto.jl. For example, copy and paste one of the above code links in the Pluto.jl interface. This will let you spin up the notebook in a web browser from the copied URL.

All you need to do beforehand is to install julia and Pluto.jl. The installation of OceanRobots.jl and other Julia packages will then happen automatically when you run the notebook.

You can also download the notebooks folder and run them as normal Julia programs. We recommend runing each notebook in its own environment as shown below.

Note

To download OceanRobots.jl folder, which includes the notebooks folder, you can use Git.jl.

using Pkg; Pkg.add("Git"); using Git
url="https://github.com/JuliaOcean/OceanRobots.jl"
run(`$(git()) clone $(url)`)
using Pkg; Pkg.add("Pluto"); using Pluto

notebook="MITgcm.jl/examples/Float_Argo.jl"
Pluto.activate_notebook_environment(notebook)
Pkg.instantiate()
include(notebook)
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
  No Changes to `~/work/OceanRobots.jl/OceanRobots.jl/docs/Project.toml`
  No Changes to `~/work/OceanRobots.jl/OceanRobots.jl/docs/Manifest.toml`

[ Info: REPL environment updated from notebook ✓



   Installed OffsetArrays ──────────── v1.15.0
   Installed Hyperscript ───────────── v0.0.5
   Installed LRUCache ──────────────── v1.6.1
   Installed HypergeometricFunctions ─ v0.3.27
   Installed PNGFiles ──────────────── v0.4.3
   Installed JpegTurbo ─────────────── v0.1.5
   Installed Dataverse ─────────────── v0.2.5
   Installed InlineStrings ─────────── v1.4.2
   Installed Cairo_jll ─────────────── v1.18.2+1
   Installed ConcurrentUtilities ───── v2.4.3
   Installed EnumX ─────────────────── v1.0.4
   Installed Hwloc_jll ─────────────── v2.11.2+3
   Installed Pango_jll ─────────────── v1.55.5+0
   Installed PlutoUI ───────────────── v0.7.61
   Installed DataStructures ────────── v0.18.20
   Installed JLD2 ──────────────────── v0.5.11
   Installed OceanRobots ───────────── v0.2.15
   Installed StaticArrays ──────────── v1.9.11
   Installed FreeType2_jll ─────────── v2.13.3+1
   Installed libpng_jll ────────────── v1.6.46+0
   Installed MPICH_jll ─────────────── v4.2.3+0
   Installed CodecZlib ─────────────── v0.7.6
   Installed HDF5_jll ──────────────── v1.14.2+1
   Installed ColorTypes ────────────── v0.11.5
   Installed JSON3 ─────────────────── v1.14.1
   Installed ColorSchemes ──────────── v3.28.0
   Installed NetCDF_jll ────────────── v400.902.209+0
   Installed OpenMPI_jll ───────────── v5.0.6+0
   Installed ColorVectorSpace ──────── v0.10.0
   Installed Zstd_jll ──────────────── v1.5.7+0
   Installed oneTBB_jll ────────────── v2021.12.0+0
   Installed libzip_jll ────────────── v1.11.2+2
   Installed DocStringExtensions ───── v0.9.3
   Installed MIMEs ─────────────────── v1.0.0
   Installed CommonDataModel ───────── v0.3.7
   Installed NCDatasets ────────────── v0.14.6
   Installed IntervalArithmetic ────── v0.22.22
   Installed YAML ──────────────────── v0.4.12
   Installed FileIO ────────────────── v1.16.6
   Installed Pixman_jll ────────────── v0.43.4+0
   Installed Adapt ─────────────────── v4.1.1
   Installed MeshArrays ────────────── v0.3.19
   Installed Blosc_jll ─────────────── v1.21.6+2
   Installed OpenSSL_jll ───────────── v3.0.15+3
   Installed XML2_jll ──────────────── v2.13.5+0
   Installed GeometryBasics ────────── v0.5.2
   Installed URIs ──────────────────── v1.5.1
   Installed CairoMakie ────────────── v0.13.1
   Installed MakieCore ─────────────── v0.9.0
   Installed MPItrampoline_jll ─────── v5.5.1+2
   Installed FilePathsBase ─────────── v0.9.22
   Installed QuadGK ────────────────── v2.11.1
   Installed Requires ──────────────── v1.3.0
   Installed StringManipulation ────── v0.4.0
   Installed Distributions ─────────── v0.25.117
   Installed DiskArrays ────────────── v0.4.8
   Installed Makie ─────────────────── v0.22.1
Precompiling project...
    558.8 ms  ✓ EnumX
    665.2 ms  ✓ Requires
    895.4 ms  ✓ URIs
   1171.1 ms  ✓ InlineStrings
   1901.2 ms  ✓ OffsetArrays
    755.5 ms  ✓ CodecZlib
    778.2 ms  ✓ LRUCache
   1022.5 ms  ✓ ConcurrentUtilities
    830.4 ms  ✓ DocStringExtensions
    949.5 ms  ✓ Hyperscript
   2373.9 ms  ✓ MIMEs
    822.7 ms  ✓ libpng_jll
   1072.2 ms  ✓ OpenSSL_jll
    793.3 ms  ✓ Hwloc_jll
    750.8 ms  ✓ Pixman_jll
   1025.4 ms  ✓ oneTBB_jll
    935.0 ms  ✓ Zstd_jll
   4359.3 ms  ✓ ColorTypes
   1684.2 ms  ✓ FilePathsBase
   1068.7 ms  ✓ FreeType2_jll
   3219.0 ms  ✓ StringManipulation
   3080.0 ms  ✓ DataStructures
    998.8 ms  ✓ XML2_jll
   1700.6 ms  ✓ MPItrampoline_jll
   1870.9 ms  ✓ YAML
    739.3 ms  ✓ Adapt
   4550.8 ms  ✓ IntervalArithmetic
    543.7 ms  ✓ LRUCache → SerializationExt
   1430.7 ms  ✓ InlineStrings → ParsersExt
   1916.2 ms  ✓ DiskArrays
   1620.1 ms  ✓ OpenMPI_jll
   7538.2 ms  ✓ FileIO
   3043.4 ms  ✓ MPICH_jll
  14574.3 ms  ✓ StaticArrays
    916.2 ms  ✓ Blosc_jll
   8040.8 ms  ✓ HypergeometricFunctions
   2250.0 ms  ✓ MKL_jll
   1451.0 ms  ✓ libzip_jll
    905.3 ms  ✓ FilePathsBase → FilePathsBaseMmapExt
   2149.2 ms  ✓ FilePathsBase → FilePathsBaseTestExt
   4208.8 ms  ✓ ColorVectorSpace
   2451.7 ms  ✓ QuadGK
    837.1 ms  ✓ OffsetArrays → OffsetArraysAdaptExt
   2739.3 ms  ✓ CommonDataModel
    834.5 ms  ✓ IntervalArithmetic → IntervalArithmeticIntervalSetsExt
  18310.8 ms  ✓ JSON3
   1190.1 ms  ✓ IntervalArithmetic → IntervalArithmeticRecipesBaseExt
   6931.9 ms  ✓ PlutoUI
    909.1 ms  ✓ StaticArrays → StaticArraysChainRulesCoreExt
   2168.9 ms  ✓ HDF5_jll
    939.6 ms  ✓ StaticArrays → StaticArraysStatisticsExt
   5628.5 ms  ✓ Cairo_jll
    948.0 ms  ✓ Adapt → AdaptStaticArraysExt
    809.4 ms  ✓ ColorVectorSpace → SpecialFunctionsExt
  11389.1 ms  ✓ ColorSchemes
  18625.1 ms  ✓ GeometryBasics
  32145.0 ms  ✓ FileIO → HTTPExt
  17603.6 ms  ✓ Distributions
   2163.0 ms  ✓ NetCDF_jll
  34582.7 ms  ✓ JpegTurbo
  41396.2 ms  ✓ PNGFiles
  57618.9 ms  ✓ JLD2
   2525.6 ms  ✓ Pango_jll
   2473.3 ms  ✓ Distributions → DistributionsTestExt
   2221.1 ms  ✓ Distributions → DistributionsChainRulesCoreExt
   9601.5 ms  ✓ MeshArrays
   3971.1 ms  ✓ MeshArrays → MeshArraysJLD2Ext
   9928.6 ms  ✓ MakieCore
   8149.9 ms  ✓ NCDatasets
  10057.9 ms  ✓ MeshArrays → MeshArraysDataDepsExt
   7511.7 ms  ✓ MeshArrays → MeshArraysShapefileExt
 116673.7 ms  ✓ Dataverse
  33086.0 ms  ✓ OceanRobots
 192534.9 ms  ✓ Makie
   9562.9 ms  ✓ MeshArrays → MeshArraysMakieExt
  11363.1 ms  ✓ OceanRobots → OceanRobotsMakieExt
  42784.7 ms  ✓ CairoMakie
  77 dependencies successfully precompiled in 328 seconds. 284 already precompiled.
  70 dependencies precompiled but different versions are currently loaded. Restart julia to access the new versions. Otherwise, loading dependents of these packages may trigger further precompilation to work with the unexpected versions.
Precompiling PlutoUI...
   2954.8 ms  ✓ PlutoUI
  1 dependency successfully precompiled in 3 seconds. 42 already precompiled.
19603×2 DataFrame
   Row │ folder  wmo
       │ Any     Any
───────┼─────────────────
     1 │ aoml    13857
     2 │ aoml    13858
     3 │ aoml    13859
     4 │ aoml    15819
     5 │ aoml    15820
     6 │ aoml    15851
     7 │ aoml    15852
     8 │ aoml    15853
   ⋮   │   ⋮        ⋮
 19597 │ nmdis   2901627
 19598 │ nmdis   2901628
 19599 │ nmdis   2901629
 19600 │ nmdis   2901630
 19601 │ nmdis   2901631
 19602 │ nmdis   2901632
 19603 │ nmdis   2901633
       19588 rows omitted┌──────────┬─────────┐
│   folder │     wmo │
├──────────┼─────────┤
│     aoml │   13857 │
│     aoml │ 3900417 │
│     aoml │ 4902897 │
│     aoml │ 5902439 │
│     aoml │ 5906066 │
│     bodc │ 6901119 │
│ coriolis │ 6900953 │
│ coriolis │ 7900553 │
│   incois │ 2900554 │
│      jma │ 5900647 │
└──────────┴─────────┘
┌ Warning: specifycing files_list here is deprecated
└ @ ArgoData ~/.julia/packages/ArgoData/2B48R/src/data_structures.jl:178
downloading floats list via ArgoData.jl
  Activating project at `~/work/OceanRobots.jl/OceanRobots.jl/docs`

How to Seek Support

If something is unclear or proves difficult to use, please seek support by opening an issue on the repository.

How to Contribute

Thank you for considering contributing to OceanRobots.jl! If you're interested in contributing we want your help no matter how big or small a contribution you make!

Reporting Bugs

If you encounter a bug, please help us fix it by following these steps:

  1. Ensure the bug is not already reported by checking the issue tracker.
  2. If the bug isn't reported, open a new issue. Clearly describe the issue, including steps to reproduce it.

Suggesting Enhancements

If you have ideas for enhancements, new features, or improvements, we'd love to hear them! Follow these steps:

  1. Check the issue tracker to see if your suggestion has been discussed.
  2. If not, open a new issue, providing a detailed description of your suggestion and the use case it addresses.

Code Contribution

If you'd like to contribute code to the project:

  1. Fork the repository.
  2. Clone your fork: git clone https://github.com/juliaocean/OceanRobots.jl
  3. Create a new branch for your changes: git checkout -b feature-branch
  4. Make your changes and commit them with a clear message.
  5. Push your changes to your fork: git push origin feature-branch
  6. Open a pull request against the master branch of the main repository.

Pull Request Process

Please ensure your pull request follows these guidelines:

  1. Adheres to the coding standards.
  2. Includes relevant tests for new functionality.
  3. Has a clear commit history and messages.
  4. References the relevant issue if applicable.

Please don't hesistate to get in touch to discuss, or with any questions!

License

By contributing to this project, you agree that your contributions will be licensed under the LICENSE file of this repository.