The Global Ocean Observing System

The Global Ocean Observing System#

Here we use the OceanOPS module from the OceanRobots.jl package that is helfpul to monitor current and planned deployments of observing networks.

See the OceanRobots.jl package docs here for a deeper look at data collections for which additional support is provided.

Source : https://www.ocean-ops.org/board, https://www.ocean-ops.org/share/

#Let's start a temporary environment for this notebook, and add julia packages that we will 
if !isdefined(Main,:Shapefile)
    using Pkg; Pkg.activate(temp=true)
    Pkg.add.(["OceanRobots", "CairoMakie", "MeshArrays","Shapefile",
        "Shapefile", "GeoJSON", "DataDeps", "PrettyTables", "Proj"])
end

using OceanRobots, CairoMakie, MeshArrays
using Shapefile, GeoJSON, DataDeps, PrettyTables, Proj

OceanRobotsMakieExt=Base.get_extension(OceanRobots, :OceanRobotsMakieExt)
OceanRobotsMakieExt

Datasets#

nam=:Drifter
list_data=OceanOPS.get_list(nam);
id=list_data[1000]
meta=OceanOPS.get_platform(id)
(id = "4602742", country = "United States", status = "OPERATIONAL", deployed = "2021-11-02T09:28:00", ship = "SALLY RIDE")
fil=demo.download_polygons("ne_110m_admin_0_countries.shp")
#fil=demo.download_polygons("countries.geojson")
pol=MeshArrays.read_polygons(fil);
list_platform_types=OceanOPS.list_platform_types();

nam_platform_types="TROPICAL_MB"
more_platform_ii=findall(list_platform_types.nameShort.==nam_platform_types)[1]
more_platform_name=list_platform_types[more_platform_ii,:name]

more_operational=OceanOPS.get_list_pos(Symbol(nam_platform_types));
argo_operational=OceanOPS.get_list_pos(:Argo)

a0=OceanOPS.get_list_pos(:Argo,status=:PROBABLE)
a1=OceanOPS.get_list_pos(:Argo,status=:CONFIRMED)
a2=OceanOPS.get_list_pos(:Argo,status=:REGISTERED)

argo_planned=( lon=vcat(a0.lon,a1.lon,a2.lon),
            lat=vcat(a0.lat,a1.lat,a2.lat),
            flag=vcat(a0.flag,a1.flag,a2.flag))

drifter_operational=OceanOPS.get_list_pos(:Drifter);

Visualisation#

function demofigure()
	lon0=-160
	proj=Proj.Transformation(MA_preset=2,lon0=lon0)

	fi0=Figure(size=(800,600),fontsize=24)
	ax0=Axis(fi0[1,1],backgroundcolor = :gray20,
		title="Distribution of Ocean Observing Platforms")
	pr_ax=MeshArrays.ProjAxis(ax0; proj=proj,lon0=lon0)
	lines!(pr_ax,polygons=pol;color=:white, linewidth = 0.5)

	sc1=scatter!(pr_ax,argo_operational.lon,argo_operational.lat,
		markersize=6.0,label="Argo (operational)",color=:deepskyblue)
	sc2=scatter!(pr_ax,argo_planned.lon,argo_planned.lat,
		markersize=6.0,label="Argo (planned)",color=:violet)
	sc3=scatter!(pr_ax,drifter_operational.lon,drifter_operational.lat,
		markersize=8.0,label="Drifter",color=:green1)
	sc4=scatter!(pr_ax,more_operational.lon,more_operational.lat,
		markersize=12.0,label=more_platform_name,color=:red,marker=:star5)
	
	MeshArrays.grid_lines!(pr_ax;color=:yellow,linewidth=0.5)

	Legend(fi0[2, 1],[sc1,sc2,sc3,sc4],[sc1.label,sc2.label,sc3.label,sc4.label],
		orientation = :horizontal, fontsize=16)
	
	fi0
end

with_theme(demofigure, theme_dark())

Observing Platforms List#

