Skip to main content

Sea-going mission planning

Project description

Seagoing mission planning based on station positions and occupation times

Overview

Reads in a parameter file (YAML format) containing variables and a list of actions to perform.

The parameter file can also specify a “station file” containing the names, latitudes and longitudes of the stations. All of these stations will be plotted on the map and if an action has the same name and no specified latitude and longitude, this station’s position will be used.

Outputs a table of actions and predicted (or specified) times in HTML format.

Parameter file

The value between the field name and the comment below is the default value (if the field is notentered) or the [type] to use to fill in this field:

---
format_version: [string] # seaplan major version number ("0.4")
description:    [string] # Will be printed at the top of the output
variables:
    station_file:  # NOT REQUIRED
      name: ''              # CSV file containing the station positions
      field_separator: ";"  # CSV field separator
    printout:     # NOT REQUIRED
      show_comments: False  # Print comments in output table
      print_past: True      # Print past events (date before UTC.now())
    timing:
      ignore_depart_arrive_times: False  # Calculate all times, ignoring explicit Event values
      ship_speed.kn_i: 11.               # Ship speed in transit between stations
      ship_latency.h: 0.5                # Add this time to each transit to account for acceleration/deceleration
      action_times.h:                  # Default times for each listed action
        "{Action1}":                     # First Action type
          "{TYPE1}": [float]               # Station type and default time
          "{TYPE2}": [float]               # Station type and default time
          default: [float]]                # default time for non-specified station type
        "{Action2}":                     # Second Action type
          ...
    map:
      grid:
        x: 1.                # Plot grid longitude spacing in decimal degrees
        y: 1.                # Plot grid longitude spacing in decimal degrees
      bounds: [float, float, float, float]   # plot bounds in degrees [left, right, bottom, top]   # degrees left, right, bottom, top
      bathy_map: [str]       # Path to netCDF bathy/topo map to plot
      plot_past_tracks: True # Plot tracks make prior to UTC.now()
      show_plot: True        # plot map to screen
events:  # List of events to plot
  - station: [str]         # Station name: if found in station_file, will get coordinates from there
    lat: [float]           # Station latitude  (overwrites value in station_file, if any)
    lon: [float]           # Station longitude  (overwrites value in station_file, if any)
    arrive_time: [ISO8601] # Fix arrival time (otherwise uses previous depart_time+transit+latency)
    depart_time: [ISO8601] # Fix depart time (otherwise uses arrive_time + hours)
    hours: [float]         # Time spent on the operation.  If zero, the event
                           # is considered to be a waypoint.  If not specified,
                           # use action_time.h['{Action_type}']['{Station_TYPE}']
                           # or action_time.h['{Action_type}']['default'],
    comment: [str]         # Comment
    speed: [float]         # Speed between previous and given site (overrides ship_speed_knots)
  - station:               # Station name
    ...

Here’s an example:

---
format_version: "0.4"
description: "Locate all unlocated, deploy all by cable"
variables:
    station_file:
      name: 'MayOBS_I_stations.csv'
      field_separator: ";"
    printout:
      show_comments: False
      print_past: True
    timing:
      ignore_depart_arrive_times: False
      ship_speed.kn_i: 11
      ship_latency.h: 0.5
      action_times.h:
        "Deploy":
          "SP": 0.25
          "BB": 0.5
          default: 0.5
        "Survey":
          default: 2.0
    map:
      grid:
        x: 0.2
        y: 0.1
      bounds: [45,46,-13.1,-12.4]   # degrees left, right, bottom, top
      bathy_map: '/Users/crawford/_Work/Figures_Etc/2_Maps/Mayotte/grd/MNT-global-Mayotte_netcdf.grd'
      #bathy_map: True
      plot_past_tracks: True
      show_plot: True

events:
  - station: "MONH"
    arrive_time: 2019-02-23T00:00
    action: "Recover"
    hours: 1.5
    comment: "1h30m MAYOBS15 sans survey, should be located by SISMAORE1 active seismics"
  - station: "MOCH"
    action: "Recover"
    hours: 1.7
    comment: "1h40m MAYOBS15, already well located"
  - station: "MOSH"
    action: "Recover+survey: 1200m rayon"
    hours: 4.00
    comment: "2h45m MAYOBS15 sans survey"
  - station: "MOAH"
    action: "Recover+survey: 1700m rayon"
    hours: 4.25
    comment: "2h20m MAYOBS15 sans survey"
  - station: "MOBH"
    action: "Recover+survey: 1600m rayon"
    hours: 3.75
    comment: "1h45m MAYOBS15 sans survey"
  - station: "MOBx"
    action: "Deploy cable"
    hours: 3.5
  - station: "MODH"
    action: "Recover"
    hours: 2.6
    comment: "2h35m MAYOBS15 sans survey, should be located by SISMAORE1 active seismics."
  - station: "MODx"
    action: "Deploy cable"
    hours: 3.6
  - station: "MOAx"
    action: "Deploy cable"
    hours: 3.9
  - station: "MOSx"
    action: "Deploy cable"
    hours: 3.17
  - station: "MOCx"
    action: "Deploy cable"
    hours: 2.5
  - station: "MONx"
    action: "Deploy cable"
    hours: 2.7

Station file

A CSV file who’s first line is a header that specifies the field order, using the names Name, Lat, Lon, Type and Comment. For example:

Name;Lat;Lon;Type;Comment
MOAx;-12.9625;45.8199;SP;
MOBx;-12.8417;45.6250;SP;
MOCx;-12.7837;45.4113;SP;BUBBLEPHONE
MODx;-12.6710;45.5929;SP;
MONx;-12.5956;45.4091;SP;
MOSx;-13.0208;45.4585;SP;
MOAH;-12.9567;45.8192;SP;
MOBH;-12.8423;45.6210;SP;
MOCH;-12.7842;45.4110;SP;BUBBLEPHONE
MODH;-12.6707;45.5928;SP;
MONH;-12.5958;45.4090;SP;
MOSH;-13.0252;45.4557;SP;
Volc;-12.91755;45.71525;VOLC;New Volcano
SISN;-12.1;45.71525;SP;Active Survey station
SISS;-13.8;45.71525;SP;Active Survey station

Miscellaneous features

  • Puts name of stations/actions on plot UNLESS they have no “hours” (just a waypoint)

  • Crosses out stations that have already been visited (departure_time entered and before UTCDateTime.now()

  • Changes the color of the ship’s track every time you use the action name “NEWLEG”

Other subdirectories

seaplan/_examples/

Example files and scripts:

Use reStructuredText to modify this file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seaplan-0.4.9.tar.gz (1.7 MB view hashes)

Uploaded Source

Built Distribution

seaplan-0.4.9-py3-none-any.whl (1.7 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page