mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 09:47:08 +00:00
333 lines
11 KiB
YAML
333 lines
11 KiB
YAML
# Example of a survey configuration file.
|
||
#
|
||
# These files, of which there should be one per project,
|
||
# describe where to find the relevant data and other
|
||
# parameters of interest.
|
||
|
||
|
||
archived: true # If true, the data in the database will be “frozen”.
|
||
id: EQ20211 # Not used. See bin/create_survey.sh
|
||
name: "Snorre" # Not used. See bin/create_survey.sh
|
||
schema: survey_1 # This must be the schema returned by bin/create_survey.sh
|
||
epsg: 23031 # The EPSG code used in bin/create_survey.sh
|
||
binning: # P6 data. Eventually will be replaced with the location of the P6 file.
|
||
theta: 206.47 # Direction of I axis, degrees
|
||
I_inc: 1 # Increment along I
|
||
J_inc: 1 # Increment along J
|
||
I_width: 12.50 # Inline bin width
|
||
J_width: 12.50 # Crossline bin width
|
||
origin:
|
||
easting: 479735.00
|
||
northing: 6565048.00
|
||
I: 5000
|
||
J: 1000
|
||
preplots: # List of preplot files
|
||
-
|
||
type: sps # Always "sps"
|
||
class: "S" # Source preplots
|
||
path: /srv/Data/EQ20211/preplots/Preplot_Source.sps
|
||
format:
|
||
# The “SPS” files seen in the wild all have different layouts. Rather than
|
||
# forcing our own choice of layout upon the user, we let him describe what
|
||
# his files look like.
|
||
# This is done by providing:
|
||
# * a list of field widths (negative values cause that number of columns to be skipped)
|
||
# * a list of field names, its length must equal the number of positive field widths
|
||
# * a list of type conversions – this is the name of a Python function to which the
|
||
# value will be passed. An exception is that `int` is our own custom function that
|
||
# can take a string like "3.0" without barfing.
|
||
widths: [ -1, 10, 10, -25, 10, 10 ]
|
||
names: [ "line_name", "point_number", "easting", "northing" ]
|
||
types: [ "int", "int", "float", "float" ]
|
||
-
|
||
type: sps
|
||
class: "V" # Vessel preplots
|
||
path: /srv/Data/EQ20211/preplots/Preplot_Vessel.sps
|
||
format:
|
||
widths: [ -1, 10, 10, -25, 10, 10 ]
|
||
names: [ "line_name", "point_number", "easting", "northing" ]
|
||
types: [ "int", "int", "float", "float" ]
|
||
|
||
raw:
|
||
# This section tells us where to find the raw data and what kind it is.
|
||
# (raw data is what is produced by the navigation system during or right after acquisition)
|
||
|
||
|
||
ntbp:
|
||
# This section tells us how to identify NTBP (not to be processed) sequences.
|
||
# We match the following regular expression pattern against the full path, not
|
||
# just the file name. The pattern applies both to P1/90 and P1/11 files.
|
||
pattern:
|
||
regex: NTBP
|
||
flags: i
|
||
|
||
|
||
p190: # Use this section if you have P1/90 raw files
|
||
timestamp_format: "%d%m%Y" # Different software can't seem to agree on what format to use
|
||
pattern:
|
||
# Some of the information we want is not even *in* the P1/90 but is conveyed
|
||
# via the file name. So we parse the file name via a regular expression to
|
||
# get those details. There are two items of data that we *must* get from the
|
||
# file name: the sequence and the sailline number.
|
||
# The following items are:
|
||
# * regex: a Python (and ideally JavaScript) compatible regular expression
|
||
# * flags: regular expression flags
|
||
# * captures: the capture groups. "line" and "sequence" are required.
|
||
regex: '^.*(10|20)([0-9]{4})([0-9])([0-9]{3})S00000\.([0-9]+)\.[Pp]?190$'
|
||
flags: i
|
||
captures: [ "direction", "line", "attempt", "sequence", "file_no" ]
|
||
globs:
|
||
# A list of glob expressions to capture P1/90 files
|
||
- "*.P190"
|
||
paths:
|
||
# A list of directories to search for P1/90 files
|
||
- /srv/Data/EQ20211/_live/raw
|
||
|
||
p111: # Use this section if you have P1/11 raw files (recommended)
|
||
pattern:
|
||
regex: '^.*(10|20)([0-9]{4})([0-9])([0-9]{3})S00000(\.([0-9]+))?\.[Pp]?111$'
|
||
flags: i
|
||
captures: [ "direction", "line", "attempt", "sequence", "(ignore)", "file_no" ]
|
||
globs:
|
||
- "**/*.P111"
|
||
- "**/*.p111"
|
||
paths:
|
||
- /srv/Data/EQ20211/_live/raw
|
||
|
||
|
||
final:
|
||
# This section is analogue to "raw" above, but for final data.
|
||
# (final data is what is given to the client)
|
||
p190:
|
||
timestamp_format: "%d%m%Y"
|
||
pattern:
|
||
regex: '^.*(10|20)([0-9]{4})([0-9])([0-9]{3})S00000\.([0-9]+)\.[Pp]?190$'
|
||
flags: i
|
||
captures: [ "direction", "line", "attempt", "sequence", "file_no" ]
|
||
globs:
|
||
- "*.190"
|
||
- "*.p190"
|
||
- "*.P190"
|
||
paths:
|
||
- /srv/Data/EQ20211/_live/final
|
||
|
||
|
||
labels:
|
||
FDSP:
|
||
view:
|
||
colour: "#80CBC4"
|
||
description: "First shot of the day"
|
||
model:
|
||
user: false
|
||
multiple: false
|
||
FSP:
|
||
view:
|
||
colour: "#03A9F4"
|
||
"description": "First shot point"
|
||
model:
|
||
user: true
|
||
multiple: false
|
||
FGSP:
|
||
view:
|
||
colour: "light-blue darken-1"
|
||
"description": "First good shot point"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
FOSP:
|
||
view:
|
||
colour: "light-blue darken-2"
|
||
"description": "First overlap shot point"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Guns:
|
||
view:
|
||
"colour": "#F48FB1"
|
||
"description": "Gun events"
|
||
model:
|
||
user: true
|
||
#multiple: true # This is the default
|
||
LDSP:
|
||
view:
|
||
colour: "#4DB6AC"
|
||
description: "Last shot of the day"
|
||
model:
|
||
user: false
|
||
multiple: false
|
||
LSP:
|
||
view:
|
||
colour: "#00BCD4"
|
||
description: "Last shot point"
|
||
model:
|
||
user: true
|
||
multiple: false
|
||
LGSP:
|
||
view:
|
||
colour: "cyan darken-1"
|
||
"description": "Last good shot point"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
LOSP:
|
||
view:
|
||
colour: "cyan darken-2"
|
||
"description": "Last overlap shot point"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Nav:
|
||
view:
|
||
colour: "#EF9A9A"
|
||
description: "Navigation events"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Nav Proc:
|
||
view:
|
||
colour: "#FFCC80"
|
||
description: "Navigation processing events"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Weather:
|
||
view:
|
||
colour: "blue accent-1"
|
||
description: "Weather information"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Missed shot:
|
||
view:
|
||
colour: "red darken-1"
|
||
description: "Missing shot"
|
||
model:
|
||
user: false
|
||
multiple: true
|
||
NTBP:
|
||
view:
|
||
colour: "red"
|
||
description: "Not to be processed"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
QC Error:
|
||
view:
|
||
colour: "#FF0000"
|
||
description: "This shot fails one or more QC checks"
|
||
model:
|
||
user: false
|
||
multiple: true
|
||
Daily:
|
||
view:
|
||
colour: "#C0C0C0"
|
||
description: "Of interest in the daily report"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Weekly:
|
||
view:
|
||
colour: "#C0C0C0"
|
||
description: "Of interest in the weekly report"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Final report:
|
||
view:
|
||
colour: "#C0C0C0"
|
||
description: "Of interest in the final report"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
Shift handover:
|
||
view:
|
||
colour: "#C0C0C0"
|
||
description: "Of interest during shift handover"
|
||
model:
|
||
user: true
|
||
multiple: true
|
||
# NOTE to self:
|
||
# insert into labels (select ld.key as name, ld.value as data from file_data fd, json_each(fd.data->'labels') ld);
|
||
|
||
events:
|
||
presetRemarks:
|
||
-
|
||
text: Navigation
|
||
items:
|
||
-
|
||
text: Online
|
||
labels: [ Nav ]
|
||
items:
|
||
- text: Strong currents
|
||
- text: Bridge takes control
|
||
- text: Back on autopilot
|
||
- text: Start deviation
|
||
-
|
||
text: Processing
|
||
labels: [ "Nav Proc" ]
|
||
items:
|
||
- text: Lost DGPS
|
||
- text: Lost RGPS
|
||
-
|
||
text: Gunners
|
||
labels: [ Guns ]
|
||
items:
|
||
-
|
||
text: Port array
|
||
items:
|
||
-
|
||
text: GS6
|
||
items:
|
||
- text: GS6 Autofire
|
||
- text: "GS6 Swapped guns: "
|
||
- text: "GS6 Hydrophone dead: "
|
||
- text: "GS6 Depth sensor dead: "
|
||
-
|
||
text: GS5
|
||
items:
|
||
- text: GS5 Autofire
|
||
- text: "GS5 Swapped guns: "
|
||
- text: "GS5 Hydrophone dead: "
|
||
- text: "GS5 Depth sensor dead: "
|
||
-
|
||
text: GS4
|
||
items:
|
||
- text: GS4 Autofire
|
||
- text: "GS4 Swapped guns: "
|
||
- text: "GS4 Hydrophone dead: "
|
||
- text: "GS4 Depth sensor dead: "
|
||
-
|
||
text: Starboard array
|
||
items:
|
||
-
|
||
text: GS3
|
||
items:
|
||
- text: GS3 Autofire
|
||
- text: "GS3 Swapped guns: "
|
||
- text: "GS3 Hydrophone dead: "
|
||
- text: "GS3 Depth sensor dead: "
|
||
-
|
||
text: GS2
|
||
items:
|
||
- text: GS2 Autofire
|
||
- text: "GS2 Swapped guns: "
|
||
- text: "GS2 Hydrophone dead: "
|
||
- text: "GS2 Depth sensor dead: "
|
||
-
|
||
text: GS1
|
||
items:
|
||
- text: GS1 Autofire
|
||
- text: "GS1 Swapped guns: "
|
||
- text: "GS1 Hydrophone dead: "
|
||
- text: "GS1 Depth sensor dead: "
|
||
-
|
||
text: Bridge
|
||
items:
|
||
- text: Bridge takes control
|
||
- text: Back on autopilot
|
||
-
|
||
text: HSE
|
||
labels: [ HSE ]
|
||
items:
|
||
- text: Toolbox meeting
|