Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
MetObsCommon
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MetObs
MetObsCommon
Commits
edc2c36f
Commit
edc2c36f
authored
7 years ago
by
Alex Diebold
Browse files
Options
Downloads
Patches
Plain Diff
adding descriptions and description functionality
parent
99da0f34
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
metobscommon/archive/config.yaml
+38
-0
38 additions, 0 deletions
metobscommon/archive/config.yaml
metobscommon/archive/db.py
+34
-15
34 additions, 15 deletions
metobscommon/archive/db.py
metobscommon/tests/archive/config.yaml
+13
-1
13 additions, 1 deletion
metobscommon/tests/archive/config.yaml
with
85 additions
and
16 deletions
metobscommon/archive/config.yaml
+
38
−
0
View file @
edc2c36f
...
...
@@ -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'
This diff is collapsed.
Click to expand it.
metobscommon/archive/db.py
+
34
−
15
View file @
edc2c36f
...
...
@@ -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
():
...
...
This diff is collapsed.
Click to expand it.
metobscommon/tests/archive/config.yaml
+
13
−
1
View file @
edc2c36f
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'
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment