Skip to content

Commit 3276db5

Browse files
author
Pablo Vasconez
committed
chore(website): adding code to generate figures for CEMS website
1 parent d77c9de commit 3276db5

File tree

7 files changed

+125
-7
lines changed

7 files changed

+125
-7
lines changed

example/website.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import datetime
2+
import os
3+
from pathlib import Path
4+
5+
import matplotlib.pyplot as plt
6+
import requests_mock
7+
from nuclei.client import NucleiClient
8+
9+
from baec.measurements.io.zbase import measurements_from_zbase
10+
from baec.measurements.measured_settlement_series import MeasuredSettlementSeries
11+
from baec.model.fitcore import BASE_URL, FitCoreModelGenerator
12+
13+
dirpath = Path("example/website/")
14+
if not dirpath.exists():
15+
dirpath.mkdir(parents=True)
16+
17+
# # Connect to the Measurements database
18+
# database = BaseTimeBucket(
19+
# credentials=Credentials(),
20+
# s3bucket="my_bucket",
21+
# )
22+
23+
# # Request data for a given company, project and rod_id
24+
# measurement_series = database.make_settlement_rod_measurement_series(
25+
# company="my_company",
26+
# project="my_project",
27+
# rod_id="my_rod_id",
28+
# )
29+
30+
31+
# Create measurements from zbase csv file
32+
rod_id = "E990M"
33+
measurement_series = measurements_from_zbase(
34+
filepath_or_buffer=dirpath.joinpath("E990M.csv"), project_name="Example for website"
35+
)
36+
37+
# Visualize the measurements
38+
fig = measurement_series.plot_xyz_time()
39+
# fig.set_size_inches(18.75, 7.5)
40+
fig.set_size_inches(15, 10)
41+
plt.savefig(dirpath.joinpath(f"measurements_{rod_id}.png"))
42+
43+
44+
# Create settlement series from measurements
45+
settlement_series = MeasuredSettlementSeries(
46+
series=measurement_series,
47+
start_date_time=datetime.datetime(2015, 1, 18),
48+
)
49+
50+
# Visualize the settlements
51+
fig = settlement_series.plot_fill_settlement_time()
52+
fig.set_size_inches(15, 7.5)
53+
plt.savefig(dirpath.joinpath(f"settlements_{rod_id}.png"))
54+
55+
56+
# os.environ[
57+
# "NUCLEI_TOKEN"
58+
# ] = ##
59+
60+
# Fit a simple Koppejan model to the settlements
61+
model = FitCoreModelGenerator(
62+
series=settlement_series,
63+
client=NucleiClient(),
64+
)
65+
66+
fig = model.plot_fill_settlement_time()
67+
68+
fig.set_size_inches(15, 7.5)
69+
plt.savefig(dirpath.joinpath(f"model_fit_{rod_id}.png"))

