gomoos_processing

This is the primary database consulted in the processing.

Users and Permissions

UserHostRequired PermissionsComments
operator whatever machine is doing the processing Select, Insert, Update This is the account under which the processing actually occurs. The host permissions must be set for any host running this software. Right now it is only micmac.umeoce.maine.edu
webuser whatever machine is running the website (or just generating the web pages) Select, Create This is the account under which web access (generally thru PHP) occurs. Create privileges are required because there are a few instances where temporary tables are necessary. Drop privileges are NOT required because the temporary tables vanish after the PHP/MySQL session is over.
matlab_webuser whatever machine is running the MATLAB webserver Select This account could probably be folded into the webuser account.
gm_mysqllocalhostSelect This account is setup for the benefit of gomoos.org. It is only to be used under PHPMyAdmin, therefore the host access is only localhost.
umeoce_user%.umeoce.maine.eduSelect This is a generic account for anyone within the School of Marine Sciences. Generally speaking, it would be done thru the command line. Currently, only Steve Cousins makes use of it.

mooring

This is a partial duplicate of gomoos_control:mooring that was placed into gomoos_processing in order to make some portions of the code more efficient.

Column NameTypeAttributesComments
mooring_idvarchar(10)NOT NULL, PRIMARY KEY An example would be "F0101". The first character species a region. The second and third specify a location within that region. The fourth and fifth characters specify a deployment at that particular site.
activechar(1)  Either "Y" or "N"
latitude float(10,4)   Latitude where deployed.
longitude float(10,4)   Longitude where deployed.
water_depthfloat(10,1)  Depth of water column at deployment site.
site_namevarchar(40)  Short 2-3 word description of mooring location.
add_magnetic_variationfloat(10,1)   Needs explanation.
goes_platform_idchar   ID string to use when processing a buoy via the GOES satellite.
time_entrytimestamp(14)   Identifies when a change to the record was made.

An example would be given by

mooring_idF0101
activeN
typeCoastal
latitude 44.0552
longitude -68.9980
water_depth110.1
scope1.320
time_dep 2000-07-10 19:30:00
time_rec 2001-07-10 00:00:00
light_listG
buoy_snX
wirerope_length80
chain_length60
anchor_weight1800.0
solar_watts20.0
solar_angle65.0
campbell_id0
location_commentW. Penobscot Bay
add_magnetic_variation0
location_description5 nm SE of Rockland
buoy_schematic_image_urlhttp://gyre.umeoce.maine.edu/gomoos/buoy/K0101.gif
buoy_schematic_thumbnail_image_urlhttp://gyre.umeoce.maine.edu/gomoos/buoy/K0101_sm.gif
goes_platform_idNULL
time_entry20020906115755
status_commentFull speed ahead.

In this case, buoy F0101 had no GOES transmitter, so there has no GOES platform id.

datatypes

This is a table with general information about all NetCDF file variables, but not specific to any one particular NetCDF file. The only time it is written to is during buoy deployment, and only then when a never-before-seen parameter is being introduced.

Column NameTypeAttributesComments
datatypevarchar(50)NOT NULL, PRIMARY KEYA general name by which a datatype is usually referenced.
infile_typechar(30) How the datatype is stored within its host file. For example, "air_temperature" is stored as "float", while "air_temperature_qc" is "byte", and "time" is stored as "double".
longnamechar(100) This is a standard NetCDF attribute. It is a string by which perhaps a plot title could be labeled. For example, "Air Temperature".
unitschar(20) This is a standard NetCDF/HDF attribute. "meters" or "miles per hour", for example.
shortnamechar(8)  This may give a shortened (just a few characters) name by which perhaps a plot label might be given. For example, "u" for speed_east.
Commenttext Each datatype should have a full-text description of what it is, perhaps how it measured.
diagnosticchar(1)default "Y"If "Y", then it is not suitable for public display.
epic_codeint(11)default NULLFor compatibility with the EPIC System. It also provided a useful benchmark as to what units, longnames, shortnames, etc. that we should be using.
time_entrytimestamp(14)   Identifies when a change to the record was made.

The entry for salinity looks like

data_typesalinity
infile_typefloat
longnameSalinity
unitspsu
shortnameS
CommentThe Practical Salinity Scale defines salinity in terms of the conductivity ratio of a sample to that of a solution of 32.4356 g of KCl at 15°C in a 1 kg solution. A sample of seawater at 15°C with a conductivity equal to this KCl solution has a salinity of exactly 35 practical salinity units (psu). A typical measurement far out in the ocean might be around 34.7, but near shore measurements might be expected to be 31-32 due to fresh water discharge.
diagnosticN
epic_code41
time_entry20020906115755

processing_datatypes

This is a table linking a NetCDF file with all of its variables. It is not used during the actual processing, but helps to drive plot production as well as storing the most recent observations for each parameter, which enables the web site to quickly present them.

FieldTypeAttributesComments
idsmallint(5) unsignedNOT NULL, PRIMARY KEY, AUTO INCREMENT 
mooring_idchar(5)matlab_update_index(UNIQUE KEY)An example would be "F0101". The first character species a region. The second and third specify a location within that region. The fourth and fifth characters specify a deployment at that particular site.
buffer_namechar(20)matlab_update_index(UNIQUE KEY) See detailed listing.
processing_type char(20) matlab_update_index(UNIQUE KEY) Most of the time will be one of "sensor-raw", "goes-sensor-raw", "realtime" or "goes-realtime". "raw" and "goes-raw" are still supported, although deprecated, "hourly" and "filtered" are used for non-GOMOOS purposes. A better name for "hourly" would be "gap-filled", but "hourly" has stuck for historical reasons.
instrument_numbersmallint(5)matlab_update_index(UNIQUE KEY) It is possible to have several buffers of the same type on a buoy. For example, F0102 has three sbe37 buffers. It is necessary to distinguish between them.
datatypechar(255) matlab_update_index(UNIQUE KEY) This is a variable which must be present in the datatypes table.
last_updatedatetime  Time of the last data recorded for this value, so this changes every hour. This field and last_value are what's reported on the "Latest Buoy Data" web page.
last_valuedouble  Last reported value, changes every hour. This field and last_update are what's reported on the "Latest Buoy Data" web page.
last_qctinyint  Last reported quality flag, may change every hour. "0" is good, anything else is bad.
sensor_depthfloat(8,2) matlab_update_index(UNIQUE KEY) The depth at which a sensor is fixed. Depths are measure positive downwards, so anything above the surface has a negative water depth. It is possible to have several temperature readings, for instance, coming in at separate sensor depths on a single mooring.
historical_plot_filechar(255)   Location of an image file (probably PNG format) on the local file system. The MATLAB processing software writes to this file a time series plot of the data from a particular mooring location that may span several deployments.
historical_plot_file_urlchar(255)   URL of the historical_plot_file
filevarchar(255)   Relates the parameter back to the NetCDF file from whence it comes. Essentially this is a foreign key, although MySQL does not support such things.
file_idsmallint(6)   Relates the parameter back to the NetCDF file from whence it comes. Essentially this is a foreign key, although MySQL does not support such things. In the processing_files table, this is the same as the id field.
recent_plot_filechar(255)   Location of an image file (probably PNG format) of most recent data (maybe 4 days or so) on the local file system.
recent_plot_file_urlchar(255)   URL of the monthly_plot_file
deployment_plot_filechar(255)   Location of an image file (probably PNG format) on the local file system. The MATLAB processing software writes to this file a time series plot of the data from a particular mooring location that spans the full deployment.
deployment_plot_file_urlchar(255)   URL of the deployment_plot_file

The matlab_update_index is a MySQL index that MATLAB uses during the processing to speed up UPDATE operations. The speed up factor is considerable, often resulting in a 90-95% time savings.

Each buffer_name stands for a particular datastream coming back from the buoy. This can consist of a single instrument such as doppler or a whole collection of instruments, such as one sees in met.

An example entry might look like

id81767
mooring_idE0104
buffer_namedoppler
processing_type raw
instrument_number0
datatypecurrent_v
last_update2002-12-18 16:00:00`
last_value-4106.761465
last_qc1
sensor_depth26
historical_plot_file /home/webpages/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:historical.png
historical_plot_file_url http://gyre.umeoce.maine.edu/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:historical.png
file /data/gomoos/buoy/E0104/E0104.doppler.raw.nc
file_id 2659
recent_plot_file /home/webpages/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:recent.png
recent_plot_file_url http://gyre.umeoce.maine.edu/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:recent.png
deployment_plot_file /home/webpages/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:deployment.png
deployment_plot_file_url http://gyre.umeoce.maine.edu/gomoos/buoy/realtime/E01/E01:current_v:doppler:raw:0:26:deployment.png

processing_files

This is a table linking a buoy with all of its NetCDF files. In effect, it tells the processing system where to archive the data in NetCDF format.

FieldTypeAttributesComments
idsmallint(5) unsignedNOT NULL, PRIMARY KEY, AUTO INCREMENTParticular to MySQL and not necessary for individual queries.
mooring_idchar(5) An example would be "F0101". The first character species a region. The second and third specify a location within that region. The fourth and fifth characters specify a deployment at that particular site.
buffer_namechar(20)  Specifies the name of a datastream. Usually this is just the name of the instrument from which the data is originating.
processing_type char(20)   One of "raw", "goes-raw", "hourly", or "filtered". A better name for "hourly" would be "gap-filled", but "hourly" has stuck for historical reasons. Only "raw" and "goes-raw" are used for GOMOOS.
instrument_numbersmallint(5)  It is possible to have several buffers of the same type on a buoy. For example, F0102 has three sbe37 buffers. It is necessary to distinguish between them.
num_depthssmallint(5)   This will always be one except for one case, that of doppler data. Doppler data usually comes in thirty bins at thirty depths, usually ranging from 10 meters to 126 meters.
breakout_idsmallint(5)  This is a numeric id tagged to a particular buffer. All the data streams are logged in the campbell and transmitted back to the receiving PC in a single data burst. It is necessary to be able to differentiate between the various buffers, hence the need for this item.
delta_tsmallint(5) unsigned  Number of minutes between recordings. Since F0101 this has always been 60.
filevarchar(200)   Location of the NetCDF file on the local filesystem.
file_urlvarchar(255)   URL of the file
dods_urlvarchar(255)   DODS URL of the file
time_entrytimestamp(14)  Denotes when the last change to this record occured.

An example entry for processing_datatypes might look like

FieldValue
id2743
mooring_idI0101
buffer_namesbe37
processing_type raw
instrument_number0
num_depths1
breakout_id4
delta_t60
file /data/gomoos/buoy/I0101/I0101.sbe37.raw.1m.nc
file_url http://gyre.umeoce.maine.edu/data/gomoos/buoy/I0101/I0101.sbe37.raw.1m.nc
dods_url http://gyre.umeoce.maine.edu/cgi-bin/nph-dods/data/gomoos/buoy/I0101/I0101.sbe37.raw.1m.nc
timestamp 20020910141753