lstosa 0.10.18__tar.gz → 0.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lstosa-0.10.18 → lstosa-0.11.0}/PKG-INFO +4 -5
- lstosa-0.11.0/environment-lstcam.yml +8 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/environment.yml +7 -8
- lstosa-0.11.0/extra/history_files/sequence_LST1_04183.history +2 -0
- lstosa-0.11.0/extra/history_files/sequence_LST1_04185.0001.history +3 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/history_files/sequence_LST1_04185.0010.history +1 -1
- {lstosa-0.10.18 → lstosa-0.11.0}/pyproject.toml +4 -4
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/PKG-INFO +4 -5
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/SOURCES.txt +3 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/entry_points.txt +1 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/requires.txt +3 -4
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/_version.py +9 -4
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/configs/options.py +2 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/configs/sequencer.cfg +21 -7
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/conftest.py +146 -6
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/high_level/significance.py +5 -3
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/high_level/tests/test_significance.py +3 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/job.py +52 -26
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/extract.py +12 -3
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/tests/test_extract.py +5 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/paths.py +111 -28
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/capture.py +1 -1
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/config/definition.yaml +7 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/utils.py +22 -7
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/autocloser.py +0 -10
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/calibration_pipeline.py +9 -2
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/closer.py +136 -55
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/copy_datacheck.py +5 -3
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/datasequence.py +45 -71
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/gain_selection.py +14 -15
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/provprocess.py +16 -7
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/sequencer.py +49 -34
- lstosa-0.11.0/src/osa/scripts/sequencer_catB_tailcuts.py +239 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/sequencer_webmaker.py +4 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/show_run_summary.py +2 -2
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/simulate_processing.py +4 -7
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/tests/test_osa_scripts.py +67 -22
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/update_source_catalog.py +45 -22
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_jobs.py +28 -11
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_paths.py +6 -6
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_raw.py +4 -4
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/cliopts.py +37 -32
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/register.py +18 -13
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/tests/test_utils.py +14 -0
- lstosa-0.11.0/src/osa/utils/utils.py +417 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/veto.py +1 -1
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/workflow/dl3.py +1 -2
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/workflow/stages.py +16 -11
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/workflow/tests/test_dl3.py +2 -1
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/workflow/tests/test_stages.py +7 -5
- lstosa-0.10.18/extra/history_files/sequence_LST1_04183.history +0 -2
- lstosa-0.10.18/src/osa/utils/utils.py +0 -287
- {lstosa-0.10.18 → lstosa-0.11.0}/.coveragerc +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/.gitignore +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/.mailmap +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/.pre-commit-config.yaml +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/.readthedocs.yml +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/LICENSE +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/MANIFEST.in +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/README.md +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/codemeta.json +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/crontab/crontab.txt +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/dev/mysql.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/Makefile +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/_static/logo_lstosa.png +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/authors.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/components/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/conf.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/configuration.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/contribute.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/documents/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/howto/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/introduction/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/introduction/reduction_steps_lstchain.png +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/jobs.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/make.bat +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/nightsummary.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/provenance.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/references.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/reports.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/scripts/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/troubleshooting/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/utils.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/veto.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/workflow/LSTOSA_flow.png +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/docs/workflow/index.rst +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/example_sequencer.txt +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/history_files/sequence_LST1_04183_failed.history +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/history_files/sequence_LST1_04183_oneline.history +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/sacct_output.csv +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/extra/squeue_output.csv +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/setup.cfg +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/dependency_links.txt +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/lstosa.egg-info/top_level.txt +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/configs/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/configs/config.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/configs/datamodel.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/high_level/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/high_level/selection_cuts.toml +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/database.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/nightsummary.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/set_source_coordinates.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/tests/test_database.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/tests/test_nightsummary.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/nightsummary/tests/test_source_coordinates.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/osadb.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/config/environment.yaml +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/config/logger.yaml +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/provenance/io.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/raw.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/report.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/gainsel_webmaker.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/reprocess_longterm.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/reprocessing.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/scripts/tests/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_osa.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_osadb.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_report.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/tests/test_veto.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/iofile.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/logging.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/mail.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/utils/tests/test_iofile.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/version.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/webserver/__init__.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/webserver/utils.py +0 -0
- {lstosa-0.10.18 → lstosa-0.11.0}/src/osa/workflow/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -18,8 +18,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: astropy
|
|
22
|
-
Requires-Dist: lstchain>=0.
|
|
21
|
+
Requires-Dist: astropy<8,>=6.1
|
|
22
|
+
Requires-Dist: lstchain>=0.11.0
|
|
23
23
|
Requires-Dist: matplotlib
|
|
24
24
|
Requires-Dist: numpy
|
|
25
25
|
Requires-Dist: pandas
|
|
@@ -31,9 +31,8 @@ Requires-Dist: psutil
|
|
|
31
31
|
Requires-Dist: click
|
|
32
32
|
Requires-Dist: toml
|
|
33
33
|
Requires-Dist: pymongo
|
|
34
|
-
Requires-Dist: gammapy~=1.
|
|
34
|
+
Requires-Dist: gammapy~=1.3
|
|
35
35
|
Requires-Dist: tenacity
|
|
36
|
-
Requires-Dist: lstcam_calib
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: pytest; extra == "test"
|
|
39
38
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -6,8 +6,8 @@ dependencies:
|
|
|
6
6
|
- python=3.11
|
|
7
7
|
- numpy
|
|
8
8
|
- pip
|
|
9
|
-
- astropy
|
|
10
|
-
- ctapipe
|
|
9
|
+
- astropy>=6.1,<8
|
|
10
|
+
- ctapipe>=0.25.0
|
|
11
11
|
- matplotlib
|
|
12
12
|
- pyparsing
|
|
13
13
|
- prov
|
|
@@ -15,19 +15,18 @@ dependencies:
|
|
|
15
15
|
- pydot
|
|
16
16
|
- pydotplus
|
|
17
17
|
- psutil
|
|
18
|
-
- gammapy=1.
|
|
18
|
+
- gammapy=1.3
|
|
19
19
|
- h5py
|
|
20
20
|
- joblib~=1.2.0
|
|
21
21
|
- click
|
|
22
22
|
- pymongo
|
|
23
|
-
- scikit-learn=1.
|
|
24
|
-
- ctapipe_io_lst
|
|
23
|
+
- scikit-learn=1.6
|
|
24
|
+
- ctapipe_io_lst>=0.26.0,<0.28.0a0
|
|
25
25
|
- ctaplot~=0.6.4
|
|
26
|
-
- pyirf~=0.
|
|
27
|
-
- lstchain>=0.10.13
|
|
26
|
+
- pyirf~=0.12.0
|
|
28
27
|
- tenacity
|
|
29
28
|
- pip:
|
|
30
|
-
-
|
|
29
|
+
- lstchain>=0.11.0
|
|
31
30
|
# dev dependencies
|
|
32
31
|
- pytest
|
|
33
32
|
- pytest-cov
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
04185.0001 lstchain_data_r0_to_dl1 v0.7.0 Thu Mar 25 12:53:40 UTC 2021 calibration.Run04183.0000.hdf5 drs4_pedestal.Run04179.0000.fits 0
|
|
2
|
+
04185.0001 lstchain_dl1ab tailcut105 Thu Mar 25 13:06:09 UTC 2021 dl1_LST-1.Run04185.0001.h5 lstchain_standard_config_tailcut84.json 0
|
|
3
|
+
04185.0001 lstchain_check_dl1 tailcut105 Thu Mar 25 13:07:02 UTC 2021 dl1_LST-1.Run04185.0001.h5 None 0
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
04185.0010 lstchain_data_r0_to_dl1 v0.7.0 Thu Mar 25 12:53:40 UTC 2021 calibration.Run04183.0000.hdf5 drs4_pedestal.Run04179.0000.fits 0
|
|
2
2
|
04185.0010 lstchain_dl1ab tailcut84 Thu Mar 25 13:06:09 UTC 2021 dl1_LST-1.Run04185.0010.h5 lstchain_standard_config_tailcut84.json 0
|
|
3
3
|
04185.0010 lstchain_check_dl1 tailcut84 Thu Mar 25 13:07:02 UTC 2021 dl1_LST-1.Run04185.0010.h5 None 0
|
|
4
|
-
04185.0010 lstchain_dl1_to_dl2
|
|
4
|
+
04185.0010 lstchain_dl1_to_dl2 tailcut84/nsb_tuning_0.14 Thu Mar 25 13:07:02 UTC 2021 dl1_LST-1.Run04185.0010.h5 None 0
|
|
@@ -32,8 +32,8 @@ classifiers = [
|
|
|
32
32
|
|
|
33
33
|
requires-python = ">=3.10"
|
|
34
34
|
dependencies = [
|
|
35
|
-
"astropy
|
|
36
|
-
"lstchain>=0.
|
|
35
|
+
"astropy>=6.1,<8",
|
|
36
|
+
"lstchain>=0.11.0",
|
|
37
37
|
"matplotlib",
|
|
38
38
|
"numpy",
|
|
39
39
|
"pandas",
|
|
@@ -45,9 +45,8 @@ dependencies = [
|
|
|
45
45
|
"click",
|
|
46
46
|
"toml",
|
|
47
47
|
"pymongo",
|
|
48
|
-
"gammapy~=1.
|
|
48
|
+
"gammapy~=1.3",
|
|
49
49
|
"tenacity",
|
|
50
|
-
"lstcam_calib",
|
|
51
50
|
]
|
|
52
51
|
|
|
53
52
|
dynamic = ["version"]
|
|
@@ -76,6 +75,7 @@ reprocess_longterm = "osa.scripts.reprocess_longterm:main"
|
|
|
76
75
|
gain_selection = "osa.scripts.gain_selection:main"
|
|
77
76
|
update_source_catalog = "osa.scripts.update_source_catalog:main"
|
|
78
77
|
gainsel_webmaker = "osa.scripts.gainsel_webmaker:main"
|
|
78
|
+
sequencer_catB_tailcuts = "osa.scripts.sequencer_catB_tailcuts:main"
|
|
79
79
|
|
|
80
80
|
[tool.setuptools.packages.find]
|
|
81
81
|
where = ["src"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -18,8 +18,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: astropy
|
|
22
|
-
Requires-Dist: lstchain>=0.
|
|
21
|
+
Requires-Dist: astropy<8,>=6.1
|
|
22
|
+
Requires-Dist: lstchain>=0.11.0
|
|
23
23
|
Requires-Dist: matplotlib
|
|
24
24
|
Requires-Dist: numpy
|
|
25
25
|
Requires-Dist: pandas
|
|
@@ -31,9 +31,8 @@ Requires-Dist: psutil
|
|
|
31
31
|
Requires-Dist: click
|
|
32
32
|
Requires-Dist: toml
|
|
33
33
|
Requires-Dist: pymongo
|
|
34
|
-
Requires-Dist: gammapy~=1.
|
|
34
|
+
Requires-Dist: gammapy~=1.3
|
|
35
35
|
Requires-Dist: tenacity
|
|
36
|
-
Requires-Dist: lstcam_calib
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: pytest; extra == "test"
|
|
39
38
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -7,6 +7,7 @@ LICENSE
|
|
|
7
7
|
MANIFEST.in
|
|
8
8
|
README.md
|
|
9
9
|
codemeta.json
|
|
10
|
+
environment-lstcam.yml
|
|
10
11
|
environment.yml
|
|
11
12
|
pyproject.toml
|
|
12
13
|
crontab/crontab.txt
|
|
@@ -41,6 +42,7 @@ extra/squeue_output.csv
|
|
|
41
42
|
extra/history_files/sequence_LST1_04183.history
|
|
42
43
|
extra/history_files/sequence_LST1_04183_failed.history
|
|
43
44
|
extra/history_files/sequence_LST1_04183_oneline.history
|
|
45
|
+
extra/history_files/sequence_LST1_04185.0001.history
|
|
44
46
|
extra/history_files/sequence_LST1_04185.0010.history
|
|
45
47
|
src/lstosa.egg-info/PKG-INFO
|
|
46
48
|
src/lstosa.egg-info/SOURCES.txt
|
|
@@ -95,6 +97,7 @@ src/osa/scripts/provprocess.py
|
|
|
95
97
|
src/osa/scripts/reprocess_longterm.py
|
|
96
98
|
src/osa/scripts/reprocessing.py
|
|
97
99
|
src/osa/scripts/sequencer.py
|
|
100
|
+
src/osa/scripts/sequencer_catB_tailcuts.py
|
|
98
101
|
src/osa/scripts/sequencer_webmaker.py
|
|
99
102
|
src/osa/scripts/show_run_summary.py
|
|
100
103
|
src/osa/scripts/simulate_processing.py
|
|
@@ -11,6 +11,7 @@ provprocess = osa.scripts.provprocess:main
|
|
|
11
11
|
reprocess_longterm = osa.scripts.reprocess_longterm:main
|
|
12
12
|
reprocessing = osa.scripts.reprocessing:main
|
|
13
13
|
sequencer = osa.scripts.sequencer:main
|
|
14
|
+
sequencer_catB_tailcuts = osa.scripts.sequencer_catB_tailcuts:main
|
|
14
15
|
sequencer_webmaker = osa.scripts.sequencer_webmaker:main
|
|
15
16
|
show_run_summary = osa.scripts.show_run_summary:main
|
|
16
17
|
show_run_summary_tcu = osa.scripts.show_run_summary_tcu:main
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
astropy
|
|
2
|
-
lstchain>=0.
|
|
1
|
+
astropy<8,>=6.1
|
|
2
|
+
lstchain>=0.11.0
|
|
3
3
|
matplotlib
|
|
4
4
|
numpy
|
|
5
5
|
pandas
|
|
@@ -11,9 +11,8 @@ psutil
|
|
|
11
11
|
click
|
|
12
12
|
toml
|
|
13
13
|
pymongo
|
|
14
|
-
gammapy~=1.
|
|
14
|
+
gammapy~=1.3
|
|
15
15
|
tenacity
|
|
16
|
-
lstcam_calib
|
|
17
16
|
|
|
18
17
|
[all]
|
|
19
18
|
lstosa[dev,doc,test]
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
# file generated by
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
3
6
|
TYPE_CHECKING = False
|
|
4
7
|
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
6
11
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
12
|
else:
|
|
8
13
|
VERSION_TUPLE = object
|
|
@@ -12,5 +17,5 @@ __version__: str
|
|
|
12
17
|
__version_tuple__: VERSION_TUPLE
|
|
13
18
|
version_tuple: VERSION_TUPLE
|
|
14
19
|
|
|
15
|
-
__version__ = version = '0.
|
|
16
|
-
__version_tuple__ = version_tuple = (0,
|
|
20
|
+
__version__ = version = '0.11.0'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 11, 0)
|
|
@@ -9,27 +9,34 @@
|
|
|
9
9
|
BASE: test_osa/test_files0
|
|
10
10
|
# The directories below can be left untouched.
|
|
11
11
|
MONITORING: %(BASE)s/monitoring
|
|
12
|
-
R0_DIR: %(BASE)s/
|
|
12
|
+
R0_DIR: %(BASE)s/R0G
|
|
13
|
+
RAW_R0_DIR: %(BASE)s/R0
|
|
13
14
|
DRIVE_DIR: %(MONITORING)s/DrivePositioning
|
|
14
15
|
RUN_SUMMARY_DIR: %(MONITORING)s/RunSummary
|
|
15
16
|
RUN_CATALOG: %(MONITORING)s/RunCatalog
|
|
16
17
|
PEDESTAL_FINDER_DIR: %(BASE)s/auxiliary/PedestalFinder
|
|
18
|
+
TAILCUTS_FINDER_DIR: %(BASE)s/auxiliary/TailCuts
|
|
17
19
|
ANALYSIS_DIR: %(BASE)s/running_analysis
|
|
18
|
-
CALIB_BASE_DIR: %(MONITORING)s/PixelCalibration
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
CALIB_BASE_DIR: %(MONITORING)s/PixelCalibration
|
|
21
|
+
CAT_A_CALIB_BASE: %(CALIB_BASE_DIR)s/Cat-A
|
|
22
|
+
CAT_A_CALIB_DIR: %(CAT_A_CALIB_BASE)s/calibration
|
|
23
|
+
CAT_A_PEDESTAL_DIR: %(CAT_A_CALIB_BASE)s/drs4_baseline
|
|
24
|
+
CAT_B_CALIB_BASE: %(CALIB_BASE_DIR)s/Cat-B
|
|
21
25
|
DL1_DIR: %(BASE)s/DL1
|
|
22
26
|
DL1AB_DIR: %(BASE)s/DL1
|
|
23
27
|
DL2_DIR: %(BASE)s/DL2
|
|
24
28
|
DL3_DIR: %(BASE)s/DL3
|
|
29
|
+
RF_MODELS: %(BASE)s/models/AllSky
|
|
25
30
|
OSA_DIR: %(BASE)s/OSA
|
|
26
31
|
CLOSER_DIR: %(OSA_DIR)s/Closer
|
|
27
32
|
HIGH_LEVEL_DIR: %(OSA_DIR)s/HighLevel
|
|
28
33
|
LONGTERM_DIR: %(OSA_DIR)s/DL1DataCheck_LongTerm
|
|
29
34
|
MERGED_SUMMARY: %(OSA_DIR)s/Catalog/merged_RunSummary.ecsv
|
|
35
|
+
SOURCE_CATALOG: %(OSA_DIR)s/Catalog
|
|
30
36
|
SEQUENCER_WEB_DIR: %(OSA_DIR)s/SequencerWeb
|
|
31
37
|
GAIN_SELECTION_FLAG_DIR: %(OSA_DIR)s/GainSel
|
|
32
38
|
GAIN_SELECTION_WEB_DIR: %(OSA_DIR)s/GainSelWeb
|
|
39
|
+
CALIB_ENV: /fefs/aswg/software/conda/envs/lstcam-env
|
|
33
40
|
|
|
34
41
|
# To be set by the user. Using PROD-ID will overcome the automatic
|
|
35
42
|
# fetching of lstchain version. Otherwise leave it empty (and without the colon symbol).
|
|
@@ -43,8 +50,9 @@ DL2_PROD_ID: model2
|
|
|
43
50
|
# Calibration steps in calibration pipeline script
|
|
44
51
|
#drs4_baseline: onsite_create_drs4_pedestal_file
|
|
45
52
|
#charge_calibration: onsite_create_calibration_file
|
|
46
|
-
drs4_baseline:
|
|
47
|
-
charge_calibration:
|
|
53
|
+
drs4_baseline: onsite_create_drs4_pedestal_file
|
|
54
|
+
charge_calibration: onsite_create_calibration_file
|
|
55
|
+
catB_calibration: onsite_create_cat_B_calibration_file
|
|
48
56
|
use_ff_heuristic_id: False
|
|
49
57
|
|
|
50
58
|
# Data processing steps in datasequence script
|
|
@@ -52,17 +60,23 @@ r0_to_dl1: lstchain_data_r0_to_dl1
|
|
|
52
60
|
dl1ab: lstchain_dl1ab
|
|
53
61
|
check_dl1: lstchain_check_dl1
|
|
54
62
|
dl1_to_dl2: lstchain_dl1_to_dl2
|
|
63
|
+
tailcuts_finder: lstchain_find_tailcuts
|
|
55
64
|
|
|
56
65
|
# To be set by the user
|
|
57
66
|
dl1a_config: /software/lstchain/data/lstchain_standard_config.json
|
|
58
67
|
store_image_dl1ab: True
|
|
59
68
|
merge_dl1_datacheck: True
|
|
69
|
+
apply_catB_calibration: False
|
|
70
|
+
apply_standard_dl1b_config: False
|
|
60
71
|
use_ff_heuristic_gain_selection: False
|
|
72
|
+
create_longterm_symlink: True
|
|
61
73
|
dl1b_config: /software/lstchain/data/lstchain_standard_config.json
|
|
62
74
|
dl2_config: /software/lstchain/data/lstchain_standard_config.json
|
|
63
|
-
|
|
75
|
+
mc_prod: 20240918_v0.10.12_allsky_
|
|
64
76
|
dl3_config: /software/lstchain/data/dl3_std_config.json
|
|
65
77
|
max_tries: 3
|
|
78
|
+
use_lstcam_env_for_CatA_calib: False
|
|
79
|
+
use_lstcam_env_for_CatB_calib: False
|
|
66
80
|
|
|
67
81
|
[MC]
|
|
68
82
|
IRF_file: /path/to/irf.fits
|
|
@@ -26,13 +26,12 @@ from osa.nightsummary.nightsummary import run_summary_table
|
|
|
26
26
|
from osa.scripts.tests.test_osa_scripts import run_program
|
|
27
27
|
from osa.utils.utils import date_to_dir
|
|
28
28
|
from datetime import datetime
|
|
29
|
-
import lstchain
|
|
30
29
|
|
|
31
30
|
date = datetime.fromisoformat("2020-01-17")
|
|
32
31
|
nightdir = date_to_dir(date)
|
|
33
32
|
prod_id = "v0.1.0"
|
|
34
|
-
dl1_prod_id =
|
|
35
|
-
dl2_prod_id =
|
|
33
|
+
dl1_prod_id = "tailcut84"
|
|
34
|
+
dl2_prod_id = "tailcut84/nsb_tuning_0.14"
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
@pytest.fixture(scope="session")
|
|
@@ -87,14 +86,14 @@ def drive_log(monitoring_dir):
|
|
|
87
86
|
|
|
88
87
|
@pytest.fixture(scope="session")
|
|
89
88
|
def calibration_dir(calibration_base_dir):
|
|
90
|
-
directory = calibration_base_dir / "calibration" / nightdir /
|
|
89
|
+
directory = calibration_base_dir / "calibration" / nightdir / "v0.1.1"
|
|
91
90
|
directory.mkdir(parents=True, exist_ok=True)
|
|
92
91
|
return directory
|
|
93
92
|
|
|
94
93
|
|
|
95
94
|
@pytest.fixture(scope="session")
|
|
96
95
|
def drs4_baseline_dir(calibration_base_dir):
|
|
97
|
-
directory = calibration_base_dir / "drs4_baseline" / nightdir /
|
|
96
|
+
directory = calibration_base_dir / "drs4_baseline" / nightdir / "v0.1.1"
|
|
98
97
|
directory.mkdir(parents=True, exist_ok=True)
|
|
99
98
|
return directory
|
|
100
99
|
|
|
@@ -146,6 +145,13 @@ def r0_dir(base_test_dir):
|
|
|
146
145
|
return r0_directory
|
|
147
146
|
|
|
148
147
|
|
|
148
|
+
@pytest.fixture(scope="session")
|
|
149
|
+
def r0g_dir(base_test_dir):
|
|
150
|
+
r0_directory = base_test_dir / "R0G" / nightdir
|
|
151
|
+
r0_directory.mkdir(parents=True, exist_ok=True)
|
|
152
|
+
return r0_directory
|
|
153
|
+
|
|
154
|
+
|
|
149
155
|
@pytest.fixture(scope="session")
|
|
150
156
|
def r0_data(r0_dir):
|
|
151
157
|
r0_files = []
|
|
@@ -156,6 +162,16 @@ def r0_data(r0_dir):
|
|
|
156
162
|
return r0_files
|
|
157
163
|
|
|
158
164
|
|
|
165
|
+
@pytest.fixture(scope="session")
|
|
166
|
+
def r0g_data(r0g_dir):
|
|
167
|
+
r0g_files = []
|
|
168
|
+
for i in range(4, 8):
|
|
169
|
+
r0g_file = r0g_dir / f"LST-1.1.Run0180{i}.0000.fits.fz"
|
|
170
|
+
r0g_file.touch()
|
|
171
|
+
r0g_files.append(r0g_file)
|
|
172
|
+
return r0g_files
|
|
173
|
+
|
|
174
|
+
|
|
159
175
|
@pytest.fixture(scope="session")
|
|
160
176
|
def dl1b_subdir(running_analysis_dir):
|
|
161
177
|
dl1ab_directory = running_analysis_dir / dl1_prod_id
|
|
@@ -412,6 +428,9 @@ def sequence_list(
|
|
|
412
428
|
r0_data,
|
|
413
429
|
pedestal_ids_file,
|
|
414
430
|
merged_run_summary,
|
|
431
|
+
dl1b_config_files,
|
|
432
|
+
tailcuts_log_files,
|
|
433
|
+
rf_models,
|
|
415
434
|
):
|
|
416
435
|
"""Creates a sequence list from a run summary file."""
|
|
417
436
|
options.directory = running_analysis_dir
|
|
@@ -574,10 +593,131 @@ def database(osa_dir):
|
|
|
574
593
|
|
|
575
594
|
|
|
576
595
|
@pytest.fixture(scope="session")
|
|
577
|
-
def
|
|
596
|
+
def rf_models_allsky_basedir(base_test_dir):
|
|
597
|
+
directory = base_test_dir / "models/AllSky"
|
|
598
|
+
directory.mkdir(parents=True, exist_ok=True)
|
|
599
|
+
return directory
|
|
600
|
+
|
|
578
601
|
|
|
602
|
+
@pytest.fixture(scope="session")
|
|
603
|
+
def rf_model_path(rf_models_allsky_basedir):
|
|
604
|
+
mc_prod = "20240131_allsky_v0.10.5_all_dec_base"
|
|
605
|
+
declination_str = "dec_2276"
|
|
606
|
+
rf_model_path = rf_models_allsky_basedir / mc_prod / declination_str
|
|
607
|
+
rf_model_path.mkdir(parents=True, exist_ok=True)
|
|
608
|
+
return rf_model_path
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
@pytest.fixture(scope="session")
|
|
612
|
+
def gain_selection_flag_file(osa_dir):
|
|
579
613
|
GainSel_dir = osa_dir / "GainSel" / "20200117"
|
|
580
614
|
GainSel_dir.mkdir(parents=True, exist_ok=True)
|
|
581
615
|
file = GainSel_dir / "GainSelFinished.txt"
|
|
582
616
|
file.touch()
|
|
583
617
|
return file
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
@pytest.fixture(scope="session")
|
|
621
|
+
def catB_closed_file(running_analysis_dir):
|
|
622
|
+
|
|
623
|
+
catB_closed_file = running_analysis_dir / "catB_00003.closed"
|
|
624
|
+
catB_closed_file.touch()
|
|
625
|
+
return catB_closed_file
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
@pytest.fixture(scope="session")
|
|
629
|
+
def catB_calib_base_dir(monitoring_dir):
|
|
630
|
+
|
|
631
|
+
catB_calib_base_dir = monitoring_dir / "PixelCalibration" / "Cat-B"
|
|
632
|
+
catB_calib_base_dir.mkdir(parents=True, exist_ok=True)
|
|
633
|
+
return catB_calib_base_dir
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
@pytest.fixture(scope="session")
|
|
637
|
+
def catB_calibration_file(catB_calib_dir):
|
|
638
|
+
|
|
639
|
+
catB_calib_dir = catB_calib_base_dir / "calibration" / nightdir / prod_id
|
|
640
|
+
catB_calib_file = catB_calib_dir / "cat_B_calibration_filters_52.Run00003.h5"
|
|
641
|
+
catB_calib_file.touch()
|
|
642
|
+
return catB_calib_file
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
@pytest.fixture(scope="session")
|
|
646
|
+
def tailcuts_finder_dir(base_test_dir):
|
|
647
|
+
tailcuts_finder_dir = base_test_dir / "auxiliary" / "TailCuts"
|
|
648
|
+
tailcuts_finder_dir.mkdir(parents=True, exist_ok=True)
|
|
649
|
+
return tailcuts_finder_dir
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
@pytest.fixture(scope="session")
|
|
653
|
+
def dl1b_config_files(tailcuts_finder_dir):
|
|
654
|
+
config_information = dedent(
|
|
655
|
+
"""\
|
|
656
|
+
{
|
|
657
|
+
"tailcuts_clean_with_pedestal_threshold": {
|
|
658
|
+
"picture_thresh": 8,
|
|
659
|
+
"boundary_thresh": 4,
|
|
660
|
+
"sigma": 2.5,
|
|
661
|
+
"keep_isolated_pixels": false,
|
|
662
|
+
"min_number_picture_neighbors": 2,
|
|
663
|
+
"use_only_main_island": false,
|
|
664
|
+
"delta_time": 2
|
|
665
|
+
},
|
|
666
|
+
"dynamic_cleaning": {
|
|
667
|
+
"apply": true,
|
|
668
|
+
"threshold": 267,
|
|
669
|
+
"fraction_cleaning_intensity": 0.03
|
|
670
|
+
}
|
|
671
|
+
}"""
|
|
672
|
+
)
|
|
673
|
+
config_file1 = tailcuts_finder_dir / "dl1ab_Run01807.json"
|
|
674
|
+
config_file1.touch()
|
|
675
|
+
config_file1.write_text(config_information)
|
|
676
|
+
config_file2 = tailcuts_finder_dir / "dl1ab_Run01808.json"
|
|
677
|
+
config_file2.touch()
|
|
678
|
+
config_file2.write_text(config_information)
|
|
679
|
+
config_file3 = tailcuts_finder_dir / "dl1ab_Run04185.json"
|
|
680
|
+
config_file3.touch()
|
|
681
|
+
config_file3.write_text(config_information)
|
|
682
|
+
return config_file1, config_file2, config_file3
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
@pytest.fixture(scope="session")
|
|
686
|
+
def tailcuts_log_files(tailcuts_finder_dir):
|
|
687
|
+
log_information = dedent(
|
|
688
|
+
"""\
|
|
689
|
+
Median of 95% quantile of pedestal charge: 5.416 p.e.
|
|
690
|
+
|
|
691
|
+
Additional NSB rate (over dark MC): 0.2221 p.e./ns
|
|
692
|
+
lstchain_find_tailcuts finished successfully!
|
|
693
|
+
"""
|
|
694
|
+
)
|
|
695
|
+
log_file1 = tailcuts_finder_dir / "log_find_tailcuts_Run01807.log"
|
|
696
|
+
log_file1.touch()
|
|
697
|
+
log_file1.write_text(log_information)
|
|
698
|
+
log_file2 = tailcuts_finder_dir / "log_find_tailcuts_Run01808.log"
|
|
699
|
+
log_file2.touch()
|
|
700
|
+
log_file2.write_text(log_information)
|
|
701
|
+
log_file3 = tailcuts_finder_dir / "log_find_tailcuts_Run04185.log"
|
|
702
|
+
log_file3.touch()
|
|
703
|
+
log_file3.write_text(log_information)
|
|
704
|
+
return log_file1, log_file2, log_file3
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
@pytest.fixture(scope="session")
|
|
708
|
+
def rf_models_base_dir(base_test_dir):
|
|
709
|
+
directory = base_test_dir / "models/AllSky"
|
|
710
|
+
directory.mkdir(parents=True, exist_ok=True)
|
|
711
|
+
return directory
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
@pytest.fixture(scope="session")
|
|
715
|
+
def rf_models(rf_models_base_dir):
|
|
716
|
+
rf_models_prefix = cfg.get("lstchain", "mc_prod")
|
|
717
|
+
rf_models_path1 = rf_models_base_dir / f"{rf_models_prefix}nsb_tuning_0.00"
|
|
718
|
+
rf_models_path1.mkdir(parents=True, exist_ok=True)
|
|
719
|
+
rf_models_path2 = rf_models_base_dir / f"{rf_models_prefix}nsb_tuning_0.14/dec_2276"
|
|
720
|
+
rf_models_path2.mkdir(parents=True, exist_ok=True)
|
|
721
|
+
rf_models_path3 = rf_models_base_dir / f"{rf_models_prefix}nsb_tuning_0.14/dec_4822"
|
|
722
|
+
rf_models_path3.mkdir(parents=True, exist_ok=True)
|
|
723
|
+
return rf_models_path1, rf_models_path2, rf_models_path3
|
|
@@ -26,7 +26,8 @@ from osa.configs import options
|
|
|
26
26
|
from osa.configs.config import cfg
|
|
27
27
|
from osa.nightsummary.extract import get_source_list
|
|
28
28
|
from osa.paths import DEFAULT_CFG, destination_dir, analysis_path
|
|
29
|
-
from osa.utils.cliopts import get_prod_id
|
|
29
|
+
from osa.utils.cliopts import get_prod_id
|
|
30
|
+
from osa.paths import get_dl2_prod_id
|
|
30
31
|
from osa.utils.logging import myLogger
|
|
31
32
|
from osa.utils.utils import date_to_dir, YESTERDAY
|
|
32
33
|
|
|
@@ -205,11 +206,12 @@ def main(
|
|
|
205
206
|
log.debug(f"Config: {config.resolve()}")
|
|
206
207
|
|
|
207
208
|
# Initial setup of global parameters
|
|
209
|
+
if simulate:
|
|
210
|
+
options.simulate = True
|
|
208
211
|
options.date = date
|
|
209
212
|
flat_date = date_to_dir(date)
|
|
210
213
|
options.tel_id = telescope
|
|
211
214
|
options.prod_id = get_prod_id()
|
|
212
|
-
options.dl2_prod_id = get_dl2_prod_id()
|
|
213
215
|
options.directory = analysis_path(options.tel_id)
|
|
214
216
|
dl2_directory = Path(cfg.get("LST1", "DL2_DIR"))
|
|
215
217
|
highlevel_directory = destination_dir("HIGH_LEVEL", create_dir=True)
|
|
@@ -232,7 +234,7 @@ def main(
|
|
|
232
234
|
dl2_directory
|
|
233
235
|
/ flat_date
|
|
234
236
|
/ options.prod_id
|
|
235
|
-
/
|
|
237
|
+
/ get_dl2_prod_id(run)
|
|
236
238
|
/ f"dl2_LST-1.Run{run:05d}.h5"
|
|
237
239
|
)
|
|
238
240
|
df = pd.concat([df, pd.read_hdf(input_file, key=dl2_params_lstcam_key)])
|