Add script to compute and display projection
This commit is contained in:
commit
22ae5f192b
3 changed files with 287 additions and 0 deletions
179
display.py
Executable file
179
display.py
Executable file
|
@ -0,0 +1,179 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from gettext import install
|
||||||
|
from backscattering_analyzer.display import show_projection # type: ignore[reportMissingTypeStubs]
|
||||||
|
from backscattering_analyzer.experiment import Experiment # type: ignore[reportMissingTypeStubs]
|
||||||
|
from logging import basicConfig, getLogger
|
||||||
|
from rich.console import Console
|
||||||
|
from rich.theme import Theme
|
||||||
|
from rich.logging import RichHandler
|
||||||
|
from warnings import filterwarnings
|
||||||
|
from command_parser.flag import Flag # type: ignore[reportMissingTypeStubs]
|
||||||
|
from command_parser.value import Value # type: ignore[reportMissingTypeStubs]
|
||||||
|
from command_parser.parser import parse # type: ignore[reportMissingTypeStubs]
|
||||||
|
from sys import argv
|
||||||
|
from importlib.metadata import version
|
||||||
|
|
||||||
|
install(__name__)
|
||||||
|
|
||||||
|
filterwarnings("error")
|
||||||
|
|
||||||
|
flags = [
|
||||||
|
Flag("help"),
|
||||||
|
Flag("version", single_char="V"),
|
||||||
|
Flag("verbose"),
|
||||||
|
Flag("full"),
|
||||||
|
]
|
||||||
|
values = [
|
||||||
|
Value("date", "2023_03_24"),
|
||||||
|
Value("bench", "SDB1"),
|
||||||
|
Value("file", "values.toml", single_char="F"),
|
||||||
|
Value("vibration-frequency", "0.2"),
|
||||||
|
]
|
||||||
|
parse(" ".join(argv[1:]), flags, values)
|
||||||
|
|
||||||
|
if flags[0].value:
|
||||||
|
theme = Theme(
|
||||||
|
{
|
||||||
|
"main": "white bold",
|
||||||
|
"option": "grey50 italic",
|
||||||
|
"argument": "red",
|
||||||
|
"description": "green italic",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
console = Console(theme=theme)
|
||||||
|
help = (
|
||||||
|
"[main]display[/main] [option]\\[options][/option]"
|
||||||
|
"\n [argument]-b --bench[/argument] [description]bench of the experiment[/description]"
|
||||||
|
"\n [argument]-d --date[/argument] [description]date of the experiment[/description]"
|
||||||
|
"\n [argument]-h --help[/argument] [description]print this help and exit[/description]"
|
||||||
|
"\n [argument]-f --full[/argument] [description]run experiment with all benches with all dates[/description]"
|
||||||
|
"\n [argument]-F --file[/argument] [description]file containing all the parameters values (toml file)[/decription]"
|
||||||
|
"\n [argument]-v --verbose[/argument] [description]be verbose[/description]"
|
||||||
|
"\n [argument]-V --version[/argument] [description]print version number and exit[/description]"
|
||||||
|
)
|
||||||
|
console.print(help)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if flags[1].value:
|
||||||
|
version = (
|
||||||
|
"Versions\n"
|
||||||
|
"numpy {numpy}\n"
|
||||||
|
"scipy {scipy}\n"
|
||||||
|
"matplotlib {matplotlib}\n"
|
||||||
|
"science_signal {science_signal}\n"
|
||||||
|
"backscattering_analyzer {backscattering_analyzer}\n"
|
||||||
|
"command_parser {command_parser}\n"
|
||||||
|
"script 0.1.0\n"
|
||||||
|
).format(
|
||||||
|
numpy=version("numpy"),
|
||||||
|
scipy=version("scipy"),
|
||||||
|
matplotlib=version("matplotlib"),
|
||||||
|
science_signal=version("science_signal"),
|
||||||
|
backscattering_analyzer=version("backscattering_analyzer"),
|
||||||
|
command_parser=version("command_parser"),
|
||||||
|
)
|
||||||
|
console = Console()
|
||||||
|
console.print(version)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if flags[2].value:
|
||||||
|
level = "DEBUG"
|
||||||
|
else:
|
||||||
|
level = "INFO"
|
||||||
|
|
||||||
|
|
||||||
|
basicConfig(
|
||||||
|
level=level,
|
||||||
|
format="%(message)s",
|
||||||
|
datefmt="[%X]",
|
||||||
|
handlers=[RichHandler()],
|
||||||
|
)
|
||||||
|
|
||||||
|
logger = getLogger(__name__)
|
||||||
|
|
||||||
|
if flags[3].value:
|
||||||
|
logger.debug(_("loading every experiments"))
|
||||||
|
experiments: list[Experiment] = []
|
||||||
|
results: dict[str, float | None] = dict({})
|
||||||
|
for bench in ["SDB1", "SDB2", "SNEB", "SWEB"]:
|
||||||
|
if bench in ["SDB1", "SDB2"]:
|
||||||
|
experiment = Experiment(
|
||||||
|
bench,
|
||||||
|
"2023_03_24",
|
||||||
|
values[2].value,
|
||||||
|
float(values[3].value),
|
||||||
|
)
|
||||||
|
if bench == "SDB1":
|
||||||
|
start_frequency, end_frequency = 12.5, 30
|
||||||
|
else:
|
||||||
|
start_frequency, end_frequency = 40, 50
|
||||||
|
experiment.factors = experiment.fit_factors(
|
||||||
|
start_frequency=start_frequency,
|
||||||
|
end_frequency=end_frequency,
|
||||||
|
)
|
||||||
|
results[
|
||||||
|
"{bench}-{date}".format(
|
||||||
|
bench=bench,
|
||||||
|
date="2023_03_24",
|
||||||
|
)
|
||||||
|
] = experiment.factors["true"]
|
||||||
|
elif bench == "SNEB":
|
||||||
|
for date in ["2023_03_24", "2024_01_21"]:
|
||||||
|
experiment = Experiment(
|
||||||
|
bench,
|
||||||
|
date,
|
||||||
|
values[2].value,
|
||||||
|
float(values[3].value),
|
||||||
|
)
|
||||||
|
experiment.factors = experiment.fit_factors(
|
||||||
|
start_frequency = 15,
|
||||||
|
end_frequency = 100,
|
||||||
|
)
|
||||||
|
results[
|
||||||
|
"{bench}-{date}".format(
|
||||||
|
bench=bench,
|
||||||
|
date=date
|
||||||
|
)
|
||||||
|
] = experiment.factors["true"]
|
||||||
|
else: # bench == SWEB
|
||||||
|
for date in ["2023_03_24", "2023_12_20"]:
|
||||||
|
experiment = Experiment(
|
||||||
|
bench,
|
||||||
|
date,
|
||||||
|
values[2].value,
|
||||||
|
float(values[3].value),
|
||||||
|
)
|
||||||
|
experiment.factors = experiment.fit_factors(
|
||||||
|
start_frequency = 15,
|
||||||
|
end_frequency = 100,
|
||||||
|
)
|
||||||
|
results[
|
||||||
|
"{bench}-{date}".format(
|
||||||
|
bench=bench,
|
||||||
|
date=date
|
||||||
|
)
|
||||||
|
] = experiment.factors["true"]
|
||||||
|
console = Console()
|
||||||
|
console.print(results)
|
||||||
|
|
||||||
|
else:
|
||||||
|
experiment = Experiment(
|
||||||
|
values[1].value, values[0].value, values[2].value, float(values[3].value)
|
||||||
|
)
|
||||||
|
|
||||||
|
if experiment.bench == "SDB1":
|
||||||
|
start_frequency, end_frequency = 12.5, 30
|
||||||
|
elif experiment.bench == "SDB2":
|
||||||
|
start_frequency, end_frequency = 40, 50
|
||||||
|
else:
|
||||||
|
start_frequency, end_frequency = 15, 100
|
||||||
|
|
||||||
|
experiment.factors = experiment.fit_factors(
|
||||||
|
start_frequency=start_frequency,
|
||||||
|
end_frequency=end_frequency,
|
||||||
|
)
|
||||||
|
|
||||||
|
show_projection(experiment, start_frequency, end_frequency)
|
||||||
|
|
||||||
|
exit(0)
|
52
values-coupling.toml
Normal file
52
values-coupling.toml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
[general]
|
||||||
|
data_folder = "/home/demagny/data"
|
||||||
|
[interferometer]
|
||||||
|
wavelength = 1.064e-6
|
||||||
|
[benches]
|
||||||
|
[benches.SDB1]
|
||||||
|
scatter_factor = [3.1e-10, 0]
|
||||||
|
[benches.SDB1.calib]
|
||||||
|
bench = 1.15
|
||||||
|
mirror = 1.15
|
||||||
|
|
||||||
|
[benches.SDB2]
|
||||||
|
scatter_factor = [4.1e-13, 0]
|
||||||
|
[benches.SDB2.calib]
|
||||||
|
bench = 1.3
|
||||||
|
mirror = 1.3
|
||||||
|
[benches.SIB2]
|
||||||
|
scatter_factor = [0, 0]
|
||||||
|
[benches.SIB2.calib]
|
||||||
|
bench = 1.0
|
||||||
|
mirror = 1.0
|
||||||
|
[benches.SNEB]
|
||||||
|
scatter_factor = [4.7e-9, 0]
|
||||||
|
[benches.SNEB.calib]
|
||||||
|
bench = 1.01
|
||||||
|
mirror = 1.01
|
||||||
|
[benches.SPRB]
|
||||||
|
scatter_factor = [0, 0]
|
||||||
|
[benches.SPRB.calib]
|
||||||
|
bench = 1.0
|
||||||
|
mirror = 1.0
|
||||||
|
[benches.SWEB]
|
||||||
|
scatter_factor = [1.3e-9, 0]
|
||||||
|
[benches.SWEB.calib]
|
||||||
|
bench = 0.98
|
||||||
|
mirror = 0.98
|
||||||
|
[dates]
|
||||||
|
[dates.2023_03_24]
|
||||||
|
laser = 23
|
||||||
|
dark_fringe = 8e-3
|
||||||
|
modelisation = "scatterCoupling_march.mat"
|
||||||
|
correct-power = false
|
||||||
|
[dates.2023_12_20]
|
||||||
|
laser = 12.1
|
||||||
|
dark_fringe = 4.445e-3
|
||||||
|
modelisation = "scatterCoupling_dec_jan.mat"
|
||||||
|
correct-power = false
|
||||||
|
[dates.2024_01_21]
|
||||||
|
laser = 12.1
|
||||||
|
dark_fringe = 4.445e-3
|
||||||
|
modelisation = "scatterCoupling_dec_jan.mat"
|
||||||
|
correct-power = false
|
56
values.toml
Normal file
56
values.toml
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
[general]
|
||||||
|
data_folder = "/home/demagny/data"
|
||||||
|
[interferometer]
|
||||||
|
wavelength = 1.064e-6
|
||||||
|
[benches]
|
||||||
|
[benches.SDB1]
|
||||||
|
scatter_factor = [1.5e-9, 0]
|
||||||
|
[benches.SDB1.calib]
|
||||||
|
bench = 1.15
|
||||||
|
mirror = 1.15
|
||||||
|
|
||||||
|
[benches.SDB2]
|
||||||
|
scatter_factor = [2.4e-11, 0]
|
||||||
|
[benches.SDB2.calib]
|
||||||
|
bench = 1.3
|
||||||
|
mirror = 1.3
|
||||||
|
[benches.SIB2]
|
||||||
|
scatter_factor = [0, 0]
|
||||||
|
[benches.SIB2.calib]
|
||||||
|
bench = 1.0
|
||||||
|
mirror = 1.0
|
||||||
|
[benches.SNEB]
|
||||||
|
scatter_factor = [9.5e-9, 0]
|
||||||
|
[benches.SNEB.calib]
|
||||||
|
bench = 1.01
|
||||||
|
mirror = 1.01
|
||||||
|
[benches.SPRB]
|
||||||
|
scatter_factor = [0, 0]
|
||||||
|
[benches.SPRB.calib]
|
||||||
|
bench = 1.0
|
||||||
|
mirror = 1.0
|
||||||
|
[benches.SWEB]
|
||||||
|
scatter_factor = [4.7e-9, 0]
|
||||||
|
[benches.SWEB.calib]
|
||||||
|
bench = -0.98
|
||||||
|
mirror = 0.98
|
||||||
|
[dates]
|
||||||
|
[dates.2023_03_24]
|
||||||
|
laser = 23
|
||||||
|
dark_fringe = 8e-3
|
||||||
|
#modelisation = "scatterCouplingO4.mat"
|
||||||
|
modelisation = "scatterCoupling_40.mat"
|
||||||
|
correct-power = true
|
||||||
|
[dates.2023_03_24.coupling]
|
||||||
|
laser = 40
|
||||||
|
dark_fringe = 5e-3
|
||||||
|
[dates.2023_12_20]
|
||||||
|
laser = 12.1
|
||||||
|
dark_fringe = 4.445e-3
|
||||||
|
modelisation = "scatterCouplingMisalignSR.mat"
|
||||||
|
correct-power = false
|
||||||
|
[dates.2024_01_21]
|
||||||
|
laser = 12.1
|
||||||
|
dark_fringe = 4.445e-3
|
||||||
|
modelisation = "scatterCouplingMisalignSR.mat"
|
||||||
|
correct-power = false
|
Loading…
Reference in a new issue