79 lines
2.2 KiB
Python
Executable file
79 lines
2.2 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
from copy import deepcopy
|
|
from warnings import filterwarnings
|
|
from gettext import install
|
|
from logging import basicConfig, getLogger
|
|
from pathlib import Path
|
|
|
|
from rich.logging import RichHandler
|
|
from matplotlib.pyplot import figure
|
|
|
|
from backscattering_analyzer import Experiment, AcquisitionType, Sneb, Sweb, Sdb1, Sdb2 # pyright: ignore[reportMissingTypeStubs]
|
|
from backscattering_analyzer.bench import Bench # pyright: ignore[reportMissingTypeStubs]
|
|
from backscattering_analyzer.utils import fit_projection # pyright: ignore[reportMissingTypeStubs]
|
|
|
|
install(__name__)
|
|
filterwarnings("error")
|
|
|
|
basicConfig(
|
|
level="INFO",
|
|
format="%(message)s",
|
|
datefmt="[%X]",
|
|
handlers=[RichHandler()],
|
|
)
|
|
logger = getLogger(__name__)
|
|
|
|
sweb: Bench = Sweb()
|
|
|
|
excited: Experiment = Experiment(
|
|
"2024_10_31", set([sweb]), Path("/home/demagny/data"), AcquisitionType.EXCITED
|
|
)
|
|
excited.projection.compute()
|
|
|
|
if excited.sensitivity.data is None:
|
|
raise Exception(_("no sensitivity"))
|
|
if excited.projection.data is None:
|
|
raise Exception(_("no projection"))
|
|
show_sensitivity = excited.sensitivity.data.psd().sqrt()
|
|
|
|
reference = Experiment(
|
|
"2024_10_31",
|
|
set([deepcopy(sweb)]),
|
|
Path("/home/demagny/data"),
|
|
AcquisitionType.REFERENCE,
|
|
)
|
|
|
|
if reference.sensitivity.data is None:
|
|
raise Exception(_("reference experiment does not have any sensitivity data"))
|
|
|
|
factors, diff = fit_projection(
|
|
excited,
|
|
reference,
|
|
)
|
|
|
|
excited.projection.scatter_factor = factors
|
|
excited.projection.compute()
|
|
|
|
projection = reference.sensitivity.data.psd().sqrt() + excited.projection.data
|
|
|
|
fig = figure(figsize=(20, 10))
|
|
fig.gca().loglog(show_sensitivity.x, show_sensitivity.y, label=_("excited sensitivity"))
|
|
fig.gca().loglog(
|
|
projection.x, projection.y, label=_("projection + reference sensitivity")
|
|
)
|
|
fig.gca().legend()
|
|
fig.gca().grid(True, "both")
|
|
fig.gca().set_xlim(5, 100)
|
|
fig.gca().set_ylim(10e-28, 10e-18)
|
|
fig.gca().set_title(_("SWEB"))
|
|
fig.gca().set_xlabel(_("frequencies (Hz)"))
|
|
fig.gca().set_ylabel(_("sensitivity ($\\frac{1} {\\sqrt {Hz}}$)"))
|
|
fig.savefig("SWEB.png")
|
|
with open("SWEB.csv", "w") as f:
|
|
f.write(
|
|
"""
|
|
# bench value
|
|
SWEB {}
|
|
""".format(factors["SWEB"])
|
|
)
|