example/website/E990M.csv

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
E990M,10/30/2014,0,-0.034,-2.034,-0.950,0.000,0.000,0.000,105939.239,449028.510
2+
E990M,11/5/2014,0,-0.066,-2.066,-0.998,0.032,-0.016,0.342,105939.190,449028.848
3+
E990M,11/13/2014,0,-0.066,-2.066,-0.994,0.032,-0.012,0.466,105939.472,449028.914
4+
E990M,11/21/2014,0,-0.103,-2.103,-1.018,0.069,0.001,0.549,105939.528,449028.977
5+
E990M,12/18/2014,0,-0.135,-2.135,-0.790,0.101,0.261,0.313,105939.270,449028.199
6+
E990M,1/7/2015,0,-0.155,-2.155,-0.861,0.121,0.210,0.171,105939.330,449028.365
7+
E990M,1/16/2015,0,1.795,-2.205,-0.557,0.171,0.564,0.124,105939.209,449028.390
8+
E990M,1/21/2015,0,1.736,-2.264,-0.608,0.230,0.572,0.520,105939.640,449028.179
9+
E990M,1/28/2015,1,1.503,-2.497,-0.036,0.463,1.377,0.477,105939.703,449028.400
10+
E990M,2/4/2015,1,3.207,-2.793,1.180,0.759,2.889,0.440,105939.512,449028.165
11+
E990M,2/11/2015,1,2.967,-3.033,0.923,0.999,2.872,0.461,105939.584,449028.204
12+
E990M,2/19/2015,1,2.871,-3.129,0.827,1.095,2.872,0.209,105939.338,449028.694
13+
E990M,2/27/2015,1,2.806,-3.194,0.730,1.160,2.840,0.347,105939.535,449028.692
14+
E990M,3/6/2015,1,2.725,-3.275,0.628,1.241,2.819,0.289,105939.405,449028.746
15+
E990M,3/13/2015,1,2.676,-3.324,0.577,1.290,2.817,0.544,105939.716,449028.772
16+
E990M,3/20/2015,1,2.627,-3.373,0.562,1.339,2.851,0.509,105939.608,449028.160
17+
E990M,3/27/2015,1,2.594,-3.406,0.503,1.372,2.825,0.295,105939.405,449028.754
18+
E990M,4/3/2015,1,2.564,-3.436,0.511,1.402,2.863,0.458,105939.602,449028.230
19+
E990M,4/10/2015,1,2.528,-3.472,0.461,1.438,2.849,0.275,105939.345,449028.764
20+
E990M,5/1/2015,1,2.468,-3.532,0.404,1.498,2.852,0.152,105939.343,449028.399
21+
E990M,5/12/2015,1,2.419,-3.581,0.385,1.547,2.882,0.291,105939.520,449028.436
22+
E990M,5/23/2015,1,2.394,-3.606,0.374,1.572,2.896,0.248,105939.444,449028.370
23+
E990M,5/28/2015,1,2.370,-3.630,0.831,1.596,3.377,0.170,105939.404,449028.468
24+
E990M,6/2/2015,1,2.342,-3.658,0.787,1.624,3.361,0.164,105939.397,449028.467
25+
E990M,6/10/2015,1,2.308,-3.692,0.776,1.658,3.384,0.156,105939.395,449028.503
26+
E990M,6/17/2015,1,2.276,-3.724,0.726,1.690,3.366,0.146,105939.384,449028.494
27+
E990M,6/23/2015,1,2.248,-3.752,0.731,1.718,3.399,0.137,105939.371,449028.475
28+
E990M,7/3/2015,1,2.223,-3.777,0.761,1.743,3.454,0.200,105939.430,449028.451
29+
E990M,7/13/2015,1,2.191,-3.809,0.705,1.775,3.430,0.124,105939.342,449028.579
30+
E990M,7/23/2015,1,2.164,-3.836,0.659,1.802,3.411,0.114,105939.350,449028.534
31+
E990M,7/30/2015,1,2.148,-3.852,0.683,1.818,3.451,0.131,105939.366,449028.544
32+
E990M,8/14/2015,1,2.109,-3.891,0.637,1.857,3.444,0.126,105939.352,449028.566
33+
E990M,8/20/2015,1,2.115,-3.885,0.652,1.851,3.453,0.130,105939.363,449028.549
34+
E990M,8/26/2015,1,2.112,-3.888,0.696,1.854,3.500,0.119,105939.349,449028.556
35+
E990M,9/8/2015,1,2.082,-3.918,0.583,1.884,3.417,0.138,105939.356,449028.584
36+
E990M,9/15/2015,1,2.064,-3.936,0.584,1.902,3.436,0.103,105939.337,449028.542
37+
E990M,9/22/2015,1,2.045,-3.955,0.611,1.921,3.482,0.114,105939.342,449028.558
38+
E990M,9/29/2015,1,2.039,-3.961,0.616,1.927,3.493,0.122,105939.349,449028.563
39+
E990M,10/6/2015,1,2.025,-3.975,0.568,1.941,3.459,0.113,105939.341,449028.559
40+
E990M,10/13/2015,1,2.013,-3.987,0.582,1.953,3.485,0.128,105939.353,449028.569
41+
E990M,10/22/2015,1,2.014,-3.986,0.510,1.952,3.412,0.164,105939.329,449028.647
42+
E990M,10/28/2015,1,2.001,-3.999,0.485,1.965,3.400,0.043,105939.256,449028.550
43+
E990M,11/5/2015,1,2.000,-4.000,0.459,1.966,3.375,0.040,105939.253,449028.547
44+
E990M,11/9/2015,1,1.981,-4.019,0.434,1.985,3.369,0.060,105939.221,449028.567
45+
E990M,11/10/2015,1,2.008,-3.992,0.433,1.958,3.341,0.155,105939.295,449028.654
46+
E990M,11/16/2015,1,1.972,-4.028,0.395,1.994,3.339,0.106,105939.199,449028.608
47+
E990M,11/25/2015,1,1.955,-4.045,0.389,2.011,3.350,0.193,105939.204,449028.700
105 KB
Loading

example/website/model_fit_E990M.png

101 KB
Loading
81.6 KB
Loading

example/website/settlements_E990M.png

76.2 KB
Loading

src/baec/model/fitcore.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -341,25 +341,27 @@ def plot_fill_settlement_time(
341341
axes[0].set_xlabel("")
342342

343343
# add settlement prediction secondary axes
344-
self.plot_settlement_time(
344+
self.series.plot_settlement_time(
345345
axes=axes[1],
346-
log_time=False,
346+
log_time=log_time,
347347
min_log_time=min_log_time,
348348
add_date_time=False,
349349
datetime_format=datetime_format,
350-
end_date_time=end_date_time,
351-
invert_yaxis=False,
352-
add_model_parameters=True,
353350
)
354351

355-
self.series.plot_settlement_time(
352+
self.plot_settlement_time(
356353
axes=axes[1],
357-
log_time=log_time,
354+
log_time=False,
358355
min_log_time=min_log_time,
359356
add_date_time=False,
360357
datetime_format=datetime_format,
358+
end_date_time=end_date_time,
359+
invert_yaxis=True,
360+
add_model_parameters=True,
361361
)
362+
362363
axes[1].set_title("")
364+
axes[1].legend(["measured", "fitted_model"])
363365

364366
if add_date_time:
365367
fig.subplots_adjust(top=0.825, hspace=0.075)

0 commit comments

Comments
 (0)