tb=pretty_table(
    [list_platform_types[:,:name] list_platform_types[:,:wigosCode] list_platform_types[:,:id]],
    header = ["name","wigosCode","ID"],
    header_crayon = crayon"yellow bold",
    highlighters  = ( hl_col(1, crayon"yellow"),hl_col(2, crayon"white"),hl_col(3, crayon"white") ),
)
display(tb)
nothing
┌───────────────────────────────┬──────────────────┬─────────┐
│                          name         wigosCode       ID │
├───────────────────────────────┼──────────────────┼─────────┤
│                    Float Deep │ underwaterMobile │    1000 │
│                         Float │ underwaterMobile │      26 │
│         Ice Tethered Profiler │         seaOnIce │    1001 │
│                 Float Coastal │ underwaterMobile │    1002 │
│  Polar Ocean Profiling System │         seaOnIce │    1003 │
│                      ASAP INT │          unknown │ 1000154 │
│                      ASAP DIS │          unknown │ 1000155 │
│               Tsunameter Buoy │         seaFixed │    2000 │
│          Tropical Moored Buoy │         seaFixed │    2001 │
│             Underwater Glider │ underwaterMobile │    2003 │
│ VOS Automatic Weather Station │        seaMobile │    2009 │
│    VOS Manual Weather Station │        seaMobile │    2010 │
│                  DB POLLUTION │        seaMobile │ 1000091 │
│    Meteorological Moored Buoy │         seaFixed │      33 │
│              Wave Moored Buoy │         seaFixed │      34 │
│     High-Latitude Moored Buoy │         seaFixed │      43 │
│                           DWS │        seaMobile │      42 │
│                      Ice Buoy │         seaOnIce │      39 │
│        Subsurface Moored Buoy │  underwaterFixed │    2005 │
│                 Fixed Station │         seaFixed │      83 │
│                           SVP │        seaMobile │ 1000076 │
│                     DB CARBON │        seaMobile │ 1000106 │
│                          CMOD │        seaMobile │ 1000113 │
│                    DB SHALLOW │        seaMobile │ 1000134 │
│                DAVIS_METOCEAN │        seaMobile │ 1000135 │
│                        ECHNOC │        seaMobile │ 1000136 │
│                  DB MARISONDE │        seaMobile │ 1000180 │
│                          ASAP │          unknown │ 1000158 │
│                           XBT │ underwaterMobile │ 1000160 │
│                          XCTD │ underwaterMobile │ 1000161 │
│                           TSG │ underwaterMobile │ 1000162 │
│                    Tide Gauge │         seaFixed │      41 │
│                      HF Radar │         seaFixed │ 1000260 │
│                         DAVIS │        seaMobile │ 1000320 │
│                     SVP B DBi │          unknown │ 1000460 │
│ Subsea Cable Observing System │          unknown │ 1000540 │
│                 Tagged animal │ underwaterMobile │ 1000541 │
│                      Autonaut │          unknown │ 1000300 │
│  Generic Fishing Vessel Probe │          unknown │ 1000560 │
│       Generic Underway System │          unknown │ 1000580 │
│                Benthic Lander │  underwaterFixed │ 1000241 │
│                      MEOP-CTD │ underwaterMobile │ 1000261 │
│                   CTD_ROSETTE │ underwaterMobile │ 1000280 │
│                       Mooring │          unknown │ 1000380 │
│        SPOT POLAR ICE TRACKER │         seaOnIce │ 1000400 │
│                      SailBuoy │          unknown │ 1000420 │
│  Fixed Fishing Vessels Probes │          unknown │ 1000441 │
│  Mobile Fishing Vessel Probes │          unknown │ 1000442 │
│                         SIMB3 │          unknown │ 1000520 │
│                STOKES DRIFTER │          unknown │ 1000581 │
│                         Oshen │          unknown │ 1000601 │
│                     SailDrone │        seaMobile │ 1000221 │
│                    WaveGlider │        seaMobile │ 1000220 │
└───────────────────────────────┴──────────────────┴─────────┘