Skip to content
Snippets Groups Projects
Commit edc2c36f authored by Alex Diebold's avatar Alex Diebold
Browse files

adding descriptions and description functionality

parent 99da0f34
Branches
No related tags found
No related merge requests found
......@@ -70,12 +70,14 @@ instruments:
- test_site_1.test_inst_1.ascii
test_site_2:
display_name: 'test_site_2'
description: 'test_site_2 description'
test_inst_2:
display_name: 'test_inst'
filetypes:
- test_site_2.test_inst_2.nc
test_site_3:
display_name: 'test_site_3'
description: 'test_site_3 description'
test_inst_3:
display_name: 'test_inst_3'
filetypes:
......@@ -83,186 +85,222 @@ instruments:
filetypes:
aoss.aeri.par.l00.v00:
description: 'aoss.aeri.par description'
period: 'Daily'
format_pattern: '%y%m%d.PAR'
glob_pattern: '??????.PAR'
level: 'level_00'
version: 'version_00'
aoss.aeri.qc.l00.v00:
description: 'aoss.aeri.qc description'
period: 'Daily'
format_pattern: '%y%m%d.QC'
glob_pattern: '??????.QC'
level: 'level_00'
version: 'version_00'
aoss.aeri.sum.l00.v00:
description: 'aoss.aeri.sum description'
period: 'Daily'
format_pattern: '%y%m%d.SUM'
glob_pattern: '??????.SUM'
level: 'level_00'
version: 'version_00'
aoss.aeri.cxs-b1.l00.v00:
description: 'aoss.aeri.cxs-b1 description'
period: 'Daily'
format_pattern: '%y%m%dB1.CXS'
glob_pattern: '??????B1.CXS'
level: 'level_00'
version: 'version_00'
aoss.aeri.uvs-b1.l00.v00:
description: 'aoss.aeri.uvs-b1 description'
period: 'Daily'
format_pattern: '%y%m%dB1.UVS'
glob_pattern: '??????B1.UVS'
level: 'level_00'
version: 'version_00'
aoss.aeri.cxs-b2.l00.v00:
description: 'aoss.aeri.cxs-b2 description'
period: 'Daily'
format_pattern: '%y%m%dB2.CXS'
glob_pattern: '??????B2.CXS'
level: 'level_00'
version: 'version_00'
aoss.aeri.uvs-b2.l00.v00:
description: 'aoss.aeri.uvs description'
period: 'Daily'
format_pattern: '%y%m%dB2.UVS'
glob_pattern: '??????B2.UVS'
level: 'level_00'
version: 'version_00'
aoss.aeri.rnc-c1.l00.v00:
description: 'aoss.aeri.rnc description'
period: 'Daily'
format_pattern: '%y%m%dC1.RNC'
glob_pattern: '??????C1.RNC'
level: 'level_00'
version: 'version_00'
aoss.aeri.rnc-c2.l00.v00:
description: 'aoss.aeri.rnc-c2 description'
period: 'Daily'
format_pattern: '%y%m%dC2.RNC'
glob_pattern: '??????C2.RNC'
level: 'level_00'
version: 'version_00'
aoss.aeri.csv-f1.l00.v00:
description: 'aoss.aeri.csv-f1 description'
period: 'Daily'
format_pattern: '%y%m%dF1.CSV'
glob_pattern: '??????F1.CSV'
level: 'level_00'
version: 'version_00'
aoss.aeri.cxs-f1.l00.v00:
description: 'aoss.aeri.cxs-f1 description'
period: 'Daily'
format_pattern: '%y%m%dF1.CXS'
glob_pattern: '??????F1.CXS'
level: 'level_00'
version: 'version_00'
aoss.aeri.uvs-f1.l00.v00:
description: 'aoss.aeri.uvs-f1 description'
period: 'Daily'
format_pattern: '%y%m%dF1.UVS'
glob_pattern: '??????F1.UVS'
level: 'level_00'
version: 'version_00'
aoss.aeri.csv-f2.l00.v00:
description: 'aoss.aeri.uvs-f1 description'
period: 'Daily'
format_pattern: '%y%m%dF2.CSV'
glob_pattern: '??????F2.CSV'
level: 'level_00'
version: 'version_00'
aoss.aeri.cxs-f2.l00.v00:
description: 'aoss.aeri.cxs description'
period: 'Daily'
format_pattern: '%y%m%dF2.CXS'
glob_pattern: '??????F2.CXS'
level: 'level_00'
version: 'version_00'
aoss.aeri.uvs-f2.l00.v00:
description: 'aoss.aeri.uvs-f2 description'
period: 'Daily'
format_pattern: '%y%m%dF2.UVS'
glob_pattern: '??????F2.UVS'
level: 'level_00'
version: 'version_00'
aoss.aeri.scr-aesitter.l00.v00:
description: 'aoss.aeri.scr-aesitter description'
period: 'Daily'
format_pattern: 'AESITTER.SCR'
glob_pattern: 'AESITTER.SCR'
level: 'level_00'
version: 'version_00'
aoss.aeri.scr-radiance.l00.v00:
description: 'aoss.aeri.scr-radiance description'
period: 'Daily'
format_pattern: 'RADIANCE.SCR'
glob_pattern: 'RADIANCE.SCR'
level: 'level_00'
version: 'version_00'
aoss.aeri.scr-sumary.l00.v00:
description: 'aoss.aeri.scr-sumary description'
period: 'Daily'
format_pattern: 'SUMARY.SCR'
glob_pattern: 'SUMARY.SCR'
level: 'level_00'
version: 'version_00'
aoss.ceilo.ascii:
description: 'aoss.ceilo.ascii description'
period: 'Daily'
format_pattern: 'rig_ceilo.%y-%m-%d.ascii'
glob_pattern: '*_*.????-??-??.ascii'
aoss.ceilo.nc:
description: 'aoss.ceilo.ascii description'
period: 'Daily'
format_pattern: '{site}_{inst}.{start_time:%y-%m-%d}.nc'
glob_pattern: '*_*.????-??-??.nc'
aoss.ceilo.png:
description: 'aoss.ceilo.png description'
period: 'Half-Daily'
format_pattern: '{site}_{inst}.{start_time:%y-%m-%d_%h%m%s}_{end_time:%h%m%s}.png'
glob_pattern: '*_*.????-??-??_??????_??????*.png'
#aoss.ceilo.tn.png:
aoss.tower.ascii:
description: 'aoss.tower.ascii description'
period: 'Daily'
format_pattern: '{site}_{inst}.{start_time:%y-%m-%d}.ascii'
glob_pattern: '*_*.????-??-??.ascii'
aoss.tower.nc:
description: 'aoss.tower.nc description'
period: 'Daily'
format_pattern: '{site}_{inst}.{start_time:%y-%m-%d}.nc'
glob_pattern: '*_*.????-??-??.nc'
aoss.tower.png:
description: 'aoss.tower.png description'
period: 'Half-Daily'
format_pattern: '{site}_{inst}.{measurement}.{start_time:%y-%m-%d}.png'
glob_pattern: '*_*.*.????-??-??*.png'
bago.aeri.png:
description: 'bago.aeri.png description'
period: 'Half-Daily'
format_pattern: '{site}_{inst}.{measurement}.{start_time:%y-%m-%d_%h%m%s}_{end_time:%h%m%s}.png'
glob_pattern: '*_*.*.????-??-??_??????.png'
bago.aeri.sum.cdf:
description: 'bago.aeri.sum.cdf description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}_sum.cdf'
glob_pattern: '??????_sum.cdf'
bago.aeri.c1-rnc.cdf:
description: 'bago.aeri.c1-rnc.cdf'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}C1_rnc.cdf'
glob_pattern: '??????C1_rnc.cdf'
bago.aeri.c2-rnc.cdf:
description: 'bago.aeri.c2-rnc.cdf description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}C2_rnc.cdf'
glob_pattern: '??????C2_rnc.cdf'
mendota.buoy.ascii:
description: 'mendota.buoy.ascii description'
period: 'Daily'
format_pattern: '{site}_{inst}.{start_time:%y-%m-%d}.ascii'
glob_pattern: '*_*.????-??-??.ascii'
mendota.buoy.png:
description: 'mendota.buoy.png'
period: 'Daily'
format_pattern: '{site}_{inst}.{measurement}.{start_time:%y-%m-%d_%h%m%s}_{end_time:%h%m%s}.png'
glob_pattern: '*_*.*.????-??-??_??????_??????*.png'
test_site_1.test_inst_1.qc:
description: 'test_site_1.test_inst_1.qc description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.qc'
glob_pattern: '??????.qc'
test_site_1.test_inst_1.ascii:
description: 'test_site_1.test_inst_1.ascii description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.ascii'
glob_pattern: '??????.ascii'
test_site_2.test_inst_2.nc:
description: 'test_site_2.test_inst_2.nc description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.nc'
glob_pattern: '??????.nc'
test_site_3.test_inst_3.png:
descripition: 'test_site_3.test_inst_3.png description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.png'
glob_pattern: '??????.png'
experiments:
test_exp_1:
description: 'test_exp_1 description'
start_time: '2000-01-01T01:02:03'
end_time: '2000-01-02T01:02:03'
site: 'test_site_1'
test_exp_2:
description: 'test_exp_2 description'
start_time: '2017-10-10'
end_time: '2017-10-11'
site: 'test_site_1, test_site_3'
......@@ -575,36 +575,53 @@ def _create(args):
docs = yaml.load(stream)
#cycle through sites of yaml
for s in docs['instruments'].keys():
for s in docs['instruments']:
#get site's description
if 'description' in docs['instruments'][s]:
site_desc = docs['instruments'][s]['description']
else:
site_desc = ''
#check if site exists in database
site_q = session.query(Site).filter(Site.name == s).all()
#site does exist
#site does exist, update description
if len(site_q) > 0:
curr_site = site_q[0]
curr_site.description = site_desc
#site doesn't exist; new site is made
else:
curr_site = Site(name = s)
session.add(curr_site)
session.commit()
curr_site = Site(name = s, desc = site_desc)
session.add(curr_site)
session.commit()
#cycle through instruments of yaml
for i in docs['instruments'][s].keys():
#skip display name
if i != 'display_name':
for i in docs['instruments'][s]:
#skip display name and description
if i != 'display_name' and i != 'description':
#get instrument's description
if 'description' in docs['instrumets'][s][i]:
inst_desc = docs['instruments'][s][i]['description']
else:
inst_desc = ''
#check if instrument exists with specific site
inst_q = session.query(Instrument).filter(Instrument.name == i)
inst_q = inst_q.filter(Instrument.site.has(name = curr_site.name)).all()
#instrument exists
#instrument exists, update description
if len(inst_q) > 0:
curr_inst = inst_q[0]
curr_inst.description = inst_desc
#instrument doesn't exist; new instrument is made
else:
curr_inst = Instrument(name=i, site=curr_site)
session.add(curr_inst)
session.commit()
curr_inst = Instrument(name=i, site=curr_site, desc=inst_desc)
session.add(curr_inst)
session.commit()
#cycle through filetypes in yaml
for f in docs['instruments'][s][i]['filetypes']:
#skip display name
if f != 'display_name':
#skip display name and description
if f != 'display_name' and f != 'description':
#get filetype description
if 'description' in docs['instruments'][s][i]['filetypes'][f]:
filetype_desc = docs['instruments'][s][i]['filetypes'][f]['description']
else:
filetype_desc = ''
#current dictionary of filetype values
d = docs['filetypes'][f]
if 'level' in d.keys():
......@@ -619,11 +636,13 @@ def _create(args):
curr_filetype.format_pattern = d['format_pattern']
curr_filetype.level = level
curr_filetype.period = d['period']
curr_filetype.description = filetype_desc
session.add(curr_filetype)
session.commit()
#filetype doensn't exist; create new
else:
curr_filetype = FileType(name=f, glob_pattern=d['glob_pattern'], format_pattern=d['format_pattern'], level=level, period=d['period'])
curr_filetype = FileType(name=f, glob_pattern=d['glob_pattern'],
format_pattern=d['format_pattern'], level=level, period=d['period'], desc=filetype_desc)
curr_filetype.add_instrument(curr_inst)
#cycle through experiments in yaml
for e in docs['experiments'].keys():
......
instruments:
test_site_1:
display_name: 'test_site_1'
description: 'test_site_1 description'
test_inst_1:
display_name: 'test_inst_1'
description: test_inst_1 description
filetypes:
- test_site_1.test_inst_1.qc
- test_site_1.test_inst_1.ascii
test_inst_2:
display_name: 'test_inst'
display_name: 'test_inst_2'
description: 'test_inst_2 description'
filetypes:
- test_site_1.test_inst_2.nc
test_site_2:
display_name: 'test_site_2'
description: 'test_site_2 description'
test_inst_3:
display_name: 'test_inst_3'
description: 'test_inst_3 description'
filetypes:
- test_site_2.test_inst_3.png
test_site_3:
display_name: 'test_site_3'
description: 'test_site_3 description'
filetypes:
test_site_1.test_inst_1.qc:
description: 'test_site_1.test_inst_1.qc description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.qc'
glob_pattern: '??????.qc'
test_site_1.test_inst_1.ascii:
description: 'test_site_1.test_inst_1.ascii'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.ascii'
glob_pattern: '??????.ascii'
test_site_1.test_inst_2.nc:
description: 'test_site_1.test_inst_2.nc description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.nc'
glob_pattern: '??????.nc'
test_site_2.test_inst_3.png:
description: 'test_site_2.test_inst_3.png description'
period: 'Daily'
format_pattern: '{start_time:%y%m%d}.png'
glob_pattern: '??????.png'
experiments:
test_exp_1:
description: 'test_exp_1 description'
start_time: '2000-01-01T01:02:03'
end_time: '2000-01-02T01:02:03'
site: 'test_site_1'
test_exp_2:
description: 'test_exp_2'
start_time: '2017-10-10'
end_time: '2017-10-11'
site: 'test_site_1, test_site_3'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment