Configuration and Setup Options¶
Configuration Classes¶
A handful of pydantic BaseModels make up the configuration for PTM. This allows for straight-forward parameter definitions, including min/maxes, which can be shared via JSON schema, and validation, all without even touching the main modules.
The main configuration classes are:
TheManagerConfigOpenDriftConfigand instancesLarvalFishModelConfig,LeewayModelConfig,OceanDriftModelConfig,OpenOilModelConfig,PhytoplanktonModelConfig
Other configuration classes are:
OceanModelConfigOceanModelRegistryOceanModelSimulationLoggerConfigParticleTrackingStateSetupOutputFiles
Retrieve JSON schemas¶
To retrieve the JSON schema for most parameters related to a PTM run, you can access through one of the scenario classes:
OceanDriftModelConfig¶
import particle_tracking_manager as ptm
import pprint
import json
schema = ptm.OceanDriftModelConfig.model_json_schema()
print(json.dumps(schema, indent=2))
/home/docs/checkouts/readthedocs.org/user_builds/particle-tracking-manager/conda/stable/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
{
"$defs": {
"CoastlineActionEnum": {
"description": "Enum for coastline actions used in OpenDrift.",
"enum": [
"none",
"stranding",
"previous"
],
"title": "CoastlineActionEnum",
"type": "string"
},
"DiffusivityModelEnum": {
"description": "Enum for diffusivity models used in OpenDrift.",
"enum": [
"environment",
"stepfunction",
"windspeed_Sundby1983",
"windspeed_Large1994",
"gls_tke",
"constant"
],
"title": "DiffusivityModelEnum",
"type": "string"
},
"DriftModelEnum": {
"description": "Enum for drift models used in OpenDrift.",
"enum": [
"OceanDrift",
"LarvalFish",
"Phytoplankton",
"OpenOil",
"Leeway"
],
"title": "DriftModelEnum",
"type": "string"
},
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
},
"RadiusTypeEnum": {
"description": "Enum for radius types used in OpenDrift.",
"enum": [
"gaussian",
"uniform"
],
"title": "RadiusTypeEnum",
"type": "string"
},
"SeafloorActionEnum": {
"description": "Enum for seafloor actions used in OpenDrift.",
"enum": [
"none",
"lift_to_seafloor",
"deactivate",
"previous"
],
"title": "SeafloorActionEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Ocean drift model configuration for OpenDrift.",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": false,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"od_mapping": "environment:constant:horizontal_diffusivity",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": true,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"od_mapping": "drift:stokes_drift",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"od_mapping": "seed:z",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"od_mapping": "seed:number",
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
},
"drift_model": {
"$ref": "#/$defs/DriftModelEnum",
"default": "OceanDrift"
},
"save_interpolator": {
"default": false,
"description": "Whether to save the interpolator.",
"title": "Save Interpolator",
"type": "boolean"
},
"interpolator_filename": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filename to save interpolator to or read interpolator from. Exclude suffix (which should be .pickle).",
"ptm_level": 3,
"title": "Interpolator Filename"
},
"export_variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "List of variables to export. Options available with `m.all_export_variables` for a given `drift_model`. ['lon', 'lat', 'ID', 'status', 'z'] will always be exported. Default of None means all possible variables are exported.",
"ptm_level": 3,
"title": "Export Variables"
},
"plots": {
"anyOf": [
{
"additionalProperties": {
"additionalProperties": true,
"type": "object"
},
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dictionary of plots to generate using OpenDrift.",
"ptm_level": 1,
"title": "Plots"
},
"radius": {
"default": 1000.0,
"description": "Radius around each lon-lat pair, within which particles will be seeded according to `radius_type`.",
"maximum": 1000000,
"minimum": 0.0,
"ptm_level": 2,
"title": "Radius",
"type": "number",
"units": "m"
},
"radius_type": {
"$ref": "#/$defs/RadiusTypeEnum",
"default": "gaussian",
"description": "Distribution for seeding particles around location. Options: 'gaussian' or 'uniform'.",
"ptm_level": 3
},
"max_speed": {
"default": 20.0,
"description": "Typical maximum speed of elements, used to estimate reader buffer size",
"exclusiveMinimum": 0,
"od_mapping": "drift:max_speed",
"ptm_level": 1,
"title": "Maximum speed",
"type": "number",
"units": "m/s"
},
"use_auto_landmask": {
"default": false,
"description": "If True, use a global-scale land mask from https://www.generic-mapping-tools.org/remote-datasets/earth-mask.html. Dataset scale selected is `auto`. If False, use the land mask from the ocean model.",
"od_mapping": "general:use_auto_landmask",
"ptm_level": 3,
"title": "Use Auto Landmask",
"type": "boolean"
},
"coastline_action": {
"$ref": "#/$defs/CoastlineActionEnum",
"default": "stranding",
"description": "This controls particle behavior at the coastline. Use `previous` for a particle to move back to its previous location if it hits land. Use `stranding` to have a particle stick (that is, become deactivated) where it interacts with land. With None, objects may also move over land.",
"od_mapping": "general:coastline_action",
"ptm_level": 2,
"title": "Coastline Action"
},
"current_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to current components at each time step",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:current_uncertainty",
"ptm_level": 2,
"title": "Current Uncertainty",
"type": "number",
"units": "m/s"
},
"wind_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to wind components at each time step.",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:wind_uncertainty",
"ptm_level": 2,
"title": "Wind Uncertainty",
"type": "number",
"units": "m/s"
},
"seed_seafloor": {
"default": false,
"description": "Elements are seeded at seafloor, and seeding depth (z) is neglected and must be None.",
"od_mapping": "seed:seafloor",
"ptm_level": 2,
"title": "Seed Seafloor",
"type": "boolean"
},
"diffusivitymodel": {
"$ref": "#/$defs/DiffusivityModelEnum",
"default": "windspeed_Large1994",
"description": "Algorithm/source used for profile of vertical diffusivity. Environment means that diffusivity is acquired from readers or environment constants/fallback. Parameterizations based on wind speed are also available.",
"od_mapping": "vertical_mixing:diffusivitymodel",
"ptm_level": 3,
"title": "Diffusivity model",
"units": "seconds"
},
"mixed_layer_depth": {
"default": 20,
"description": "mixed_layer_depth controls how deep the vertical diffusivity profile reaches. This sets the fallback value for ocean_mixed_layer_thickness if not available from any reader.",
"minimum": 0.0,
"od_mapping": "environment:constant:ocean_mixed_layer_thickness",
"ptm_level": 3,
"title": "Mixed Layer Depth",
"type": "number",
"units": "m"
},
"seafloor_action": {
"$ref": "#/$defs/SeafloorActionEnum",
"default": "lift_to_seafloor",
"description": "This controls particle behavior at the seafloor. Use `deactivate` to stick particles to the seafloor at the point of interaction. Use `lift_to_seafloor` to elevate particles up to seabed if below. User `previous` to move elements back to previous position. Use None to ignore seafloor.",
"od_mapping": "general:seafloor_action",
"ptm_level": 2,
"title": "Seafloor Action"
},
"wind_drift": {
"default": true,
"description": "If on, elements at surface are moved with a fraction, the wind draft factor, of the wind speed from the surface down to the wind drift depth.",
"ptm_level": 1,
"title": "Wind Drift",
"type": "boolean"
},
"wind_drift_depth": {
"default": 0.1,
"description": "The direct wind drift (windage) is linearly decreasing from the surface value (wind_drift_factor) until 0 at this depth.",
"maximum": 1,
"minimum": 0,
"od_mapping": "drift:wind_drift_depth",
"ptm_level": 3,
"title": "Wind Drift Depth",
"type": "number",
"units": "meters"
},
"vertical_mixing_timestep": {
"default": 60,
"description": "Time step used for inner (fast) loop of the vertical mixing model. Set this smaller to increase frequency of vertical mixing calculation; number of loops is calculated as int(self.time_step/vertical_mixing_timestep) so vertical_mixing_timestep must be smaller than time_step.",
"maximum": 3600,
"minimum": 0.1,
"od_mapping": "vertical_mixing:timestep",
"ptm_level": 3,
"title": "Vertical Mixing Timestep",
"type": "number",
"units": "seconds"
},
"wind_drift_factor": {
"default": 0.02,
"description": "Elements at surface are moved with this fraction of the wind vector, in addition to currents and Stokes drift. Multiply by 100 to get the percent windage.",
"maximum": 0.1,
"minimum": 0,
"od_mapping": "seed:wind_drift_factor",
"ptm_level": 2,
"title": "Wind Drift Factor",
"type": "number",
"units": "1"
},
"vertical_mixing": {
"default": true,
"description": "Activate vertical mixing scheme. Vertical mixing includes movement due to buoyancy and turbulent mixing.",
"od_mapping": "drift:vertical_mixing",
"ptm_level": 2,
"title": "Vertical Mixing",
"type": "boolean"
},
"vertical_mixing_at_surface": {
"default": true,
"description": "If vertical mixing is activated, surface elements (z=0) can only be mixed (downwards) if this setting it True.",
"od_mapping": "drift:vertical_mixing_at_surface",
"ptm_level": 2,
"title": "Vertical Mixing At Surface",
"type": "boolean"
},
"vertical_advection_at_surface": {
"default": false,
"description": "If vertical advection is activated, surface elements (z=0) can only be advected (downwards) if this setting it True.",
"od_mapping": "drift:vertical_advection_at_surface",
"ptm_level": 2,
"title": "Vertical Advection At Surface",
"type": "boolean"
}
},
"title": "OceanDriftModelConfig",
"type": "object"
}
LarvalFishModelConfig¶
schema = ptm.LarvalFishModelConfig.model_json_schema()
print(json.dumps(schema, indent=2))
{
"$defs": {
"CoastlineActionEnum": {
"description": "Enum for coastline actions used in OpenDrift.",
"enum": [
"none",
"stranding",
"previous"
],
"title": "CoastlineActionEnum",
"type": "string"
},
"DiffusivityModelEnum": {
"description": "Enum for diffusivity models used in OpenDrift.",
"enum": [
"environment",
"stepfunction",
"windspeed_Sundby1983",
"windspeed_Large1994",
"gls_tke",
"constant"
],
"title": "DiffusivityModelEnum",
"type": "string"
},
"DriftModelEnum": {
"description": "Enum for drift models used in OpenDrift.",
"enum": [
"OceanDrift",
"LarvalFish",
"Phytoplankton",
"OpenOil",
"Leeway"
],
"title": "DriftModelEnum",
"type": "string"
},
"HatchingMethodEnum": {
"description": "Enum for egg hatching methods in larval fish models.",
"enum": [
"temperature",
"fixed_time"
],
"title": "HatchingMethodEnum",
"type": "string"
},
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
},
"RadiusTypeEnum": {
"description": "Enum for radius types used in OpenDrift.",
"enum": [
"gaussian",
"uniform"
],
"title": "RadiusTypeEnum",
"type": "string"
},
"SeafloorActionEnum": {
"description": "Enum for seafloor actions used in OpenDrift.",
"enum": [
"none",
"lift_to_seafloor",
"deactivate",
"previous"
],
"title": "SeafloorActionEnum",
"type": "string"
},
"VerticalBehaviorModeEnum": {
"description": "Enum for vertical behavior modes in biological models.",
"enum": [
"none",
"depth",
"dvm"
],
"title": "VerticalBehaviorModeEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Larval fish model configuration for OpenDrift.",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": true,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"od_mapping": "environment:constant:horizontal_diffusivity",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": false,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"od_mapping": "drift:stokes_drift",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"od_mapping": "seed:z",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"od_mapping": "seed:number",
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
},
"drift_model": {
"$ref": "#/$defs/DriftModelEnum",
"default": "LarvalFish"
},
"save_interpolator": {
"default": false,
"description": "Whether to save the interpolator.",
"title": "Save Interpolator",
"type": "boolean"
},
"interpolator_filename": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filename to save interpolator to or read interpolator from. Exclude suffix (which should be .pickle).",
"ptm_level": 3,
"title": "Interpolator Filename"
},
"export_variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "List of variables to export. Options available with `m.all_export_variables` for a given `drift_model`. ['lon', 'lat', 'ID', 'status', 'z'] will always be exported. Default of None means all possible variables are exported.",
"ptm_level": 3,
"title": "Export Variables"
},
"plots": {
"anyOf": [
{
"additionalProperties": {
"additionalProperties": true,
"type": "object"
},
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dictionary of plots to generate using OpenDrift.",
"ptm_level": 1,
"title": "Plots"
},
"radius": {
"default": 1000.0,
"description": "Radius around each lon-lat pair, within which particles will be seeded according to `radius_type`.",
"maximum": 1000000,
"minimum": 0.0,
"ptm_level": 2,
"title": "Radius",
"type": "number",
"units": "m"
},
"radius_type": {
"$ref": "#/$defs/RadiusTypeEnum",
"default": "gaussian",
"description": "Distribution for seeding particles around location. Options: 'gaussian' or 'uniform'.",
"ptm_level": 3
},
"max_speed": {
"default": 20.0,
"description": "Typical maximum speed of elements, used to estimate reader buffer size",
"exclusiveMinimum": 0,
"od_mapping": "drift:max_speed",
"ptm_level": 1,
"title": "Maximum speed",
"type": "number",
"units": "m/s"
},
"use_auto_landmask": {
"default": false,
"description": "If True, use a global-scale land mask from https://www.generic-mapping-tools.org/remote-datasets/earth-mask.html. Dataset scale selected is `auto`. If False, use the land mask from the ocean model.",
"od_mapping": "general:use_auto_landmask",
"ptm_level": 3,
"title": "Use Auto Landmask",
"type": "boolean"
},
"coastline_action": {
"$ref": "#/$defs/CoastlineActionEnum",
"default": "stranding",
"description": "This controls particle behavior at the coastline. Use `previous` for a particle to move back to its previous location if it hits land. Use `stranding` to have a particle stick (that is, become deactivated) where it interacts with land. With None, objects may also move over land.",
"od_mapping": "general:coastline_action",
"ptm_level": 2,
"title": "Coastline Action"
},
"current_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to current components at each time step",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:current_uncertainty",
"ptm_level": 2,
"title": "Current Uncertainty",
"type": "number",
"units": "m/s"
},
"wind_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to wind components at each time step.",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:wind_uncertainty",
"ptm_level": 2,
"title": "Wind Uncertainty",
"type": "number",
"units": "m/s"
},
"seed_seafloor": {
"default": false,
"description": "Elements are seeded at seafloor, and seeding depth (z) is neglected and must be None.",
"od_mapping": "seed:seafloor",
"ptm_level": 2,
"title": "Seed Seafloor",
"type": "boolean"
},
"diffusivitymodel": {
"$ref": "#/$defs/DiffusivityModelEnum",
"default": "windspeed_Large1994",
"description": "Algorithm/source used for profile of vertical diffusivity. Environment means that diffusivity is acquired from readers or environment constants/fallback. Parameterizations based on wind speed are also available.",
"od_mapping": "vertical_mixing:diffusivitymodel",
"ptm_level": 3,
"title": "Diffusivity model",
"units": "seconds"
},
"mixed_layer_depth": {
"default": 20,
"description": "mixed_layer_depth controls how deep the vertical diffusivity profile reaches. This sets the fallback value for ocean_mixed_layer_thickness if not available from any reader.",
"minimum": 0.0,
"od_mapping": "environment:constant:ocean_mixed_layer_thickness",
"ptm_level": 3,
"title": "Mixed Layer Depth",
"type": "number",
"units": "m"
},
"seafloor_action": {
"$ref": "#/$defs/SeafloorActionEnum",
"default": "lift_to_seafloor",
"description": "This controls particle behavior at the seafloor. Use `deactivate` to stick particles to the seafloor at the point of interaction. Use `lift_to_seafloor` to elevate particles up to seabed if below. User `previous` to move elements back to previous position. Use None to ignore seafloor.",
"od_mapping": "general:seafloor_action",
"ptm_level": 2,
"title": "Seafloor Action"
},
"wind_drift": {
"default": true,
"description": "If on, elements at surface are moved with a fraction, the wind draft factor, of the wind speed from the surface down to the wind drift depth.",
"ptm_level": 1,
"title": "Wind Drift",
"type": "boolean"
},
"wind_drift_depth": {
"default": 0.1,
"description": "The direct wind drift (windage) is linearly decreasing from the surface value (wind_drift_factor) until 0 at this depth.",
"maximum": 1,
"minimum": 0,
"od_mapping": "drift:wind_drift_depth",
"ptm_level": 3,
"title": "Wind Drift Depth",
"type": "number",
"units": "meters"
},
"vertical_mixing_timestep": {
"default": 60,
"description": "Time step used for inner (fast) loop of the vertical mixing model. Set this smaller to increase frequency of vertical mixing calculation; number of loops is calculated as int(self.time_step/vertical_mixing_timestep) so vertical_mixing_timestep must be smaller than time_step.",
"maximum": 3600,
"minimum": 0.1,
"od_mapping": "vertical_mixing:timestep",
"ptm_level": 3,
"title": "Vertical Mixing Timestep",
"type": "number",
"units": "seconds"
},
"wind_drift_factor": {
"default": 0.0,
"description": "Elements at surface are moved with this fraction of the wind vector, in addition to currents and Stokes drift. Multiply by 100 to get the percent windage.",
"maximum": 0.1,
"minimum": 0,
"od_mapping": "seed:wind_drift_factor",
"ptm_level": 2,
"title": "Wind Drift Factor",
"type": "number",
"units": "1"
},
"vertical_mixing": {
"default": true,
"description": "Activate vertical mixing scheme. Vertical mixing includes movement due to buoyancy and turbulent mixing.",
"od_mapping": "drift:vertical_mixing",
"ptm_level": 2,
"title": "Vertical Mixing",
"type": "boolean"
},
"vertical_mixing_at_surface": {
"default": true,
"description": "If vertical mixing is activated, surface elements (z=0) can only be mixed (downwards) if this setting it True.",
"od_mapping": "drift:vertical_mixing_at_surface",
"ptm_level": 2,
"title": "Vertical Mixing At Surface",
"type": "boolean"
},
"vertical_advection_at_surface": {
"default": false,
"description": "If vertical advection is activated, surface elements (z=0) can only be advected (downwards) if this setting it True.",
"od_mapping": "drift:vertical_advection_at_surface",
"ptm_level": 2,
"title": "Vertical Advection At Surface",
"type": "boolean"
},
"diameter": {
"default": 0.0014,
"description": "Seeding value of diameter. The diameter gives the egg diameter so must be used with `hatched=0`.",
"exclusiveMinimum": 0,
"od_mapping": "seed:diameter",
"ptm_level": 2,
"title": "Diameter",
"type": "number",
"units": "m"
},
"neutral_buoyancy_salinity": {
"default": 31.25,
"description": "Seeding value of neutral_buoyancy_salinity. This is a property of the egg so must be used with `hatched=0`.",
"exclusiveMinimum": 0,
"od_mapping": "seed:neutral_buoyancy_salinity",
"ptm_level": 2,
"title": "Neutral Buoyancy Salinity",
"type": "number",
"units": "PSU"
},
"stage_fraction": {
"default": 0.0,
"description": "Seeding value of stage_fraction. stage_fraction tracks percentage of development time completed, from 0 to 1, where a value of 1 means the egg has hatched. If `hatched==1` then `stage_fraction` is ignored in `OpenDrift`.",
"maximum": 1,
"minimum": 0,
"od_mapping": "seed:stage_fraction",
"ptm_level": 2,
"title": "Stage Fraction",
"type": "number",
"units": ""
},
"hatched": {
"default": 0,
"description": "Seeding value of hatched. 0 for eggs, 1 for larvae.",
"maximum": 1,
"minimum": 0,
"od_mapping": "seed:hatched",
"ptm_level": 2,
"title": "Hatched",
"type": "integer",
"units": ""
},
"length": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Seeding value of length. This is not currently used.",
"od_mapping": "seed:length",
"ptm_level": 2,
"title": "Length",
"units": "mm"
},
"weight": {
"default": 0.08,
"description": "Seeding value of weight. This is the starting weight for larval fish, whenever they reach that stage.",
"exclusiveMinimum": 0,
"od_mapping": "seed:weight",
"ptm_level": 2,
"title": "Weight",
"type": "number",
"units": "mg"
},
"vertical_behavior_mode": {
"$ref": "#/$defs/VerticalBehaviorModeEnum",
"default": "dvm",
"description": "Vertical behavior mode. none: passive. depth: maintain preferred depth band. dvm: diel vertical migration.",
"od_mapping": "biology:vertical_behavior_mode",
"ptm_level": 2,
"title": "Vertical Behavior Mode"
},
"w_active": {
"default": 0.003,
"description": "Maximum active vertical positioning speed (swimming for larvae).",
"maximum": 1.0,
"minimum": 0.0,
"od_mapping": "biology:w_active",
"ptm_level": 2,
"title": "Vertical Speed",
"type": "number",
"units": "m/s"
},
"z_pref": {
"default": -10.0,
"description": "Preferred depth for depth mode (negative down from surface). Used when vertical_behavior_mode is 'depth'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_pref",
"ptm_level": 2,
"title": "Preferred Depth",
"type": "number",
"units": "m"
},
"z_day": {
"default": -25.0,
"description": "Target depth during daytime for DVM mode (negative down from surface). Used when vertical_behavior_mode is 'dvm'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_day",
"ptm_level": 2,
"title": "Day Depth",
"type": "number",
"units": "m"
},
"z_night": {
"default": -5.0,
"description": "Target depth during nighttime for DVM mode (negative down from surface). Used when vertical_behavior_mode is 'dvm'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_night",
"ptm_level": 2,
"title": "Night Depth",
"type": "number",
"units": "m"
},
"hatching_method": {
"$ref": "#/$defs/HatchingMethodEnum",
"default": "fixed_time",
"description": "Egg hatching method. temperature: use ambient temperature (Ellertsen et al. 1988). fixed_time: hatch after fixed duration.",
"od_mapping": "egg:hatching_method",
"ptm_level": 2,
"title": "Hatching Method"
},
"hatch_time_days": {
"default": 2.0,
"description": "Fixed time to hatching when hatching_method is fixed_time.",
"maximum": 416,
"minimum": 0.004,
"od_mapping": "egg:hatch_time_days",
"ptm_level": 2,
"title": "Hatch Time",
"type": "number",
"units": "days"
},
"dz_min": {
"default": 1.0,
"description": "Minimum half-width for depth bands (internal parameter).",
"maximum": 100,
"minimum": 0.1,
"od_mapping": "biology:dz_min",
"ptm_level": 3,
"title": "Min Band Half-Width",
"type": "number",
"units": "m"
},
"dz_rel": {
"default": 0.1,
"description": "Relative depth band expansion factor (internal parameter).",
"maximum": 1.0,
"minimum": 0.0,
"od_mapping": "biology:dz_rel",
"ptm_level": 3,
"title": "Relative Band Factor",
"type": "number",
"units": "fraction"
},
"dz_max": {
"default": 15.0,
"description": "Maximum half-width for depth bands (internal parameter).",
"maximum": 1000,
"minimum": 0.1,
"od_mapping": "biology:dz_max",
"ptm_level": 3,
"title": "Max Band Half-Width",
"type": "number",
"units": "m"
}
},
"title": "LarvalFishModelConfig",
"type": "object"
}
LeewayModelConfig¶
schema = ptm.LeewayModelConfig.model_json_schema()
print(json.dumps(schema, indent=2))
{
"$defs": {
"CoastlineActionEnum": {
"description": "Enum for coastline actions used in OpenDrift.",
"enum": [
"none",
"stranding",
"previous"
],
"title": "CoastlineActionEnum",
"type": "string"
},
"DriftModelEnum": {
"description": "Enum for drift models used in OpenDrift.",
"enum": [
"OceanDrift",
"LarvalFish",
"Phytoplankton",
"OpenOil",
"Leeway"
],
"title": "DriftModelEnum",
"type": "string"
},
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"ObjectTypeEnum": {
"description": "Enum for object types used in OpenDrift.\n\nFrom https://github.com/OpenDrift/opendrift/blob/master/opendrift/models/OBJECTPROP.DAT",
"enum": [
"Person-in-water (PIW), unknown state (mean values)",
">PIW, vertical PFD type III conscious",
">PIW, sitting, PFD type I or II",
">PIW, survival suit (face up)",
">PIW, scuba suit (face up)",
">PIW, deceased (face down)",
"Life raft, deep ballast (DB) system, general, unknown capacity and loading (mean values)",
">4-14 person capacity, deep ballast system, canopy (average)",
">>4-14 person capacity, deep ballast system, no drogue",
">>>4-14 person capacity, deep ballast system, canopy, no drogue, light loading",
">>>4-14 person capacity, deep ballast system, no drogue, heavy loading",
">>4-14 person capacity, deep ballast system, canopy, with drogue (average)",
">>>4-14 person capacity, deep ballast system, canopy, with drogue, light loading",
">>>4-14 person capacity, deep ballast system, canopy, with drogue, heavy loading",
">15-50 person capacity, deep ballast system, canopy, general (mean values)",
">>15-50 person capacity, deep ballast system, canopy, no drogue, light loading",
">>15-50 person capacity, deep ballast system, canopy, with drogue, heavy loading",
"Deep ballast system, general (mean values), capsized",
"Deep ballast system, general (mean values), swamped",
"Life-raft, shallow ballast (SB) system AND canopy, general (mean values)",
">Life-raft, shallow ballast system, canopy, no drogue",
">Life-raft, shallow ballast system AND canopy, with drogue",
"Life-raft, shallow ballast system AND canopy, capsized",
"Life Raft - Shallow ballast, canopy, Navy Sub Escape (SEIE) 1-man raft, NO drogue",
"Life Raft - Shallow ballast, canopy, Navy Sub Escape (SEIE) 1-man raft, with drogue",
"Life-raft, no ballast (NB) system, general (mean values)",
">Life-raft, no ballast system, no canopy, no drogue",
">Life-raft, no ballast system, no canopy, with drogue",
">Life-raft, no ballast system, with canopy, no drogue",
">Life-raft, no ballast system, with canopy, with drogue",
"Survival Craft - USCG Sea Rescue Kit - 3 ballasted life rafts and 300 meter of line",
"Life-raft, 4-6 person capacity, no ballast, with canopy, no drogue",
"Evacuation slide with life-raft, 46 person capacity",
"Survival Craft - SOLAS Hard Shell Life Capsule, 22 man",
"Survival Craft - Ovatek Hard Shell Life Raft, 4 and 7-man, lightly loaded, no drogue (average)",
">Survival Craft - Ovatek Hard Shell Life Raft, 4 man, lightly loaded, no drogue",
">Survival Craft - Ovatek Hard Shell Life Raft, 7 man, lightly loaded, no drogue",
"Survival Craft - Ovatek Hard Shell Life Raft, 4 and 7-man, fully loaded, drogued (average)",
">Survival Craft - Ovatek Hard Shell Life Raft, 4 man, fully loaded, drogued",
">Survival Craft - Ovatek Hard Shell Life Raft, 7 man, fully loaded, drogued",
"Sea Kayak with person on aft deck",
"Surf board with person",
"Windsurfer with mast and sail in water",
"Skiff - modified-v, cathedral-hull, runabout outboard powerboat",
"Skiff, V-hull",
"Skiffs, swamped and capsized",
"Skiff - v-hull bow to stern (aluminum, Norway)",
"Sport boat, no canvas (*1), modified V-hull",
"Sport fisher, center console (*2), open cockpit",
"Fishing vessel, general (mean values)",
"Fishing vessel, Hawaiian Sampan (*3)",
">Fishing vessel, Japanese side-stern trawler",
">Fishing vessel, Japanese Longliner (*3)",
">Fishing vessel, Korean fishing vessel (*4)",
">Fishing vessel, Gill-netter with rear reel (*3)",
"Coastal freighter. (*5)",
"Sailboat Mono-hull (Average)",
">Sailboat Mono-hull (Dismasted, Average)",
">>Sailboat Mono-hull (Dismasted - rudder amidships)",
">>Sailboat Mono-hull (Dismasted - rudder missing)",
">Sailboat Mono-hull (Bare-masted, Average)",
">>Sailboat Mono-hull (Bare-masted, rudder amidships)",
">>Sailboat Mono-hull (Bare-masted, rudder hove-to)",
"Sailboat Mono-hull, fin keel, shallow draft (was SAILBOAT-2)",
"Sunfish sailing dingy - Bare-masted, rudder missing",
"Fishing vessel debris",
"Self-locating datum marker buoy - no windage",
"Navy Submarine EPIRB (SEPIRB)",
"Bait/wharf box, holds a cubic metre of ice, mean values (*6)",
"Bait/wharf box, holds a cubic metre of ice, lightly loaded",
">Bait/wharf box, holds a cubic metre of ice, full loaded",
"55-gallon (220 l) Oil Drum",
"Scaled down (1:3) 40-ft Container (70% submerged)",
"20-ft Container (80% submerged)",
"WWII L-MK2 mine",
"Immigration vessel, Cuban refugee-raft, no sail (*7)",
"Immigration vessel, Cuban refugee-raft, with sail (*7)",
"Sewage floatables, tampon applicator",
"Medical waste (mean values)",
">Medical waste, vials",
">>Medical waste, vials, large",
">>Medical waste, vials, small",
">Medical waste, syringes",
">>Medical waste, syringes, large",
">>Medical waste, syringes, small"
],
"title": "ObjectTypeEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
},
"RadiusTypeEnum": {
"description": "Enum for radius types used in OpenDrift.",
"enum": [
"gaussian",
"uniform"
],
"title": "RadiusTypeEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Leeway model configuration for OpenDrift.",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": false,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"od_mapping": "environment:constant:horizontal_diffusivity",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": false,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"od_mapping": "drift:stokes_drift",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"od_mapping": "seed:z",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"od_mapping": "seed:number",
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
},
"drift_model": {
"$ref": "#/$defs/DriftModelEnum",
"default": "Leeway"
},
"save_interpolator": {
"default": false,
"description": "Whether to save the interpolator.",
"title": "Save Interpolator",
"type": "boolean"
},
"interpolator_filename": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filename to save interpolator to or read interpolator from. Exclude suffix (which should be .pickle).",
"ptm_level": 3,
"title": "Interpolator Filename"
},
"export_variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "List of variables to export. Options available with `m.all_export_variables` for a given `drift_model`. ['lon', 'lat', 'ID', 'status', 'z'] will always be exported. Default of None means all possible variables are exported.",
"ptm_level": 3,
"title": "Export Variables"
},
"plots": {
"anyOf": [
{
"additionalProperties": {
"additionalProperties": true,
"type": "object"
},
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dictionary of plots to generate using OpenDrift.",
"ptm_level": 1,
"title": "Plots"
},
"radius": {
"default": 1000.0,
"description": "Radius around each lon-lat pair, within which particles will be seeded according to `radius_type`.",
"maximum": 1000000,
"minimum": 0.0,
"ptm_level": 2,
"title": "Radius",
"type": "number",
"units": "m"
},
"radius_type": {
"$ref": "#/$defs/RadiusTypeEnum",
"default": "gaussian",
"description": "Distribution for seeding particles around location. Options: 'gaussian' or 'uniform'.",
"ptm_level": 3
},
"max_speed": {
"default": 20.0,
"description": "Typical maximum speed of elements, used to estimate reader buffer size",
"exclusiveMinimum": 0,
"od_mapping": "drift:max_speed",
"ptm_level": 1,
"title": "Maximum speed",
"type": "number",
"units": "m/s"
},
"use_auto_landmask": {
"default": false,
"description": "If True, use a global-scale land mask from https://www.generic-mapping-tools.org/remote-datasets/earth-mask.html. Dataset scale selected is `auto`. If False, use the land mask from the ocean model.",
"od_mapping": "general:use_auto_landmask",
"ptm_level": 3,
"title": "Use Auto Landmask",
"type": "boolean"
},
"coastline_action": {
"$ref": "#/$defs/CoastlineActionEnum",
"default": "stranding",
"description": "This controls particle behavior at the coastline. Use `previous` for a particle to move back to its previous location if it hits land. Use `stranding` to have a particle stick (that is, become deactivated) where it interacts with land. With None, objects may also move over land.",
"od_mapping": "general:coastline_action",
"ptm_level": 2,
"title": "Coastline Action"
},
"current_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to current components at each time step",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:current_uncertainty",
"ptm_level": 2,
"title": "Current Uncertainty",
"type": "number",
"units": "m/s"
},
"wind_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to wind components at each time step.",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:wind_uncertainty",
"ptm_level": 2,
"title": "Wind Uncertainty",
"type": "number",
"units": "m/s"
},
"object_type": {
"$ref": "#/$defs/ObjectTypeEnum",
"default": "Person-in-water (PIW), unknown state (mean values)",
"description": "Leeway object category for this simulation. List is originally from USCG technical reports. More details here: https://github.com/OpenDrift/opendrift/blob/master/opendrift/models/OBJECTPROP.DAT.",
"od_mapping": "seed:object_type",
"ptm_level": 1,
"title": "Object Type"
}
},
"title": "LeewayModelConfig",
"type": "object"
}
OpenOilModelConfig¶
schema = ptm.OpenOilModelConfig.model_json_schema()
print(json.dumps(schema, indent=2))
{
"$defs": {
"CoastlineActionEnum": {
"description": "Enum for coastline actions used in OpenDrift.",
"enum": [
"none",
"stranding",
"previous"
],
"title": "CoastlineActionEnum",
"type": "string"
},
"DiffusivityModelEnum": {
"description": "Enum for diffusivity models used in OpenDrift.",
"enum": [
"environment",
"stepfunction",
"windspeed_Sundby1983",
"windspeed_Large1994",
"gls_tke",
"constant"
],
"title": "DiffusivityModelEnum",
"type": "string"
},
"DriftModelEnum": {
"description": "Enum for drift models used in OpenDrift.",
"enum": [
"OceanDrift",
"LarvalFish",
"Phytoplankton",
"OpenOil",
"Leeway"
],
"title": "DriftModelEnum",
"type": "string"
},
"DropletSizeDistributionEnum": {
"description": "Enum for droplet size distribution types.",
"enum": [
"uniform",
"normal",
"lognormal"
],
"title": "DropletSizeDistributionEnum",
"type": "string"
},
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OilTypeEnum": {
"description": "Representation of oil types\n\nEnum name and value are an ADIOS database id.\nCustom title property contains the oil type name.",
"enum": [
"EC02713",
"AD02081",
"AD01621",
"EC00561",
"AD02425",
"AD00010",
"AD00020",
"AD00024",
"AD00025",
"AD00026",
"AD00028",
"AD00031",
"AD00039",
"AD00040",
"AD00041",
"AD00042",
"AD00044",
"AD00046",
"AD00047",
"AD00049",
"AD00050",
"AD00053",
"AD00055",
"AD00057",
"AD00058",
"AD00062",
"AD00063",
"AD00064",
"AD00065",
"AD00066",
"AD00070",
"AD00080",
"AD00084",
"AD00085",
"AD00092",
"AD00094",
"AD00095",
"AD00099",
"AD00100",
"AD00101",
"AD00102",
"AD00103",
"AD00105",
"AD00109",
"AD00110",
"AD00115",
"AD00121",
"AD00122",
"AD00124",
"AD00127",
"AD00132",
"AD00133",
"AD00138",
"AD00142",
"AD00143",
"AD00147",
"AD00159",
"AD00162",
"AD00163",
"AD00165",
"AD00171",
"AD00174",
"AD00179",
"AD00181",
"AD00185",
"AD00187",
"AD00189",
"AD00190",
"AD00196",
"AD00197",
"AD00204",
"AD00208",
"AD00213",
"AD00215",
"AD00224",
"AD00226",
"AD00227",
"AD00228",
"AD00254",
"AD00255",
"AD00257",
"AD00259",
"AD00262",
"AD00263",
"AD00269",
"AD00270",
"AD00279",
"AD00284",
"AD00289",
"AD00293",
"AD00294",
"AD00297",
"AD00301",
"AD00315",
"AD00316",
"AD00319",
"AD00322",
"AD00328",
"AD00329",
"AD00332",
"AD00333",
"AD00346",
"AD00354",
"AD00362",
"AD00365",
"AD00366",
"AD00376",
"AD00377",
"AD00379",
"AD00383",
"AD00384",
"AD00385",
"AD00386",
"AD00388",
"AD00389",
"AD00391",
"AD00393",
"AD00397",
"AD00403",
"AD00404",
"AD00412",
"AD00413",
"AD00414",
"AD00416",
"AD00431",
"AD00433",
"AD00448",
"AD00449",
"AD00486",
"AD00487",
"AD00506",
"AD00513",
"AD00516",
"AD00530",
"AD00531",
"AD00534",
"AD00535",
"AD00536",
"AD00537",
"AD00540",
"AD00541",
"AD00554",
"AD00563",
"AD00565",
"AD00573",
"AD00575",
"AD00577",
"AD00579",
"AD00580",
"AD00589",
"AD00590",
"AD00602",
"AD00610",
"AD00611",
"AD00615",
"AD00619",
"AD00622",
"AD00623",
"AD00624",
"AD00625",
"AD00630",
"AD00631",
"AD00633",
"AD00638",
"AD00644",
"AD00647",
"AD00648",
"AD00649",
"AD00650",
"AD00651",
"AD00652",
"AD00665",
"AD00667",
"AD00672",
"AD00674",
"AD00680",
"AD00682",
"AD00685",
"AD00686",
"AD00697",
"AD00716",
"AD00717",
"AD00718",
"AD00721",
"AD00725",
"AD00732",
"AD00734",
"AD00735",
"AD00736",
"AD00738",
"AD00741",
"AD00748",
"AD00750",
"AD00756",
"AD00757",
"AD00760",
"AD00778",
"AD00809",
"AD00810",
"AD00811",
"AD00812",
"AD00817",
"AD00818",
"AD00819",
"AD00820",
"AD00823",
"AD00824",
"AD00825",
"AD00827",
"AD00834",
"AD00836",
"AD00837",
"AD00838",
"AD00839",
"AD00846",
"AD00849",
"AD00852",
"AD00853",
"AD00855",
"AD00858",
"AD00859",
"AD00860",
"AD00861",
"AD00864",
"AD00868",
"AD00869",
"AD00875",
"AD00880",
"AD00882",
"AD00893",
"AD00894",
"AD00896",
"AD00897",
"AD00898",
"AD00899",
"AD00900",
"AD00913",
"AD00924",
"AD00932",
"AD00935",
"AD00937",
"AD00938",
"AD00940",
"AD00944",
"AD00949",
"AD00964",
"AD00971",
"AD00973",
"AD00980",
"AD00983",
"AD00995",
"AD00999",
"AD01006",
"AD01008",
"AD01009",
"AD01022",
"AD01025",
"AD01030",
"AD01031",
"AD01046",
"AD01050",
"AD01054",
"AD01058",
"AD01059",
"AD01062",
"AD01063",
"AD01064",
"AD01070",
"AD01071",
"AD01076",
"AD01077",
"AD01078",
"AD01079",
"AD01080",
"AD01081",
"AD01082",
"AD01083",
"AD01088",
"AD01094",
"AD01096",
"AD01097",
"AD01098",
"AD01100",
"AD01118",
"AD01119",
"AD01121",
"AD01133",
"AD01134",
"AD01135",
"AD01137",
"AD01139",
"AD01140",
"AD01141",
"AD01147",
"AD01155",
"AD01162",
"AD01171",
"AD01172",
"AD01175",
"AD01177",
"AD01180",
"AD01184",
"AD01186",
"AD01189",
"AD01191",
"AD01193",
"AD01194",
"AD01200",
"AD01215",
"AD01217",
"AD01219",
"AD01220",
"AD01221",
"AD01222",
"AD01223",
"AD01225",
"AD01232",
"AD01233",
"AD01235",
"AD01236",
"AD01258",
"AD01262",
"AD01264",
"AD01269",
"AD01301",
"AD01326",
"AD01345",
"AD01346",
"AD01357",
"AD01369",
"AD01378",
"AD01392",
"AD01401",
"AD01411",
"AD01412",
"AD01413",
"AD01419",
"AD01420",
"AD01421",
"AD01424",
"AD01425",
"AD01427",
"AD01428",
"AD01429",
"AD01430",
"AD01432",
"AD01433",
"AD01434",
"AD01435",
"AD01436",
"AD01437",
"AD01438",
"AD01439",
"AD01440",
"AD01441",
"AD01442",
"AD01443",
"AD01444",
"AD01445",
"AD01446",
"AD01447",
"AD01448",
"AD01449",
"AD01450",
"AD01451",
"AD01452",
"AD01453",
"AD01454",
"AD01455",
"AD01456",
"AD01457",
"AD01458",
"AD01460",
"AD01461",
"AD01462",
"AD01463",
"AD01464",
"AD01465",
"AD01466",
"AD01467",
"AD01468",
"AD01469",
"AD01470",
"AD01471",
"AD01472",
"AD01473",
"AD01474",
"AD01475",
"AD01476",
"AD01477",
"AD01478",
"AD01479",
"AD01480",
"AD01481",
"AD01482",
"AD01483",
"AD01484",
"AD01485",
"AD01486",
"AD01487",
"AD01488",
"AD01489",
"AD01490",
"AD01491",
"AD01492",
"AD01493",
"AD01494",
"AD01495",
"AD01496",
"AD01497",
"AD01498",
"AD01499",
"AD01500",
"AD01501",
"AD01507",
"AD01508",
"AD01510",
"AD01511",
"AD01512",
"AD01513",
"AD01514",
"AD01515",
"AD01517",
"AD01519",
"AD01520",
"AD01521",
"AD01522",
"AD01524",
"AD01525",
"AD01528",
"AD01529",
"AD01530",
"AD01533",
"AD01535",
"AD01536",
"AD01537",
"AD01552",
"AD01553",
"AD01554",
"AD01556",
"AD01557",
"AD01561",
"AD01562",
"AD01567",
"AD01577",
"AD01579",
"AD01581",
"AD01585",
"AD01612",
"AD01614",
"AD01622",
"AD01627",
"AD01634",
"AD01652",
"AD01654",
"AD01676",
"AD01705",
"AD01706",
"AD01707",
"AD01726",
"AD01732",
"AD01739",
"AD01758",
"AD01765",
"AD01774",
"AD01775",
"AD01776",
"AD01777",
"AD01778",
"AD01779",
"AD01786",
"AD01800",
"AD01804",
"AD01805",
"AD01806",
"AD01809",
"AD01811",
"AD01812",
"AD01813",
"AD01814",
"AD01815",
"AD01816",
"AD01817",
"AD01818",
"AD01819",
"AD01820",
"AD01822",
"AD01823",
"AD01824",
"AD01826",
"AD01827",
"AD01830",
"AD01834",
"AD01850",
"AD01851",
"AD01853",
"AD01854",
"AD01855",
"AD01856",
"AD01857",
"AD01858",
"AD01859",
"AD01860",
"AD01861",
"AD01862",
"AD01863",
"AD01864",
"AD01865",
"AD01866",
"AD01868",
"AD01869",
"AD01870",
"AD01872",
"AD01873",
"AD01874",
"AD01876",
"AD01877",
"AD01882",
"AD01884",
"AD01885",
"AD01887",
"AD01888",
"AD01889",
"AD01891",
"AD01892",
"AD01893",
"AD01894",
"AD01895",
"AD01896",
"AD01897",
"AD01898",
"AD01899",
"AD01900",
"AD01904",
"AD01906",
"AD01907",
"AD01911",
"AD01912",
"AD01913",
"AD01916",
"AD01922",
"AD01924",
"AD01925",
"AD01927",
"AD01929",
"AD01930",
"AD01938",
"AD01939",
"AD01944",
"AD01945",
"AD01946",
"AD01947",
"AD01950",
"AD01970",
"AD01971",
"AD01972",
"AD01973",
"AD01978",
"AD01981",
"AD01983",
"AD01984",
"AD01985",
"AD01986",
"AD01987",
"AD01988",
"AD01989",
"AD01990",
"AD01991",
"AD01993",
"AD01994",
"AD01995",
"AD01998",
"AD01999",
"AD02000",
"AD02002",
"AD02003",
"AD02006",
"AD02007",
"AD02012",
"AD02014",
"AD02015",
"AD02018",
"AD02019",
"AD02020",
"AD02021",
"AD02022",
"AD02023",
"AD02024",
"AD02025",
"AD02026",
"AD02027",
"AD02028",
"AD02029",
"AD02030",
"AD02032",
"AD02033",
"AD02035",
"AD02037",
"AD02039",
"AD02040",
"AD02041",
"AD02042",
"AD02044",
"AD02045",
"AD02046",
"AD02047",
"AD02051",
"AD02052",
"AD02053",
"AD02054",
"AD02055",
"AD02056",
"AD02057",
"AD02058",
"AD02059",
"AD02060",
"AD02061",
"AD02063",
"AD02064",
"AD02065",
"AD02066",
"AD02067",
"AD02068",
"AD02069",
"AD02070",
"AD02072",
"AD02073",
"AD02074",
"AD02076",
"AD02077",
"AD02079",
"AD02080",
"AD02083",
"AD02084",
"AD02086",
"AD02087",
"AD02088",
"AD02089",
"AD02090",
"AD02093",
"AD02094",
"AD02098",
"AD02099",
"AD02100",
"AD02101",
"AD02102",
"AD02103",
"AD02104",
"AD02105",
"AD02107",
"AD02108",
"AD02109",
"AD02110",
"AD02111",
"AD02112",
"AD02113",
"AD02114",
"AD02115",
"AD02116",
"AD02117",
"AD02118",
"AD02119",
"AD02120",
"AD02121",
"AD02122",
"AD02123",
"AD02124",
"AD02125",
"AD02126",
"AD02127",
"AD02129",
"AD02130",
"AD02131",
"AD02136",
"AD02139",
"AD02144",
"AD02145",
"AD02146",
"AD02147",
"AD02148",
"AD02153",
"AD02156",
"AD02157",
"AD02158",
"AD02159",
"AD02160",
"AD02161",
"AD02162",
"AD02163",
"AD02164",
"AD02165",
"AD02166",
"AD02168",
"AD02169",
"AD02170",
"AD02171",
"AD02172",
"AD02174",
"AD02175",
"AD02176",
"AD02177",
"AD02178",
"AD02179",
"AD02180",
"AD02181",
"AD02182",
"AD02183",
"AD02184",
"AD02186",
"AD02187",
"AD02189",
"AD02192",
"AD02197",
"AD02198",
"AD02199",
"AD02200",
"AD02201",
"AD02202",
"AD02203",
"AD02204",
"AD02207",
"AD02209",
"AD02210",
"AD02211",
"AD02212",
"AD02213",
"AD02214",
"AD02215",
"AD02216",
"AD02217",
"AD02220",
"AD02221",
"AD02240",
"AD02241",
"AD02242",
"AD02243",
"AD02244",
"AD02245",
"AD02246",
"AD02247",
"AD02250",
"AD02251",
"AD02252",
"AD02253",
"AD02254",
"AD02255",
"AD02256",
"AD02257",
"AD02259",
"AD02260",
"AD02261",
"AD02263",
"AD02264",
"AD02266",
"AD02267",
"AD02273",
"AD02275",
"AD02276",
"AD02277",
"AD02278",
"AD02279",
"AD02280",
"AD02281",
"AD02282",
"AD02284",
"AD02286",
"AD02287",
"AD02289",
"AD02290",
"AD02293",
"AD02294",
"AD02297",
"AD02298",
"AD02299",
"AD02300",
"AD02301",
"AD02302",
"AD02304",
"AD02305",
"AD02306",
"AD02307",
"AD02308",
"AD02311",
"AD02312",
"AD02314",
"AD02315",
"AD02316",
"AD02317",
"AD02318",
"AD02319",
"AD02320",
"AD02322",
"AD02323",
"AD02325",
"AD02326",
"AD02327",
"AD02329",
"AD02330",
"AD02331",
"AD02332",
"AD02333",
"AD02335",
"AD02336",
"AD02337",
"AD02338",
"AD02339",
"AD02340",
"AD02341",
"AD02344",
"AD02345",
"AD02346",
"AD02347",
"AD02349",
"AD02351",
"AD02352",
"AD02353",
"AD02354",
"AD02356",
"AD02358",
"AD02359",
"AD02360",
"AD02362",
"AD02363",
"AD02364",
"AD02365",
"AD02366",
"AD02367",
"AD02368",
"AD02369",
"AD02370",
"AD02371",
"AD02373",
"AD02374",
"AD02376",
"AD02381",
"AD02382",
"AD02383",
"AD02384",
"AD02385",
"AD02386",
"AD02387",
"AD02388",
"AD02390",
"AD02391",
"AD02392",
"AD02394",
"AD02395",
"AD02396",
"AD02397",
"AD02398",
"AD02401",
"AD02402",
"AD02403",
"AD02408",
"AD02417",
"AD02426",
"AD02428",
"AD02430",
"AD02431",
"AD02433",
"AD02434",
"AD02435",
"AD02436",
"AD02437",
"AD02438",
"AD02439",
"AD02440",
"AD02441",
"AD02447",
"AD02448",
"AD02450",
"AD02452",
"AD02454",
"AD02455",
"AD02456",
"AD02458",
"AD02459",
"AD02460",
"AD02462",
"AD02463",
"AD02464",
"AD02466",
"AD02467",
"AD02470",
"AD02471",
"AD02472",
"AD02473",
"AD02474",
"AD02477",
"AD02478",
"AD02479",
"AD02480",
"AD02481",
"AD02482",
"AD02483",
"AD02538",
"AD02539",
"AD02540",
"AD02541",
"AD02542",
"AD02547",
"AD02548",
"AD02549",
"AD02550",
"AD02551",
"AD02552",
"AD02553",
"AD02554",
"AD02555",
"AD02556",
"AD02557",
"AD02558",
"AD02559",
"AD02560",
"AD02561",
"AD02562",
"AD02563",
"AD02564",
"AD02565",
"AD02566",
"AD02567",
"AD02569",
"AD02570",
"AD02572",
"AD02579",
"AD02580",
"AD02582",
"AD02583",
"AD02584",
"AD02585",
"AD02586",
"AD02587",
"AD02588",
"AD02589",
"AD02590",
"AD02591",
"AD02592",
"AD02596",
"AD02597",
"AD02598",
"AD02600",
"AD02602",
"AD02603",
"AD02604",
"AD02605",
"AD02606",
"AD02607",
"AD02608",
"AD02609",
"AD02610",
"AD02611",
"AD02612",
"AD02613",
"EC00506",
"EC00507",
"EC00511",
"EC00512",
"EC00515",
"EC00517",
"EC00519",
"EC00523",
"EC00527",
"EC00539",
"EC00540",
"EC00552",
"EC00567",
"EC00586",
"EC00593",
"EC00599",
"EC00601",
"EC00604",
"EC00616",
"EC00638",
"EC00643",
"EC00647",
"EC00648",
"EC00654",
"EC00658",
"EC00668",
"EC00670",
"EC00679",
"EC00690",
"EC00696",
"EC00698",
"EC00721",
"EC00734",
"EC00736",
"EC00738",
"EC01172",
"EC01346",
"EC01456",
"EC01459",
"EC01464",
"EC01465",
"EC01466",
"EC01467",
"EC01482",
"EC01483",
"EC01497",
"EC01499",
"EC01500",
"EC01822",
"EC01823",
"EC01950",
"EC01951",
"EC01952",
"EC01953",
"EC01955",
"EC01956",
"EC01957",
"EC01958",
"EC01969",
"EC02152",
"EC02234",
"EC02235",
"EC02427",
"EC02664",
"EC02681",
"EC02695",
"EC02709",
"EC02712",
"EC02932",
"EC03048",
"EC03126",
"EC03288",
"EC03629",
"EC04016",
"EC04026",
"EC04028",
"EC04029",
"EC04030",
"EX00001",
"EX00002",
"EX00003",
"EX00004",
"EX00005",
"EX00006",
"EX00007",
"EX00008",
"EX00009",
"EX00010",
"EX00011",
"EX00012",
"EX00013",
"EX00014",
"EX00015",
"EX00016",
"EX00017",
"EX00018",
"EX00019",
"EX00020",
"EX00021",
"EX00022",
"EX00023",
"EX00024",
"EX00025",
"EX00026",
"EX00027",
"EX00028",
"EX00029",
"EX00030",
"EX00031",
"EX00032",
"EX00033",
"EX00034",
"EX00035",
"EX00036",
"EX00037",
"EX00038",
"EX00039",
"EX00040",
"EX00041",
"EX00042",
"EX00043",
"EX00044",
"EX00045",
"EX00046",
"EX00047",
"EX00048",
"EX00049",
"EX00050",
"EX00051",
"EX00052",
"EX00053",
"EX00054",
"EX00055",
"EX00056",
"EX00057",
"EX00058",
"GN00001",
"GN00002",
"GN00003",
"GN00004",
"GN00005",
"GN00006",
"GN00007",
"LS00009",
"LS00010",
"NO00001",
"NO00002",
"NO00003",
"NO00004",
"NO00005",
"NO00006",
"NO00007",
"NO00008",
"NO00009",
"NO00010",
"NO00011",
"NO00012",
"NO00013",
"NO00014",
"NO00015",
"NO00016",
"NO00017",
"NO00018",
"NO00019",
"NO00020",
"NO00021",
"NO00022",
"NO00023",
"NO00024",
"NO00025",
"NO00026",
"NO00027",
"NO00028",
"NO00029",
"NO00030",
"NO00031",
"NO00032",
"NO00033",
"NO00034",
"NO00035",
"NO00036",
"NO00037",
"NO00038",
"NO00039",
"NO00040",
"NO00041",
"NO00042",
"NO00043",
"NO00044",
"NO00045",
"NO00046",
"NO00047",
"NO00048",
"NO00049",
"NO00050",
"NO00051",
"NO00052",
"NO00053",
"NO00054",
"NO00055",
"NO00056",
"NO00057",
"NO00058",
"NO00059",
"NO00060",
"NO00061",
"NO00062",
"NO00063",
"NO00064",
"NO00065",
"NO00066",
"NO00067",
"NO00068",
"NO00069",
"NO00070",
"NO00071",
"NO00072",
"NO00073",
"NO00074",
"NO00075",
"NO00076",
"NO00077",
"NO00078",
"NO00079",
"NO00080",
"NO00081",
"NO00082",
"NO00083",
"NO00084",
"NO00085",
"NO00086",
"NO00087",
"NO00088",
"NO00089",
"NO00090",
"NO00091",
"NO00092",
"NO00093",
"NO00094",
"NO00095",
"NO00096",
"NO00097",
"NO00098",
"NO00099",
"NO00100",
"NO00101",
"NO00102",
"NO00103",
"NO00104",
"NO00105",
"NO00106",
"NO00107",
"NO00108",
"NO00109",
"NO00110",
"NO00111",
"NO00112",
"NO00113",
"NO00114",
"NO00115",
"NO00116",
"NO00117",
"NO00118",
"NO00119",
"NO00120",
"NO00121",
"NO00122",
"NO00123",
"NO00124",
"NO00125",
"NO00126",
"NO00127",
"NO00128",
"NO00129",
"NO00130",
"NO00131",
"NO00132",
"NO00133",
"NO00134",
"NO00135",
"NO00136",
"NO00137",
"NO00138",
"NO00139",
"NO00140",
"NO00141",
"NO00142",
"NO00143",
"NO00144",
"NO00145",
"NO00146",
"NO00147",
"NO00148",
"NO00149",
"NO00150",
"NO00151",
"NO00152",
"NO00153",
"NO00154",
"NO00155",
"NO00156",
"NO00157",
"NO00158",
"NO00159",
"NO00160",
"NO00162",
"NO00163",
"NO00164",
"NO00165",
"NO00166",
"AD04000",
"AD04001",
"AD04002",
"AD04003",
"AD04006",
"AD04007",
"AD04008",
"AD04009",
"AD04010",
"AD04011",
"AD04012",
"AD04013"
],
"title": "OilTypeEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
},
"RadiusTypeEnum": {
"description": "Enum for radius types used in OpenDrift.",
"enum": [
"gaussian",
"uniform"
],
"title": "RadiusTypeEnum",
"type": "string"
},
"SeafloorActionEnum": {
"description": "Enum for seafloor actions used in OpenDrift.",
"enum": [
"none",
"lift_to_seafloor",
"deactivate",
"previous"
],
"title": "SeafloorActionEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "OpenOil model configuration for OpenDrift.",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": false,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"od_mapping": "environment:constant:horizontal_diffusivity",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": true,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"od_mapping": "drift:stokes_drift",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"od_mapping": "seed:z",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"od_mapping": "seed:number",
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
},
"drift_model": {
"$ref": "#/$defs/DriftModelEnum",
"default": "OpenOil"
},
"save_interpolator": {
"default": false,
"description": "Whether to save the interpolator.",
"title": "Save Interpolator",
"type": "boolean"
},
"interpolator_filename": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filename to save interpolator to or read interpolator from. Exclude suffix (which should be .pickle).",
"ptm_level": 3,
"title": "Interpolator Filename"
},
"export_variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "List of variables to export. Options available with `m.all_export_variables` for a given `drift_model`. ['lon', 'lat', 'ID', 'status', 'z'] will always be exported. Default of None means all possible variables are exported.",
"ptm_level": 3,
"title": "Export Variables"
},
"plots": {
"anyOf": [
{
"additionalProperties": {
"additionalProperties": true,
"type": "object"
},
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dictionary of plots to generate using OpenDrift.",
"ptm_level": 1,
"title": "Plots"
},
"radius": {
"default": 1000.0,
"description": "Radius around each lon-lat pair, within which particles will be seeded according to `radius_type`.",
"maximum": 1000000,
"minimum": 0.0,
"ptm_level": 2,
"title": "Radius",
"type": "number",
"units": "m"
},
"radius_type": {
"$ref": "#/$defs/RadiusTypeEnum",
"default": "gaussian",
"description": "Distribution for seeding particles around location. Options: 'gaussian' or 'uniform'.",
"ptm_level": 3
},
"max_speed": {
"default": 20.0,
"description": "Typical maximum speed of elements, used to estimate reader buffer size",
"exclusiveMinimum": 0,
"od_mapping": "drift:max_speed",
"ptm_level": 1,
"title": "Maximum speed",
"type": "number",
"units": "m/s"
},
"use_auto_landmask": {
"default": false,
"description": "If True, use a global-scale land mask from https://www.generic-mapping-tools.org/remote-datasets/earth-mask.html. Dataset scale selected is `auto`. If False, use the land mask from the ocean model.",
"od_mapping": "general:use_auto_landmask",
"ptm_level": 3,
"title": "Use Auto Landmask",
"type": "boolean"
},
"coastline_action": {
"$ref": "#/$defs/CoastlineActionEnum",
"default": "stranding",
"description": "This controls particle behavior at the coastline. Use `previous` for a particle to move back to its previous location if it hits land. Use `stranding` to have a particle stick (that is, become deactivated) where it interacts with land. With None, objects may also move over land.",
"od_mapping": "general:coastline_action",
"ptm_level": 2,
"title": "Coastline Action"
},
"current_uncertainty": {
"default": 0.0,
"description": "Add gaussian perturbation with this standard deviation to current components at each time step",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:current_uncertainty",
"ptm_level": 2,
"title": "Current Uncertainty",
"type": "number",
"units": "m/s"
},
"wind_uncertainty": {
"default": 0.0,
"description": "Add gaussian perturbation with this standard deviation to wind components at each time step.",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:wind_uncertainty",
"ptm_level": 2,
"title": "Wind Uncertainty",
"type": "number",
"units": "m/s"
},
"seed_seafloor": {
"default": false,
"description": "Elements are seeded at seafloor, and seeding depth (z) is neglected and must be None.",
"od_mapping": "seed:seafloor",
"ptm_level": 2,
"title": "Seed Seafloor",
"type": "boolean"
},
"diffusivitymodel": {
"$ref": "#/$defs/DiffusivityModelEnum",
"default": "windspeed_Large1994",
"description": "Algorithm/source used for profile of vertical diffusivity. Environment means that diffusivity is acquired from readers or environment constants/fallback. Parameterizations based on wind speed are also available.",
"od_mapping": "vertical_mixing:diffusivitymodel",
"ptm_level": 3,
"title": "Diffusivity model",
"units": "seconds"
},
"mixed_layer_depth": {
"default": 20,
"description": "mixed_layer_depth controls how deep the vertical diffusivity profile reaches. This sets the fallback value for ocean_mixed_layer_thickness if not available from any reader.",
"minimum": 0.0,
"od_mapping": "environment:constant:ocean_mixed_layer_thickness",
"ptm_level": 3,
"title": "Mixed Layer Depth",
"type": "number",
"units": "m"
},
"seafloor_action": {
"$ref": "#/$defs/SeafloorActionEnum",
"default": "lift_to_seafloor",
"description": "This controls particle behavior at the seafloor. Use `deactivate` to stick particles to the seafloor at the point of interaction. Use `lift_to_seafloor` to elevate particles up to seabed if below. User `previous` to move elements back to previous position. Use None to ignore seafloor.",
"od_mapping": "general:seafloor_action",
"ptm_level": 2,
"title": "Seafloor Action"
},
"wind_drift": {
"default": true,
"description": "If on, elements at surface are moved with a fraction, the wind draft factor, of the wind speed from the surface down to the wind drift depth.",
"ptm_level": 1,
"title": "Wind Drift",
"type": "boolean"
},
"wind_drift_depth": {
"default": 0.1,
"description": "The direct wind drift (windage) is linearly decreasing from the surface value (wind_drift_factor) until 0 at this depth.",
"maximum": 1,
"minimum": 0,
"od_mapping": "drift:wind_drift_depth",
"ptm_level": 3,
"title": "Wind Drift Depth",
"type": "number",
"units": "meters"
},
"vertical_mixing_timestep": {
"default": 60,
"description": "Time step used for inner (fast) loop of the vertical mixing model. Set this smaller to increase frequency of vertical mixing calculation; number of loops is calculated as int(self.time_step/vertical_mixing_timestep) so vertical_mixing_timestep must be smaller than time_step.",
"maximum": 3600,
"minimum": 0.1,
"od_mapping": "vertical_mixing:timestep",
"ptm_level": 3,
"title": "Vertical Mixing Timestep",
"type": "number",
"units": "seconds"
},
"wind_drift_factor": {
"default": 0.03,
"description": "Elements at surface are moved with this fraction of the wind vector, in addition to currents and Stokes drift. Multiply by 100 to get the percent windage.",
"maximum": 0.1,
"minimum": 0,
"od_mapping": "seed:wind_drift_factor",
"ptm_level": 2,
"title": "Wind Drift Factor",
"type": "number",
"units": "1"
},
"vertical_mixing": {
"default": true,
"description": "Activate vertical mixing scheme. Vertical mixing includes movement due to buoyancy and turbulent mixing.",
"od_mapping": "drift:vertical_mixing",
"ptm_level": 2,
"title": "Vertical Mixing",
"type": "boolean"
},
"vertical_mixing_at_surface": {
"default": true,
"description": "If vertical mixing is activated, surface elements (z=0) can only be mixed (downwards) if this setting it True.",
"od_mapping": "drift:vertical_mixing_at_surface",
"ptm_level": 2,
"title": "Vertical Mixing At Surface",
"type": "boolean"
},
"vertical_advection_at_surface": {
"default": false,
"description": "If vertical advection is activated, surface elements (z=0) can only be advected (downwards) if this setting it True.",
"od_mapping": "drift:vertical_advection_at_surface",
"ptm_level": 2,
"title": "Vertical Advection At Surface",
"type": "boolean"
},
"oil_type": {
"$ref": "#/$defs/OilTypeEnum",
"default": "AD04012",
"description": "Oil type to be used for the simulation, from the NOAA ADIOS database.",
"od_mapping": "seed:oil_type",
"oneOf": [
{
"const": "EC02713",
"title": "Alaska North Slope [2015]"
},
{
"const": "AD02081",
"title": "DIESEL FUEL OIL (ALASKA)"
},
{
"const": "AD01621",
"title": "BUNKER C FUEL OIL (ALASKA)"
},
{
"const": "EC00561",
"title": "Cook Inlet [2003]"
},
{
"const": "AD02425",
"title": "JET FUEL, TESORO"
},
{
"const": "AD00010",
"title": "ABU SAFAH, ARAMCO"
},
{
"const": "AD00020",
"title": "ALASKA NORTH SLOPE"
},
{
"const": "AD00024",
"title": "ALBERTA"
},
{
"const": "AD00025",
"title": "ALBERTA SWEET MIXED BLEND"
},
{
"const": "AD00026",
"title": "ALGERIAN BLEND"
},
{
"const": "AD00028",
"title": "ALGERIAN CONDENSATE, CITGO"
},
{
"const": "AD00031",
"title": "AMAULIGAK"
},
{
"const": "AD00039",
"title": "ARABIAN EXTRA LIGHT, PHILLIPS"
},
{
"const": "AD00040",
"title": "ARABIAN EXTRA LIGHT, STAR ENTERPRISE"
},
{
"const": "AD00041",
"title": "ARABIAN EXTRA LIGHT, ARAMCO"
},
{
"const": "AD00042",
"title": "ARABIAN HEAVY"
},
{
"const": "AD00044",
"title": "ARABIAN HEAVY, CITGO"
},
{
"const": "AD00046",
"title": "ARABIAN HEAVY, EXXON"
},
{
"const": "AD00047",
"title": "ARABIAN HEAVY, AMOCO"
},
{
"const": "AD00049",
"title": "ARABIAN HEAVY, STAR ENTERPRISE"
},
{
"const": "AD00050",
"title": "ARABIAN HEAVY, ARAMCO"
},
{
"const": "AD00053",
"title": "ARABIAN LIGHT, CITGO"
},
{
"const": "AD00055",
"title": "ARABIAN LIGHT, PHILLIPS"
},
{
"const": "AD00057",
"title": "ARABIAN LIGHT, STAR ENTERPRISE"
},
{
"const": "AD00058",
"title": "ARABIAN LIGHT, ARAMCO"
},
{
"const": "AD00062",
"title": "ARABIAN MEDIUM, EXXON"
},
{
"const": "AD00063",
"title": "ARABIAN MEDIUM, PHILLIPS"
},
{
"const": "AD00064",
"title": "ARABIAN MEDIUM, AMOCO"
},
{
"const": "AD00065",
"title": "ARABIAN MEDIUM, STAR ENTERPRISE"
},
{
"const": "AD00066",
"title": "ARABIAN MEDIUM, CHEVRON"
},
{
"const": "AD00070",
"title": "ARGYL"
},
{
"const": "AD00080",
"title": "ATKINSON"
},
{
"const": "AD00084",
"title": "AUTOMOTIVE GASOLINE, EXXON"
},
{
"const": "AD00085",
"title": "AVALON"
},
{
"const": "AD00092",
"title": "AVIATION GASOLINE 100LL, STAR ENTERPRISE"
},
{
"const": "AD00094",
"title": "AVIATION GASOLINE 80"
},
{
"const": "AD00095",
"title": "BACHAGUERO, CITGO"
},
{
"const": "AD00099",
"title": "BACHAQUERO 17, EXXON"
},
{
"const": "AD00100",
"title": "BACHEQUERO HEAVY"
},
{
"const": "AD00101",
"title": "BACHEQUERO MEDIUM"
},
{
"const": "AD00102",
"title": "BAHIA"
},
{
"const": "AD00103",
"title": "BAKR"
},
{
"const": "AD00105",
"title": "BANOCO ABU SAFAH, ARAMCO"
},
{
"const": "AD00109",
"title": "BASRAH"
},
{
"const": "AD00110",
"title": "BASRAH, EXXON"
},
{
"const": "AD00115",
"title": "BASS STRAIT"
},
{
"const": "AD00121",
"title": "BCF 13"
},
{
"const": "AD00122",
"title": "BCF 17"
},
{
"const": "AD00124",
"title": "BCF 22, CITGO"
},
{
"const": "AD00127",
"title": "BCF 17, AMOCO"
},
{
"const": "AD00132",
"title": "BELAYIM (MARINE)"
},
{
"const": "AD00133",
"title": "BELAYIM (LAND)"
},
{
"const": "AD00138",
"title": "BENT HORN A-02"
},
{
"const": "AD00142",
"title": "BERRI A-21, ARAMCO"
},
{
"const": "AD00143",
"title": "BERYL"
},
{
"const": "AD00147",
"title": "BFC 21.9, CITGO"
},
{
"const": "AD00159",
"title": "BONNY LIGHT, CITGO"
},
{
"const": "AD00162",
"title": "BONNY MEDIUM, CITGO"
},
{
"const": "AD00163",
"title": "BONNY MEDIUM, AMOCO"
},
{
"const": "AD00165",
"title": "BORHOLLA"
},
{
"const": "AD00171",
"title": "BOSCAN, AMOCO"
},
{
"const": "AD00174",
"title": "BOW RIVER BLENDED"
},
{
"const": "AD00179",
"title": "BRASS RIVER, CITGO"
},
{
"const": "AD00181",
"title": "BRASS RIVER, PHILLIPS"
},
{
"const": "AD00185",
"title": "BREGA, ARCO"
},
{
"const": "AD00187",
"title": "BRENT"
},
{
"const": "AD00189",
"title": "BRENT, CITGO"
},
{
"const": "AD00190",
"title": "BRENT, PHILLIPS"
},
{
"const": "AD00196",
"title": "BRENT MIX, EXXON"
},
{
"const": "AD00197",
"title": "BRENT SPAR"
},
{
"const": "AD00204",
"title": "BUCHAN"
},
{
"const": "AD00208",
"title": "BUNKER C FUEL OIL"
},
{
"const": "AD00213",
"title": "CABINDA, CITGO"
},
{
"const": "AD00215",
"title": "CABINDA, PHILLIPS"
},
{
"const": "AD00224",
"title": "CAMAR"
},
{
"const": "AD00226",
"title": "CANDON SEC, PHILLIPS"
},
{
"const": "AD00227",
"title": "CANO LIMON, CITGO"
},
{
"const": "AD00228",
"title": "CANO LIMON, PHILLIPS"
},
{
"const": "AD00254",
"title": "COBAN BLEND"
},
{
"const": "AD00255",
"title": "COBAN BLEND, PHILLIPS"
},
{
"const": "AD00257",
"title": "COHASSET"
},
{
"const": "AD00259",
"title": "COLD LAKE, EXXON"
},
{
"const": "AD00262",
"title": "COLD LAKE BLEND, ESSO"
},
{
"const": "AD00263",
"title": "COLD LAKE DILUENT, ESSO"
},
{
"const": "AD00269",
"title": "COOK INLET, DRIFT RIVER TERMINAL"
},
{
"const": "AD00270",
"title": "CORMORANT"
},
{
"const": "AD00279",
"title": "UNION, UNOCAL"
},
{
"const": "AD00284",
"title": "CYRUS, ITOPF"
},
{
"const": "AD00289",
"title": "DANMARK"
},
{
"const": "AD00293",
"title": "DF2 SUMMER (DIESEL), TESORO"
},
{
"const": "AD00294",
"title": "DF2 WINTER (DIESEL), TESORO"
},
{
"const": "AD00297",
"title": "DIESEL"
},
{
"const": "AD00301",
"title": "DJENO, PHILLIPS"
},
{
"const": "AD00315",
"title": "DUNLIN"
},
{
"const": "AD00316",
"title": "DURI, PHILLIPS"
},
{
"const": "AD00319",
"title": "EAST TEXAS"
},
{
"const": "AD00322",
"title": "EC 195-CONDENSATE, PHILLIPS"
},
{
"const": "AD00328",
"title": "EKOFISK"
},
{
"const": "AD00329",
"title": "EKOFISK, CITGO"
},
{
"const": "AD00332",
"title": "EKOFISK, EXXON"
},
{
"const": "AD00333",
"title": "EKOFISK, PHILLIPS"
},
{
"const": "AD00346",
"title": "ELECTRICAL INSULATING OIL (VIRGIN)"
},
{
"const": "AD00354",
"title": "EMPIRE ISLAND, AMOCO"
},
{
"const": "AD00362",
"title": "ESCALANTE, PHILLIPS"
},
{
"const": "AD00365",
"title": "ESCRAVOS, AMOCO"
},
{
"const": "AD00366",
"title": "ESCRAVOS, CHEVRON"
},
{
"const": "AD00376",
"title": "FAO, CITGO"
},
{
"const": "AD00377",
"title": "FCC HEAVY CYCLE OIL"
},
{
"const": "AD00379",
"title": "FEDERATED"
},
{
"const": "AD00383",
"title": "FLOTTA, CITGO"
},
{
"const": "AD00384",
"title": "FLOTTA"
},
{
"const": "AD00385",
"title": "FLOTTA, PHILLIPS"
},
{
"const": "AD00386",
"title": "FLOTTA MIX"
},
{
"const": "AD00388",
"title": "FORCADOS, CITGO"
},
{
"const": "AD00389",
"title": "FORCADOS, AMOCO"
},
{
"const": "AD00391",
"title": "FORKED ISLAND TERMINAL, AMOCO"
},
{
"const": "AD00393",
"title": "FORTIES"
},
{
"const": "AD00397",
"title": "FOSTERTON"
},
{
"const": "AD00403",
"title": "FUEL OIL NO.1 (AVJET A), STAR ENTERPRISE"
},
{
"const": "AD00404",
"title": "FUEL OIL NO.1 (DIESEL/HEATING FUEL), PETRO STAR"
},
{
"const": "AD00412",
"title": "FUEL OIL NO.1 (JET FUEL A)"
},
{
"const": "AD00413",
"title": "FUEL OIL NO.1 (JET FUEL A-1)"
},
{
"const": "AD00414",
"title": "FUEL OIL NO.1 (JET FUEL B)"
},
{
"const": "AD00416",
"title": "FUEL OIL NO.1 (KEROSENE) "
},
{
"const": "AD00431",
"title": "FUEL OIL NO.2 (DIESEL), STAR ENTERPRISE"
},
{
"const": "AD00433",
"title": "FUEL OIL NO.2 (HO/DIESEL), EXXON"
},
{
"const": "AD00448",
"title": "FURRIAL, CITGO"
},
{
"const": "AD00449",
"title": "FURRIAL/MESA 28, EXXON"
},
{
"const": "AD00486",
"title": "GIPPSLAND, EXXON"
},
{
"const": "AD00487",
"title": "GIPPSLAND MIX, ITOPF"
},
{
"const": "AD00506",
"title": "GUAFITA, CITGO"
},
{
"const": "AD00513",
"title": "GULF OF SUEZ, PHILLIPS"
},
{
"const": "AD00516",
"title": "GULLFAKS, EXXON"
},
{
"const": "AD00530",
"title": "HEAVY LAKE MIX"
},
{
"const": "AD00531",
"title": "HEAVY REFORMATE"
},
{
"const": "AD00534",
"title": "HI 317, PHILLIPS"
},
{
"const": "AD00535",
"title": "HI 330/349 CONDENSATE, PHILLIPS"
},
{
"const": "AD00536",
"title": "HI 561-GRAND CHENIER, PHILLIPS"
},
{
"const": "AD00537",
"title": "HI A-310-B/CONDENSATE, PHILLIPS"
},
{
"const": "AD00540",
"title": "HIGH ISLAND, AMOCO"
},
{
"const": "AD00541",
"title": "HIGH ISLAND BLOCK 154, PHILLIPS"
},
{
"const": "AD00554",
"title": "HUTTON"
},
{
"const": "AD00563",
"title": "INTERPROVINCIAL"
},
{
"const": "AD00565",
"title": "IPPL LIGHT SOUR BLEND"
},
{
"const": "AD00573",
"title": "ISSUNGNAK"
},
{
"const": "AD00575",
"title": "ISTHMUS, CITGO"
},
{
"const": "AD00577",
"title": "ISTHMUS, PHILLIPS"
},
{
"const": "AD00579",
"title": "ISTHMUS/MAYA BLEND"
},
{
"const": "AD00580",
"title": "ISTHMUS/REFORMA/CACTUS, API"
},
{
"const": "AD00589",
"title": "JOBO"
},
{
"const": "AD00590",
"title": "JOBO/MORICHAL, ITOPF"
},
{
"const": "AD00602",
"title": "KHAFJI"
},
{
"const": "AD00610",
"title": "KIRKUK"
},
{
"const": "AD00611",
"title": "KIRKUK, EXXON"
},
{
"const": "AD00615",
"title": "KOAKOAK 0-22"
},
{
"const": "AD00619",
"title": "KOLE MARINE, AMOCO"
},
{
"const": "AD00622",
"title": "KOPANOAR 2I-44"
},
{
"const": "AD00623",
"title": "KOPANOAR M-13"
},
{
"const": "AD00624",
"title": "KOPANOAR M-13A"
},
{
"const": "AD00625",
"title": "KUPARUK"
},
{
"const": "AD00630",
"title": "KUWAIT, ARCO"
},
{
"const": "AD00631",
"title": "KUWAIT CRUDE OIL (LITERATURE VALUES)"
},
{
"const": "AD00633",
"title": "KUWAIT LIGHT, PHILLIPS"
},
{
"const": "AD00638",
"title": "LA ROSA"
},
{
"const": "AD00644",
"title": "LAGO MEDIO"
},
{
"const": "AD00647",
"title": "LAGO TRECO, CITGO"
},
{
"const": "AD00648",
"title": "LAGOTRECO"
},
{
"const": "AD00649",
"title": "LAGUNA"
},
{
"const": "AD00650",
"title": "LAGUNA, CITGO"
},
{
"const": "AD00651",
"title": "LAGUNA 22, CITGO"
},
{
"const": "AD00652",
"title": "LAGUNA BLEND 24, CITGO"
},
{
"const": "AD00665",
"title": "LALANG"
},
{
"const": "AD00667",
"title": "LARG TRECO MEDIUM, CITGO"
},
{
"const": "AD00672",
"title": "LEDUC WOODBEND"
},
{
"const": "AD00674",
"title": "LEONA, CITGO"
},
{
"const": "AD00680",
"title": "LIGHT SOUR BLEND"
},
{
"const": "AD00682",
"title": "LIUHUA, AMOCO"
},
{
"const": "AD00685",
"title": "LOKELE, CITGO"
},
{
"const": "AD00686",
"title": "LOKELE, EXXON"
},
{
"const": "AD00697",
"title": "LUBRICATING OIL (AUTO ENGINE OIL, VIRGIN)"
},
{
"const": "AD00716",
"title": "MARALAGO 22, CITGO"
},
{
"const": "AD00717",
"title": "MARGHAM"
},
{
"const": "AD00718",
"title": "MARIB, PHILLIPS"
},
{
"const": "AD00721",
"title": "MARINE DIESEL FUEL OIL"
},
{
"const": "AD00725",
"title": "MARJAN/ZULUF, ARAMCO"
},
{
"const": "AD00732",
"title": "MAYA, CITGO"
},
{
"const": "AD00734",
"title": "MAYA, EXXON"
},
{
"const": "AD00735",
"title": "MAYA, PHILLIPS"
},
{
"const": "AD00736",
"title": "MAYA, AMOCO"
},
{
"const": "AD00738",
"title": "MAYOGIAK"
},
{
"const": "AD00741",
"title": "MCARTHUR RIVER"
},
{
"const": "AD00748",
"title": "MENEMOTA"
},
{
"const": "AD00750",
"title": "MENEMOTA, CITGO"
},
{
"const": "AD00756",
"title": "MESA 28, CITGO"
},
{
"const": "AD00757",
"title": "MESA 30, CITGO"
},
{
"const": "AD00760",
"title": "MIDDLE GROUND SHOAL"
},
{
"const": "AD00778",
"title": "MORICHAL"
},
{
"const": "AD00809",
"title": "NEKTORALIK K-59"
},
{
"const": "AD00810",
"title": "NEKTORALIK K-59A"
},
{
"const": "AD00811",
"title": "NERLERK"
},
{
"const": "AD00812",
"title": "NERLERK M-98B"
},
{
"const": "AD00817",
"title": "NIGERIAN EXP. B1"
},
{
"const": "AD00818",
"title": "NIGERIAN LGT G"
},
{
"const": "AD00819",
"title": "NIGERIAN LGT M"
},
{
"const": "AD00820",
"title": "NIGERIAN LIGHT"
},
{
"const": "AD00823",
"title": "NIGERIAN MEDIUM"
},
{
"const": "AD00824",
"title": "NIKISKI"
},
{
"const": "AD00825",
"title": "NINIAN"
},
{
"const": "AD00827",
"title": "NINIAN, CITGO"
},
{
"const": "AD00834",
"title": "NORTH EAST TEXAS"
},
{
"const": "AD00836",
"title": "NORTH SLOPE"
},
{
"const": "AD00837",
"title": "NORTH SLOPE, CITGO"
},
{
"const": "AD00838",
"title": "NORTH SLOPE, PHILLIPS"
},
{
"const": "AD00839",
"title": "NOWRUZ"
},
{
"const": "AD00846",
"title": "OGUENDJO, AMOCO"
},
{
"const": "AD00849",
"title": "OLMECA, CITGO"
},
{
"const": "AD00852",
"title": "OMAN"
},
{
"const": "AD00853",
"title": "OMAN, PHILLIPS"
},
{
"const": "AD00855",
"title": "OQUENDJO"
},
{
"const": "AD00858",
"title": "ORIENTE, CITGO"
},
{
"const": "AD00859",
"title": "OSEBERG"
},
{
"const": "AD00860",
"title": "OSEBERG, EXXON"
},
{
"const": "AD00861",
"title": "OSEBERG, PHILLIPS"
},
{
"const": "AD00864",
"title": "PALANCA"
},
{
"const": "AD00868",
"title": "PANUCO"
},
{
"const": "AD00869",
"title": "PANUKE"
},
{
"const": "AD00875",
"title": "PARENTIS"
},
{
"const": "AD00880",
"title": "PECAN ISLAND, AMOCO"
},
{
"const": "AD00882",
"title": "PEMBINA"
},
{
"const": "AD00893",
"title": "PILON"
},
{
"const": "AD00894",
"title": "PILON, CITGO"
},
{
"const": "AD00896",
"title": "PILON-ANACO WAX, CITGO"
},
{
"const": "AD00897",
"title": "PIPER"
},
{
"const": "AD00898",
"title": "PITAS POINT"
},
{
"const": "AD00899",
"title": "PL COMPOSITE, STAR ENTERPRISE"
},
{
"const": "AD00900",
"title": "PLATFORM B"
},
{
"const": "AD00913",
"title": "PREMIUM UNLEADED GASOLINE, STAR ENTERPRISE"
},
{
"const": "AD00924",
"title": "QUA IBOE, PHILLIPS"
},
{
"const": "AD00932",
"title": "RAGUSA"
},
{
"const": "AD00935",
"title": "RANGELAND-SOUTH LIGHT AND MEDIUM"
},
{
"const": "AD00937",
"title": "RAS LANUF"
},
{
"const": "AD00938",
"title": "RATNA"
},
{
"const": "AD00940",
"title": "REDWATER"
},
{
"const": "AD00944",
"title": "RESIDUAL FUEL 900, TESORO"
},
{
"const": "AD00949",
"title": "RIO ZULIA"
},
{
"const": "AD00964",
"title": "SAN JOACHIM"
},
{
"const": "AD00971",
"title": "SANTA CRUZ"
},
{
"const": "AD00973",
"title": "SANTA MARIA"
},
{
"const": "AD00980",
"title": "SARIR, ITOPF"
},
{
"const": "AD00983",
"title": "SCHOONEBEEK"
},
{
"const": "AD00995",
"title": "SHARJAH"
},
{
"const": "AD00999",
"title": "SHIP SHOAL 133, PHILLIPS"
},
{
"const": "AD01006",
"title": "SIRTICA"
},
{
"const": "AD01008",
"title": "SMI 147, PHILLIPS"
},
{
"const": "AD01009",
"title": "SMI 66, PHILLIPS"
},
{
"const": "AD01022",
"title": "SOUR BLEND"
},
{
"const": "AD01025",
"title": "SOUTH LOUISIANA"
},
{
"const": "AD01030",
"title": "SOUTH WEST TEXAS LIGHT"
},
{
"const": "AD01031",
"title": "SOYO"
},
{
"const": "AD01046",
"title": "SUEZ MIX"
},
{
"const": "AD01050",
"title": "SUNNILAND, EXXON"
},
{
"const": "AD01054",
"title": "SWEET BLEND"
},
{
"const": "AD01058",
"title": "TACHING"
},
{
"const": "AD01059",
"title": "TACHING"
},
{
"const": "AD01062",
"title": "TAKULA, API"
},
{
"const": "AD01063",
"title": "TAKULA, CITGO"
},
{
"const": "AD01064",
"title": "TAKULA, CHEVRON"
},
{
"const": "AD01070",
"title": "TARSIUT"
},
{
"const": "AD01071",
"title": "TARSIUT A-25"
},
{
"const": "AD01076",
"title": "TERRA NOVA"
},
{
"const": "AD01077",
"title": "TERRA NOVA K-08 DST #1"
},
{
"const": "AD01078",
"title": "TERRA NOVA K-08 DST #2"
},
{
"const": "AD01079",
"title": "TERRA NOVA K-08 DST #3"
},
{
"const": "AD01080",
"title": "TERRA NOVA K-08 DST #4"
},
{
"const": "AD01081",
"title": "TEXAS GULF COAST HEAVY"
},
{
"const": "AD01082",
"title": "TEXAS GULF COAST LIGHT"
},
{
"const": "AD01083",
"title": "TEXTRACT, STAR ENTERPRISE"
},
{
"const": "AD01088",
"title": "TIA JUANA"
},
{
"const": "AD01094",
"title": "TIA JUANA LIGHT, CITGO"
},
{
"const": "AD01096",
"title": "TIA JUANA MEDIUM"
},
{
"const": "AD01097",
"title": "TIA JUANA MEDIUM, CITGO"
},
{
"const": "AD01098",
"title": "TIA JUANA MEDIUM, ARCO"
},
{
"const": "AD01100",
"title": "TIA JUANA PESADO"
},
{
"const": "AD01118",
"title": "TRADING BAY (OFFSHORE COOK INLET)"
},
{
"const": "AD01119",
"title": "TRANSMOUNTAIN BLEND"
},
{
"const": "AD01121",
"title": "TRINIDAD"
},
{
"const": "AD01133",
"title": "ULA"
},
{
"const": "AD01134",
"title": "UMM SHAIF"
},
{
"const": "AD01135",
"title": "UMM SHARIF, PHILLIPS"
},
{
"const": "AD01137",
"title": "UNLEADED INTERM GASOLINE, STAR ENTERPRISE"
},
{
"const": "AD01139",
"title": "UPPER ZAKUM, PHILLIPS"
},
{
"const": "AD01140",
"title": "URAL"
},
{
"const": "AD01141",
"title": "UVILUK"
},
{
"const": "AD01147",
"title": "VENEZUELA MIX"
},
{
"const": "AD01155",
"title": "WAFRA EOCENE"
},
{
"const": "AD01162",
"title": "WC BLOCK 45 BEACH-CONDENSATE, PHILLIPS"
},
{
"const": "AD01171",
"title": "WEST GENERAL TEXAS"
},
{
"const": "AD01172",
"title": "WEST NEDERLAND"
},
{
"const": "AD01175",
"title": "WEST TEXAS ELLENBURGER"
},
{
"const": "AD01177",
"title": "WEST TEXAS LIGHT"
},
{
"const": "AD01180",
"title": "WEYBURN-MIDALE"
},
{
"const": "AD01184",
"title": "YANBU ARABIAN LIGHT, ARAMCO"
},
{
"const": "AD01186",
"title": "YOMBO, AMOCO"
},
{
"const": "AD01189",
"title": "ZAIRE, API"
},
{
"const": "AD01191",
"title": "ZAIRE, CHEVRON"
},
{
"const": "AD01193",
"title": "ZAKUA"
},
{
"const": "AD01194",
"title": "ZAKUM"
},
{
"const": "AD01200",
"title": "ZETA NORTH"
},
{
"const": "AD01215",
"title": "MARINE DIESEL F-76, MANCHESTER FUEL"
},
{
"const": "AD01217",
"title": "KERN COUNTY BLEND"
},
{
"const": "AD01219",
"title": "VENEZUELA RECON"
},
{
"const": "AD01220",
"title": "DAQIN"
},
{
"const": "AD01221",
"title": "SHIAN LI"
},
{
"const": "AD01222",
"title": "HUIZHOU"
},
{
"const": "AD01223",
"title": "WEST TEXAS INTERMEDIATE, OIL & GAS"
},
{
"const": "AD01225",
"title": "MAIN PASS 140, PENNZOIL"
},
{
"const": "AD01232",
"title": "JABIRU, BHP PETROLEUM"
},
{
"const": "AD01233",
"title": "JABIRU 1A, BHP PETROLEUM"
},
{
"const": "AD01235",
"title": "KUTUBU LIGHT, BHP PETROLEUM"
},
{
"const": "AD01236",
"title": "GIPPSLAND, BHP PETROLEUM"
},
{
"const": "AD01258",
"title": "UDANG, OIL & GAS"
},
{
"const": "AD01262",
"title": "DURI, OIL & GAS"
},
{
"const": "AD01264",
"title": "SOVIET EXPORT, OIL & GAS"
},
{
"const": "AD01269",
"title": "BARROW ISLAND, OIL & GAS"
},
{
"const": "AD01301",
"title": "BELAYIM, OIL & GAS"
},
{
"const": "AD01326",
"title": "SHARJAH, OIL & GAS"
},
{
"const": "AD01345",
"title": "LLOYDMINSTER, OIL & GAS"
},
{
"const": "AD01346",
"title": "ALASKA NORTH SLOPE, OIL & GAS"
},
{
"const": "AD01357",
"title": "STATJORD, OIL & GAS"
},
{
"const": "AD01369",
"title": "FLOTTA, OIL & GAS"
},
{
"const": "AD01378",
"title": "FORTIES, OIL & GAS"
},
{
"const": "AD01392",
"title": "ESCRAVOS, OIL & GAS"
},
{
"const": "AD01401",
"title": "BELIDA, OIL & GAS"
},
{
"const": "AD01411",
"title": "RABBI, COASTAL EAGLE POINT OIL"
},
{
"const": "AD01412",
"title": "SOLVENT NEUTRAL OIL 320, STAR ENTERPRISE"
},
{
"const": "AD01413",
"title": "ROSSIIELF, RUSSIAN JOINT STOCK CO"
},
{
"const": "AD01419",
"title": "KUTUBU, AMSA"
},
{
"const": "AD01420",
"title": "GRIFFIN, AMSA"
},
{
"const": "AD01421",
"title": "NSW CONDENSATE, AMSA"
},
{
"const": "AD01424",
"title": "KABINDA, GALLAGER MARINE"
},
{
"const": "AD01425",
"title": "NEMBA, GALLAGER MARINE"
},
{
"const": "AD01427",
"title": "FUEL OIL NO.2, AMOCO"
},
{
"const": "AD01428",
"title": "TEAK AND SAMAAN, AMOCO"
},
{
"const": "AD01429",
"title": "GALEOTA MIX, AMOCO"
},
{
"const": "AD01430",
"title": "POUI, AMOCO"
},
{
"const": "AD01432",
"title": "QATAR/DUKHAM, CHEVRON"
},
{
"const": "AD01433",
"title": "ALGERIAN CONDENSATE, SHELL OIL"
},
{
"const": "AD01434",
"title": "ARABIAN MEDIUM, SHELL OIL"
},
{
"const": "AD01435",
"title": "ARUN CONDENSATE, SHELL OIL"
},
{
"const": "AD01436",
"title": "BACHAQUERO, SHELL OIL"
},
{
"const": "AD01437",
"title": "BADAK, SHELL OIL"
},
{
"const": "AD01438",
"title": "BETA PRODUCTION, SHELL OIL"
},
{
"const": "AD01439",
"title": "BONITO P/L SOUR, SHELL OIL"
},
{
"const": "AD01440",
"title": "BONNY LIGHT, SHELL OIL"
},
{
"const": "AD01441",
"title": "BRASS RIVER, SHELL OIL"
},
{
"const": "AD01442",
"title": "CABINDA BLEND, SHELL OIL"
},
{
"const": "AD01443",
"title": "COGNAC-BLOCK 194, SHELL OIL"
},
{
"const": "AD01444",
"title": "DJENO, SHELL OIL"
},
{
"const": "AD01445",
"title": "ERAWAN CONDENSATE, SHELL OIL"
},
{
"const": "AD01446",
"title": "ESCRAVOS, SHELL OIL"
},
{
"const": "AD01447",
"title": "ETCHEGOIN, SHELL OIL"
},
{
"const": "AD01448",
"title": "FLOTTA, SHELL OIL"
},
{
"const": "AD01449",
"title": "FORCADOS, SHELL OIL"
},
{
"const": "AD01450",
"title": "FORTIES, SHELL OIL"
},
{
"const": "AD01451",
"title": "FURRIAL, SHELL OIL"
},
{
"const": "AD01452",
"title": "GIPPSLAND, SHELL OIL"
},
{
"const": "AD01453",
"title": "GREEN CANYON, SHELL OIL"
},
{
"const": "AD01454",
"title": "GULLFAKS, SHELL OIL"
},
{
"const": "AD01455",
"title": "HARDING, SHELL OIL"
},
{
"const": "AD01456",
"title": "HIGH ISLAND SWEET, SHELL OIL"
},
{
"const": "AD01457",
"title": "HUNTINGTON BEACH, SHELL OIL"
},
{
"const": "AD01458",
"title": "ISTHMUS, SHELL OIL"
},
{
"const": "AD01460",
"title": "JABIRU, SHELL OIL"
},
{
"const": "AD01461",
"title": "KERN RIVER-SWEPI, SHELL OIL"
},
{
"const": "AD01462",
"title": "KIRKUK, SHELL OIL"
},
{
"const": "AD01463",
"title": "KOLE, SHELL OIL"
},
{
"const": "AD01464",
"title": "KUTUBU, SHELL OIL"
},
{
"const": "AD01465",
"title": "LAGOCINCO, SHELL OIL"
},
{
"const": "AD01466",
"title": "LAGOMAR, SHELL OIL"
},
{
"const": "AD01467",
"title": "LAGOTRECO, SHELL OIL"
},
{
"const": "AD01468",
"title": "LOKELE, SHELL OIL"
},
{
"const": "AD01469",
"title": "LLOYDMINSTER, SHELL OIL"
},
{
"const": "AD01470",
"title": "ARABIAN LIGHT, SHELL OIL"
},
{
"const": "AD01471",
"title": "LORETO, SHELL OIL"
},
{
"const": "AD01472",
"title": "LUCINA, SHELL OIL"
},
{
"const": "AD01473",
"title": "MAIN PASS 49 CONDENSATE, SHELL OIL"
},
{
"const": "AD01474",
"title": "MAYA, SHELL OIL"
},
{
"const": "AD01475",
"title": "MANDJI, SHELL OIL"
},
{
"const": "AD01476",
"title": "MURBAN, SHELL OIL"
},
{
"const": "AD01477",
"title": "OLMECA, SHELL OIL"
},
{
"const": "AD01478",
"title": "OMAN, SHELL OIL"
},
{
"const": "AD01479",
"title": "ORIENTE, SHELL OIL"
},
{
"const": "AD01480",
"title": "OSEBERG, SHELL OIL"
},
{
"const": "AD01481",
"title": "PALANCA, SHELL OIL"
},
{
"const": "AD01482",
"title": "PECAN ISLAND, SHELL OIL"
},
{
"const": "AD01483",
"title": "QUA IBOE, SHELL OIL"
},
{
"const": "AD01484",
"title": "RABI BLEND, SHELL OIL"
},
{
"const": "AD01485",
"title": "RABI-KOUNGA, SHELL OIL"
},
{
"const": "AD01486",
"title": "SAHARAN BLEND BEJAIA, SHELL OIL"
},
{
"const": "AD01487",
"title": "SAHARAN BLEND ARZEW, SHELL OIL"
},
{
"const": "AD01488",
"title": "SKUA, SHELL OIL"
},
{
"const": "AD01489",
"title": "SOYO, SHELL OIL"
},
{
"const": "AD01490",
"title": "TIA JUANA LIGHT, SHELL OIL"
},
{
"const": "AD01491",
"title": "TIERRA DEL FUEGO, SHELL OIL"
},
{
"const": "AD01492",
"title": "VENTURA SHELL TAYLOR LEASE, SHELL OIL"
},
{
"const": "AD01493",
"title": "VIOSCA KNOLL 826, SHELL OIL"
},
{
"const": "AD01494",
"title": "WEST DELTA BLOCK 89, SHELL OIL"
},
{
"const": "AD01495",
"title": "WEST LAKE VERRET, SHELL OIL"
},
{
"const": "AD01496",
"title": "XIJIANG, SHELL OIL"
},
{
"const": "AD01497",
"title": "YORBA LINDA SHELL, SHELL OIL"
},
{
"const": "AD01498",
"title": "YOWLUMNE, SHELL OIL"
},
{
"const": "AD01499",
"title": "ZAIRE, SHELL OIL"
},
{
"const": "AD01500",
"title": "JET A-1, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01501",
"title": "DUAL PURPOSE KEROSINE, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01507",
"title": "MCKEE BLEND, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01508",
"title": "MAUI F SAND, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01510",
"title": "MCKEE BLEND 50%, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01511",
"title": "MCKEE BLEND 25%, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01512",
"title": "MCKEE BLEND 10% NGAT-1, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01513",
"title": "MCKEE BLEND 10% NGAT-2, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01514",
"title": "MCKEE BLEND 10% NGAT-3, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01515",
"title": "HANDIL, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01517",
"title": "BARROW ISLAND, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01519",
"title": "BRASS RIVER, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01520",
"title": "DUBAI, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01521",
"title": "MURBAN, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01522",
"title": "MAUI B, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01524",
"title": "KUTUBU, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01525",
"title": "GRIFFIN, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01528",
"title": "MIRI LIGHT, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01529",
"title": "SYNGAS, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01530",
"title": "LABUAN, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01533",
"title": "OMAN, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01535",
"title": "THEVENARD, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01536",
"title": "WIDURI, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01537",
"title": "KHAFJI, MARITIME SAFETY AUTHORITY OF NEW ZEALAND"
},
{
"const": "AD01552",
"title": "FORCADOS, BP"
},
{
"const": "AD01553",
"title": "WEST TEXAS SOUR, BP"
},
{
"const": "AD01554",
"title": "LIGHT LOUISIANNA SWEET, BP"
},
{
"const": "AD01556",
"title": "RINCON DE LOS SAUCES, OIL & GAS"
},
{
"const": "AD01557",
"title": "MEDANITO, OIL & GAS"
},
{
"const": "AD01561",
"title": "ESCRAVOS SWAMP BLEND, CHEVRON"
},
{
"const": "AD01562",
"title": "BENIN RIVER, CHEVRON"
},
{
"const": "AD01567",
"title": "NORTHWEST CHARGE STOCK, CHEVRON"
},
{
"const": "AD01577",
"title": "ARABIAN EXTRA LIGHT, BOUCHARD"
},
{
"const": "AD01579",
"title": "BRENT, SUN"
},
{
"const": "AD01581",
"title": "MONTEREY, TORCH"
},
{
"const": "AD01585",
"title": "ODUDU, EXXON"
},
{
"const": "AD01612",
"title": "BELIDA"
},
{
"const": "AD01614",
"title": "BINTULU"
},
{
"const": "AD01622",
"title": "BUNKER C FUEL OIL (IRVING WHALE)"
},
{
"const": "AD01627",
"title": "CANO LIMON"
},
{
"const": "AD01634",
"title": "CUSIANA"
},
{
"const": "AD01652",
"title": "FCC FEED"
},
{
"const": "AD01654",
"title": "FCC MEDIUM CYCLE OIL"
},
{
"const": "AD01676",
"title": "IFO 180"
},
{
"const": "AD01705",
"title": "ORIENTE"
},
{
"const": "AD01706",
"title": "ORIMULSION"
},
{
"const": "AD01707",
"title": "PENNINGTON"
},
{
"const": "AD01726",
"title": "SARIR"
},
{
"const": "AD01732",
"title": "SIBERIAN BLEND"
},
{
"const": "AD01739",
"title": "SOUTH PASS BLOCK 67"
},
{
"const": "AD01758",
"title": "NEWFOUNDLAND OFFSHORE BURN EXPERIMENT"
},
{
"const": "AD01765",
"title": "FUEL OIL NO.1 (JET B, ALASKA)"
},
{
"const": "AD01774",
"title": "DIESEL/HEATING OIL NO.2, CHEVRON"
},
{
"const": "AD01775",
"title": "DESTIN DOME CIS, MMS"
},
{
"const": "AD01776",
"title": "MOTOR GASOLINE-PREMIUM UNLEADED, SHELL REFINING PTY "
},
{
"const": "AD01777",
"title": "MOTOR GASOLINE-UNLEADED, SHELL REFINING PTY "
},
{
"const": "AD01778",
"title": "MOTOR GASOLINE-LEADED, SHELL REFINING PTY "
},
{
"const": "AD01779",
"title": "AUTOMOTIVE DIESEL FUEL, SHELL REFINING PTY "
},
{
"const": "AD01786",
"title": "AVIATION TURBINE FUEL, SHELL REFINING PTY "
},
{
"const": "AD01800",
"title": "WHITE SPIRIT, SHELL REFINING PTY "
},
{
"const": "AD01804",
"title": "NKOSSA, SHELL REFINING PTY "
},
{
"const": "AD01805",
"title": "MURBAN, SHELL REFINING PTY "
},
{
"const": "AD01806",
"title": "OMAN, SHELL REFINING PTY "
},
{
"const": "AD01809",
"title": "GIPPSLAND, SHELL REFINING PTY "
},
{
"const": "AD01811",
"title": "THEVENARD, SHELL REFINING PTY "
},
{
"const": "AD01812",
"title": "XI-JANG, SHELL REFINING PTY "
},
{
"const": "AD01813",
"title": "ATTAKA, SHELL REFINING PTY "
},
{
"const": "AD01814",
"title": "ARDJUNA, SHELL REFINING PTY "
},
{
"const": "AD01815",
"title": "CINTA, SHELL REFINING PTY "
},
{
"const": "AD01816",
"title": "WIDURI, SHELL REFINING PTY "
},
{
"const": "AD01817",
"title": "LALANG, SHELL REFINING PTY "
},
{
"const": "AD01818",
"title": "MINAS, SHELL REFINING PTY "
},
{
"const": "AD01819",
"title": "MAUI, SHELL REFINING PTY "
},
{
"const": "AD01820",
"title": "MCKEE, SHELL REFINING PTY "
},
{
"const": "AD01822",
"title": "BACH HO, SHELL REFINING PTY "
},
{
"const": "AD01823",
"title": "CHALLIS, BHP PETROLEUM"
},
{
"const": "AD01824",
"title": "GRIFFIN, BHP PETROLEUM"
},
{
"const": "AD01826",
"title": "HARRIET, APACHE ENERGY LTD"
},
{
"const": "AD01827",
"title": "STAG, APACHE ENERGY LTD"
},
{
"const": "AD01830",
"title": "COOPER BASIN, SANTOS LTD"
},
{
"const": "AD01834",
"title": "GIPPSLAND, AMSA"
},
{
"const": "AD01850",
"title": "ALASKA NORTH SLOPE-PUMP STATION #9, BP"
},
{
"const": "AD01851",
"title": "QATAR NORTH FIELD CONDENSATE (NFR-1), MOBIL"
},
{
"const": "AD01853",
"title": "AIRILE, BP"
},
{
"const": "AD01854",
"title": "BARROW, BP"
},
{
"const": "AD01855",
"title": "BLINA, BP"
},
{
"const": "AD01856",
"title": "JACKSON, BP"
},
{
"const": "AD01857",
"title": "SURAT BASIN, BP"
},
{
"const": "AD01858",
"title": "THEVENAND, BP"
},
{
"const": "AD01859",
"title": "VARANUS, BP"
},
{
"const": "AD01860",
"title": "WANDO, BP"
},
{
"const": "AD01861",
"title": "UMM SHAIF, BP"
},
{
"const": "AD01862",
"title": "UPPER ZAKUM, BP"
},
{
"const": "AD01863",
"title": "MARGHAM, BP"
},
{
"const": "AD01864",
"title": "KUWAIT, BP"
},
{
"const": "AD01865",
"title": "KHAFJI, BP"
},
{
"const": "AD01866",
"title": "AL RAYYAN, BP"
},
{
"const": "AD01868",
"title": "SAJAA CONDENSATE, BP"
},
{
"const": "AD01869",
"title": "NANNAI LIGHT, BP"
},
{
"const": "AD01870",
"title": "BELIDA, BP"
},
{
"const": "AD01872",
"title": "BONTANG MIX, BP"
},
{
"const": "AD01873",
"title": "HANDIL, BP"
},
{
"const": "AD01874",
"title": "KERAPU, BP"
},
{
"const": "AD01876",
"title": "MIRI LIGHT, BP"
},
{
"const": "AD01877",
"title": "CHERVIL, NOVUS WA PTY LTD"
},
{
"const": "AD01882",
"title": "ARABIAN EXTRA LIGHT, MOBIL OIL AUSTRALIA"
},
{
"const": "AD01884",
"title": "BASRAH LIGHT, MOBIL OIL AUSTRALIA"
},
{
"const": "AD01885",
"title": "BELIDA, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01887",
"title": "EAST SPAB, MOBIL OIL AUSTRALIA"
},
{
"const": "AD01888",
"title": "ERAWAN, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01889",
"title": "KUTUBU LIGHT, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01891",
"title": "QATAR LAND, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01892",
"title": "QATAR MARINE, MOBIL OIL AUSTRALIA"
},
{
"const": "AD01893",
"title": "THAMMAMA, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01894",
"title": "UPPER ZAKUM, MOBIL OIL AUSTRALIA "
},
{
"const": "AD01895",
"title": "WANDOO, MOBIL OIL AUSTRALIA"
},
{
"const": "AD01896",
"title": "BELIDA, CALTEX"
},
{
"const": "AD01897",
"title": "KUKAPU, CALTEX"
},
{
"const": "AD01898",
"title": "BEKOPAI, CALTEX"
},
{
"const": "AD01899",
"title": "SENIPAH, CALTEX"
},
{
"const": "AD01900",
"title": "IMA, CALTEX"
},
{
"const": "AD01904",
"title": "ORIENTE, OIL & GAS"
},
{
"const": "AD01906",
"title": "MAYA, OIL & GAS"
},
{
"const": "AD01907",
"title": "OLMECA, OIL & GAS"
},
{
"const": "AD01911",
"title": "BOSCAN, OIL & GAS"
},
{
"const": "AD01912",
"title": "LA ROSA MEDIUM, OIL & GAS"
},
{
"const": "AD01913",
"title": "MEREY, OIL & GAS"
},
{
"const": "AD01916",
"title": "MURBAN, OIL & GAS"
},
{
"const": "AD01922",
"title": "BASRAH, OIL & GAS"
},
{
"const": "AD01924",
"title": "KIRKUK, OIL & GAS"
},
{
"const": "AD01925",
"title": "KUWAIT EXPORT, OIL & GAS"
},
{
"const": "AD01927",
"title": "ARABIAN LIGHT, OIL & GAS"
},
{
"const": "AD01929",
"title": "SEPINGGAN-YAKIN MIXED, OIL & GAS"
},
{
"const": "AD01930",
"title": "SAHARAN BLEND, OIL & GAS"
},
{
"const": "AD01938",
"title": "RAINBOW LIGHT AND MEDIUM, OIL & GAS"
},
{
"const": "AD01939",
"title": "RANGELAND-SOUTH, OIL & GAS"
},
{
"const": "AD01944",
"title": "EKOFISK, OIL & GAS"
},
{
"const": "AD01945",
"title": "GULLFAKS, OIL & GAS"
},
{
"const": "AD01946",
"title": "OSEBERG, OIL & GAS"
},
{
"const": "AD01947",
"title": "ARGYLL, OIL & GAS"
},
{
"const": "AD01950",
"title": "BRENT, OIL & GAS"
},
{
"const": "AD01970",
"title": "MIX GEISUM, GEISUM OIL"
},
{
"const": "AD01971",
"title": "NORTH GEISUM, GEISUM OIL"
},
{
"const": "AD01972",
"title": "TAWILA, GEISUM OIL"
},
{
"const": "AD01973",
"title": "SOUTH GEISUM, GEISUM OIL"
},
{
"const": "AD01978",
"title": "VIOSCA KNOLL BLOCK 990"
},
{
"const": "AD01981",
"title": "POSIDEN, EQUILON"
},
{
"const": "AD01983",
"title": "ABOOZAR"
},
{
"const": "AD01984",
"title": "ABU AL BU KHOOSH"
},
{
"const": "AD01985",
"title": "ADGO"
},
{
"const": "AD01986",
"title": "ALASKA NORTH SLOPE"
},
{
"const": "AD01987",
"title": "ALASKA NORTH SLOPE (MIDDLE PIPELINE)"
},
{
"const": "AD01988",
"title": "ALASKA NORTH SLOPE (NORTHERN PIPELINE)"
},
{
"const": "AD01989",
"title": "ALASKA NORTH SLOPE (SOCSEX)"
},
{
"const": "AD01990",
"title": "ALASKA NORTH SLOPE (SOUTHERN PIPELINE)"
},
{
"const": "AD01991",
"title": "ALBA"
},
{
"const": "AD01993",
"title": "ALBERTA SWEET MIXED BLEND (PETAWAWA)"
},
{
"const": "AD01994",
"title": "ALBERTA SWEET MIXED BLEND (REFERENCE #2)"
},
{
"const": "AD01995",
"title": "ALBERTA SWEET MIXED BLEND (REFERENCE #3)"
},
{
"const": "AD01998",
"title": "AMAULIGAK"
},
{
"const": "AD01999",
"title": "AMNA"
},
{
"const": "AD02000",
"title": "ARABIAN"
},
{
"const": "AD02002",
"title": "ARABIAN LIGHT"
},
{
"const": "AD02003",
"title": "ARABIAN MEDIUM"
},
{
"const": "AD02006",
"title": "ARIMBI"
},
{
"const": "AD02007",
"title": "ASHTART"
},
{
"const": "AD02012",
"title": "ATTAKA"
},
{
"const": "AD02014",
"title": "AVALON"
},
{
"const": "AD02015",
"title": "AVIATION GASOLINE 100"
},
{
"const": "AD02018",
"title": "BACH HO"
},
{
"const": "AD02019",
"title": "BACHAQUERO"
},
{
"const": "AD02020",
"title": "BADAK"
},
{
"const": "AD02021",
"title": "BAHRGANSAR/NOWRUZ"
},
{
"const": "AD02022",
"title": "BARROW ISLAND"
},
{
"const": "AD02023",
"title": "BASRAH HEAVY"
},
{
"const": "AD02024",
"title": "BASRAH LIGHT"
},
{
"const": "AD02025",
"title": "BASRAH MEDIUM"
},
{
"const": "AD02026",
"title": "BCF 24"
},
{
"const": "AD02027",
"title": "BEATRICE"
},
{
"const": "AD02028",
"title": "BEKAPAI"
},
{
"const": "AD02029",
"title": "BEKOK"
},
{
"const": "AD02030",
"title": "BELAYIM"
},
{
"const": "AD02032",
"title": "BELRIDGE HEAVY"
},
{
"const": "AD02033",
"title": "BENT HORN"
},
{
"const": "AD02035",
"title": "BERRI"
},
{
"const": "AD02037",
"title": "BETA"
},
{
"const": "AD02039",
"title": "BOMBAY HIGH"
},
{
"const": "AD02040",
"title": "BONNY LIGHT"
},
{
"const": "AD02041",
"title": "BONNY MEDIUM"
},
{
"const": "AD02042",
"title": "BOSCAN"
},
{
"const": "AD02044",
"title": "BOW RIVER HEAVY"
},
{
"const": "AD02045",
"title": "BRAE"
},
{
"const": "AD02046",
"title": "BRASS RIVER"
},
{
"const": "AD02047",
"title": "BREGA"
},
{
"const": "AD02051",
"title": "BUNKER C FUEL OIL"
},
{
"const": "AD02052",
"title": "BUNKER C FUEL OIL (ALASKA)"
},
{
"const": "AD02053",
"title": "BUNK FUEL OIL (IRVING WHALE)"
},
{
"const": "AD02054",
"title": "BUNYU"
},
{
"const": "AD02055",
"title": "BURGAN"
},
{
"const": "AD02056",
"title": "CABINDA"
},
{
"const": "AD02057",
"title": "CALIFORNIA (API 11)"
},
{
"const": "AD02058",
"title": "CALIFORNIA (API 15)"
},
{
"const": "AD02059",
"title": "CANADON SECO"
},
{
"const": "AD02060",
"title": "CANO LIMON"
},
{
"const": "AD02061",
"title": "CARPINTERIA"
},
{
"const": "AD02063",
"title": "CATALYTIC CRACKING FEED"
},
{
"const": "AD02064",
"title": "CEUTA"
},
{
"const": "AD02065",
"title": "CHAMPION EXPORT"
},
{
"const": "AD02066",
"title": "CINTA"
},
{
"const": "AD02067",
"title": "COAL OIL POINT SEEP OIL"
},
{
"const": "AD02068",
"title": "COHASSET"
},
{
"const": "AD02069",
"title": "COLD LAKE BITUMEN"
},
{
"const": "AD02070",
"title": "COLD LAKE BLEND"
},
{
"const": "AD02072",
"title": "COOPER BASIN"
},
{
"const": "AD02073",
"title": "CORMORANT NORTH"
},
{
"const": "AD02074",
"title": "CORMORANT SOUTH"
},
{
"const": "AD02076",
"title": "COSSACK"
},
{
"const": "AD02077",
"title": "CUSIANA"
},
{
"const": "AD02079",
"title": "DAN"
},
{
"const": "AD02080",
"title": "DANISH NORTH SEA"
},
{
"const": "AD02083",
"title": "DIESEL FUEL OIL (SOUTHERN USA 1994)"
},
{
"const": "AD02084",
"title": "DIESEL FUEL OIL (SOUTHERN USA 1997)"
},
{
"const": "AD02086",
"title": "DJENO BLEND"
},
{
"const": "AD02087",
"title": "DORROOD"
},
{
"const": "AD02088",
"title": "DOS CUADRAS"
},
{
"const": "AD02089",
"title": "DUBAI"
},
{
"const": "AD02090",
"title": "DUKHAN"
},
{
"const": "AD02093",
"title": "EAST ZEIT MIX"
},
{
"const": "AD02094",
"title": "EKOFISK"
},
{
"const": "AD02098",
"title": "ELECTRICAL INSULATING OIL (VOLTESSO 35)"
},
{
"const": "AD02099",
"title": "EMERALD"
},
{
"const": "AD02100",
"title": "EMPIRE"
},
{
"const": "AD02101",
"title": "FORCADOS"
},
{
"const": "AD02102",
"title": "KOME"
},
{
"const": "AD02103",
"title": "MIANDOUM"
},
{
"const": "AD02104",
"title": "BOLOBO"
},
{
"const": "AD02105",
"title": "CUSIANA, MOTIVA ENTERPRISES LLC"
},
{
"const": "AD02107",
"title": "RABI, MOTIVA ENTERPRISES LLC"
},
{
"const": "AD02108",
"title": "N'KOSSA EXP BLEND, CHEVRON"
},
{
"const": "AD02109",
"title": "ANTAN, HUVENSA"
},
{
"const": "AD02110",
"title": "ENDICOTT"
},
{
"const": "AD02111",
"title": "EOCENE"
},
{
"const": "AD02112",
"title": "ES SIDER"
},
{
"const": "AD02113",
"title": "ESCALANTE"
},
{
"const": "AD02114",
"title": "ESCRAVOS"
},
{
"const": "AD02115",
"title": "ESPOIR"
},
{
"const": "AD02116",
"title": "EUGENE ISLAND BLOCK 32"
},
{
"const": "AD02117",
"title": "EUGENE ISLAND BLOCK 43"
},
{
"const": "AD02118",
"title": "EVERDELL"
},
{
"const": "AD02119",
"title": "FEDERATED (1994)"
},
{
"const": "AD02120",
"title": "FEDERATED (1998)"
},
{
"const": "AD02121",
"title": "FEDERATED (SOCSEX)"
},
{
"const": "AD02122",
"title": "FEDERATED LIGHT AND MEDIUM"
},
{
"const": "AD02123",
"title": "FLOTTA"
},
{
"const": "AD02124",
"title": "FLUID CATALYTIC CRACKER FEED"
},
{
"const": "AD02125",
"title": "FLUID CATALYTIC CRACKER HEAVY CYCLE OIL"
},
{
"const": "AD02126",
"title": "FLUID CATALYTIC CRACKER LIGHT CYCLE OIL"
},
{
"const": "AD02127",
"title": "FLUID CATALYTIC CRACKER MEDIUM CYCLE OIL"
},
{
"const": "AD02129",
"title": "FORCADOS BLEND"
},
{
"const": "AD02130",
"title": "FOROOZAN"
},
{
"const": "AD02131",
"title": "FORTIES BLEND"
},
{
"const": "AD02136",
"title": "FUEL OIL NO.1 (JP-6)"
},
{
"const": "AD02139",
"title": "FUEL OIL NO.2 (HIGH AROMATIC CONTENT HEATING OIL)"
},
{
"const": "AD02144",
"title": "FULMAR"
},
{
"const": "AD02145",
"title": "GALEOTA MIX"
},
{
"const": "AD02146",
"title": "GAMBA"
},
{
"const": "AD02147",
"title": "GARDEN BANKS BLOCK 387"
},
{
"const": "AD02148",
"title": "GARDEN BANKS BLOCK 426"
},
{
"const": "AD02153",
"title": "GASOLINE (UNLEADED), SHELL"
},
{
"const": "AD02156",
"title": "GENESIS"
},
{
"const": "AD02157",
"title": "GIPPSLAND"
},
{
"const": "AD02158",
"title": "GORM"
},
{
"const": "AD02159",
"title": "GRANITE POINT"
},
{
"const": "AD02160",
"title": "GREEN CANYON BLOCK 109"
},
{
"const": "AD02161",
"title": "GREEN CANYON BLOCK 184"
},
{
"const": "AD02162",
"title": "GREEN CANYON BLOCK 65"
},
{
"const": "AD02163",
"title": "GRIFFIN"
},
{
"const": "AD02164",
"title": "GULF OF SUEZ MIX"
},
{
"const": "AD02165",
"title": "GULLFAKS"
},
{
"const": "AD02166",
"title": "HANDIL"
},
{
"const": "AD02168",
"title": "HEBRON"
},
{
"const": "AD02169",
"title": "HEIDRUN"
},
{
"const": "AD02170",
"title": "HIBERNIA"
},
{
"const": "AD02171",
"title": "HIBERNIA (EPA 86)"
},
{
"const": "AD02172",
"title": "HIGH VISCOSITY FUEL OIL"
},
{
"const": "AD02174",
"title": "HONDO BLEND"
},
{
"const": "AD02175",
"title": "HONDO MONTEREY"
},
{
"const": "AD02176",
"title": "HONDO SANDSTONE"
},
{
"const": "AD02177",
"title": "HOUT"
},
{
"const": "AD02178",
"title": "HYDRA"
},
{
"const": "AD02179",
"title": "IF-30 FUEL OIL"
},
{
"const": "AD02180",
"title": "IF-30 FUEL OIL (SVALBARD)"
},
{
"const": "AD02181",
"title": "IF-30 FUEL OIL 180"
},
{
"const": "AD02182",
"title": "INTERMEDIATE FUEL OIL 180 (SOCSEX)"
},
{
"const": "AD02183",
"title": "INTERMEDIATE FUEL OIL 300"
},
{
"const": "AD02184",
"title": "INTERMEDIATE FUEL OIL 300 (SOCSEX)"
},
{
"const": "AD02186",
"title": "IRANIAN HEAVY"
},
{
"const": "AD02187",
"title": "IRANIAN LIGHT"
},
{
"const": "AD02189",
"title": "ISTHMUS"
},
{
"const": "AD02192",
"title": "JATIBARANG"
},
{
"const": "AD02197",
"title": "KHALDA"
},
{
"const": "AD02198",
"title": "KIMKOL"
},
{
"const": "AD02199",
"title": "KIRKUK BLEND"
},
{
"const": "AD02200",
"title": "KITTIWAKE"
},
{
"const": "AD02201",
"title": "KOAKOAK"
},
{
"const": "AD02202",
"title": "KOLE MARINE BLEND"
},
{
"const": "AD02203",
"title": "KOMINEFT"
},
{
"const": "AD02204",
"title": "KOPANOAR"
},
{
"const": "AD02207",
"title": "KUWAIT"
},
{
"const": "AD02209",
"title": "LABUAN BLEND"
},
{
"const": "AD02210",
"title": "LAGO"
},
{
"const": "AD02211",
"title": "LAGO TRECO"
},
{
"const": "AD02212",
"title": "LAGOMEDIO"
},
{
"const": "AD02213",
"title": "LEONA"
},
{
"const": "AD02214",
"title": "LIVERPOOL BAY"
},
{
"const": "AD02215",
"title": "LLOYDMINSTER"
},
{
"const": "AD02216",
"title": "LORETO"
},
{
"const": "AD02217",
"title": "LOUISIANA"
},
{
"const": "AD02220",
"title": "LUBRICATING OIL (AIR COMPRESSOR) NEW"
},
{
"const": "AD02221",
"title": "LUBRICATING OIL (AIR COMPRESSOR) USED"
},
{
"const": "AD02240",
"title": "LUCULA"
},
{
"const": "AD02241",
"title": "MAGNUS"
},
{
"const": "AD02242",
"title": "MAIN PASS BLOCK 306"
},
{
"const": "AD02243",
"title": "MAIN PASS BLOCK 37"
},
{
"const": "AD02244",
"title": "MALONGO"
},
{
"const": "AD02245",
"title": "MANDJI"
},
{
"const": "AD02246",
"title": "MARGHAM LIGHT"
},
{
"const": "AD02247",
"title": "MARINE DIESEL FUEL OIL"
},
{
"const": "AD02250",
"title": "MARINE INTERMEDIATE FUEL OIL"
},
{
"const": "AD02251",
"title": "MARS BLEND"
},
{
"const": "AD02252",
"title": "MARS TLP"
},
{
"const": "AD02253",
"title": "MAUREEN"
},
{
"const": "AD02254",
"title": "MAYA"
},
{
"const": "AD02255",
"title": "MAYA (1997)"
},
{
"const": "AD02256",
"title": "MEDANITO"
},
{
"const": "AD02257",
"title": "MEREY"
},
{
"const": "AD02259",
"title": "MIRI LIGHT"
},
{
"const": "AD02260",
"title": "MISSISSIPPI CANYON BLOCK 194"
},
{
"const": "AD02261",
"title": "MISSISSIPPI CANYON BLOCK 72"
},
{
"const": "AD02263",
"title": "MONTROSE"
},
{
"const": "AD02264",
"title": "MOUSSE MIX (PETAWAWA)"
},
{
"const": "AD02266",
"title": "MURBAN"
},
{
"const": "AD02267",
"title": "MURCHISON"
},
{
"const": "AD02273",
"title": "NEPTUNE SPAR"
},
{
"const": "AD02275",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #1"
},
{
"const": "AD02276",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #12"
},
{
"const": "AD02277",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #15"
},
{
"const": "AD02278",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #4"
},
{
"const": "AD02279",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #5"
},
{
"const": "AD02280",
"title": "NEWFOUNDLAND OFFSHORE BURN EXP SAMPLE #7"
},
{
"const": "AD02281",
"title": "NINIAN BLEND"
},
{
"const": "AD02282",
"title": "NORMAN WELLS"
},
{
"const": "AD02284",
"title": "POINT ARGUELLO COMINGLED"
},
{
"const": "AD02286",
"title": "POINT ARGUELLO HEAVY"
},
{
"const": "AD02287",
"title": "OMAN EXPORT"
},
{
"const": "AD02289",
"title": "ORIENTE"
},
{
"const": "AD02290",
"title": "ORIMULSION-100"
},
{
"const": "AD02293",
"title": "OSEBERG"
},
{
"const": "AD02294",
"title": "PANUKE"
},
{
"const": "AD02297",
"title": "PITAS POINT"
},
{
"const": "AD02298",
"title": "PLATFORM GAIL"
},
{
"const": "AD02299",
"title": "PLATFORM HOLLY"
},
{
"const": "AD02300",
"title": "PLATFORM IRENE"
},
{
"const": "AD02301",
"title": "POINT ARGUELLO LIGHT"
},
{
"const": "AD02302",
"title": "PORT HUENEME"
},
{
"const": "AD02304",
"title": "PRUDHOE BAY"
},
{
"const": "AD02305",
"title": "PRUDHOE BAY (1995)"
},
{
"const": "AD02306",
"title": "PULAI"
},
{
"const": "AD02307",
"title": "QATAR MARINE"
},
{
"const": "AD02308",
"title": "QUA IBOE"
},
{
"const": "AD02311",
"title": "RANGELY"
},
{
"const": "AD02312",
"title": "RINCON DE LOS SAUCES"
},
{
"const": "AD02314",
"title": "ROSTAM"
},
{
"const": "AD02315",
"title": "SABLE ISLAND CONDENSATE"
},
{
"const": "AD02316",
"title": "SAHARAN BLEND"
},
{
"const": "AD02317",
"title": "SAKHALIN"
},
{
"const": "AD02318",
"title": "SALADIN"
},
{
"const": "AD02319",
"title": "SALAWATI"
},
{
"const": "AD02320",
"title": "SALMON"
},
{
"const": "AD02322",
"title": "SANGA SANGA"
},
{
"const": "AD02323",
"title": "SANTA CLARA"
},
{
"const": "AD02325",
"title": "SCOTIAN LIGHT"
},
{
"const": "AD02326",
"title": "SEPINGGAN-YAKIN MIXED (4:1)"
},
{
"const": "AD02327",
"title": "SERIA LIGHT"
},
{
"const": "AD02329",
"title": "SHENGLI"
},
{
"const": "AD02330",
"title": "SHIP SHOAL BLOCK 239"
},
{
"const": "AD02331",
"title": "SHIP SHOAL BLOCK 269"
},
{
"const": "AD02332",
"title": "SIBERIAN LIGHT"
},
{
"const": "AD02333",
"title": "SIRRI"
},
{
"const": "AD02335",
"title": "SKUA"
},
{
"const": "AD02336",
"title": "SOCKEYE"
},
{
"const": "AD02337",
"title": "SOCKEYE COMINGLED"
},
{
"const": "AD02338",
"title": "SOCKEYE SOUR"
},
{
"const": "AD02339",
"title": "SOCKEYE SWEET"
},
{
"const": "AD02340",
"title": "SOROOSH"
},
{
"const": "AD02341",
"title": "SOUEDIE"
},
{
"const": "AD02344",
"title": "SOUTH PASS BLOCK 60"
},
{
"const": "AD02345",
"title": "SOUTH PASS BLOCK 67"
},
{
"const": "AD02346",
"title": "SOUTH PASS BLOCK 93"
},
{
"const": "AD02347",
"title": "SOUTH TIMBALIER BLOCK 130"
},
{
"const": "AD02349",
"title": "SOYO BLEND"
},
{
"const": "AD02351",
"title": "STATFJORD"
},
{
"const": "AD02352",
"title": "SUMATRAN HEAVY"
},
{
"const": "AD02353",
"title": "SUMATRAN LIGHT"
},
{
"const": "AD02354",
"title": "SWANSON RIVER"
},
{
"const": "AD02356",
"title": "SYNTHETIC"
},
{
"const": "AD02358",
"title": "TAKULA"
},
{
"const": "AD02359",
"title": "TAPIS"
},
{
"const": "AD02360",
"title": "TAPIS BLEND"
},
{
"const": "AD02362",
"title": "TARTAN"
},
{
"const": "AD02363",
"title": "TEMBUNGO"
},
{
"const": "AD02364",
"title": "TERRA NOVA"
},
{
"const": "AD02365",
"title": "TERRA NOVA (1994)"
},
{
"const": "AD02366",
"title": "TERRA NOVA (PETAWAWA)"
},
{
"const": "AD02367",
"title": "TERRA NOVA (SOCSEX)"
},
{
"const": "AD02368",
"title": "THEVENARD ISLAND"
},
{
"const": "AD02369",
"title": "THISTLE"
},
{
"const": "AD02370",
"title": "TIA JUANA HEAVY"
},
{
"const": "AD02371",
"title": "TIA JUANA LIGHT"
},
{
"const": "AD02373",
"title": "TRADING BAY"
},
{
"const": "AD02374",
"title": "TRANSMOUNTAIN BLEND"
},
{
"const": "AD02376",
"title": "UDANG"
},
{
"const": "AD02381",
"title": "VASCONIA"
},
{
"const": "AD02382",
"title": "VIOSCA KNOLL BLOCK 826"
},
{
"const": "AD02383",
"title": "VIOSCA KNOLL BLOCK 990"
},
{
"const": "AD02384",
"title": "WABASCA BITUMEN"
},
{
"const": "AD02385",
"title": "WAINWRIGHT-KINSELLA"
},
{
"const": "AD02386",
"title": "WALIO"
},
{
"const": "AD02387",
"title": "WAXY LIGHT HEAVY BLEND"
},
{
"const": "AD02388",
"title": "WEST DELTA BLOCK 30"
},
{
"const": "AD02390",
"title": "WEST SAK"
},
{
"const": "AD02391",
"title": "WEST TEXAS INTERMEDIATE"
},
{
"const": "AD02392",
"title": "WEST TEXAS SOUR"
},
{
"const": "AD02394",
"title": "ZAIRE"
},
{
"const": "AD02395",
"title": "ZAKUM"
},
{
"const": "AD02396",
"title": "ZARZITINE"
},
{
"const": "AD02397",
"title": "ZUEITINA"
},
{
"const": "AD02398",
"title": "ZULUF/MARJAN"
},
{
"const": "AD02401",
"title": "GULF ALBERTA LIGHT AND MEDIUM"
},
{
"const": "AD02402",
"title": "KOAKOAK 0-22A"
},
{
"const": "AD02403",
"title": "LUCINA MARINE"
},
{
"const": "AD02408",
"title": "BELINDA, AMSA"
},
{
"const": "AD02417",
"title": "UPPER ZAKUM, AMSA"
},
{
"const": "AD02426",
"title": "HOME HEATING OIL"
},
{
"const": "AD02428",
"title": "IFO 300"
},
{
"const": "AD02430",
"title": "JP-5"
},
{
"const": "AD02431",
"title": "FUEL OIL NO.6"
},
{
"const": "AD02433",
"title": "JP-8"
},
{
"const": "AD02434",
"title": "JP-8"
},
{
"const": "AD02435",
"title": "KUWAIT"
},
{
"const": "AD02436",
"title": "DIESEL FUEL OIL NO.2 (BONDED), TESORO"
},
{
"const": "AD02437",
"title": "STAR 4, EQUILON"
},
{
"const": "AD02438",
"title": "STAR 5, EQUILON"
},
{
"const": "AD02439",
"title": "STAR 12, EQUILON"
},
{
"const": "AD02440",
"title": "SAKHALIN II"
},
{
"const": "AD02441",
"title": "ESCALANTE, ITS"
},
{
"const": "AD02447",
"title": "MARINE DIESEL, U.S. NAVY"
},
{
"const": "AD02448",
"title": "LUCKENBACH FUEL OIL"
},
{
"const": "AD02450",
"title": "SCHIEHALLION BLEND, STATOIL"
},
{
"const": "AD02452",
"title": "TROLL, STATOIL"
},
{
"const": "AD02454",
"title": "GLITNE, STATOIL"
},
{
"const": "AD02455",
"title": "NORNE, STATOIL"
},
{
"const": "AD02456",
"title": "LUFENG, STATOIL"
},
{
"const": "AD02458",
"title": "VARG, STATOIL"
},
{
"const": "AD02459",
"title": "GULLFAKS C, STATOIL"
},
{
"const": "AD02460",
"title": "GULLFAKS A, STATOIL"
},
{
"const": "AD02462",
"title": "OSEBERG BLEND, STATOIL"
},
{
"const": "AD02463",
"title": "EKOFISK BLEND, STATOIL"
},
{
"const": "AD02464",
"title": "STATFJORD BLEND, STATOIL"
},
{
"const": "AD02466",
"title": "ASGARD, STATOIL"
},
{
"const": "AD02467",
"title": "NJORD, STATOIL"
},
{
"const": "AD02470",
"title": "GIRASSOL"
},
{
"const": "AD02471",
"title": "JOTUN, OIL & GAS JOURNAL"
},
{
"const": "AD02472",
"title": "PIERCE, OIL & GAS JOURNAL"
},
{
"const": "AD02473",
"title": "TEMPA ROSSA, OIL & GAS JOURNAL"
},
{
"const": "AD02474",
"title": "ZUATA SWEET, OIL & GAS JOURNAL"
},
{
"const": "AD02477",
"title": "MILNE POINT"
},
{
"const": "AD02478",
"title": "LISBURNE"
},
{
"const": "AD02479",
"title": "ALPINE SALES OIL"
},
{
"const": "AD02480",
"title": "NORTHSTAR"
},
{
"const": "AD02481",
"title": "WEST SAK"
},
{
"const": "AD02482",
"title": "BACHAQUERO-DELAWARE RIVER, CITGO"
},
{
"const": "AD02483",
"title": "CONDENSATE (SWEET), ENCANA CORP."
},
{
"const": "AD02538",
"title": "EAGLE FORD SHALE"
},
{
"const": "AD02539",
"title": "NAPO"
},
{
"const": "AD02540",
"title": "U.S. HIGH SWEET-CLEARBROOK"
},
{
"const": "AD02541",
"title": "ULTRA LOW SULFUR DIESEL"
},
{
"const": "AD02542",
"title": "ALPINE"
},
{
"const": "AD02547",
"title": "HOOPS BLEND, ExxonMobil"
},
{
"const": "AD02548",
"title": "AGBAMI, STATOIL"
},
{
"const": "AD02549",
"title": "ALBA"
},
{
"const": "AD02550",
"title": "ALGERIAN CONDENSATE, STATOIL"
},
{
"const": "AD02551",
"title": "ALVHEIM BLEND, STATOIL"
},
{
"const": "AD02552",
"title": "AASGARD BLEND, STATOIL"
},
{
"const": "AD02553",
"title": "AZERI BTC, STATOIL"
},
{
"const": "AD02554",
"title": "AZERI LIGHT, STATOIL"
},
{
"const": "AD02555",
"title": "CLOV, STATOIL"
},
{
"const": "AD02556",
"title": "DALIA, STATOIL"
},
{
"const": "AD02557",
"title": "DRAUGEN, STATOIL"
},
{
"const": "AD02558",
"title": "EKOFISK, STATOIL"
},
{
"const": "AD02559",
"title": "FORTIES, STATOIL"
},
{
"const": "AD02560",
"title": "GIMBO, STATOIL"
},
{
"const": "AD02561",
"title": "GIRASSOL, STATOIL"
},
{
"const": "AD02562",
"title": "GOLIAT BLEND, STATOIL"
},
{
"const": "AD02563",
"title": "GRANE BLEND, STATOIL"
},
{
"const": "AD02564",
"title": "GUDRUN BLEND, STATOIL"
},
{
"const": "AD02565",
"title": "GULLFAKS, STATOIL"
},
{
"const": "AD02566",
"title": "HEIDRUN, STATOIL"
},
{
"const": "AD02567",
"title": "HIBERNIA BLEND, STATOIL"
},
{
"const": "AD02569",
"title": "HUNGO BLEND, STATOIL"
},
{
"const": "AD02570",
"title": "ALASKA NORTH SLOPE, BP"
},
{
"const": "AD02572",
"title": "ARABIAN LIGHT"
},
{
"const": "AD02579",
"title": "ALASKA NORTH SLOPE 2019"
},
{
"const": "AD02580",
"title": "AMSA Average Very Low Sulfur Fuel Oil (VLSFO)"
},
{
"const": "AD02582",
"title": "VLSFO O-1 (AMSA)"
},
{
"const": "AD02583",
"title": "VLSFO O-2 (AMSA)"
},
{
"const": "AD02584",
"title": "VLSFO O-3 (AMSA)"
},
{
"const": "AD02585",
"title": "VLSFO O-4 (AMSA)"
},
{
"const": "AD02586",
"title": "VLSFO O-5 (AMSA)"
},
{
"const": "AD02587",
"title": "VLSFO O-6 (AMSA)"
},
{
"const": "AD02588",
"title": "VLSFO O-7 (AMSA)"
},
{
"const": "AD02589",
"title": "VLSFO O-8 (AMSA)"
},
{
"const": "AD02590",
"title": "VLSFO O-9 (AMSA)"
},
{
"const": "AD02591",
"title": "VLSFO O-10 (AMSA)"
},
{
"const": "AD02592",
"title": "VLSFO IM-5 (IMAROS)"
},
{
"const": "AD02596",
"title": "VLSFO IM-3 (IMAROS)"
},
{
"const": "AD02597",
"title": "VLSFO IM-4 (IMAROS)"
},
{
"const": "AD02598",
"title": "VLSFO IM-6 (IMAROS)"
},
{
"const": "AD02600",
"title": "VLSFO IM-8 (IMAROS)"
},
{
"const": "AD02602",
"title": "VLSFO IM-10 (IMAROS)"
},
{
"const": "AD02603",
"title": "VLSFO IM-11 (IMAROS)"
},
{
"const": "AD02604",
"title": "VLSFO IM-12 (IMAROS)"
},
{
"const": "AD02605",
"title": "VLSFO IM-13 (IMAROS)"
},
{
"const": "AD02606",
"title": "ULSFO Gas Oil (SINTEF)"
},
{
"const": "AD02607",
"title": "ULSFO Marine Gas Oil (SINTEF)"
},
{
"const": "AD02608",
"title": "ULSFO Rotterdam Diesel (SINTEF)"
},
{
"const": "AD02609",
"title": "VLSFO WRG oil, DMZ-RMA quality (SINTEF)"
},
{
"const": "AD02610",
"title": "ULSFO Heavy Distillate Marine ECA 50 (SINTEF)"
},
{
"const": "AD02611",
"title": "Ultra Low Sulphur Fuel Oil (ULSFO), RMA-quality oil (SINTEF)"
},
{
"const": "AD02612",
"title": "Nile Blend"
},
{
"const": "AD02613",
"title": "Nile Blend"
},
{
"const": "EC00506",
"title": "Alaminos Canyon Block 25"
},
{
"const": "EC00507",
"title": "Alaska North Slope [2002]"
},
{
"const": "EC00511",
"title": "Alberta Sweet Mixed Blend #4"
},
{
"const": "EC00512",
"title": "Alberta Sweet Mixed Blend #5"
},
{
"const": "EC00515",
"title": "Amauligak"
},
{
"const": "EC00517",
"title": "Anadarko HIA-376"
},
{
"const": "EC00519",
"title": "Arabian Heavy [2004]"
},
{
"const": "EC00523",
"title": "Arabian Light [2002]"
},
{
"const": "EC00527",
"title": "Atkinson"
},
{
"const": "EC00539",
"title": "Bunker C [1987]"
},
{
"const": "EC00540",
"title": "Bunker C - IFO-300 [1994]"
},
{
"const": "EC00552",
"title": "Chayvo"
},
{
"const": "EC00567",
"title": "Diesel [2002]"
},
{
"const": "EC00586",
"title": "Fuel Oil # 5"
},
{
"const": "EC00593",
"title": "Green Canyon Block 200"
},
{
"const": "EC00599",
"title": "Hebron M-04 [2005]"
},
{
"const": "EC00601",
"title": "HFO 6303 [2002]"
},
{
"const": "EC00604",
"title": "Hibernia [1999]"
},
{
"const": "EC00616",
"title": "Issungnak"
},
{
"const": "EC00638",
"title": "Mars TLP [2000]"
},
{
"const": "EC00643",
"title": "Maya [2004]"
},
{
"const": "EC00647",
"title": "Mississippi Canyon Block 807 [2002]"
},
{
"const": "EC00648",
"title": "Morpeth Block EW921"
},
{
"const": "EC00654",
"title": "Norman Wells"
},
{
"const": "EC00658",
"title": "Odoptu"
},
{
"const": "EC00668",
"title": "Petronius Block VK786A"
},
{
"const": "EC00670",
"title": "Platform Elly"
},
{
"const": "EC00679",
"title": "Prudhoe Bay [2004]"
},
{
"const": "EC00690",
"title": "Sockeye Sour"
},
{
"const": "EC00696",
"title": "South Louisiana"
},
{
"const": "EC00698",
"title": "South Louisiana"
},
{
"const": "EC00721",
"title": "Troll"
},
{
"const": "EC00734",
"title": "West Delta Block 143"
},
{
"const": "EC00736",
"title": "West Texas Intermediate [2001]"
},
{
"const": "EC00738",
"title": "White Rose [2000]"
},
{
"const": "EC01172",
"title": "Albian Heavy Synthetic"
},
{
"const": "EC01346",
"title": "Wabiska Heavy"
},
{
"const": "EC01456",
"title": "Independent Hub"
},
{
"const": "EC01459",
"title": "Neptune BHP [2009]"
},
{
"const": "EC01464",
"title": "Platform Irene"
},
{
"const": "EC01465",
"title": "Platform Irene Comingled"
},
{
"const": "EC01466",
"title": "Gail Well E010"
},
{
"const": "EC01467",
"title": "Gail Well E019"
},
{
"const": "EC01482",
"title": "Platform Ellen A038"
},
{
"const": "EC01483",
"title": "Platform Ellen A040"
},
{
"const": "EC01497",
"title": "Alaska North Slope [2010]"
},
{
"const": "EC01499",
"title": "Heritage HE 05"
},
{
"const": "EC01500",
"title": "Heritage HE 26"
},
{
"const": "EC01822",
"title": "Dos Cuadros HE-05 [2011]"
},
{
"const": "EC01823",
"title": "Dos Cuadros HE-26 [2011]"
},
{
"const": "EC01950",
"title": "Alaska North Slope [2011]"
},
{
"const": "EC01951",
"title": "DOBA"
},
{
"const": "EC01952",
"title": "Endicott"
},
{
"const": "EC01953",
"title": "Harmony"
},
{
"const": "EC01955",
"title": "IFO 180"
},
{
"const": "EC01956",
"title": "North Star"
},
{
"const": "EC01957",
"title": "Rock"
},
{
"const": "EC01958",
"title": "Terra Nova [2011]"
},
{
"const": "EC01969",
"title": "Bakken"
},
{
"const": "EC02152",
"title": "Alaska North Slope [2012]"
},
{
"const": "EC02234",
"title": "Access West Blend Winter"
},
{
"const": "EC02235",
"title": "Cold Lake Blend Winter [2013]"
},
{
"const": "EC02427",
"title": "Cold Lake Blend Summer [2014]"
},
{
"const": "EC02664",
"title": "Synthetic Bitumen Blend"
},
{
"const": "EC02681",
"title": "Sweet Synthetic Crude Oil [2015b]"
},
{
"const": "EC02695",
"title": "Sweet Synthetic Crude Oil [2015a]"
},
{
"const": "EC02709",
"title": "Western Canadian Select"
},
{
"const": "EC02712",
"title": "Cold Lake Blend Winter [2015]"
},
{
"const": "EC02932",
"title": "Bunker C MV Manolis 2015-May operation"
},
{
"const": "EC03048",
"title": "MV Arrow [2015]"
},
{
"const": "EC03126",
"title": "Rail Bitumen"
},
{
"const": "EC03288",
"title": "Husky Energy SGS"
},
{
"const": "EC03629",
"title": "Diesel Echo Bay (B5 Biodiesel)"
},
{
"const": "EC04016",
"title": "Terra Nova [2018]"
},
{
"const": "EC04026",
"title": "Marine Diesel [2018]"
},
{
"const": "EC04028",
"title": "Hibernia [2018]"
},
{
"const": "EC04029",
"title": "Hebron [2018]"
},
{
"const": "EC04030",
"title": "White Rose [2018]"
},
{
"const": "EX00001",
"title": "Aasgard Blend"
},
{
"const": "EX00002",
"title": "Alaska North Slope"
},
{
"const": "EX00003",
"title": "Azeri Light"
},
{
"const": "EX00004",
"title": "Balder Blend"
},
{
"const": "EX00005",
"title": "Banyu Urip"
},
{
"const": "EX00006",
"title": "Basrah"
},
{
"const": "EX00007",
"title": "Basrah Heavy"
},
{
"const": "EX00008",
"title": "Bonga"
},
{
"const": "EX00009",
"title": "Brent Blend"
},
{
"const": "EX00010",
"title": "CLOV"
},
{
"const": "EX00011",
"title": "Cold Lake Blend"
},
{
"const": "EX00012",
"title": "Curlew"
},
{
"const": "EX00013",
"title": "Dalia"
},
{
"const": "EX00014",
"title": "Doba Blend"
},
{
"const": "EX00015",
"title": "Ebok"
},
{
"const": "EX00016",
"title": "Ekofisk"
},
{
"const": "EX00017",
"title": "Erha"
},
{
"const": "EX00018",
"title": "Forties Blend"
},
{
"const": "EX00019",
"title": "Gindungo"
},
{
"const": "EX00020",
"title": "Gippsland Blend"
},
{
"const": "EX00021",
"title": "Girassol"
},
{
"const": "EX00022",
"title": "Gorgon"
},
{
"const": "EX00023",
"title": "Grane"
},
{
"const": "EX00024",
"title": "Gudrun Blend"
},
{
"const": "EX00025",
"title": "Gullfaks Blend"
},
{
"const": "EX00026",
"title": "HOOPS Blend"
},
{
"const": "EX00027",
"title": "Hebron"
},
{
"const": "EX00028",
"title": "Hibernia Blend"
},
{
"const": "EX00029",
"title": "Hungo Blend"
},
{
"const": "EX00030",
"title": "Jotun Blend"
},
{
"const": "EX00031",
"title": "Kearl"
},
{
"const": "EX00032",
"title": "Kissanje Blend"
},
{
"const": "EX00033",
"title": "Kutubu"
},
{
"const": "EX00034",
"title": "Marib Light"
},
{
"const": "EX00035",
"title": "Mondo"
},
{
"const": "EX00036",
"title": "Mostarda"
},
{
"const": "EX00037",
"title": "Ormen Lange"
},
{
"const": "EX00038",
"title": "Oseberg Blend"
},
{
"const": "EX00039",
"title": "Oso Condensate"
},
{
"const": "EX00040",
"title": "Pazflor"
},
{
"const": "EX00041",
"title": "Qua Iboe"
},
{
"const": "EX00042",
"title": "Sable Island"
},
{
"const": "EX00043",
"title": "Saxi Batuque"
},
{
"const": "EX00044",
"title": "Sokol"
},
{
"const": "EX00045",
"title": "Statfjord Blend"
},
{
"const": "EX00046",
"title": "Tapis"
},
{
"const": "EX00047",
"title": "Terengganu Condensate"
},
{
"const": "EX00048",
"title": "Terra Nova"
},
{
"const": "EX00049",
"title": "Thunder Horse"
},
{
"const": "EX00050",
"title": "Triton Blend"
},
{
"const": "EX00051",
"title": "Troll Blend"
},
{
"const": "EX00052",
"title": "Upper Zakum"
},
{
"const": "EX00053",
"title": "Usan"
},
{
"const": "EX00054",
"title": "Volve"
},
{
"const": "EX00055",
"title": "Woollybutt"
},
{
"const": "EX00056",
"title": "Yoho"
},
{
"const": "EX00057",
"title": "Zafiro Blend"
},
{
"const": "EX00058",
"title": "Liza"
},
{
"const": "GN00001",
"title": "Generic Condensate"
},
{
"const": "GN00002",
"title": "Generic Diesel"
},
{
"const": "GN00003",
"title": "Generic Gasoline"
},
{
"const": "GN00004",
"title": "Generic Heavy Crude"
},
{
"const": "GN00005",
"title": "Generic Jet Fuel"
},
{
"const": "GN00006",
"title": "Generic Light Crude"
},
{
"const": "GN00007",
"title": "Generic Medium Crude"
},
{
"const": "LS00009",
"title": "DMA (ULSFO)"
},
{
"const": "LS00010",
"title": "DMB (ULSFO)"
},
{
"const": "NO00001",
"title": "ALVE 2010"
},
{
"const": "NO00002",
"title": "ALVHEIM BLEND 2009"
},
{
"const": "NO00003",
"title": "ALVHEIM BOA 2009"
},
{
"const": "NO00004",
"title": "ALVHEIM KAMELEON 2009"
},
{
"const": "NO00005",
"title": "ALVHEIM KNELER 2009"
},
{
"const": "NO00006",
"title": "AVALDSNES 2012"
},
{
"const": "NO00007",
"title": "BALDER 2002"
},
{
"const": "NO00008",
"title": "BALDER BLEND 2010"
},
{
"const": "NO00009",
"title": "BRAGE 2013"
},
{
"const": "NO00010",
"title": "BREAM 2011"
},
{
"const": "NO00011",
"title": "CAURUS 2011"
},
{
"const": "NO00012",
"title": "DRAUGEN 2008"
},
{
"const": "NO00013",
"title": "EKOFISK 2002"
},
{
"const": "NO00014",
"title": "EKOFISK BLEND 2000"
},
{
"const": "NO00015",
"title": "EKOFISK BLEND 2011"
},
{
"const": "NO00016",
"title": "EKOFISK J 2015"
},
{
"const": "NO00017",
"title": "ELDFISK 2002"
},
{
"const": "NO00018",
"title": "ELDFISK B 2015"
},
{
"const": "NO00019",
"title": "ELDFISK BLEND 2011"
},
{
"const": "NO00020",
"title": "ELDFISK KOMPLEKS 2015"
},
{
"const": "NO00021",
"title": "ELLI 1999"
},
{
"const": "NO00022",
"title": "ELLI SOUTH 1999"
},
{
"const": "NO00023",
"title": "EMBLA 2002"
},
{
"const": "NO00024",
"title": "FORSETI 2002"
},
{
"const": "NO00025",
"title": "FOSSEKALL 2013"
},
{
"const": "NO00026",
"title": "FRAM 2013"
},
{
"const": "NO00027",
"title": "FROY 1996"
},
{
"const": "NO00028",
"title": "GARANTIANA 2013"
},
{
"const": "NO00029",
"title": "GAUPE 2011"
},
{
"const": "NO00030",
"title": "GJOA 2011"
},
{
"const": "NO00031",
"title": "GLITNE 2002"
},
{
"const": "NO00032",
"title": "GOLIAT BLEND 50/50 2008"
},
{
"const": "NO00033",
"title": "GOLIAT BLEND 70/30 2008"
},
{
"const": "NO00034",
"title": "GOLIAT KOBBE 2008"
},
{
"const": "NO00035",
"title": "GOLIAT REALGRUNNEN 2008"
},
{
"const": "NO00036",
"title": "GRANE 1997"
},
{
"const": "NO00037",
"title": "GROSBEAK 2012"
},
{
"const": "NO00038",
"title": "GUDRUN 2012"
},
{
"const": "NO00039",
"title": "GULLFAKS A BLEND 2010"
},
{
"const": "NO00040",
"title": "GULLFAKS C BLEND 2010"
},
{
"const": "NO00041",
"title": "GULLFAKS SOR 1996"
},
{
"const": "NO00042",
"title": "GYDA 2002"
},
{
"const": "NO00043",
"title": "HAVIS 2013"
},
{
"const": "NO00044",
"title": "HEIDRUN EXPORT BLEND 2004"
},
{
"const": "NO00045",
"title": "HEIDRUN TILJE 2004"
},
{
"const": "NO00046",
"title": "HEIDRUN AaRE 2004"
},
{
"const": "NO00047",
"title": "HULDRA KONDENSAT 1998"
},
{
"const": "NO00048",
"title": "IFO-180LS 2014"
},
{
"const": "NO00049",
"title": "IFO-180NS 2014"
},
{
"const": "NO00050",
"title": "IFO-80LS 2014"
},
{
"const": "NO00051",
"title": "IFO-380LS 2014"
},
{
"const": "NO00052",
"title": "IVAR AASEN 2012"
},
{
"const": "NO00053",
"title": "JORDBAER 2011"
},
{
"const": "NO00054",
"title": "KRISTIN 2006"
},
{
"const": "NO00055",
"title": "KVITEBJORN 2009"
},
{
"const": "NO00056",
"title": "LAVRANS 1997"
},
{
"const": "NO00057",
"title": "LILLEFRIGG KONDENSAT 1996"
},
{
"const": "NO00058",
"title": "LINERLE 2005"
},
{
"const": "NO00059",
"title": "LUNO 2011"
},
{
"const": "NO00060",
"title": "LUNO II 2014"
},
{
"const": "NO00061",
"title": "MARIA 2013"
},
{
"const": "NO00062",
"title": "MIDGARD 1991"
},
{
"const": "NO00063",
"title": "MORVIN 2008"
},
{
"const": "NO00064",
"title": "NJORD 1997"
},
{
"const": "NO00065",
"title": "NORNE 1997"
},
{
"const": "NO00066",
"title": "NORNE BLEND 2010"
},
{
"const": "NO00067",
"title": "ORMEN LANGE KONDENSAT 2008"
},
{
"const": "NO00068",
"title": "OSEBERG A 2013"
},
{
"const": "NO00069",
"title": "OSEBERG SOR 2013"
},
{
"const": "NO00070",
"title": "OSEBERG OST 2013"
},
{
"const": "NO00071",
"title": "OSELVAR 2012"
},
{
"const": "NO00072",
"title": "RINGHORNE 2002"
},
{
"const": "NO00073",
"title": "SKARFJELL 2014"
},
{
"const": "NO00074",
"title": "SKARV 2004"
},
{
"const": "NO00075",
"title": "SKARV KONDENSAT 2014"
},
{
"const": "NO00076",
"title": "SKRUGARD 2012"
},
{
"const": "NO00077",
"title": "SLEIPNER KONDENSAT 2002"
},
{
"const": "NO00078",
"title": "SLEIPNER VEST 1998"
},
{
"const": "NO00079",
"title": "SMORBUKK 2003"
},
{
"const": "NO00080",
"title": "SMORBUKK KONDENSAT 2003"
},
{
"const": "NO00081",
"title": "SMORBUKK SOR 2003"
},
{
"const": "NO00082",
"title": "SNORRE B 2004"
},
{
"const": "NO00083",
"title": "SNORRE TLP 2004"
},
{
"const": "NO00084",
"title": "SNOHVIT KONDENSAT 2001"
},
{
"const": "NO00085",
"title": "STATFJORD A 2001"
},
{
"const": "NO00086",
"title": "STATFJORD B 2001"
},
{
"const": "NO00087",
"title": "STATFJORD C 2001"
},
{
"const": "NO00088",
"title": "STAER 2010"
},
{
"const": "NO00089",
"title": "TAMBAR 2002"
},
{
"const": "NO00090",
"title": "TAU 1999"
},
{
"const": "NO00091",
"title": "TOR 2002"
},
{
"const": "NO00092",
"title": "TORDIS 2002"
},
{
"const": "NO00093",
"title": "TRESTAKK 2008"
},
{
"const": "NO00094",
"title": "TRYM KONDENSAT 2011"
},
{
"const": "NO00095",
"title": "TYRIHANS NORD 2004"
},
{
"const": "NO00096",
"title": "TYRIHANS SOR 2004"
},
{
"const": "NO00097",
"title": "ULA 1999"
},
{
"const": "NO00098",
"title": "VALE 2014"
},
{
"const": "NO00099",
"title": "VALHALL 2002"
},
{
"const": "NO00100",
"title": "VARG 2000"
},
{
"const": "NO00101",
"title": "VESLEFRIKK 2012"
},
{
"const": "NO00102",
"title": "VIGDIS 2004"
},
{
"const": "NO00103",
"title": "VILJE 2009"
},
{
"const": "NO00104",
"title": "VISUND 2009"
},
{
"const": "NO00105",
"title": "VOLUND 2010"
},
{
"const": "NO00106",
"title": "VOLVE 2006"
},
{
"const": "NO00107",
"title": "WISTING 2015"
},
{
"const": "NO00108",
"title": "AASGARD A 2003"
},
{
"const": "NO00109",
"title": "SVALIN 2014"
},
{
"const": "NO00110",
"title": "ALTA 2016"
},
{
"const": "NO00111",
"title": "DRIVIS 2017"
},
{
"const": "NO00112",
"title": "MARTIN LINGE CRUDE 2016"
},
{
"const": "NO00113",
"title": "MARTIN LINGE CONDENSATE 2016"
},
{
"const": "NO00114",
"title": "BRYNHILD CRUDE 2015"
},
{
"const": "NO00115",
"title": "BOYLA CRUDE 2016"
},
{
"const": "NO00116",
"title": "WISTING CENTRAL 2017"
},
{
"const": "NO00117",
"title": "SIGYN CONDENSATE 2017"
},
{
"const": "NO00118",
"title": "NORNE CRUDE 2017"
},
{
"const": "NO00119",
"title": "MARINE GAS OIL 500 ppm S 2017"
},
{
"const": "NO00120",
"title": "ULTRA LOW SULFUR FUEL OIL 2017"
},
{
"const": "NO00121",
"title": "HEAVY DISTILLATE MARINE ECA 50 2017"
},
{
"const": "NO00122",
"title": "ROTTERDAM DIESEL 2017"
},
{
"const": "NO00123",
"title": "GAS OIL 10 ppm S 2017"
},
{
"const": "NO00124",
"title": "WIDE RANGE GAS OIL 2017"
},
{
"const": "NO00125",
"title": "OSEBERG BLEND 2007"
},
{
"const": "NO00126",
"title": "BRASSE 2018"
},
{
"const": "NO00127",
"title": "OSEBERG C 2013"
},
{
"const": "NO00128",
"title": "VEGA CONDENSATE 2015"
},
{
"const": "NO00129",
"title": "FENJA (PIL) 2015"
},
{
"const": "NO00130",
"title": "MARULK 2014"
},
{
"const": "NO00131",
"title": "GINA KROG CRUDE 2018"
},
{
"const": "NO00132",
"title": "GUDRUN 2019"
},
{
"const": "NO00133",
"title": "ATLA KONDENSAT 2013"
},
{
"const": "NO00134",
"title": "OSEBERG SOR 2000"
},
{
"const": "NO00135",
"title": "KVITEBJORN 2019"
},
{
"const": "NO00136",
"title": "ODA 2019"
},
{
"const": "NO00137",
"title": "IRIS CONDENSATE 2020"
},
{
"const": "NO00138",
"title": "AASTA HANSTEEN BLEND 2020"
},
{
"const": "NO00139",
"title": "VISUND SOR CONDENSATE 2020"
},
{
"const": "NO00140",
"title": "VISUND CRUDE OIL 2020"
},
{
"const": "NO00141",
"title": "OSEBERG OST 1998"
},
{
"const": "NO00142",
"title": "FROSK 2020"
},
{
"const": "NO00143",
"title": "DVALIN 2020"
},
{
"const": "NO00144",
"title": "SKOGUL 2020"
},
{
"const": "NO00145",
"title": "FOGELBERG CONDENSATE 2021"
},
{
"const": "NO00146",
"title": "UTGARD CONDENSATE 2021"
},
{
"const": "NO00147",
"title": "NJORD 2003"
},
{
"const": "NO00148",
"title": "DUVA 2021"
},
{
"const": "NO00149",
"title": "VALHALL 2021"
},
{
"const": "NO00150",
"title": "SF NORD BRENT 2021"
},
{
"const": "NO00151",
"title": "SYGNA BRENT 2021"
},
{
"const": "NO00152",
"title": "ALVE 2014"
},
{
"const": "NO00153",
"title": "OSEBERG C 1995"
},
{
"const": "NO00154",
"title": "DUGONG 2022"
},
{
"const": "NO00155",
"title": "LILLE PRINSEN 2022"
},
{
"const": "NO00156",
"title": "TOR II 2022"
},
{
"const": "NO00157",
"title": "VALE 2001"
},
{
"const": "NO00158",
"title": "GOLIAT REALGRUNNEN 2001"
},
{
"const": "NO00159",
"title": "SVALE 2010"
},
{
"const": "NO00160",
"title": "BREIDABLIKK 2023"
},
{
"const": "NO00162",
"title": "YME 2023"
},
{
"const": "NO00163",
"title": "OFELIA 2023"
},
{
"const": "NO00164",
"title": "HEIDRUN AARE 2023"
},
{
"const": "NO00165",
"title": "LANGFJELLET 2023"
},
{
"const": "NO00166",
"title": "CALYPSO 2024"
},
{
"const": "AD04000",
"title": "GENERIC LIGHT CRUDE"
},
{
"const": "AD04001",
"title": "GENERIC MEDIUM CRUDE"
},
{
"const": "AD04002",
"title": "GENERIC HEAVY CRUDE"
},
{
"const": "AD04003",
"title": "GENERIC GASOLINE"
},
{
"const": "AD04006",
"title": "GENERIC FUEL OIL No.2"
},
{
"const": "AD04007",
"title": "GENERIC DIESEL"
},
{
"const": "AD04008",
"title": "GENERIC HOME HEATING OIL"
},
{
"const": "AD04009",
"title": "GENERIC INTERMEDIATE FUEL OIL 180"
},
{
"const": "AD04010",
"title": "GENERIC INTERMEDIATE FUEL OIL 300"
},
{
"const": "AD04011",
"title": "GENERIC FUEL OIL No. 6"
},
{
"const": "AD04012",
"title": "GENERIC BUNKER C"
},
{
"const": "AD04013",
"title": "GENERIC HEAVY FUEL OIL"
}
],
"ptm_level": 1,
"title": "Oil Type"
},
"m3_per_hour": {
"default": 1,
"description": "The amount (volume) of oil released per hour (or total amount if release is instantaneous).",
"exclusiveMinimum": 0,
"od_mapping": "seed:m3_per_hour",
"ptm_level": 1,
"title": "M3 Per Hour",
"type": "number",
"units": "m3 per hour"
},
"oil_film_thickness": {
"default": 0.001,
"description": "Seeding value of oil_film_thickness. Values are calculated by OpenDrift starting from this initial value if `update_oilfilm_thickness==True`.",
"od_mapping": "seed:oil_film_thickness",
"ptm_level": 3,
"title": "Oil Film Thickness",
"type": "number",
"units": "m"
},
"droplet_size_distribution": {
"$ref": "#/$defs/DropletSizeDistributionEnum",
"default": "uniform",
"description": "Droplet size distribution used for subsea release.",
"od_mapping": "seed:droplet_size_distribution",
"ptm_level": 3,
"title": "Droplet Size Distribution"
},
"droplet_diameter_mu": {
"default": 0.001,
"description": "The mean diameter of oil droplet for a subsea release, used in normal/lognormal distributions.",
"maximum": 1,
"minimum": 1e-08,
"od_mapping": "seed:droplet_diameter_mu",
"ptm_level": 3,
"title": "Droplet Diameter Mu",
"type": "number",
"units": "meters"
},
"droplet_diameter_sigma": {
"default": 0.0005,
"description": "The standard deviation in diameter of oil droplet for a subsea release, used in normal/lognormal distributions.",
"maximum": 1,
"minimum": 1e-08,
"od_mapping": "seed:droplet_diameter_sigma",
"ptm_level": 3,
"title": "Droplet Diameter Sigma",
"type": "number",
"units": "meters"
},
"droplet_diameter_min_subsea": {
"default": 0.0005,
"description": "The minimum diameter of oil droplet for a subsea release, used in uniform distribution.",
"maximum": 1,
"minimum": 1e-08,
"od_mapping": "seed:droplet_diameter_min_subsea",
"ptm_level": 3,
"title": "Droplet Diameter Min Subsea",
"type": "number",
"units": "meters"
},
"droplet_diameter_max_subsea": {
"default": 0.005,
"description": "The maximum diameter of oil droplet for a subsea release, used in uniform distribution.",
"maximum": 1,
"minimum": 1e-08,
"od_mapping": "seed:droplet_diameter_max_subsea",
"ptm_level": 3,
"title": "Droplet Diameter Max Subsea",
"type": "number",
"units": "meters"
},
"emulsification": {
"default": true,
"description": "If True, surface oil is emulsified, i.e. water droplets are mixed into oil due to wave mixing, with resulting increase of viscosity.",
"od_mapping": "processes:emulsification",
"ptm_level": 2,
"title": "Emulsification",
"type": "boolean"
},
"dispersion": {
"default": true,
"description": "If True, oil is removed from simulation (dispersed), if entrained as very small droplets.",
"od_mapping": "processes:dispersion",
"ptm_level": 2,
"title": "Dispersion",
"type": "boolean"
},
"evaporation": {
"default": true,
"description": "If True, surface oil is evaporated.",
"od_mapping": "processes:evaporation",
"ptm_level": 2,
"title": "Evaporation",
"type": "boolean"
},
"update_oilfilm_thickness": {
"default": true,
"description": "If True, Oil film thickness is calculated at each time step. If False, oil film thickness is kept constant with value provided at seeding.",
"od_mapping": "processes:update_oilfilm_thickness",
"ptm_level": 2,
"title": "Update Oilfilm Thickness",
"type": "boolean"
},
"biodegradation": {
"default": true,
"description": "If True, oil mass is biodegraded (eaten by bacteria).",
"od_mapping": "processes:biodegradation",
"ptm_level": 2,
"title": "Biodegradation",
"type": "boolean"
}
},
"title": "OpenOilModelConfig",
"type": "object"
}
PhytoplanktonModelConfig¶
schema = ptm.PhytoplanktonModelConfig.model_json_schema()
print(json.dumps(schema, indent=2))
{
"$defs": {
"CoastlineActionEnum": {
"description": "Enum for coastline actions used in OpenDrift.",
"enum": [
"none",
"stranding",
"previous"
],
"title": "CoastlineActionEnum",
"type": "string"
},
"DiffusivityModelEnum": {
"description": "Enum for diffusivity models used in OpenDrift.",
"enum": [
"environment",
"stepfunction",
"windspeed_Sundby1983",
"windspeed_Large1994",
"gls_tke",
"constant"
],
"title": "DiffusivityModelEnum",
"type": "string"
},
"DriftModelEnum": {
"description": "Enum for drift models used in OpenDrift.",
"enum": [
"OceanDrift",
"LarvalFish",
"Phytoplankton",
"OpenOil",
"Leeway"
],
"title": "DriftModelEnum",
"type": "string"
},
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
},
"RadiusTypeEnum": {
"description": "Enum for radius types used in OpenDrift.",
"enum": [
"gaussian",
"uniform"
],
"title": "RadiusTypeEnum",
"type": "string"
},
"SeafloorActionEnum": {
"description": "Enum for seafloor actions used in OpenDrift.",
"enum": [
"none",
"lift_to_seafloor",
"deactivate",
"previous"
],
"title": "SeafloorActionEnum",
"type": "string"
},
"VerticalBehaviorModeEnum": {
"description": "Enum for vertical behavior modes in biological models.",
"enum": [
"none",
"depth",
"dvm"
],
"title": "VerticalBehaviorModeEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Phytoplankton (HAB) model configuration for OpenDrift.\n\nUses the OpenDrift LarvalFish model internally but configured for\nphytoplankton particle tracking (no egg stage, no growth/weight).\nTransport-focused with optional vertical behavior (depth or DVM).",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": true,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"od_mapping": "environment:constant:horizontal_diffusivity",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": false,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"od_mapping": "drift:stokes_drift",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"od_mapping": "seed:z",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"od_mapping": "seed:number",
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
},
"drift_model": {
"$ref": "#/$defs/DriftModelEnum",
"default": "Phytoplankton"
},
"save_interpolator": {
"default": false,
"description": "Whether to save the interpolator.",
"title": "Save Interpolator",
"type": "boolean"
},
"interpolator_filename": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filename to save interpolator to or read interpolator from. Exclude suffix (which should be .pickle).",
"ptm_level": 3,
"title": "Interpolator Filename"
},
"export_variables": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "List of variables to export. Options available with `m.all_export_variables` for a given `drift_model`. ['lon', 'lat', 'ID', 'status', 'z'] will always be exported. Default of None means all possible variables are exported.",
"ptm_level": 3,
"title": "Export Variables"
},
"plots": {
"anyOf": [
{
"additionalProperties": {
"additionalProperties": true,
"type": "object"
},
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dictionary of plots to generate using OpenDrift.",
"ptm_level": 1,
"title": "Plots"
},
"radius": {
"default": 1000.0,
"description": "Radius around each lon-lat pair, within which particles will be seeded according to `radius_type`.",
"maximum": 1000000,
"minimum": 0.0,
"ptm_level": 2,
"title": "Radius",
"type": "number",
"units": "m"
},
"radius_type": {
"$ref": "#/$defs/RadiusTypeEnum",
"default": "gaussian",
"description": "Distribution for seeding particles around location. Options: 'gaussian' or 'uniform'.",
"ptm_level": 3
},
"max_speed": {
"default": 20.0,
"description": "Typical maximum speed of elements, used to estimate reader buffer size",
"exclusiveMinimum": 0,
"od_mapping": "drift:max_speed",
"ptm_level": 1,
"title": "Maximum speed",
"type": "number",
"units": "m/s"
},
"use_auto_landmask": {
"default": false,
"description": "If True, use a global-scale land mask from https://www.generic-mapping-tools.org/remote-datasets/earth-mask.html. Dataset scale selected is `auto`. If False, use the land mask from the ocean model.",
"od_mapping": "general:use_auto_landmask",
"ptm_level": 3,
"title": "Use Auto Landmask",
"type": "boolean"
},
"coastline_action": {
"$ref": "#/$defs/CoastlineActionEnum",
"default": "stranding",
"description": "This controls particle behavior at the coastline. Use `previous` for a particle to move back to its previous location if it hits land. Use `stranding` to have a particle stick (that is, become deactivated) where it interacts with land. With None, objects may also move over land.",
"od_mapping": "general:coastline_action",
"ptm_level": 2,
"title": "Coastline Action"
},
"current_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to current components at each time step",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:current_uncertainty",
"ptm_level": 2,
"title": "Current Uncertainty",
"type": "number",
"units": "m/s"
},
"wind_uncertainty": {
"default": 0,
"description": "Add gaussian perturbation with this standard deviation to wind components at each time step.",
"maximum": 5,
"minimum": 0,
"od_mapping": "drift:wind_uncertainty",
"ptm_level": 2,
"title": "Wind Uncertainty",
"type": "number",
"units": "m/s"
},
"seed_seafloor": {
"default": false,
"description": "Elements are seeded at seafloor, and seeding depth (z) is neglected and must be None.",
"od_mapping": "seed:seafloor",
"ptm_level": 2,
"title": "Seed Seafloor",
"type": "boolean"
},
"diffusivitymodel": {
"$ref": "#/$defs/DiffusivityModelEnum",
"default": "windspeed_Large1994",
"description": "Algorithm/source used for profile of vertical diffusivity. Environment means that diffusivity is acquired from readers or environment constants/fallback. Parameterizations based on wind speed are also available.",
"od_mapping": "vertical_mixing:diffusivitymodel",
"ptm_level": 3,
"title": "Diffusivity model",
"units": "seconds"
},
"mixed_layer_depth": {
"default": 20,
"description": "mixed_layer_depth controls how deep the vertical diffusivity profile reaches. This sets the fallback value for ocean_mixed_layer_thickness if not available from any reader.",
"minimum": 0.0,
"od_mapping": "environment:constant:ocean_mixed_layer_thickness",
"ptm_level": 3,
"title": "Mixed Layer Depth",
"type": "number",
"units": "m"
},
"seafloor_action": {
"$ref": "#/$defs/SeafloorActionEnum",
"default": "lift_to_seafloor",
"description": "This controls particle behavior at the seafloor. Use `deactivate` to stick particles to the seafloor at the point of interaction. Use `lift_to_seafloor` to elevate particles up to seabed if below. User `previous` to move elements back to previous position. Use None to ignore seafloor.",
"od_mapping": "general:seafloor_action",
"ptm_level": 2,
"title": "Seafloor Action"
},
"wind_drift": {
"default": true,
"description": "If on, elements at surface are moved with a fraction, the wind draft factor, of the wind speed from the surface down to the wind drift depth.",
"ptm_level": 1,
"title": "Wind Drift",
"type": "boolean"
},
"wind_drift_depth": {
"default": 0.1,
"description": "The direct wind drift (windage) is linearly decreasing from the surface value (wind_drift_factor) until 0 at this depth.",
"maximum": 1,
"minimum": 0,
"od_mapping": "drift:wind_drift_depth",
"ptm_level": 3,
"title": "Wind Drift Depth",
"type": "number",
"units": "meters"
},
"vertical_mixing_timestep": {
"default": 60,
"description": "Time step used for inner (fast) loop of the vertical mixing model. Set this smaller to increase frequency of vertical mixing calculation; number of loops is calculated as int(self.time_step/vertical_mixing_timestep) so vertical_mixing_timestep must be smaller than time_step.",
"maximum": 3600,
"minimum": 0.1,
"od_mapping": "vertical_mixing:timestep",
"ptm_level": 3,
"title": "Vertical Mixing Timestep",
"type": "number",
"units": "seconds"
},
"wind_drift_factor": {
"default": 0.0,
"description": "Elements at surface are moved with this fraction of the wind vector, in addition to currents and Stokes drift. Multiply by 100 to get the percent windage.",
"maximum": 0.1,
"minimum": 0,
"od_mapping": "seed:wind_drift_factor",
"ptm_level": 2,
"title": "Wind Drift Factor",
"type": "number",
"units": "1"
},
"vertical_mixing": {
"default": true,
"description": "Activate vertical mixing scheme. Vertical mixing includes movement due to buoyancy and turbulent mixing.",
"od_mapping": "drift:vertical_mixing",
"ptm_level": 2,
"title": "Vertical Mixing",
"type": "boolean"
},
"vertical_mixing_at_surface": {
"default": true,
"description": "If vertical mixing is activated, surface elements (z=0) can only be mixed (downwards) if this setting it True.",
"od_mapping": "drift:vertical_mixing_at_surface",
"ptm_level": 2,
"title": "Vertical Mixing At Surface",
"type": "boolean"
},
"vertical_advection_at_surface": {
"default": false,
"description": "If vertical advection is activated, surface elements (z=0) can only be advected (downwards) if this setting it True.",
"od_mapping": "drift:vertical_advection_at_surface",
"ptm_level": 2,
"title": "Vertical Advection At Surface",
"type": "boolean"
},
"vertical_behavior_mode": {
"$ref": "#/$defs/VerticalBehaviorModeEnum",
"default": "dvm",
"description": "Vertical behavior mode. none: passive. depth: maintain preferred depth band. dvm: diel vertical migration.",
"od_mapping": "biology:vertical_behavior_mode",
"ptm_level": 1,
"title": "Vertical Behavior Mode"
},
"w_active": {
"default": 0.001,
"description": "Maximum active vertical positioning speed (effective swimming/buoyancy regulation).",
"maximum": 1.0,
"minimum": 0.0,
"od_mapping": "biology:w_active",
"ptm_level": 1,
"title": "Vertical Speed",
"type": "number",
"units": "m/s"
},
"z_pref": {
"default": -10.0,
"description": "Preferred depth for depth mode (negative down from surface). Used when vertical_behavior_mode is 'depth'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_pref",
"ptm_level": 1,
"title": "Preferred Depth",
"type": "number",
"units": "m"
},
"z_day": {
"default": -25.0,
"description": "Target depth during daytime for DVM mode (negative down from surface). Used when vertical_behavior_mode is 'dvm'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_day",
"ptm_level": 1,
"title": "Day Depth",
"type": "number",
"units": "m"
},
"z_night": {
"default": -5.0,
"description": "Target depth during nighttime for DVM mode (negative down from surface). Used when vertical_behavior_mode is 'dvm'.",
"maximum": 0.0,
"minimum": -10000,
"od_mapping": "biology:z_night",
"ptm_level": 1,
"title": "Night Depth",
"type": "number",
"units": "m"
},
"dz_min": {
"default": 1.0,
"description": "Minimum half-width for depth bands (internal parameter).",
"maximum": 100,
"minimum": 0.1,
"od_mapping": "biology:dz_min",
"ptm_level": 3,
"title": "Min Band Half-Width",
"type": "number",
"units": "m"
},
"dz_rel": {
"default": 0.1,
"description": "Relative depth band expansion factor (internal parameter).",
"maximum": 1.0,
"minimum": 0.0,
"od_mapping": "biology:dz_rel",
"ptm_level": 3,
"title": "Relative Band Factor",
"type": "number",
"units": "fraction"
},
"dz_max": {
"default": 15.0,
"description": "Maximum half-width for depth bands (internal parameter).",
"maximum": 1000,
"minimum": 0.1,
"od_mapping": "biology:dz_max",
"ptm_level": 3,
"title": "Max Band Half-Width",
"type": "number",
"units": "m"
}
},
"title": "PhytoplanktonModelConfig",
"type": "object"
}
TheManagerConfig¶
You can also examine the schema for TheManagerConfig directly, which is a subset of the parameters in the scenario classes (which inherit from TheManagerConfig).
schema = ptm.TheManagerConfig.model_json_schema()
print(json.dumps(schema, indent=2))
{
"$defs": {
"LogLevelEnum": {
"description": "Log verbosity.",
"enum": [
"DEBUG",
"INFO",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "LogLevelEnum",
"type": "string"
},
"ModelEnum": {
"description": "Lagrangian model software to use for simulation.",
"enum": [
"opendrift"
],
"title": "ModelEnum",
"type": "string"
},
"OceanModelEnum": {
"enum": [
"NWGOA",
"CIOFSOP",
"CIOFS3",
"CIOFSFRESH",
"CIOFS",
"ONTHEFLY",
"TXLA"
],
"title": "OceanModelEnum",
"type": "string"
},
"OutputFormatEnum": {
"description": "Output file format.",
"enum": [
"netcdf",
"parquet",
"both"
],
"title": "OutputFormatEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Configuration for the particle tracking manager.",
"properties": {
"model": {
"$ref": "#/$defs/ModelEnum",
"default": "opendrift",
"ptm_level": 1
},
"lon": {
"anyOf": [
{
"maximum": 180,
"minimum": -180,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central longitude for seeding drifters. If this is set, `lat` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lon",
"units": "degrees_east"
},
"lat": {
"anyOf": [
{
"maximum": 90,
"minimum": -90,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Central latitude for seeding drifters. If this is set, `lon` should also be set, and `geojson` should be None.",
"ptm_level": 1,
"title": "Lat",
"units": "degrees_north"
},
"geojson": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "GeoJSON describing a polygon within which to seed drifters; must contain \"geometry\". If this is set, `lon` and `lat` should be None.",
"ptm_level": 1,
"title": "Geojson"
},
"start_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": "2022-01-01T00:00:00",
"description": "Start time for drifter simulation. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "Start Time"
},
"start_time_end": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If used, this creates a range of start times for drifters, starting with `start_time` and ending with `start_time_end`. Drifters will be initialized linearly between the two start times. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 2,
"title": "Start Time End"
},
"run_forward": {
"default": true,
"description": "Run forward in time.",
"ptm_level": 2,
"title": "Run Forward",
"type": "boolean"
},
"time_step": {
"default": 300,
"description": "Interval between particles updates, in seconds.",
"maximum": 1440,
"minimum": 0.01,
"ptm_level": 3,
"title": "Time Step",
"type": "number",
"units": "seconds"
},
"time_step_output_integer": {
"default": 12,
"description": "Time step at which element properties are stored and eventually written to file, calculated as time_step*time_step_output_integer. This must be an integer multiple of this.",
"maximum": 300,
"minimum": 1,
"ptm_level": 3,
"title": "Time Step Output Integer",
"type": "integer",
"units": ""
},
"steps": {
"anyOf": [
{
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of steps. End of simulation will be start_time + steps * time_step.",
"ptm_level": 1,
"title": "Steps"
},
"duration": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Duration should be input as a string of ISO 8601. The length of the simulation. steps, end_time, or duration must be input by user.",
"ptm_level": 1,
"title": "Duration"
},
"end_time": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the simulation. steps, end_time, or duration must be input by user. start_time or end_time must be input. If a timezone is included, it will be used and the time will be converted to UTC which is the same timezone as the models.",
"ptm_level": 1,
"title": "End Time"
},
"ocean_model": {
"$ref": "#/$defs/OceanModelEnum",
"default": "CIOFSOP",
"description": "Name of ocean model to use for driving drifter simulation.",
"ptm_level": 1
},
"ocean_model_local": {
"default": true,
"description": "Set to True to use local version of known `ocean_model` instead of remote version.",
"ptm_level": 3,
"title": "Ocean Model Local",
"type": "boolean"
},
"do3D": {
"default": false,
"description": "Set to True to run drifters in 3D, by default False for most drift models.",
"ptm_level": 1,
"title": "Do3D",
"type": "boolean"
},
"use_static_masks": {
"default": false,
"description": "If True, use static ocean model land masks. This saves some computation time but since the available ocean models run in wet/dry mode, it is inconsistent with the ROMS output files in some places since the drifters may be allowed (due to the static mask) to enter a cell they wouldn't otherwise. However, it doesn't make much of a difference for simulations that aren't in the tidal flats. Use the time-varying wet/dry masks (set to False) if drifters are expected to run in the tidal flats. This costs some more computational time but is fully consistent with the ROMS output files.",
"ptm_level": 3,
"title": "Use Static Masks",
"type": "boolean"
},
"output_file": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of file to write output to. If None, default name is used.",
"ptm_level": 3,
"title": "Output File"
},
"output_format": {
"$ref": "#/$defs/OutputFormatEnum",
"default": "netcdf",
"description": "Output file format. Options are \"netcdf\", \"parquet\", or \"both\".",
"ptm_level": 2
},
"use_cache": {
"default": true,
"description": "Set to True to use cache for storing interpolators.",
"ptm_level": 3,
"title": "Use Cache",
"type": "boolean"
},
"log_level": {
"$ref": "#/$defs/LogLevelEnum",
"default": "INFO",
"description": "Log verbosity",
"ptm_level": 3
},
"horizontal_diffusivity": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Add horizontal diffusivity (random walk). For known ocean models, the value is calculated as the approximate horizontal grid resolution for the selected ocean model times an estimate of the scale of sub-gridscale velocity of 0.1 m/s.",
"ptm_level": 2,
"title": "Horizontal Diffusivity",
"units": "m2/s"
},
"stokes_drift": {
"default": true,
"description": "Advection elements with Stokes drift (wave orbital motion).",
"ptm_level": 2,
"title": "Stokes Drift",
"type": "boolean"
},
"z": {
"anyOf": [
{
"maximum": 0,
"minimum": -10000,
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Depth below sea level where elements are released. This depth is neglected if seafloor seeding is set selected.",
"ptm_level": 1,
"title": "Z",
"units": "m"
},
"number": {
"default": 1,
"description": "The number of elements for the simulation.",
"minimum": 1,
"ptm_level": 1,
"title": "Number",
"type": "integer",
"units": 1
}
},
"title": "TheManagerConfig",
"type": "object"
}
Specific Configuration Options¶
This section is split into two: first options that are available to all models (thus are handled in the Manager) and those for OpenDriftModel (the only model option currently).
This is not currently a comprehensive list but a place where extra details are included that might not be clear or available elsewhere. For more information look at the configuration information (previous section) and the docstrings for each class in the API.
OpenDriftModel options¶
Drift model¶
Though OpenDrift has more models available, the currently wrapped drift_model options in PTM are:
OceanDrift: physics-only scenario (default)
Leeway: scenario for Search and Rescue of various objects at the surface
OpenOil: oil spill scenarios
LarvalFish: scenario for fish eggs and larvae with vertical behavior
Phytoplankton: scenario for modeling phytoplankton/harmful algal blooms with vertical behavior
Set these with e.g.:
m = ptm.OpenDriftModel(drift_model="OpenOil")
This selection sets some of the configuration details and export variables that are relevant for the simulation.
Export Variables¶
All possible variables will be exported by default into the outfiles and available in memory (m.o.result and m.o.result_metadata or m.o.get_property(<key>) for OpenDriftModel).
m.all_export_variables()
To limit the variables saved in the export file, input a list of just the variables that you want to save, keeping in mind that ['lon', 'lat', 'ID', 'status','z'] will also be included regardless. For example:
m = ptm.OpenDriftModel(export_variables=[])
The default list of export_variables is set in config_model but is modified depending on the drift_model set and the export_variables input by the user.
The export variables available for each model is reflected in each class’s JSON schema.
How to modify details for Stokes Drift¶
Turn on (on by default, drift model-dependent):
m = ptm.OpenDriftModel(stokes_drift=True)
If Stokes drift is on, the following is also turned on in OpenDriftModel:
m.o.set_config('drift:use_tabularised_stokes_drift', True)
or this could be overridden with
m.o.set_config('drift:use_tabularised_stokes_drift', False)
The defaults beyond that are set but they can be modified with:
m.o.set_config('drift:tabularised_stokes_drift_fetch', '25000') # default
m.o.set_config('drift:stokes_drift_profile', 'Phillips') # default
Implicit Mixing¶
Vertical Mixing¶
The user can change the background diffusivity with
m.o.set_config('vertical_mixing:background_diffusivity', 1.2e-5) # default 1.2e-5
Horizontal Diffusivity¶
The user can add horizontal diffusivity which is time-step independent diffusion. In PTM (not OpenDrift) this is calculated as an estimated 0.1 m/s sub-gridscale velocity that is missing from the model output and multiplied by an estimate of the horizontal grid resolution. This leads to a larger value for NWGOA which has a larger value for mean horizontal grid resolution (lower resolution). If the user inputs their own ocean_model information, they can input their own horizontal_diffusivity value. Also a user can use a built-in ocean_model and the overwrite the horizontal_diffusivity value to 0.
Additional Uncertainty¶
One can also add time-step-dependent uncertainty to the currents and winds with current_uncertainty and wind_uncertainty, respectively.
Wind Drift¶
Wind drift is on by default for most drift models. To explicitly turn it off:
m = ptm.OpenDriftModel(wind_drift=False)
When wind_drift is False, wind_drift_factor is automatically set to 0.
Output Time Step¶
The output time step is controlled by time_step_output_integer, which is a multiplier on time_step. For example, if time_step is 900 seconds (default) and time_step_output_integer is 4, the output time step will be 3600 seconds (1 hour).
m = ptm.OpenDriftModel(time_step_output_integer=4)
Vertical Mixing and 3D¶
Note that if do3D is set to False, vertical_mixing is automatically turned off as well. The parameters vertical_mixing_at_surface and vertical_advection_at_surface control behavior at the surface boundary and are automatically set to be consistent with vertical_mixing and do3D settings, respectively.
Static vs. Wet/Dry Masks¶
The default value of use_static_masks is False, meaning time-varying wet/dry masks from ocean models are used by default. Set use_static_masks=True to use the typical, static ROMS masks instead (faster but less accurate in tidal flat regions).