Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solvers-acuk-m
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Takhir Fakhrutdinov
solvers-acuk-m
Commits
54c7c2c8
Commit
54c7c2c8
authored
Oct 07, 2022
by
Takhir Fakhrutdinov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Добавили просмотренные локальные зоны
parent
197b3184
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
208 additions
and
5 deletions
+208
-5
frames_20221005_030409_3.json
fte/lib/libpy/data/frames_20221005_030409_3.json
+1
-0
fileFactory.py
fte/lib/libpy/fileFactory.py
+69
-0
lczFile.py
fte/lib/libpy/lczFile.py
+83
-0
msFile.py
fte/lib/libpy/msFile.py
+2
-2
eopfile.py
fte/lib/libpy/parsers/eopfile.py
+1
-1
xFile.py
fte/lib/libpy/xFile.py
+2
-2
test_json.py
fte/loader/test/test_json.py
+50
-0
No files found.
fte/lib/libpy/data/frames_20221005_030409_3.json
0 → 100644
View file @
54c7c2c8
This diff is collapsed.
Click to expand it.
fte/lib/libpy/fileFactory.py
View file @
54c7c2c8
...
...
@@ -186,6 +186,10 @@ def _create_tleFile():
from
.tleFile
import
tleFile
return
tleFile
def
_create_lczFile
():
from
.lczFile
import
lczFile
return
lczFile
factory
=
Factory_t
()
factory
.
register_file
(
'TC'
,
_create_tcFile
,
pattern
=
re
.
compile
(
r"^TC(MSM|12406)\.\d+"
,
re
.
U
))
...
...
@@ -342,3 +346,68 @@ req = {
"required"
:
[
"TaskNum"
,
"Id"
,
"Directive"
]
}
factory
.
register_file
(
'RQ'
,
_create_reqFile
,
schema
=
req
)
frame
=
{
"type"
:
"array"
,
"items"
:
{
"allOf"
:
[
{
"type"
:
"object"
,
"required"
:
[
"header"
,
"frames"
],
"properties"
:
{
"header"
:
{
"type"
:
"object"
,
"required"
:
[
"originator"
,
"message_type"
,
"message_id"
],
"properties"
:
{
"originator"
:
{
"type"
:
"string"
},
"message_type"
:
{
"type"
:
"string"
,
"enum"
:[
"frames"
]},
"message_id"
:
{
"type"
:
"string"
}
}
},
"frames"
:
{
"type"
:
"array"
,
"items"
:
{
"allOf"
:[
{
"type"
:
"object"
,
"required"
:
[
"siteid"
,
"nightid"
,
"filename"
,
"exp_num"
,
"obstime"
,
"crops"
,
"ast_ra_j2000"
,
"ast_dec_j2000"
,
"ast_rms_ra"
,
"ast_rms_dec"
,
"ast_orientation"
,
"limmag"
,
"limmag_error"
,
"phot_zero_error"
,
"phot_zero"
,
"sky_level"
,
"seeing"
],
"properties"
:
{
"siteid"
:
{
"$ref"
:
"#/$defs/integer"
},
"nightid"
:
{
"$ref"
:
"#/$defs/integer"
},
"filename"
:
{
"type"
:
"string"
},
"exp_num"
:
{
"type"
:
"integer"
},
"obstime"
:
{
"$ref"
:
"#/$defs/datetime"
},
"crops"
:
{
"$ref"
:
"#/$defs/base64"
},
"ast_ra_j2000"
:
{
"$ref"
:
"#/$defs/number"
},
"ast_dec_j2000"
:
{
"$ref"
:
"#/$defs/number"
},
"ast_rms_ra"
:
{
"$ref"
:
"#/$defs/number"
},
"ast_rms_dec"
:
{
"$ref"
:
"#/$defs/number"
},
"ast_orientation"
:
{
"$ref"
:
"#/$defs/number"
},
"limmag"
:
{
"$ref"
:
"#/$defs/number"
},
"limmag_error"
:
{
"$ref"
:
"#/$defs/number"
},
"phot_zero_error"
:
{
"$ref"
:
"#/$defs/number"
},
"phot_zero"
:
{
"$ref"
:
"#/$defs/number"
},
"sky_level"
:
{
"$ref"
:
"#/$defs/number"
},
"seeing"
:
{
"$ref"
:
"#/$defs/number"
}
}
}
]
}
}
}
}
]
},
"$defs"
:
{
"datetime"
:
{
"type"
:
"string"
,
"pattern"
:
"^
\\
d{2}
\\
/
\\
d{2}
\\
/
\\
d{4}
\\
s
\\
d{2}
\\
:
\\
d{2}
\\
:
\\
d{2}(
\\
.
\\
d+)?$"
},
"integer"
:
{
"type"
:
"string"
,
"pattern"
:
"^[-+]?
\\
d+$"
},
"number"
:
{
"type"
:
"string"
,
"pattern"
:
"^[-+]?[0-9]*
\\
.?[0-9]+([eE][-+]?[0-9]+)?$"
},
"base64"
:
{
"type"
:
"string"
,
"pattern"
:
"^(?=(.{4})*$)[A-Za-z0-9+
\\
/]*={0,2}$"
}
}
}
factory
.
register_file
(
'LCZ'
,
_create_lczFile
,
schema
=
frame
)
fte/lib/libpy/lczFile.py
0 → 100644
View file @
54c7c2c8
# -*- coding: utf-8 -*-
from
.xFile
import
baseFile
import
logging
import
json
import
io
logger
=
logging
.
getLogger
(
''
)
class
lczFile
(
baseFile
):
""" Загрузка файла просмотра локальных зон.
"""
def
__init__
(
self
,
*
args
,
**
kwargs
):
""" Конструктор.
.. literalinclude:: ../../../../fte/lib/libpy/reqFile.py
:language: python
:lines: 13,22-28
:linenos:
:caption: __init__
"""
super
()
.
__init__
(
*
args
,
**
kwargs
)
self
.
dbtype
=
'lcz'
self
.
tbeg
,
self
.
tend
,
self
.
log
=
datetime
.
max
,
datetime
.
min
,
io
.
StringIO
()
async
def
process_data
(
self
,
data
):
import
base64
from
datetime
import
datetime
from
collections
import
namedtuple
real
=
lambda
x
:
round
(
float
(
x
),
6
)
nighttime
=
lambda
x
:
datetime
.
strptime
(
x
,
'
%
Y
%
m
%
d'
)
timestamp
=
lambda
x
:
datetime
.
strptime
(
x
,
'
%
d/
%
m/
%
Y
%
H:
%
M:
%
S.
%
f'
)
rec_list
=
{
"siteid"
:
int
,
"nightid"
:
nighttime
,
"filename"
:
str
,
"obstime"
:
timestamp
,
"crops"
:
str
,}
frame_list
=
{
"ast_ra_j2000"
:
real
,
"ast_dec_j2000"
:
real
,
"ast_rms_ra"
:
real
,
"ast_rms_dec"
:
real
,
"ast_orientation"
:
real
,
"limmag"
:
real
,
"limmag_error"
:
real
,
"phot_zero_error"
:
real
,
"phot_zero"
:
real
,
"sky_level"
:
real
,
"seeing"
:
real
,
"exp_num"
:
int
,
}
devs
,
tb
,
te
,
nights
=
set
(),
datetime
.
max
,
datetime
.
min
,
set
()
for
ms
in
data
:
for
r
in
ms
[
'frames'
]:
frame
=
{
k
:
f
(
r
[
k
])
for
k
,
f
in
frame_list
.
items
()
if
k
in
r
and
r
.
get
(
k
)
is
not
None
}
_
=
{
k
:
f
(
r
[
k
])
for
k
,
f
in
rec_list
.
items
()
if
k
in
r
}
rec
=
namedtuple
(
'rec_t'
,
_
.
keys
())(
**
_
)
crops
=
r'\x
%
s'
%
base64
.
b64decode
(
rec
.
crops
)
.
hex
()
if
rec
.
night
not
in
nights
:
await
self
.
execute
(
"select * from template.partition_table('xd.t_localzone'::regclass,$1)"
,
rec
.
night
)
nights
.
add
(
rec
.
night
)
dev
=
await
self
.
fetchval
(
"""
insert into xd.t_localzone(night,dev,fn,fid,tm,frame,crops)
values ($1,main.devget_devid($2,$1::date),$3,$4,$5,$6,$7)
on conflict(dev,night,fn) do update
set (fid,tm,frame,crops) = (excluded.fid,excluded.tm,excluded.frame,excluded.crops)
returning dev
"""
,
rec
.
night
,
rec
.
siteid
,
rec
.
filename
,
self
.
fid
,
rec
.
osbtime
,
json
.
dumps
(
frame
),
crops
)
devs
.
add
(
dev
)
tb
,
te
=
max
(
tb
,
rec
.
osbtime
),
min
(
te
,
rec
.
osbtime
)
self
.
devs
,
self
.
tbeg
,
self
.
tend
=
list
(
devs
),
tb
,
te
async
def
load
(
self
,
fd
,
args
):
""" Метод. Загрузка файла.
.. literalinclude:: ../../../../fte/lib/libpy/weaFile.py
:language: python
:lines: 27,36-
:linenos:
:caption: load_data
"""
logger
.
info
(
'Загрузка файла...'
)
await
super
()
.
load
(
fd
,
args
)
data
=
json
.
load
(
fd
)
self
.
fid
=
await
self
.
getfid
()
async
with
self
.
transaction
():
await
self
.
process_data
(
data
)
await
self
.
create_doc
()
fte/lib/libpy/msFile.py
View file @
54c7c2c8
...
...
@@ -56,7 +56,7 @@ class msFile(measFile):
# сохраняем имена файлов
async
with
self
.
transaction
():
await
self
.
execute
(
"""
insert into xd.t_
nfstank
(dev,night,fn)
insert into xd.t_
localzone
(dev,night,fn)
select $1,$2,fn
from unnest($3::text[]) fn
on conflict do nothing
...
...
@@ -68,7 +68,7 @@ class msFile(measFile):
from unnest($3::text[]) with ordinality v(fn,rn)
)
select array_agg(foid order by rn)
from xd.t_
nfstank
join sf using(dev,night,fn)
from xd.t_
localzone
join sf using(dev,night,fn)
"""
,
dev
,
night
,
t
.
files
)
_
=
list
()
...
...
fte/lib/libpy/parsers/eopfile.py
View file @
54c7c2c8
...
...
@@ -8,7 +8,7 @@ from collections import namedtuple
logger
=
logging
.
getLogger
()
real
=
lambda
x
:
round
(
float
(
x
),
6
)
real
=
lambda
x
:
round
(
float
(
x
),
6
)
track_list
=
{
'sigma'
:
real
,
'distrust'
:
bool
,
'fake'
:
bool
}
bind_list
=
{
'time'
:
real
,
'id'
:
int
,
'along'
:
real
,
'across'
:
real
,
'dmag'
:
real
}
meas_list
=
{
'ra_j2000'
:
float
,
'dec_j2000'
:
float
,
'mag'
:
float
,
'ra_j2000_full_error'
:
float
,
'dec_j2000_full_error'
:
float
,
'mag_error'
:
float
,}
...
...
fte/lib/libpy/xFile.py
View file @
54c7c2c8
...
...
@@ -258,8 +258,8 @@ class measFile(baseFile):
await
self
.
execute
(
"select * from template.partition_table('xd.t_binds'::regclass,$1)"
,
self
.
tend
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_trackextra'::regclass,$1)"
,
self
.
tbeg
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_trackextra'::regclass,$1)"
,
self
.
tend
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_
nfstank
'::regclass,$1)"
,
self
.
tbeg
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_
nfstank
'::regclass,$1)"
,
self
.
tend
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_
localzone
'::regclass,$1)"
,
self
.
tbeg
)
await
self
.
execute
(
"select * from template.partition_table('xd.t_
localzone
'::regclass,$1)"
,
self
.
tend
)
async
def
get_db_tracks_crc
(
self
,
dev
):
_crc
=
await
self
.
fetchval
(
"""
...
...
fte/loader/test/test_json.py
0 → 100755
View file @
54c7c2c8
#!/opt/local/bin/python
# -*- coding: utf-8 -*-
import
sys
import
os
import
io
import
logging
import
jsonschema
as
js
import
json
if
__name__
==
'__main__'
:
import
logging.config
# load config from file
# logging.config.fileConfig('logging.ini', disable_existing_loggers=False)
# or, for dictConfig
logging
.
config
.
dictConfig
({
'version'
:
1
,
'disable_existing_loggers'
:
False
,
# this fixes the problem
'formatters'
:
{
'standard'
:
{
'format'
:
'
%(asctime)
s
%(levelname)
s:
%(module)
s:
%(lineno)
s:
%(message)
s'
,
'datefmt'
:
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
},
},
'handlers'
:
{
'default'
:
{
'level'
:
'DEBUG'
,
'formatter'
:
'standard'
,
'class'
:
'logging.StreamHandler'
,
},
},
'loggers'
:
{
''
:
{
'handlers'
:
[
'default'
],
'level'
:
'DEBUG'
,
'propagate'
:
True
}
}
})
logger
=
logging
.
getLogger
(
''
)
with
open
(
sys
.
argv
[
1
],
'r'
)
as
f
:
shema
=
json
.
load
(
f
)
js
.
validate
(
json
.
load
(
sys
.
stdin
),
shema
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment