Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
L
leak analysis
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD 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
vaclab
leak analysis
Commits
fc56fad2
Commit
fc56fad2
authored
1 year ago
by
Ute Becker
Browse files
Options
Downloads
Patches
Plain Diff
Auswerteprogramme TL1 und TL2
parent
76a13d06
No related branches found
No related tags found
No related merge requests found
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
API-V2-elab.py
+232
-0
232 additions, 0 deletions
API-V2-elab.py
file-to-couchdb_tl2.py
+146
-0
146 additions, 0 deletions
file-to-couchdb_tl2.py
writeLaTeX-ks-TL2.py
+484
-0
484 additions, 0 deletions
writeLaTeX-ks-TL2.py
with
862 additions
and
0 deletions
API-V2-elab.py
0 → 100644
+
232
−
0
View file @
fc56fad2
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 5 09:51:18 2023
@author: becker07
"""
#!/usr/bin/env python
import
os
import
time
import
datetime
import
elabapi_python
from
elabapi_python.rest
import
ApiException
import
requests
import
json
import
couchdb
import
numpy
as
np
from
urllib3.exceptions
import
InsecureRequestWarning
from
urllib3
import
disable_warnings
couch
=
couchdb
.
Server
(
'
http://a73434.berlin.ptb.de:5984
'
)
db
=
couch
[
'
vl_db
'
]
# existing
#########################
# CONFIG #
#########################
API_HOST_URL
=
'
https://elabftw.ptb.de/api/v2
'
# replace with your api key
API_KEY
=
'
a2c6b77fdd5b19b35b3043dbfd5ac73883c4265ab210a3672037ace64a6207cfa4231a0a834ed30c19be8
'
# number of days to look back
#########################
# END CONFIG #
#########################
# Configure the api client
configuration
=
elabapi_python
.
Configuration
()
configuration
.
api_key
[
'
api_key
'
]
=
API_KEY
configuration
.
api_key_prefix
[
'
api_key
'
]
=
'
Authorization
'
configuration
.
host
=
API_HOST_URL
configuration
.
debug
=
False
configuration
.
verify_ssl
=
True
# create an instance of the API class
api_client
=
elabapi_python
.
ApiClient
(
configuration
)
# fix issue with Authorization header not being properly set by the generated lib
api_client
.
set_default_header
(
header_name
=
'
Authorization
'
,
header_value
=
API_KEY
)
# create an instance of Experiments
experimentsApi
=
elabapi_python
.
ExperimentsApi
(
api_client
)
uploadsApi
=
elabapi_python
.
UploadsApi
(
api_client
)
# create an instance of Tags
api_instance
=
elabapi_python
.
TagsApi
(
api_client
)
# calculate the date
today
=
datetime
.
date
.
today
()
########
elab_id
=
640
cers
=
[
"
75562_0001
"
,
"
75563_0001
"
,
"
75564_0001
"
,
"
75565_0001
"
,
"
75566_0001
"
,
"
75567_0001
"
,
"
75568_0001
"
,
"
75569_0001
"
,
"
75570_0001
"
,
"
75571_0001
"
,
"
75572_0001
"
,
"
75573_0001
"
]
# Beispiel: cers = ["75511_0001","75512_0001"]
TL1_2
=
"
FM1
"
#### FM1 oder TLA
year
=
"
2024
"
kk
=
"
KK
"
commentar
=
''
################################
# get experiment with ID xxxx
exp
=
experimentsApi
.
get_experiment
(
elab_id
)
print
(
'
=
'
*
72
)
print
(
'
\n
******** Experiment {} (Original):
\n
'
.
format
(
elab_id
),
exp
)
print
(
'
\n
******** Experiment-Body
'
,
exp
.
body
)
print
(
'
\n
******** Experiment-Tags
'
,
exp
.
userid
)
print
(
'
=
'
*
72
)
#################################
if
kk
==
"
KK
"
:
type_k
=
"
-kk-
"
tag_type
=
"
KK
"
#################################
if
TL1_2
==
"
TLA
"
:
tl
=
"
-tl2
"
json_file
=
"
cal-
"
+
year
+
tl
+
type_k
+
cers
[
0
]
print
(
json_file
)
doc
=
db
.
get
(
json_file
)
STD1
=
"
TLA
"
STD2
=
"
TL2
"
tab_begin
=
'
</p><table style=
"
border-collapse:collapse;width:100%;height:100%;
"
><tr style=
"
height:16px;
"
><td style=
"
width:33.3222%;height:16px;
"
>DB-Link</td><td style=
"
width:33.3222%;height:16px;
"
>p-upstream</td><td style=
"
width:33.3222%;height:16px;
"
>Gas</td></tr>
'
else
:
tl
=
"
-fm1
"
json_file
=
"
cal-
"
+
year
+
tl
+
type_k
+
cers
[
0
]
print
(
json_file
)
doc
=
db
.
get
(
json_file
)
Type_k
=
(
doc
[
"
Calibration
"
][
"
Type
"
])
STD1
=
"
TLV
"
STD2
=
"
FM1
"
tab_begin
=
'
</p><table style=
"
border-collapse:collapse;width:100%;height:100%;
"
><tr style=
"
height:16px;
"
><td style=
"
width:33.3222%;height:16px;
"
>DB-Link</td><td style=
"
width:33.3222%;height:16px;
"
>Ventil</td><td style=
"
width:33.3222%;height:16px;
"
>Gas</td></tr>
'
# Die Überschrift wird zusammengesetzt
title1
=
doc
[
"
Calibration
"
][
"
Customer
"
][
"
Sign
"
]
body_title
=
STD1
+
'
/
'
+
STD2
+
'
Kalibrierung [
'
+
title1
+
'
]
'
# Die Tabelle wird zusammengesetzt
body_begin
=
'
<p>
'
#tab_begin=' </p><table style="border-collapse:collapse;width:100%;height:100%;"><tr style="height:16px;"><td style="width:33.3222%;height:16px;">DB-Link</td><td style="width:33.3222%;height:16px;">p-upstream</td><td style="width:33.3222%;height:16px;">Gas</td></tr>'
text1
=
'
<tr style=
"
height:16px;
"
><td style=
"
width:33.3222%;height:16px;
"
><a href=
"
http://a73434.berlin.ptb.de:5984/_utils/#database/vl_db/
'
text1_1
=
'
tl2
'
text1_2
=
'
-
'
text1_3
=
'
kk
'
text1_4
=
'
-
'
text2
=
'"
target=
"
_blank
"
rel=
"
noreferrer noopener
"
>cal-
'
text3
=
'
</a></td><td style=
"
width:33.3222%;height:16px;
"
>
'
text4
=
'
</td><td style=
"
width:33.3222%;height:16px;
"
>
'
text5
=
'
</td></tr>
'
tab_end
=
'
</table><p> </p><p> </p>
'
# Die Tags werden zusammengesetzt
json_file_tag
=
"
cal-
"
+
year
+
tl
+
type_k
+
cers
[
0
]
doc_tag
=
db
.
get
(
json_file_tag
)
ReferenceNo
=
doc_tag
[
"
Calibration
"
][
"
Presettings
"
][
"
CommonReferenceNo
"
]
print
(
'
stopp
'
)
Type_k
=
(
doc_tag
[
"
Calibration
"
][
"
Type
"
])
CustomerSign
=
(
doc_tag
[
"
Calibration
"
][
"
Customer
"
][
"
Sign
"
])
len_cers
=
len
(
cers
)
val
=
""
size
=
len_cers
tab_body
=
[
val
]
*
size
p_up
=
[
val
]
*
size
gas
=
[
val
]
*
size
vent
=
[
val
]
*
size
print
(
'
111111111
'
,
tab_body
)
if
TL1_2
==
'
TLA
'
:
i
=
0
while
i
<
len
(
cers
):
json_file
=
"
cal-
"
+
year
+
tl
+
type_k
+
cers
[
i
]
print
(
json_file
)
doc
=
db
.
get
(
json_file
)
p_up
[
i
]
=
doc
[
"
Calibration
"
][
"
Result
"
][
"
Formula
"
][
"
PressureUpstream
"
]
gas
[
i
]
=
doc
[
"
Calibration
"
][
"
ToDo
"
][
"
Gas
"
]
body
=
text1
+
json_file
+
text2
+
year
+
tl
+
type_k
+
cers
[
i
]
+
text3
+
p_up
[
i
]
+
text4
+
gas
[
i
]
+
text5
tab_body
[
i
]
=
body
p_up
[
i
]
=
np
.
array
(
doc
[
"
Calibration
"
][
"
Result
"
][
"
Formula
"
][
"
PressureUpstream
"
])
i
+=
1
else
:
i
=
0
while
i
<
len
(
cers
):
json_file
=
"
cal-
"
+
year
+
tl
+
type_k
+
cers
[
i
]
print
(
json_file
)
x
=
cers
[
i
][:
5
]
doc
=
db
.
get
(
json_file
)
name_plot
=
"
Scan_
"
+
x
+
"
.pdf
"
file_plot
=
'
C:/Users/becker07/python/TL1/
'
+
name_plot
name_Scan_json
=
"
Scan
"
+
x
+
"
.pdf
"
file_json
=
'
C:/Users/becker07/python/TL1/
'
+
name_Scan_json
attachment
=
db
.
get_attachment
(
doc
,
"
Scan.pdf
"
).
read
()
with
open
(
file_json
,
'
wb
'
)
as
pdf_object
:
pdf_object
.
write
(
attachment
)
uploadsApi
.
post_upload
(
'
experiments
'
,
elab_id
,
file
=
file_json
,
comment
=
'
Plot: Signal und Offset vom Leck
'
)
os
.
remove
(
file_json
)
gas
[
i
]
=
doc
[
"
Calibration
"
][
"
ToDo
"
][
"
Gas
"
]
vent
[
i
]
=
doc
[
"
Calibration
"
][
"
Result
"
][
"
Formula
"
][
"
Valve
"
]
body
=
text1
+
json_file
+
text2
+
year
+
tl
+
type_k
+
cers
[
i
]
+
text3
+
vent
[
i
]
+
text4
+
gas
[
i
]
+
text5
tab_body
[
i
]
=
body
i
+=
1
text_all
=
''
.
join
(
tab_body
)
body_tab
=
body_begin
+
commentar
+
tab_begin
+
text_all
+
tab_end
now
=
datetime
.
datetime
.
now
()
#new_body='<p>Neu von UteXX x({})</p>'.format(now.strftime('%Y-%m-%d %H:%M:%S'))
data_body
=
{
'
body
'
:
body_tab
}
data_title
=
{
'
title
'
:
body_title
}
print
(
'
elab_id=
'
,
elab_id
)
# === Modifizieren der Einträge (hier Eintrag "body") ===
response_body
=
experimentsApi
.
patch_experiment
(
elab_id
,
body
=
data_body
)
response_title
=
experimentsApi
.
patch_experiment
(
elab_id
,
body
=
data_title
)
data_tag
=
{
'
tag
'
:
ReferenceNo
}
response_tag
=
api_instance
.
post_tag
(
'
experiments
'
,
elab_id
,
body
=
data_tag
)
data_tag
=
{
'
tag
'
:
Type_k
}
response_tag
=
api_instance
.
post_tag
(
'
experiments
'
,
elab_id
,
body
=
data_tag
)
data_tag
=
{
'
tag
'
:
STD1
}
response_tag
=
api_instance
.
post_tag
(
'
experiments
'
,
elab_id
,
body
=
data_tag
)
data_tag
=
{
'
tag
'
:
STD2
}
response_tag
=
api_instance
.
post_tag
(
'
experiments
'
,
elab_id
,
body
=
data_tag
)
data_tag
=
{
'
tag
'
:
CustomerSign
}
response_tag
=
api_instance
.
post_tag
(
'
experiments
'
,
elab_id
,
body
=
data_tag
)
#response = experimentsApi.patch_experiment(elab_id, tags=new_tags)
print
(
'
=
'
*
72
)
# === der modifizierte Zustand ===
print
(
'
\n
******** Experiment {} (modifiziert):
\n
'
.
format
(
elab_id
),
response_body
)
print
(
'
=
'
*
72
)
This diff is collapsed.
Click to expand it.
file-to-couchdb_tl2.py
0 → 100644
+
146
−
0
View file @
fc56fad2
# -*- coding: utf-8 -*-
"""
Created on Fri Jul 1 12:12:37 2022
@author: becker07
"""
from
matplotlib
import
pyplot
as
plt
from
statistics
import
mean
from
datetime
import
datetime
from
IPython.display
import
Markdown
as
md
import
numpy
as
np
import
math
import
statistics
import
pandas
as
pd
import
json
import
couchdb
couch
=
couchdb
.
Server
(
'
http://a73434.berlin.ptb.de:5984
'
)
db
=
couch
[
'
vl_db
'
]
# existing
## Eingabe von:
# - Kalibrierscheinnummer
# - Jahr der Kalibrierung
# - laufende Nummer der Kalibrierung
cal_cert
=
"
75552
"
year
=
"
2024
"
no
=
"
0001
"
json_file
=
"
cal-
"
+
year
+
"
-tl2-kk-
"
+
cal_cert
+
"
_
"
+
no
doc
=
db
.
get
(
json_file
)
# Die Daten aus dem File mit der entsprechenden Kalibrierscheinnummer werden eingelesen:
# datum, time, p_up und alle Temperaturen,
datei
=
cal_cert
+
"
PTB
"
+
year
datei_S
=
cal_cert
+
"
PTB
"
+
year
+
"
_S
"
print
(
json_file
)
datei_pkt
=
pd
.
read_csv
(
datei
,
sep
=
"
\t
"
,
decimal
=
'
,
'
)
datei_S_pkt
=
pd
.
read_csv
(
datei_S
,
sep
=
"
\t
"
,
decimal
=
'
,
'
)
datum
=
datei_pkt
[
"
Datum
"
]
time
=
datei_pkt
[
"
Zeit
"
]
p_up
=
datei_pkt
[
"
Druck
"
]
p_up
=
np
.
array
(
p_up
)
p_up
=
np
.
asarray
(
p_up
,
dtype
=
float
)
q_tab
=
datei_pkt
[
"
q_mol
"
]
T_room
=
datei_pkt
[
"
Raumtemperatur
"
]
T_h2o
=
datei_pkt
[
"
T-H2O
"
]
T_wv
=
datei_pkt
[
"
T-WV
"
]
T_tl
=
datei_pkt
[
"
T-TL
"
]
T_rv
=
datei_pkt
[
"
T-RV
"
]
p_atm
=
datei_pkt
[
"
Umgebungsdruck p_0
"
]
*
100
# Umrechnung in Pa
m_sz
=
datei_pkt
[
"
m-SZ
"
]
m1_drift
=
datei_pkt
[
"
m1_D
"
]
m2_drift
=
datei_pkt
[
"
m2_D
"
]
print
(
p_atm
)
# Die Werte der Sägezähne befinden sich im File "Kalibrierscheinnummer_S".
# Da pro Messpunkt 2 Sägezähne gefahren werden, existieren auch für jeden Messpunkt
# jeweils zwei Zeiten t_i und zwei Hübe l_1
l_1
=
datei_S_pkt
[
"
pos1_i
"
]
l_2
=
datei_S_pkt
[
"
pos2_i
"
]
l_pos
=
l_1
-
l_2
l_i
=
datei_S_pkt
[
"
h_i
"
]
t_i
=
datei_S_pkt
[
"
t_i
"
]
# Im File Datei_S sind die einzelnen Hübe l_i der Nadel in einer Spalte gespeichert, der Hub l
# muss daher in Hub l_1 und l_2 aufgegliedert werden, da in der Regel 2 Sägezähne gefahren werden.
l_1
=
l_pos
[
0
::
2
]
# Begonnen wird in der Spalte beim Element 0 bis zum Ende der Spalte in zweier Schritte
l_2
=
l_pos
[
1
::
2
]
# Begonnen wird in der Spalte beim Element 1 bis zum Ende der Spalte in zweier Schritte
#l_1=np.genfromtxt(datei_S,skip_header=1,usecols=(2)) #### wenn nur 1 SZ vorhanden
# Das gleiche gilt für die Zeit t_i
t_1
=
t_i
[
0
::
2
]
# Begonnen wird in der Spalte beim Element 0 bis zum Ende der Spalte in zweier Schritte
t_2
=
t_i
[
1
::
2
]
# Begonnen wird in der Spalte beim Element 1 bis zum Ende der Spalte in zweier Schritte
#t_1=np.genfromtxt(datei_S,skip_header=1,usecols=(3))#### wenn nur 1 SZ vorhanden
# Temperatur
lis_T_h2o
=
T_h2o
.
tolist
()
lis_T_room
=
T_room
.
tolist
()
lis_T_tl
=
T_tl
.
tolist
()
lis_T_wv
=
T_wv
.
tolist
()
lis_T_rv
=
T_rv
.
tolist
()
# Druck
lis_p_atm
=
p_atm
.
tolist
()
lis_p_up
=
p_up
.
tolist
()
# Drift
lis_m1_drift
=
m1_drift
.
tolist
()
lis_m2_drift
=
m2_drift
.
tolist
()
lis_m_sz
=
m_sz
.
tolist
()
# Datum
lis_date
=
datum
.
tolist
()
lis_dtime
=
time
.
tolist
()
lis_l1
=
l_1
.
tolist
()
lis_l2
=
l_2
.
tolist
()
lis_t1
=
t_1
.
tolist
()
lis_t2
=
t_2
.
tolist
()
print
(
lis_l1
,
lis_l2
,
lis_t1
,
lis_t2
)
datum_meas
=
lis_date
[
0
:
1
]
print
(
lis_T_room
)
doc
[
"
Calibration
"
][
"
Measurement
"
][
"
Values
"
]
=
{
"
Temperature
"
:
[{
"
Unit
"
:
"
C
"
,
"
Type
"
:
"
T-H2O
"
,
"
Comment
"
:
"
Temperatur T
"
,
"
Value
"
:
lis_T_h2o
},
{
"
Unit
"
:
"
C
"
,
"
Type
"
:
"
T-Room
"
,
"
Comment
"
:
"
Temperatur T
"
,
"
Value
"
:
lis_T_room
},
{
"
Unit
"
:
"
C
"
,
"
Type
"
:
"
T-TL
"
,
"
Comment
"
:
"
Temperatur T
"
,
"
Value
"
:
lis_T_tl
},
{
"
Unit
"
:
"
C
"
,
"
Type
"
:
"
T-WV
"
,
"
Comment
"
:
"
Temperatur T
"
,
"
Value
"
:
lis_T_wv
},
{
"
Unit
"
:
"
C
"
,
"
Type
"
:
"
T-RV
"
,
"
Comment
"
:
"
Temperatur T
"
,
"
Value
"
:
lis_T_rv
}],
"
Pressure
"
:
[{
"
Unit
"
:
"
mbar
"
,
"
Type
"
:
"
Atmosparic pressure
"
,
"
Value
"
:
lis_p_atm
},
{
"
Unit
"
:
"
bar
"
,
"
Type
"
:
"
Upstream pressure
"
,
"
Value
"
:
lis_p_up
}],
"
Time
"
:
[{
"
Unit
"
:
"
s
"
,
"
Type
"
:
"
Zeit des ersten Sägezahns
"
,
"
Value
"
:
lis_t1
},
{
"
Unit
"
:
"
s
"
,
"
Type
"
:
"
Zeit des zweiten Sägezahns
"
,
"
Value
"
:
lis_t2
}],
"
L
"
:
[{
"
Unit
"
:
"
mm
"
,
"
Type
"
:
"
Hub des ersten Sägezahns
"
,
"
Value
"
:
lis_l1
},
{
"
Unit
"
:
"
mm
"
,
"
Type
"
:
"
Hub des zweiten Sägezahns
"
,
"
Value
"
:
lis_l2
}],
"
Drift
"
:
[{
"
Unit
"
:
"
mbar/s
"
,
"
Type
"
:
"
Steigung des Sägezahns
"
,
"
Value
"
:
lis_m_sz
},
{
"
Unit
"
:
"
mbar/s
"
,
"
Type
"
:
"
Drift des ersten Sägezahns
"
,
"
Value
"
:
lis_m1_drift
},
{
"
Unit
"
:
"
mbar/s
"
,
"
Type
"
:
"
Drift des zweiten Sägezahns
"
,
"
Value
"
:
lis_m2_drift
}],
"
DateTime
"
:
[{
"
Unit
"
:
"
yyyy-mm-dd
"
,
"
Type
"
:
"
Date
"
,
"
Value
"
:
lis_date
},
{
"
Unit
"
:
"
hh:mm
"
,
"
Type
"
:
"
Time
"
,
"
Value
"
:
lis_dtime
}]}
doc
[
"
Calibration
"
][
"
Measurement
"
][
"
Date
"
]
=
[{
"
Type
"
:
"
measurement
"
,
"
Value
"
:
datum_meas
}]
db
.
save
(
doc
)
This diff is collapsed.
Click to expand it.
writeLaTeX-ks-TL2.py
0 → 100644
+
484
−
0
View file @
fc56fad2
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