diff --git a/.gitmodules b/.gitmodules
index 770389c..805d9fd 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +1,9 @@
[submodule "getdatatestbed"]
path = getdatatestbed
- url = git@github.com:SBFRF/getdatatestbed.git
+ url = https://github.com/SBFRF/getdatatestbed.git
[submodule "testbedutils"]
path = testbedutils
- url = git@github.com:SBFRF/testbedutils.git
+ url = https://github.com/SBFRF/testbedutils.git
[submodule "prepdata"]
path = prepdata
- url = git@github.com:SBFRF/prepdata.git
+ url = https://github.com/collins-frf/prepdata.git
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..838cda8
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+genericWorkFlow.py
\ No newline at end of file
diff --git a/.idea/cmtb.iml b/.idea/cmtb.iml
index 34ddd3f..46e6208 100644
--- a/.idea/cmtb.iml
+++ b/.idea/cmtb.iml
@@ -8,7 +8,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 789e113..33513a5 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,8 +1,7 @@
-
+
-
-
+
\ No newline at end of file
diff --git a/frontback/frontBackNEW.py b/frontback/frontBackNEW.py
index f6325d2..7b3c948 100644
--- a/frontback/frontBackNEW.py
+++ b/frontback/frontBackNEW.py
@@ -14,6 +14,7 @@
from prepdata import py2netCDF as p2nc
from prepdata import postData
+
def ww3simSetup(startTimeString, inputDict, allWind , allWL, allWave, wrr):
"""This Function is the master call for the data preparation for the Coastal Model
Test Bed (CMTB) for ww3.
@@ -108,6 +109,7 @@ def ww3simSetup(startTimeString, inputDict, allWind , allWL, allWave, wrr):
return wavepacket, windpacket, wlpacket, bathy, gridFname, wrr
+
def swashSimSetup(startTimeString, inputDict, allWind, allWL, allWave, wrr):
"""This Function is the master call for the data preparation for the Coastal Model
Test Bed (CMTB) and the Swash wave/FLow model
@@ -166,6 +168,21 @@ def swashSimSetup(startTimeString, inputDict, allWind, allWL, allWave, wrr):
return wavepacket, None, WLpacket, gridDict, None, wrr
+
+def var1dsSimSetup(startTimeString, inputDict, allWind, allWL, allWave, allBathy, allCurrent, wrr):
+ endTime = inputDict['endTime']
+ startTime = inputDict['startTime']
+ dateStartList, wrr.dateStringList, projectStart, projectEnd = fileHandling.createTimeInfo(startTime, endTime,
+ simulationDuration=3)
+ wrr.timestep = inputDict['modelSettings']['timestep']
+ gridFname = ''
+ ## ___________WATER LEVEL__________________
+ prepdata = PrepDataTools()
+ WLpacket = prepdata.prep_WL(allWL, allWind['epochtime'])
+
+ return allWave, allWind, WLpacket, allBathy, allCurrent, gridFname, wrr
+
+
def genericPostProcess(startTime, inputDict, spatialData, pointData, wrr):
"""This runs the post process script for Wave Watch 3.
@@ -274,10 +291,6 @@ class objects as listed below:
print("is this necessary??")
-
-
-
-
def cshoreSimSetup(startTimeString, inputDict, allWave, allBathy, allWL, allWind, allCTD, wrr):
"""Author: David Young
Association: USACE CHL Field Research Facility
diff --git a/genericWorkFlow.py b/genericWorkFlow.py
index f7052c5..5ffebfe 100755
--- a/genericWorkFlow.py
+++ b/genericWorkFlow.py
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
import matplotlib
-matplotlib.use('Agg')
+matplotlib.use('TkAgg')
import os, getopt, sys, shutil, glob, logging, yaml, re, pickle
import datetime as DT
import numpy as np
from frontback import frontBackNEW
-from getdatatestbed.getDataFRF import getObs
+from getdatatestbed.getDataFRF import getObs, getDataTestBed
from testbedutils import fileHandling
from prepdata import writeRunRead as wrrClass
import glob
@@ -57,15 +57,29 @@ def Master_workFlow(inputDict):
if generateFlag == True:
go = getObs(projectStart-DT.timedelta(hours=3), projectEnd+DT.timedelta(hours=3)) # initialize get observation
if modelName in ['ww3']:
- gauge = 'waverider-26m'
+ wave_gauge = 'waverider-26m'
+ current_gauge = None
elif modelName.lower() in ['swash', 'funwave']:
- gauge = '8m-array'
+ wave_gauge = '8m-array'
+ current_gauge = None
elif modelName.lower() in ['cshore']:
- gauge = 'awac-6m'
+ wave_gauge = 'awac-6m'
+ current_gauge = None
+ elif modelName.lower() in ['1dvars']:
+ wave_gauge = ['xp100m', 'xp125m', 'xp150m', 'xp200m', '8m-array', 'paros-200-940m', 'paros-250-940m',
+ 'paros-340x-940y-top', 'sig940-300']
+ current_gauge = ['adop-3.5m', 'awac-4.5m', 'awac-6m', 'awac-8m', 'awac-11m']
+ else:
+ print("Model name: " + modelName + "not found.")
+ wave_gauge = None
+ current_gauge = None
- rawspec = go.getWaveData(gaugenumber=gauge, spec=True)
+ if wave_gauge != None:
+ rawspec = go.getWaveData(gaugenumber=wave_gauge, spec=True)
rawWL = go.getWL()
rawwind = go.getWind(gaugenumber=0)
+ if current_gauge != None:
+ rawcurrent = go.getCurrents(gaugenumber=current_gauge, roundto=1)
# ________________________________________________ RUN LOOP ________________________________________________
# run the process through each of the above dates
@@ -105,7 +119,6 @@ def Master_workFlow(inputDict):
allWL=rawWL,
allWave=rawspec,
wrr=wrr)
-
elif modelName in ['swash']:
if generateFlag is True:
@@ -144,7 +157,28 @@ def Master_workFlow(inputDict):
allCTD=rawctd,
wrr=wrr)
gridFname = None
-
+ elif modelName in ['1dvars']:
+ wrr = wrrClass.var1dsIO('1dvars', workingDirectory=workingDirectory, testName=testName,
+ versionPrefix=version_prefix,
+ startTime=DT.datetime.strptime(time, '%Y-%m-%dT%H:%M:%SZ'),
+ simulatedRunTime=inputDict['simulationDuration'],
+ endTime=DT.datetime.strptime(time, '%Y-%m-%dT%H:%M:%SZ') + DT.timedelta(
+ hours=inputDict['simulationDuration']), runFlag=runFlag,
+ generateFlag=generateFlag, readFlag=analyzeFlag, pbsFlag=pbsFlag)
+ if generateFlag is True:
+ bathygo = getDataTestBed(projectStart, projectEnd)
+ rawbathy = bathygo.getBathyIntegratedTransect(method=1) # grab bathymetry transects
+ wavePacket, windPacket, wlPacket, bathyPacket, currentPacket, gridFname, wrr = frontBackNEW.var1dsSimSetup(time,
+ inputDict=inputDict,
+ allWind=rawwind,
+ allWL=rawWL,
+ allWave=rawspec,
+ allBathy=rawbathy,
+ allCurrent=rawcurrent,
+ wrr=wrr)
+ ctdPacket = None
+ updateBathy = None
+
if generateFlag is True:
print(" TODO: TY you're handing me back the same prepdata packets from all frontBacks")
print('TODO: document Packets coming from sim-setup')
@@ -162,8 +196,9 @@ def Master_workFlow(inputDict):
wrr.hpcNodes = inputDict['hpcSettings']['hpcNodes']
# write simulation files (if assigned)
wrr.writeAllFiles(wavePacket=wavePacket, windPacket=windPacket, wlPacket=wlPacket,
- bathyPacket=bathyPacket, gridfname=gridFname,
- ctdPacket=ctdPacket, updateBathy=updateBathy)
+ bathyPacket=bathyPacket, gridFname=gridFname,
+ ctdPacket=ctdPacket, currentPacket=currentPacket,
+ updateBathy=updateBathy)
# run simulation (as appropriate)
if runFlag is True:
@@ -175,25 +210,27 @@ def Master_workFlow(inputDict):
frontBackNEW.genericPostProcess(time, inputDict, spatialData=spatialData, pointData=savePointData,
wrr=wrr)
+ #TODO: As seen by the print statement above, the following if statement evaluates as True no matter the input
# if it's a live run, move the plots to the output directory
- if plotFlag is True and DT.date.today() == projectEnd or inputDict['slack'] is not None:
+ if plotFlag is True and DT.date.today() == projectEnd:
from testbedutils import cmtbSlack
moveFnames = glob.glob(wrr.plottingDirectory + '/CMTB*.png')
moveFnames.extend(glob.glob(wrr.plottingDirectory + '/CMTB*.gif'))
+ else:
+ # move files
+ moveFnames = glob.glob(wrr.plottingDirectory + 'CMTB*.png')
+ moveFnames.extend(glob.glob(wrr.plottingDirectory + '/CMTB*.gif'))
+ liveFileMoveToDirectory = '/mnt/gaia/cmtb'
+ for file in moveFnames:
+ shutil.move(file, liveFileMoveToDirectory)
+ print('moved {} to {} '.format(file, liveFileMoveToDirectory))
+
+ if inputDict['slack'] is True:
+ myslack = cmtbSlack.slack('testbedutils/slackSettings.yml') # initialize
+ myslack.postMessageWithFiles(f"checkout {wrr.modelName} simulations from {wrr.dateString}",
+ moveFnames)
+
- if inputDict['slack'] is not None:
- myslack = cmtbSlack.slack('testbedutils/slackSettings.yml') # initialize
- myslack.postMessageWithFiles(f"checkout {wrr.modelName} simulations from {wrr.dateString}",
- moveFnames)
-
- else:
- # move files
- moveFnames = glob.glob(wrr.plottingDirectory + 'CMTB*.png')
- moveFnames.extend(glob.glob(wrr.plottingDirectory + '/CMTB*.gif'))
- liveFileMoveToDirectory = '/mnt/gaia/cmtb'
- for file in moveFnames:
- shutil.move(file, liveFileMoveToDirectory)
- print('moved {} to {} '.format(file, liveFileMoveToDirectory))
print('------------------SUCCESS-----------------------------------------')
except Exception as e:
@@ -222,5 +259,4 @@ def Master_workFlow(inputDict):
except:
raise IOError('Input YAML file required. See yaml_files/TestBedExampleInputs/[model]_Input_example for example '
'yaml file.')
-
Master_workFlow(inputDict=inputDict)
diff --git a/getdatatestbed b/getdatatestbed
index 751b245..54586f1 160000
--- a/getdatatestbed
+++ b/getdatatestbed
@@ -1 +1 @@
-Subproject commit 751b2451e91eb109759553d28c8a7639c5cd95c1
+Subproject commit 54586f1f8e4960fd7cb97f577bc025f64491a26f
diff --git a/prepdata b/prepdata
index fd544cd..104a6a5 160000
--- a/prepdata
+++ b/prepdata
@@ -1 +1 @@
-Subproject commit fd544cd549f2d39ef04e7a6d7900fe09db6ce8c8
+Subproject commit 104a6a5035211ffe79bb2926d18ae80a9bf16627
diff --git a/testbedutils b/testbedutils
index b12bbba..de361e1 160000
--- a/testbedutils
+++ b/testbedutils
@@ -1 +1 @@
-Subproject commit b12bbba4803d0a9cb3935c7f138ed3226c3390d7
+Subproject commit de361e18abab5b80131567d4c90045392439d866
diff --git a/yaml_files/TestBedExampleInputs/1DVarS_Input_example.yml b/yaml_files/TestBedExampleInputs/1DVarS_Input_example.yml
new file mode 100644
index 0000000..c569f86
--- /dev/null
+++ b/yaml_files/TestBedExampleInputs/1DVarS_Input_example.yml
@@ -0,0 +1,32 @@
+# # # # # # # # # # # #
+# Data control #
+# # # # # # # # # # # #
+plotFlag: False # turn plotting on
+generateFlag: True # generate simulation input files (go get data, process, and write files)
+runFlag: True # run the simulation
+analyzeFlag: False # post process simulations (read files, post process data, make netCDF files, plot if desired)
+bathyLoc: integrated_bathy # bathymetry source. OPTIONAL: defaults to FRF
+logging: False
+slack: None
+########################
+#simulations parameters#
+########################
+startTime: '2021-09-09T00:00:00Z' # project start time
+endTime: '2021-09-09T06:00:00Z' # project End time not inclusive
+
+simulationDuration: 144 #number of hours between startTime and endTime, only used for metadata
+modelExecutable: D:/cmtb/bin/1DVarS # path to the model REQUIRED# this is the directory where simulation files and QA/QC plots are made and existing architecture takes over
+########################
+# path stuff #
+########################
+modelSettings:
+ modelName: 1dvars
+ version_prefix: Base # controls switched with int the code
+ grid: None
+ timestep: 3 # duration in hours how frequently to get new data, size of individual simulations
+
+# this is the sim files, and plots
+workingDirectory: D:/cmtb/data/waveModels/1DVar # REQUIRED usually [cmtbRoot]/data/waveModels
+mainDirectory: D:/cmtb/ # Set to main filepath
+# this is the base directory where netCDF files are output to,
+netCDFdir: ./data/netCDF_files/ #optional will default to home/[whoami]/thredds_data -- this needs /
diff --git a/yaml_files/TestBedExampleInputs/1DVar_Input_example.yml b/yaml_files/TestBedExampleInputs/1DVar_Input_example.yml
new file mode 100644
index 0000000..0fbb1e8
--- /dev/null
+++ b/yaml_files/TestBedExampleInputs/1DVar_Input_example.yml
@@ -0,0 +1,29 @@
+# # # # # # # # # # # #
+# Data control #
+# # # # # # # # # # # #
+pFlag: False # turn plotting on
+generateFlag: True # generate simulation input files (go get data, process, and write files)
+runFlag: True # run the simulation
+analyzeFlag: False # post process simulations (read files, post process data, make netCDF files, plot if desired)
+bathyLoc: integrated_bathy # bathymetry source. OPTIONAL: defaults to FRF
+########################
+#simulations parameters#
+########################
+startTime: '2016-11-05T00:00:00Z' # project start time
+endTime: '2016-11-08T00:00:00Z' # project End time not inclusive
+
+simulationDuration: 3 # duration in hours how frequently to get new data, size of individual simulations
+modelExecutable: /home/wilsongr/work/funded_projects/USCRP_DA/project/cmtb/bin/1DVar # path to the model REQUIRED# this is the directory where simulation files and QA/QC plots are made and existing architecture takes over
+########################
+# path stuff #
+########################
+modelSettings:
+ model: 1DVar
+ version_prefix: Base # controls switched with int the code
+ grid: None
+
+# this is the sim files, and plots
+workingDirectory: /home/wilsongr/work/funded_projects/USCRP_DA/project/cmtb/data/waveModels/1DVar # REQUIRED usually [cmtbRoot]/data/waveModels
+mainDirectory: /home/wilsongr/work/funded_projects/USCRP_DA/project/cmtb/ # Set to main filepath
+# this is the base directory where netCDF files are output to,
+netCDFdir: ./netCDF #optional will default to home/[whoami]/thredds_data -- this needs /
diff --git a/yaml_files/morphModels/1dvars/1dvars_global.yml b/yaml_files/morphModels/1dvars/1dvars_global.yml
new file mode 100644
index 0000000..eaeb105
--- /dev/null
+++ b/yaml_files/morphModels/1dvars/1dvars_global.yml
@@ -0,0 +1,58 @@
+featureType: grid
+title: Observations
+summary: >
+ Observations coinciding with the model run.
+ This component of the CMTB is composed of a 1D Variotional Morphological model developed by
+ Dr. Greg Wilson @ Oregon State University:
+history: posterior created as output of assimilated data for CMTB
+source: CMTB 1DVar simulations
+platform: FRF Cluster - Crunchy
+sourceUrl: (local files)
+standard_name_vocabulary: CFv25
+Metadata_Conventions: Unidata Dataset Discovery v1.0, CF-1.6
+metadata_link: N/A
+Conventions: CF-1.6
+creator_name: USACE/CHL/COAB
+creator_url: http://frf.usace.army.mil
+creator_email: frfwebmaster@usace.army.mil
+license: These data may be redistributed and used without restriction. Data are intended for scholarly use by the research community, with the express agreement that users will properly acknowledge the USACE Field Research Facility and the supporting investigator(s). Use or reproduction of these data for commercial purposes is prohibited without prior written permission.
+keywords_vocabulary: FGlobal Change Master Directory (GCMD) Earth Science Keywords; CF Standard Name Table (v23, 23 March 2013)
+keywords: Oceans > Ocean Waves > Wave Frequency, Oceans > Ocean Waves > Wave Height, Oceans > Ocean Waves > Wave Period, Oceans > Ocean Waves > Wave Spectra, Oceans > Ocean Waves > Wave Direction, DOD > DOD/USARMY/USACE/CHL/FRF > Field Research Facility, Coastal And Hydraulics Laboratory,U. S. Army Corps Of Engineers, U.S. Army, U. S. Department Of Defense, Oregon State University, College of Earth and Ocean Sciences, sea_surface_wave_variance_spectral_density, sea_surface_wave_significant_height, sea_surface_wave_from_direction, sea_surface_wave_directional_variance_spectral_density
+processing: realtime
+organization: USACE/CHL/COAB/OSU
+publisher_url: http://frf.usace.army.mil
+infoUrl: http://frf.usace.army.mil
+publisher_email: frfwebmaster@usace.army.mil
+publisher_name: USACE/CHL/COAB
+format_version: v1.0
+institution: USACE/CHL/COAB
+contact: USACE/CHL/COAB
+contact_info: USACE/CHL/COAB
+contact_role: Owner
+contributor_name: USACE/CHL/COAB
+contributor_role: USACE/CHL/COAB
+naming_authority: FRF
+origin: USACE/CHL/COAB
+acknowledgement: Data are provided by the Field Research Facility; Coastal Observations & Analysis Branch; US Army Corps of Engineers, Duck, North Carolina.
+project: USACE/COAB observations
+id: FRF_CMTB_CSHORE_Fixed
+processing_level: L1
+geospatial_vertical_units: m
+geospatial_vertical_resolution: 0
+geospatial_vertical_min: 0
+geospatial_vertical_max: 0
+geospatial_vertical_origin: sea surface
+geospatial_lat_min: to be updated
+geospatial_lat_max: to be updated
+geospatial_lat_units: degrees_north
+geospatial_lon_min: to be updated
+geospatial_lon_max: to be updated
+geospatial_lon_units: degrees_east
+geospatial_vertical_positive: up
+time_coverage_start: '2017-05-01T22:00:00Z'
+time_coverage_end: '2017-05-01T22:00:00Z'
+deployment_start: '2017-05-01T22:00:00Z'
+instrument: N/A
+cross_shore_angle_units: degrees
+cross_shore_angle_description: cross shore angle at the USACE FRF site in DUCK, NC, clockwise from true north
+cross_shore_angle: 71.8
diff --git a/yaml_files/morphModels/1dvars/1dvars_var.yml b/yaml_files/morphModels/1dvars/1dvars_var.yml
new file mode 100644
index 0000000..78e9d1e
--- /dev/null
+++ b/yaml_files/morphModels/1dvars/1dvars_var.yml
@@ -0,0 +1,340 @@
+# CSHORE template
+
+_variables: ['time', 'measurements', 'constant',
+ 'x', 'h', 'theta0', 'H0', 'ka_drag', 'hErr', 'constant',
+ 'Ctheta0', 'CH0', 'Cka', 'Ch', 'sigma',
+ 'sedmodel', 'Cq', 'x0', 'sigma_x', 'Lx',
+ 'Hd', 'Hind', 'He',
+ 'vd', 'vind', 've',
+ 'tauw', 'tide']
+_attributes: ['notes']
+_dimensions: ['time', 'x', 'constant', 'measurements']
+
+time:
+ name: 'time'
+ units: 'datetime'
+ standard_name: 'datetime'
+ long_name: 'UTC Model Time'
+ data_type: 'S1'
+ dim: ['time']
+ calendar: 'gregorian'
+ fill_value: '-999.99'
+
+constant:
+ name: 'constant'
+ units: ''
+ standard_name: ''
+ long_name: 'constant of the same type'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'constant'
+ coordinates: 'xFRF yFRF'
+ description: 'constant of the same type'
+
+measurements:
+ name: 'measurements'
+ units: ''
+ standard_name: ''
+ long_name: 'measurements of the same type'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'measurements'
+ coordinates: 'xFRF yFRF'
+ description: 'measurements of the same type'
+
+# hydrology
+Hd:
+ name: 'Hd'
+ units: 'm'
+ standard_name: ''
+ long_name: 'Significant Wave Height'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'Wave Height'
+ coordinates: 'xFRF yFRF'
+ description: 'Significant Wave Height from colocated sensor'
+
+Hind:
+ name: 'Hind'
+ units: ''
+ standard_name: ''
+ long_name: 'wave height indice'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'Wave Height Indice'
+ coordinates: 'xFRF yFRF'
+ description: 'Indice of Significant Wave Height from colocated sensor'
+
+He:
+ name: 'He'
+ units: 'm'
+ standard_name: ''
+ long_name: 'Error in Significant Wave Height'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'Wave Height'
+ coordinates: 'xFRF yFRF'
+ description: 'Error in Significant Wave Height from colocated sensor'
+
+vd:
+ name: 'vd'
+ units: 'm/s'
+ standard_name: ''
+ long_name: 'Current'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'current'
+ coordinates: 'xFRF yFRF'
+ description: 'current velocity from colocated sensor'
+
+vind:
+ name: 'vind'
+ units: ''
+ standard_name: ''
+ long_name: 'curre t indice'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'current Indice'
+ coordinates: 'xFRF yFRF'
+ description: 'Indice of current from colocated sensor'
+
+ve:
+ name: 've'
+ units: 'm/s'
+ standard_name: ''
+ long_name: 'Error in current'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'current'
+ coordinates: 'xFRF yFRF'
+ description: 'Error in current from colocated sensor'
+
+tauw:
+ name: 'tauw'
+ units: 'N/m2'
+ standard_name: ''
+ long_name: 'tauw'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'current'
+ coordinates: 'xFRF yFRF'
+ description: 'tauw'
+
+tide:
+ name: 'tide'
+ units: 'm'
+ standard_name: ''
+ long_name: 'tide elevation'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'current'
+ coordinates: 'xFRF yFRF'
+ description: 'tide'
+
+sedmodel:
+ name: 'sedmodel'
+ units: 'string'
+ standard_name: 'Sediment Model Type'
+ long_name: 'Sediment Model Type for Assimilation'
+ data_type: 'S1'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'sedmodel'
+ coordinates: ''
+ description: 'Sediment Model Type for Assimilation'
+
+# morphology
+x:
+ name: 'x'
+ units: 'm'
+ standard_name: ''
+ long_name: 'cross-shore cell for the model bathymetry'
+ data_type: 'f8'
+ dim: ['x']
+ fill_value: '-999.99'
+ short_name: 'bathy'
+ coordinates: 'x'
+ description: 'cross-shore position in x coordinates'
+
+h:
+ name: 'h'
+ units: 'm'
+ standard_name: ''
+ long_name: 'bed elevation for the model bathymetry'
+ data_type: 'f8'
+ dim: ['x']
+ fill_value: '-999.99'
+ short_name: 'bathy'
+ coordinates: 'x'
+ description: 'Bottom elevation for the 1dvars model bathymetry at each time-step'
+
+hErr:
+ name: 'hErr'
+ units: 'm'
+ standard_name: ''
+ long_name: 'bed elevation for the model bathymetry'
+ data_type: 'f8'
+ dim: ['x']
+ fill_value: '-999.99'
+ short_name: 'bathy'
+ coordinates: 'x'
+ description: 'Bottom elevation error for the 1dvars model bathymetry at each time-step'
+
+
+# hydrology
+theta0:
+ name: 'theta0'
+ units: 'Degrees'
+ standard_name: ''
+ long_name: 'Mean Wave Direction measured from true north'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Mean Direction'
+ coordinates: 'x yFRF'
+ description: 'Mean wave Direction along the Modeled Transect from CMTB 1dvar model run'
+
+H0:
+ name: 'H0'
+ units: 'm'
+ standard_name: ''
+ long_name: 'Significant Wave Height'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Wave Height'
+ coordinates: 'x yFRF'
+ description: 'Offshore Significant Wave Height from the 8m array at time'
+
+ka_drag:
+ name: 'ka_drag'
+ units: ''
+ standard_name: ''
+ long_name: 'ka_drag'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'ka_drag'
+ coordinates: 'x yFRF'
+ description: 'ka_drag constant'
+
+#covariances
+
+Ch:
+ name: 'Ch'
+ units: ''
+ standard_name: ''
+ long_name: 'Covriance of bed elevation for the model bathymetry'
+ data_type: 'f8'
+ dim: ['x', 'x']
+ fill_value: '-999.99'
+ short_name: 'covariance of bathy'
+ coordinates: ''
+ description: 'covariance of Bottom elevation for the 1dvars model bathymetry at each time-step'
+
+Ctheta0:
+ name: 'Ctheta0'
+ units: ''
+ standard_name: ''
+ long_name: 'Covariance of Mean Wave Direction measured from true north'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Covariance of Mean Direction'
+ coordinates: 'x yFRF'
+ description: 'Covariance of Mean wave Direction along the Modeled Transect from CMTB 1dvar model run'
+
+CH0:
+ name: 'CH0'
+ units: ''
+ standard_name: ''
+ long_name: 'Covariance of Significant Wave Height'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Covariance of Wave Height'
+ coordinates: 'x yFRF'
+ description: 'Covariance of Offshore Significant Wave Height from the 8m array at time'
+
+Cka:
+ name: 'Cka'
+ units: ''
+ standard_name: 'Covariance of ka_drag'
+ long_name: 'Covariance of ka_drag'
+ data_type: 'f8'
+ dim: ['measurements']
+ fill_value: '-999.99'
+ short_name: 'Covariance of ka_drag'
+ coordinates: 'x yFRF'
+ description: 'Covariance of ka_drag constant'
+
+sigma:
+ name: 'sigma'
+ units: ''
+ standard_name: 'sigma'
+ long_name: 'sigma'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'sigma'
+ coordinates: 'x yFRF'
+ description: 'sigma'
+
+#sediment stuff
+Cq:
+ name: 'Cq'
+ units: ''
+ standard_name: 'Cq'
+ long_name: 'Cq'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Cq'
+ coordinates: 'x yFRF'
+ description: 'Cq'
+
+x0:
+ name: 'x0'
+ units: ''
+ standard_name: 'x0'
+ long_name: 'x0'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'x0'
+ coordinates: 'x yFRF'
+ description: 'x0'
+
+sigma_x:
+ name: 'sigma_x'
+ units: ''
+ standard_name: 'sigma_x'
+ long_name: 'sigma_x'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'sigma_x'
+ coordinates: 'x yFRF'
+ description: 'sigma_x'
+
+Lx:
+ name: 'Lx'
+ units: ''
+ standard_name: 'Lx'
+ long_name: 'Lx'
+ data_type: 'f8'
+ dim: ['constant']
+ fill_value: '-999.99'
+ short_name: 'Lx'
+ coordinates: 'x yFRF'
+ description: 'Lx'
\ No newline at end of file