Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
ArchiveExtractor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
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
DG
ArchiveExtractor
Commits
36b72d00
Commit
36b72d00
authored
1 year ago
by
Operateur
Browse files
Options
Downloads
Patches
Plain Diff
fix(README): update it
parent
458539e9
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+36
-69
36 additions, 69 deletions
README.md
with
36 additions
and
69 deletions
README.md
+
36
−
69
View file @
36b72d00
# pySoleilControl
# ArchiveExtractor
Useful python tools for SOLEIL control system.
The ultimate aim is to provide tools that can be used in a shell prompt, ipython prompt or in python applications (such as GUI).
Under construction, the first brick is a module to retrieve data from the Tango Archiver.
## ArchiveExtractor
This module brings some functions to extract data from HDB/TDB.
This module brings some functions to extract data from HDB/TDB.
## Quick example
Usage example, with an ipython prompt
Usage example, with an ipython prompt
```
python
```
python
In
[
1
]:
import
pySoleilControl.
ArchiveExtractor
as
AE
In
[
1
]:
import
ArchiveExtractor
as
AE
In
[
2
]:
# Looking for an attribute in HDB
In
[
2
]:
# Looking for an attribute in HDB
...:
AE
.
findattr
(
"
ans/dg/*dcct*
"
)
...:
AE
.
findattr
(
"
ans/dg/*dcct*
"
)
...
@@ -24,7 +18,7 @@ Out[2]:
...
@@ -24,7 +18,7 @@ Out[2]:
'
ANS/DG/DCCT-CTRL/lifeTimeErr
'
]
'
ANS/DG/DCCT-CTRL/lifeTimeErr
'
]
In
[
3
]:
# Get data between two dates, this return a pandas.Dataframe object
In
[
3
]:
# Get data between two dates, this return a pandas.Dataframe object
...:
AE
.
E
xtr
BetweenDates
(
'
ANS/DG/DCCT-CTRL/current
'
,
'
2021-12-13
'
,
'
2021-12-13-12:00
'
)
...:
AE
.
e
xtr
act
(
'
ANS/DG/DCCT-CTRL/current
'
,
'
2021-12-13
'
,
'
2021-12-13-12:00
'
)
INFO
:
Perform
ExtractBetweenDates
(
ans
/
dg
/
dcct
-
ctrl
/
current
,
2021
-
12
-
13
00
:
00
:
00
,
2021
-
12
-
13
12
:
00
:
00
)
INFO
:
Perform
ExtractBetweenDates
(
ans
/
dg
/
dcct
-
ctrl
/
current
,
2021
-
12
-
13
00
:
00
:
00
,
2021
-
12
-
13
12
:
00
:
00
)
Out
[
3
]:
Out
[
3
]:
2021
-
12
-
13
00
:
00
:
00
450.993568
2021
-
12
-
13
00
:
00
:
00
450.993568
...
@@ -40,75 +34,48 @@ Out[3]:
...
@@ -40,75 +34,48 @@ Out[3]:
2021
-
12
-
13
12
:
00
:
00
15.005410
2021
-
12
-
13
12
:
00
:
00
15.005410
Length
:
42725
,
dtype
:
float64
Length
:
42725
,
dtype
:
float64
In
[
4
]:
# Get min, max and mean with a 10 minute window
```
...:
d
=
AE
.
ExtrBetweenDates_MinMaxMean
(
'
ANS/DG/DCCT-CTRL/current
'
,
'
2021-12-13
'
,
'
2021-12-13-12:00
'
,
timeInterval
=
'
10m
'
)
## Main function help
In
[
5
]:
d
Out
[
5
]:
```
Min
Mean
Max
Signature: AE.extract(attr, date1, date2=None, method='nearest', db='H')
2021
-
12
-
13
00
:
05
:
00
449.762286
450.619654
451.617095
2021
-
12
-
13
00
:
15
:
00
449.761171
450.676306
451.595391
2021
-
12
-
13
00
:
25
:
00
449.764910
450.684333
451.606520
2021
-
12
-
13
00
:
35
:
00
449.766284
450.688881
451.655843
2021
-
12
-
13
00
:
45
:
00
449.766808
450.716444
451.678886
...
...
...
...
2021
-
12
-
13
11
:
15
:
00
15.435944
15.495834
15.552427
2021
-
12
-
13
11
:
25
:
00
15.325022
15.383286
15.437459
2021
-
12
-
13
11
:
35
:
00
15.214556
15.270340
15.326395
2021
-
12
-
13
11
:
45
:
00
15.106309
15.163566
15.219333
2021
-
12
-
13
11
:
55
:
00
15.003812
15.056515
15.110022
[
72
rows
x
3
columns
]
In
[
6
]:
# Activate inline matplotlib
...:
%
matplotlib
Using
matplotlib
backend
:
TkAgg
In
[
6
]:
# Simply plot
...:
d
.
plot
()
In
[
7
]:
# ipython prompt supports autocompletion. The doc of function can be quickly read by adding a '?'
...:
AE
.
ExtrBetweenDates
?
Signature
:
AE
.
ExtrBetweenDates
(
attribute
,
dateStart
,
dateStop
=
None
,
db
=
'
H
'
)
Docstring:
Docstring:
Query
attribute
data
from
an
archiver
database
,
get
all
points
between
dates
.
Access function to perform extraction between date1 and date2.
Use
ExtractBetweenDates
.
Can extract one or several attributes.
date1 and date2 can be both exact date, or one of two can be a time interval that will be taken relative to the other.
Parameters
----------
attribute
:
String
Name
of
the
attribute
.
Full
Tango
name
i
.
e
.
"
test/dg/panda/current
"
.
dateStart
:
datetime
.
datetime
,
string
Parameters:
Start
date
for
extraction
.
If
string
,
it
will
be
parsed
.
-----------
Example
of
string
format
%
Y
-%
m
-%
d
-%
H
:
%
M
:
%
S
or
less
precise
.
attr: string, list, dict
Attribute(s) to extract.
If string, extract the given attribute, returning a pandas.Series.
If list, extract attributes and return a list of pandas.Series.
If a dict, extract attributes and return a dict of pandas.Series with same keys.
date
Stop
:
datetime
.
datetime
,
string
,
None
date
1, date2: string,
datetime.datetime,
datetime.timedelta
, None
Stop
date
f
or
extraction
.
Exact
date
,
or
duration relative to date2
.
If string, it will be parsed.
If string, it will be parsed.
Example
of
string
format
%
Y
-%
m
-%
d
-%
H
:
%
M
:
%
S
or
less
precise
.
A start date can be given with string format '%Y-%m-%d-%H:%M:%S' or less precise (ie '2021-02', '2022-11-03' '2022-05-10-21:00'.i..).
If
None
,
it
takes
the
current
date
and
time
.
A duration can be given with string format 'Xu' where X is a number and u is a unit in ('m':minutes, 'h':hours, 'd':days, 'M':months)
Default
is
None
(
now
).
A datetime.datetime object or datetime.timedelta object will be used as is.
date2 can be None. In that case it is replaced by the current time.
method: str
Method of extraction
'nearest': Retrieve nearest value of date1, date2 is ignored.
'between': Retrive data between date1 and date2.
db: str
db: str
Which database to look in, 'H' or 'T'.
Which database to look in, 'H' or 'T'.
Exceptions
```
----------
ValueError
The
attribute
is
not
found
in
the
database
.
Returns
## For developpers
-------
[
date
,
value
]
:
array
date
:
numpy
.
ndarray
of
datetime
.
datime
objects
Dates
of
the
values
value
:
numpy
.
ndarray
Archived
values
File
:
~/
GrpDiagnostics
/
RBT
/
pySoleilControl
/
ArchiveExtractor
.
py
Type
:
function
### Contribute
There is a simple test directory with only a manual test scipt.
Please run and check it before proposing merge.
```
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