diff --git a/README.md b/README.md index 1f74791372fa1031fe7c64c45f1fe4f7f6730d50..4a5a03f6c7a2af93b71e4d5dd1affec35803a263 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,16 @@ ### Apertif Task Database for LOFAR Data Valorization +Confluence Page: + * https://support.astron.nl/confluence/display/LDV/LOFAR+Data+Valorization+Home + #### Diagrams Context Diagram: * https://drive.google.com/file/d/1ltmzFMgOI24kIgPtaKrYl-j__ATOI3m6/view?usp=sharing +Datamodel: + * https://drive.google.com/file/d/1v5hMBQS0jT8DQJwySVISfRa1zF4o0fCQ/view?usp=sharing + Workflow/Status Diagram: * https://drive.google.com/file/d/1BCrIwUfacOVqSN73VIIjUuBCXNYA67iK/view?usp=sharing @@ -18,4 +24,6 @@ Deployment Diagram: > cd $DOCKER_COMPOSE_DIR > docker-compose -p atdb up -d - \ No newline at end of file +### Database migrations + > docker exec -it atdb-ldv python manage.py makemigrations --settings atdb.settings.docker_sdc + > docker exec -it atdb-ldv python manage.py migrate --settings atdb.settings.docker_sdc \ No newline at end of file diff --git a/atdb/taskdatabase/static/taskdatabase/style.css b/atdb/taskdatabase/static/taskdatabase/style.css index 8473fcd2bf2c1c651970d6387ba04a5ff952838f..8a2a52ca00b810b8fb45001ffaefea37d8b35a49 100644 --- a/atdb/taskdatabase/static/taskdatabase/style.css +++ b/atdb/taskdatabase/static/taskdatabase/style.css @@ -3,15 +3,15 @@ TD { font-size: 12pt; } -.defined, .completed, .complete { +.defined, .completed, .complete, .defined_ldv { background-color: lemonchiffon; color: blue; } -.scheduled { +.scheduled, .scheduled_ldv { background-color: lightyellow; color: green; } -.running, .observing { +.running, .observing, .hello { color: green; font-weight: bold; } @@ -34,7 +34,7 @@ TD { .secured { color: black; } -.removed { +.removed, .bye { color: darkgray; } .invalid,.error,.aborted,.incomplete,.failed,.Failed { diff --git a/atdb/taskdatabase/templates/taskdatabase/observations.html b/atdb/taskdatabase/templates/taskdatabase/observations.html index 3e776d966bcc3d3082f7f3b90fa6166127a524ba..8564e3f5be4a12b127f627ccb85be8e6d21c2761 100644 --- a/atdb/taskdatabase/templates/taskdatabase/observations.html +++ b/atdb/taskdatabase/templates/taskdatabase/observations.html @@ -78,6 +78,10 @@ <a href="{% url 'observation-setstatus-view' observation.pk 'scheduled' my_observations.number %}" class="btn btn-primary btn-sm" role="button">Schedule</a> {% endif %} + {% if observation.my_status == "defined_ldv" %} + <a href="{% url 'observation-setstatus-view' observation.pk 'scheduled_ldv' my_observations.number %}" class="btn btn-primary btn-sm" role="button">Schedule</a> + {% endif %} + {% if observation.my_status == "scheduled" %} <a href="{% url 'observation-setstatus-view' observation.pk 'defined' my_observations.number %}" class="btn btn-primary btn-sm" role="button">Unschedule</a> {% if not observation.skip_auto_ingest %} diff --git a/atdb_interface_pip/atdb_interface.egg-info/PKG-INFO b/atdb_interface_pip/atdb_interface.egg-info/PKG-INFO index 4acedf51e3a1dbc5122a06fcf62cf0f726660daf..b7592a3fdd2caa376bedf844d982c9f9f8e397a6 100644 --- a/atdb_interface_pip/atdb_interface.egg-info/PKG-INFO +++ b/atdb_interface_pip/atdb_interface.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: atdb-interface -Version: 1.2.8 +Version: 1.2.9 Summary: ATDB interface Home-page: https://www.astron.nl/wsrt/wiki/doku.php?id=atdb:atdb_interface Author: Nico Vermaas - Astron diff --git a/atdb_interface_pip/dist/atdb_interface-1.0.2.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.0.2.tar.gz deleted file mode 100644 index c129999d13e15389c132b466f17555872922a154..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.0.2.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.0.3.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.0.3.tar.gz deleted file mode 100644 index a2d283159a9a28c9b8fa1b1f01425ed7473d8a98..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.0.3.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.0.4.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.0.4.tar.gz deleted file mode 100644 index 36a6fddc4cc1f1da252c478a77bd58a501f9075c..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.0.4.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.0.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.0.tar.gz deleted file mode 100644 index 225c491720269dbb6c48cfd97f7bcdcec116860f..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.0.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.1.15.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.1.15.tar.gz deleted file mode 100644 index 9ea1fcb45d88144ede30fcd7a90ea6b626b39306..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.1.15.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.2.7.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.2.7.tar.gz deleted file mode 100644 index 5794917458907414fbc8b0e796297202c9ebc762..0000000000000000000000000000000000000000 Binary files a/atdb_interface_pip/dist/atdb_interface-1.2.7.tar.gz and /dev/null differ diff --git a/atdb_interface_pip/dist/atdb_interface-1.2.9.tar.gz b/atdb_interface_pip/dist/atdb_interface-1.2.9.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e27e0114c2d8a7aa96fe2c2352fd73bdd183e974 Binary files /dev/null and b/atdb_interface_pip/dist/atdb_interface-1.2.9.tar.gz differ diff --git a/atdb_services_pip/MANIFEST.in b/atdb_services_pip/MANIFEST.in deleted file mode 100644 index cda0b958a0f741b51499363c4889052244e8f882..0000000000000000000000000000000000000000 --- a/atdb_services_pip/MANIFEST.in +++ /dev/null @@ -1,14 +0,0 @@ -include README.rst - -include atdb_services/atdb_service_logging.ini -include atdb_services/supervisor_atdb_services_aperops.ini -include atdb_services/supervisor_atdb_services_imaging.ini -include atdb_services/supervisor_atdb_services_arts0.ini -include atdb_services/supervisor_atdb_services_imaging_test.ini -include atdb_services/supervisor_atdb_services_imaging_vm.ini -include atdb_services/supervisor_atdb_services_wcudata1.ini -include atdb_services/supervisor_atdb_services_wcudata2.ini -include atdb_scripts/atdb_start_all_services.sh -include atdb_scripts/atdb_scheduler.sh -include atdb_scripts/atdb_change_status.sh -include atdb_scripts/atdb_delete.sh diff --git a/atdb_services_pip/README.rst b/atdb_services_pip/README.rst deleted file mode 100644 index 4b8619ae3e8eeb9ce31f652ca9fd00fff2520cb8..0000000000000000000000000000000000000000 --- a/atdb_services_pip/README.rst +++ /dev/null @@ -1,34 +0,0 @@ -atdb_services -============= -This module contains a service that contains several ATDB services. - -See 'atdb_services -h' for help and 'atdb_services -e' for examples. - -This package is required when using atdb_services - -Installing -^^^^^^^^^^ -To install a version from Nexus repository use:: - - > pip install <<nexus url>> --upgrade - or download and install the tarball, - > pip install atdb_interface.tar.gz --upgrade - -Within the development environment such as with PyCharm one can install the package within the virtualenv with which -PyCharm is configured. To avoid uninstall and install after each code change pip can install packages within development -mode:: - - (.env) > pip install -e ..project../atdb_services_pip --upgrade - -This will install the package with soft links to the original code, such that one gets immediate refresh within PyCharm, -which is used for refactoring, code completion, imports etc. - -Uninstalling -^^^^^^^^^^^^ -Uninstall is trivial using the command (watch out for the '-'):: - - > pip uninstall atdb-services - -or without confirmation:: - - > pip uninstall --yes atdb-services \ No newline at end of file diff --git a/atdb_services_pip/atdb_scripts/atdb_alta_set_quality.sh b/atdb_services_pip/atdb_scripts/atdb_alta_set_quality.sh deleted file mode 100644 index 48c50e2b47358a99e60d584f14e62c7463100c8e..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_alta_set_quality.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# example -# curl -X GET "http://dop457.astron.nl/atdb/mark-period-as?taskid_from=191002130&taskid_to=191002149&quality=data_is_good&observing_mode=imaging" - -curl -X GET "http://atdb.astron.nl/atdb/mark-period-as?taskid_from=190403001&taskid_to=190403004&quality=data_is_good&observing_mode=arts_sc4_survey" - - -# Next command will nocurl -X GET "http://atdb.astron.nl/atdb/mark-period-as?taskid_from=191031202&taskid_to=191031203&quality=data_is_good&observing_mode=imaging" -t close the window, can be handy if something goes wrong -exec $SHELL - diff --git a/atdb_services_pip/atdb_scripts/atdb_change_status.sh b/atdb_services_pip/atdb_scripts/atdb_change_status.sh deleted file mode 100644 index 9db2b6ddc08d18f2e4adf4bcaa8f2a4ed86fe7ee..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_change_status.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -atdb_service -o change_status --resource observations --search_key taskid:$1 --status $2 --atdb_host prod -v diff --git a/atdb_services_pip/atdb_scripts/atdb_delete.sh b/atdb_services_pip/atdb_scripts/atdb_delete.sh deleted file mode 100644 index 55d6b33fe2aab44274f4bb47f04948e0798ef079..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_delete.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -atdb_service -o delete_taskid --taskid $1 --atdb_host prod -v diff --git a/atdb_services_pip/atdb_scripts/atdb_kill_all_services.sh b/atdb_services_pip/atdb_scripts/atdb_kill_all_services.sh deleted file mode 100644 index e9486d825ddcaaed5e1256fac0b27b684b4e6485..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_kill_all_services.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# ATDB script to kill all 'background services' -killall atdb_service -v --signal SIGKILL \ No newline at end of file diff --git a/atdb_services_pip/atdb_scripts/atdb_scheduler.sh b/atdb_services_pip/atdb_scripts/atdb_scheduler.sh deleted file mode 100644 index a694d24c701eba34a139bc09b3104c56aef55da9..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_scheduler.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -atdb_service -o scheduler --taskid $1 --starttime $2 --endtime $3 --atdb_host prod -v diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_all.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_all.sh deleted file mode 100644 index 315db4c110e8aa37d2ecc7e134db1843267a42f3..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_all.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# ATDB script to start the 'background services' -# after pip install, start as production: nohup atdb_start_all_services.sh & -# 20181004: ALTA to production! - -# executor looks for scheduled tasks and runs them at starttime -# executor looks for running tasks and stops them at endtime. -atdb_service -o executor --interval 10 --atdb_host prod -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --interval 30 --atdb_host prod -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --interval 30 --atdb_host prod --alta_host prod -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --interval 60 --atdb_host prod -v & diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts.sh deleted file mode 100644 index 0b2eaaed42ee080086e96f4215afb0cda27ad140..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# script to start the atdb services -# after pip install, start as production: nohup atdb_start_all_services_arts.sh - -# atdb_service -o executor --obs_mode_filter arts --interval 10 --atdb_host prod --testmode -v & - -# combine looks for 'combine' observations and puts them on 'combining' while executing the combine_script -atdb_service -o combine --obs_mode_filter arts_sc1 --interval 60 --atdb_host prod --combine_script /home/arts/scripts/combine_obs_sc1_for_atdb.sh -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -#atdb_service -o data_monitor --obs_mode_filter arts_sc1 --interval 30 --atdb_host prod -v & -atdb_service -o data_monitor --obs_mode_filter arts --interval 30 --atdb_host prod -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter arts --interval 30 --atdb_host prod --alta_host prod -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --obs_mode_filter arts --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --obs_mode_filter arts --interval 60 --atdb_host prod -v & diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc1.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc1.sh deleted file mode 100644 index e7b373d3f862b98772ae53f56405ee3c15688b7f..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc1.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# script to start the atdb services -# after pip install, start as production: nohup atdb_start_all_services_arts.sh - -# atdb_service -o executor --obs_mode_filter arts --interval 10 --atdb_host prod --testmode -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --obs_mode_filter arts_sc1 --interval 60 --atdb_host prod -v & -#atdb_service -o data_monitor --obs_mode_filter arts --interval 30 --atdb_host prod -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter arts_sc1 --interval 30 --atdb_host prod --alta_host prod -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -#atdb_service -o ingest_monitor --obs_mode_filter arts_sc1 --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & -atdb_service -o ingest_monitor --obs_mode_filter arts --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -#atdb_service -o cleanup --obs_mode_filter arts --interval 60 --atdb_host prod -v & -atdb_service -o cleanup --obs_mode_filter arts_sc1 --interval 60 --atdb_host prod -v & diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc4.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc4.sh deleted file mode 100644 index 1670fcb476e5cafb0fc272b17dd439bd1e45b506..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_arts_sc4.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -export LD_LIBRARY_PATH=$HOME/alta-client/.env/lib:$LD_LIBRARY_PATH - -# script to start the atdb services -# after pip install, start as production: nohup atdb_start_all_services_arts_sc4.sh - -# atdb_service -o executor --obs_mode_filter arts_sc4 --interval 10 --atdb_host prod --testmode -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --obs_mode_filter arts_sc4 --interval 30 --atdb_host prod -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter arts_sc4 --interval 30 --atdb_host prod --alta_host prod -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -# atdb_service -o ingest_monitor --obs_mode_filter arts_sc4 --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --obs_mode_filter arts_sc4 --interval 60 --atdb_host prod -v & diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_imaging.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_imaging.sh deleted file mode 100644 index f07ed23ac270e90be17473e5e84efef3b66b25f0..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_imaging.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# script to start the atdb services -# after pip install, start as production: nohup atdb_start_all_services_imaging.sh - -# NV: 6dec2018: -# NOTE! The executor currently handles both 'imaging' and 'arts' observations because of parset_generator import errors on arts0 -atdb_service -o executor --obs_mode_filter imaging --interval 10 --atdb_host prod -v & -atdb_service -o executor --obs_mode_filter arts --interval 10 --atdb_host prod -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --obs_mode_filter imaging --interval 30 --atdb_host prod -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter imaging --interval 30 --atdb_host prod --alta_host prod -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --obs_mode_filter imaging --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --obs_mode_filter imaging --interval 60 --atdb_host prod -v & diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_all.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_all.sh deleted file mode 100644 index c160f44db78095b62f8395c0a1fb007cf0ba350d..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_all.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# ATDB script to start the 'background services' and connects to test backend (VM on 192.168.22.22) -# after pip install, start as test: nohup atdb_start_all_services_test.sh & - -# executor looks for scheduled tasks and runs them at starttime -# executor looks for running tasks and stops them at endtime. -atdb_service -o executor --interval 10 --atdb_host test -v --testmode & - -# combine looks for 'combine' observations and puts them on 'combining' while executing the combine_script -atdb_service -o combine --obs_mode_filter arts_sc1 --interval 30 --atdb_host prod --combine_script /home/vagrant/scripts/combine_test.sh -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --interval 30 --atdb_host test -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --interval 30 --atdb_host test -v --testmode & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --interval 30 --atdb_host test --alta_host acc --testmode --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' and 'removing' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --interval 60 --atdb_host test -v & \ No newline at end of file diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_arts.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_arts.sh deleted file mode 100644 index 7f2f9de5283c2307404c18f5b3d3275add7230b4..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_arts.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# ATDB script to start the 'background services' and connects to test backend (VM on 192.168.22.22) -# after pip install, start as test: nohup atdb_start_all_services_test.sh & - -atdb_service -o executor --obs_mode_filter arts --interval 10 --testmode --atdb_host test -v & - -# combine looks for 'combine' observations and puts them on 'combining' while executing the combine_script -atdb_service -o combine --obs_mode_filter arts_sc1 --interval 30 --combine_script /home/vagrant/scripts/combine_test.sh --atdb_host test -v & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --obs_mode_filter arts --interval 30 --atdb_host test -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter arts --interval 30 --testmode --atdb_host test -v & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --obs_mode_filter arts --testmode --interval 30 --atdb_host test --alta_host acc --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --obs_mode_filter arts --interval 60 --atdb_host test -v & \ No newline at end of file diff --git a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_imaging.sh b/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_imaging.sh deleted file mode 100644 index 05349b176b42d984d6bd06b251b5ade60d03b643..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/atdb_start_all_services_test_imaging.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# ATDB script to start the 'background services' and connects to test backend (VM on 192.168.22.22) -# after pip install, start as test: nohup atdb_start_all_services_test.sh & - -# executor looks for scheduled tasks and runs them at starttime -# executor looks for running tasks and stops them at endtime. -atdb_service -o executor --obs_mode_filter imaging --interval 10 --atdb_host test --testmode -v -v2 & - -# data_monitor looks for 'completed' observations and its 'defined' dataproducts and puts them on 'completed' -atdb_service -o data_monitor --obs_mode_filter imaging --interval 30 --atdb_host test -v & - -# start_ingest looks for 'valid' tasks and then starts the ingest to ALTA. -atdb_service -o start_ingest --obs_mode_filter imaging --interval 30 --atdb_host test -v --testmode & - -# ingest_monitor looks if 'ingesting' tasks and dataproducts have arrived in ALTA, and when found sets their status in ATDB to 'archived' -atdb_service -o ingest_monitor --obs_mode_filter imaging --testmode --interval 30 --atdb_host test --alta_host acc --user atdb --password V5Q3ZPnxm3uj -v & - -# looks for 'archived' observations and deletes its 'archived' dataproducts -atdb_service -o cleanup --obs_mode_filter imaging --interval 60 --atdb_host test -v & \ No newline at end of file diff --git a/atdb_services_pip/atdb_scripts/combine_obs_sc1_for_atdb.sh b/atdb_services_pip/atdb_scripts/combine_obs_sc1_for_atdb.sh deleted file mode 100644 index 46ae563b91bb6791de47794f71013565e2cdcf82..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_scripts/combine_obs_sc1_for_atdb.sh +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/bash -# Modified from Yogesh Maan's script to connect it to ATDB. -# Added some extra input parameters and a call to ATDB to put the Observation on 'completing'. -# -- Nico Vermaas, 14 dec 2018 - -# Modified from Leon Oostrum's script to combine profiles in both time and frequency on ARTS-0, -# A few bug fixes; correct for duplicate beamlets (frequency channels) and make a quick-look plot. -- Yogesh Maan -# -# Exit codes: -# 0: all is fine -# 1: a folder doesn't exist -# 2: mandatory argument(s) missing - -# Usage of script -function usage { -echo " Usage: - ================================================ - $(basename $0) <Options> - - - Options: - -taskid <taskid> : taskid of observation - -outname_atdb : output filename according to the specifications in ATDB - -date <date> : date of observation in - yyyymmdd format - - -folder <folder> : subfolder of /data/*/Timing - /yyyymmdd which contains - the folded profiles - - -sband <sband> : Start band number - (**Default: 1) - - -eband <eband> : End band number - (**Default: 16) - ================================================" -exit 2 -} - -# Ready to spawn job -function clearToSpawn -{ - local jobcount="$(jobs -r | wc -l)" - if [ $jobcount -lt $njobs ] ; then - return 0; - fi - return 1; -} - - -# Call usage if too few arguments are supplied -[[ $# -lt 2 ]] && usage - -# parse arguments -while [[ $# -gt 1 ]]; do - key="$1" - - case $key in - -sband) - sband="$2" - shift - ;; - -eband) - eband="$2" - shift - ;; - -date) - date="$2" - shift - ;; - -folder) - folder="$2" - shift - ;; - -taskid) - taskid="$2" - shift - ;; - -outname_atdb) - outname_atdb="$2" - shift - ;; - -o) - outname="$2" - shift - ;; - -njobs) - njobs="$2" - shift - ;; - *) - usage - ;; - esac - shift -done - -while [[ $# -gt 0 ]]; do - key="$1" - - case $key in - -full) - fullres="yes" - shift - ;; - esac - shift -done - -# set defaults for arguments and check whether required arguments are present -sband=${sband:-01} -eband=${eband:-16} -#outname=${outname:-all.ar} -njobs=${njobs:-16} -# Make sure sband starts with 0 if less than 10. eband doesn't matter as we're using seq -w -if [[ $sband -lt 10 ]] && [[ ! ${sband:0:1} -eq 0 ]]; then - sband=0$sband -fi -# Complain if required arguments are not specified -if [[ "$date" == "" ]]; then - echo "-date argument is required" - exit 2 -fi -if [[ "$folder" == "" ]]; then - echo "-folder argument is required" - exit 2 -fi - -outname=${folder}.merged.ar # default output file-name now contains all the information about input filenames -if [[ "$outname_atdb" != "" ]]; then - outname=${outname_atdb} -fi - -# Remove existing band*.ar files -if test -n "$(find . -maxdepth 1 -name 'band??.ar' -print -quit)"; then - #read -rep 'Some band??.ar files already exist, remove [Y/n]?' ans - ans="Yes" - case $ans in - [Nn] ) exit 1;; - * ) rm -f band??.ar;; - esac -fi - -# Combine in time, Delete the duplicate beamlets and correct the frequencies of all the channels -for band in $(seq -w $sband $eband); do - fullpath=/data/$band/Timing/$date/$folder - if [[ ! -d "$fullpath" ]]; then - echo "Folder $fullpath doesn't exist" - exit 1 - fi - - # Wait if $njobs jobs are already running - while ! clearToSpawn ; do - sleep 0.5 - done - - echo "Combining profiles for band $band" -# (nice psradd -P $fullpath/*.ar -o band${band}.ar; psredit -m -c bw=18.75 band${band}.ar) & - fnow=$(echo "1250.0 + ($band - 1) * 12.5" | bc -l) - for i in `seq 0 15`; do atemp=`echo ${i}*0.781250+${fnow} | bc` ; fstr="${fstr} -c int:freq[$i]=${atemp}" ; done - cmd="psredit -m ${fstr} band${band}.ar" - (nice psradd $fullpath/*.ar -o band${band}.ar && /home/arts/scripts/del_chans_subband.psh band${band}.ar && eval ${cmd}) & -done -wait - - - -# Combine in frequency, if multiple bands are used. Otherwise we are done -if [[ $((10#$eband)) -gt $((10#$sband)) ]]; then - echo "Combining subbands:" - # if there are too many subintegrations, first do partial scrunch in time - nsubint=`psrstat -c nsubint -qQ band01.ar` - if [[ $nsubint -gt 2500 ]]; then - echo " Too many subintegrations, first partial-schrunching in time..." - nice pam -m -t 6 band*.ar - echo " Done time-scrunching !" - fi - # Using an asterisk here is fine, it won't crash on non-existing files - nice psradd -R band*.ar -o ${outname} -fi - -echo "Done combining !" - -## also do basic scrunching and prepare a plot -##nice pam -e .ar.tscr -T ${outname} ; pam -e .ar.fpscr -Fp ${outname} ; psrplot -jDT -p F -D ${outname}0.ps/cps ${outname}.tscr -l pol=0-3 - - - echo " " - - #echo 'RFI-excision using "paz -rLd"...' - #nice paz -rLd -m ${outname}.fdel - # also do basic scrunching and make plots - echo "Preparing scrunched archives..." - nice pam -e .ar.tscr -T ${outname} ; pam -e .ar.fscr -F ${outname} - echo "Making final plots:" - echo " ${outname}f.ps" - echo " ${outname}t.ps" - nice psrplot -jDT -p F -D ${outname}f.ps/cps ${outname}.tscr -l pol=0-3 -c set=pub ; psrplot -jDF -p Y -D ${outname}t.ps/cps ${outname}.fscr -l pol=0-3 -c set=pub - -# set the status of this observation to 'completing' in ATDB. -cd ~/atdb_client -source env2/bin/activate -atdb_interface -o PUT --key observations:new_status --value completing --taskid ${taskid} --host prod - -echo "*combine_obs_sc1_for_atdb.sh* created: $outname_atdb" - -exit 0 - diff --git a/atdb_services_pip/atdb_services.egg-info/PKG-INFO b/atdb_services_pip/atdb_services.egg-info/PKG-INFO deleted file mode 100644 index e821283e8575cf812e890fdf1c921b2c7cce42d9..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/PKG-INFO +++ /dev/null @@ -1,10 +0,0 @@ -Metadata-Version: 1.0 -Name: atdb-services -Version: 1.2.7 -Summary: ATDB services -Home-page: https://www.astron.nl/wsrt/wiki/doku.php?id=atdb:atdb_services -Author: Nico Vermaas & Roy de Goei - Astron -Author-email: vermaas@astron.nl -License: BSD -Description: UNKNOWN -Platform: UNKNOWN diff --git a/atdb_services_pip/atdb_services.egg-info/SOURCES.txt b/atdb_services_pip/atdb_services.egg-info/SOURCES.txt deleted file mode 100644 index 9971d6f44dc980bb062e01c2d7b87cf944ff4c2a..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/SOURCES.txt +++ /dev/null @@ -1,43 +0,0 @@ -MANIFEST.in -README.rst -setup.py -atdb_scripts/atdb_change_status.sh -atdb_scripts/atdb_delete.sh -atdb_scripts/atdb_kill_all_services.sh -atdb_scripts/atdb_scheduler.sh -atdb_scripts/atdb_start_all_services_all.sh -atdb_scripts/atdb_start_all_services_arts.sh -atdb_scripts/atdb_start_all_services_arts_sc1.sh -atdb_scripts/atdb_start_all_services_arts_sc4.sh -atdb_scripts/atdb_start_all_services_imaging.sh -atdb_scripts/atdb_start_all_services_test_all.sh -atdb_scripts/atdb_start_all_services_test_arts.sh -atdb_scripts/atdb_start_all_services_test_imaging.sh -atdb_scripts/combine_obs_sc1_for_atdb.sh -atdb_services/__init__.py -atdb_services/atdb_ingest.py -atdb_services/atdb_io.py -atdb_services/atdb_parset_generator.py -atdb_services/atdb_service.py -atdb_services/atdb_service_logging.ini -atdb_services/service_add_dataproduct.py -atdb_services/service_cleanup.py -atdb_services/service_data_monitor.py -atdb_services/service_executor.py -atdb_services/service_ingest_monitor.py -atdb_services/service_scheduler.py -atdb_services/service_specification.py -atdb_services/service_start_ingest.py -atdb_services/supervisor_atdb_services_aperops.ini -atdb_services/supervisor_atdb_services_arts0.ini -atdb_services/supervisor_atdb_services_imaging.ini -atdb_services/supervisor_atdb_services_imaging_test.ini -atdb_services/supervisor_atdb_services_imaging_vm.ini -atdb_services/supervisor_atdb_services_wcudata1.ini -atdb_services/supervisor_atdb_services_wcudata2.ini -atdb_services.egg-info/PKG-INFO -atdb_services.egg-info/SOURCES.txt -atdb_services.egg-info/dependency_links.txt -atdb_services.egg-info/entry_points.txt -atdb_services.egg-info/requires.txt -atdb_services.egg-info/top_level.txt \ No newline at end of file diff --git a/atdb_services_pip/atdb_services.egg-info/dependency_links.txt b/atdb_services_pip/atdb_services.egg-info/dependency_links.txt deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/atdb_services_pip/atdb_services.egg-info/entry_points.txt b/atdb_services_pip/atdb_services.egg-info/entry_points.txt deleted file mode 100644 index 806ce9c70235101b8a5c62175ceac999322c6c1a..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/entry_points.txt +++ /dev/null @@ -1,3 +0,0 @@ -[console_scripts] -atdb_service = atdb_services.atdb_service:main - diff --git a/atdb_services_pip/atdb_services.egg-info/requires.txt b/atdb_services_pip/atdb_services.egg-info/requires.txt deleted file mode 100644 index f2293605cf1b01dca72aad0a15c45b72ed5429a2..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/requires.txt +++ /dev/null @@ -1 +0,0 @@ -requests diff --git a/atdb_services_pip/atdb_services.egg-info/top_level.txt b/atdb_services_pip/atdb_services.egg-info/top_level.txt deleted file mode 100644 index 36383a9719ab2ad0c9ff8327e81422874c0427b2..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -atdb_services diff --git a/atdb_services_pip/atdb_services/__init__.py b/atdb_services_pip/atdb_services/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/atdb_services_pip/atdb_services/atdb_ingest.py b/atdb_services_pip/atdb_services/atdb_ingest.py deleted file mode 100644 index 09a61229d9bebc09679385fa1252e79575926ead..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/atdb_ingest.py +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/python3 -""" - File name: atdb_ingest.py - Author: Roy de Goei - Astron - Date created: 2018-09-18 - Date last modified: 2018-09-25 - Description: A python wrapper module for the ATDB start_ingest service - It uses the alta_core_utils.session module to execute the alta_ingest -""" - -import os -import shutil - -from alta_core_utils.session import Session - - -ATDB_INGEST_TEMP_BASE_FOLDER = os.path.expanduser("~/atdb_client/ingests") - - -# Vanuit python3 een python 2 (ingest) command starten -ALTA_INGEST_COMMAND = 'alta_ingest' -ALTA_INGEST_DEPLOY_DIRECTORY = os.path.join(os.path.expanduser('~'), 'alta-client') -ALTA_INGEST_DEPLOY_VIRTUAL_ENV = os.path.join(ALTA_INGEST_DEPLOY_DIRECTORY, '.env') -ALTA_INGEST_DEPLOY_BIN = os.path.join(ALTA_INGEST_DEPLOY_VIRTUAL_ENV, 'bin') -ALTA_INGEST_DEPLOY_LIB = os.path.join(ALTA_INGEST_DEPLOY_VIRTUAL_ENV, 'lib') -ALTA_INGEST_DEPLOY_ACTIVATE = os.path.join(ALTA_INGEST_DEPLOY_BIN, 'activate') -# Use verbose -ALTA_INGEST_EXTRA_OPTIONS = "-v" - -SECONDS_IN_A_DAY = 86400 - - -# ------------------------------------------------------------------------------# -# Module level functions # -# ------------------------------------------------------------------------------# -def execute_alta_ingest(taskID, list_of_valid_files, total_size, irods_collection, - irods_host, locality_policy, max_lifetime_on_disk, - files_are_remote=False, verbose=False): - """ - Execute an ALTA Ingest which performs: - - Prepare: Create symbolic link folder and parameter file for alta_ingest - - The alta_ingest using the parfile as input - - Post: Remove the symbolic link folder and parameter file - :param taskID: The taskid of the dataproducts to be ingested - :param list_of_valid_files: List of files (full path name) with the 'valid' state - :param total_size: The total size of the ingested dataproducts required for 'reservation' - :param irods_collection: The relative irods location where to store (inc. taskID) - :param irods_host: The irods (icat) host name - :param locality_policy: Storage policy; archive, cold_disk or cold_tape - :param max_lifetime_on_disk: Time in minutes how long the observation stays in ALTA archive - :param files_are_remote: if this flag is true then create a .remote file - Note: The irods host name will be removed if alta_ingest does not need it as parameter anymore - :return: ret_code: indicated OK (0) else ERROR - ret_string: formatted ingest output string with stdout and stderr - """ - if len(list_of_valid_files) == 0: - ret_code = 0 - ret_string = "Empty list of valid files, so nothing to ingest." - else: - try: - __atdb_ingest_verbose_print(verbose, "Check preconditions") - check_preconditions() - # Make sure there are no duplicates in list of files - list_of_valid_files = sorted(set(list_of_valid_files)) - - ingest_folder, ingest_parfile = \ - prepare_ingest(taskID, list_of_valid_files, total_size, irods_collection, - irods_host, locality_policy, max_lifetime_on_disk, files_are_remote) - __atdb_ingest_verbose_print(verbose, "Ingest folder %s and parameter file %s created " % - (ingest_folder, ingest_parfile)) - - options = '--parfile %s %s' % (ingest_parfile, ALTA_INGEST_EXTRA_OPTIONS) - __atdb_ingest_verbose_print(verbose, "Start execute ingest with options " + str(options)) - ingest_output = BaseIngest.execute_ingest(options) - __atdb_ingest_verbose_print(verbose, "Finish execute ingest") - formatted_ingest_output = BaseIngest.format_ingest_output(ingest_output) - - __atdb_ingest_verbose_print(verbose, "Cleanup Ingest folder %s and parameter file %s" % - (ingest_folder, ingest_parfile)) - ingest_cleanup(ingest_folder, ingest_parfile) - - ret_code = ingest_output[0] - ret_string = formatted_ingest_output - except Exception as e: - ret_code = -1 - ret_string = str(e) - - return ret_code, ret_string - - -def check_preconditions(): - """ - Check if the the preconditions of the alta_ingest are met: - - Check if the environment variable LD_LIBRARY_PATH is set -# - Check that "/home/vagrant/alta-client/.env/lib is in environment variable LD_LIBRARY_PATH - If not met, raise exception with advice string - """ - advice_str = "\nPlease execute export LD_LIBRARY_PATH=%s:/opt/apertif/lib:$LD_LIBRARY_PATH" % ALTA_INGEST_DEPLOY_LIB - try: - env_ld_path = os.environ['LD_LIBRARY_PATH'] - except KeyError as e: - raise Exception("The environment variable LD_LIBRARY_PATH is not set." + advice_str) -# if ALTA_INGEST_DEPLOY_LIB not in env_ld_path: -# raise Exception("%s is not in environment variable LD_LIBRARY_PATH %s" % (ALTA_INGEST_DEPLOY_LIB, advice_str) ) - - -def prepare_ingest(taskID, list_of_valid_files, total_size, irods_collection, irods_host, locality_policy, - max_lifetime_on_disk, files_are_remote): - """ - Prepare the ingest. Create a temporary ingest folder - where all symbolic links are stored. These symbolic links are linked - to the original data files which has the status valid. - The temporary ingest folder is ~/atdb_client/ingests/ingest-[taskId] - Also create an alta_ingest parameter file in ~/atdb_client/ingests/ingest-[taskid].parfile - which has the parameters - --localDir= - --irodsColl= - --size= - --host= (will be removed, requires alta_ingest update) - So you will get for example when taskID is 180420002: - 'ln -s /data/apertif/WSRTA180420002_B000.MS ~/atdb_client/ingests/ingest-18042002/WSRTA180420002_B000.MS' - 'ln -s /data/apertif/WSRTA180420002_B001.MS ~/atdb_client/ingests/ingest-18042002/WSRTA180420002_B001.MS' - etc... - And ~/atdb_client/ingests/ingest-18042002.parfile - :return: ingest_folder: Name of the temporary ingest folder - ingest_parfile: Name of the created ingest parameterfile - """ - ingest_folder = ATDB_INGEST_TEMP_BASE_FOLDER + "/ingest-" + taskID - ingest_parfile = ATDB_INGEST_TEMP_BASE_FOLDER + "/ingest-" + taskID + ".parfile" - remote_dataproducts = ingest_folder + "/ingest-" + taskID + ".remote" - # Always remove folder if exist - if os.path.exists(ingest_folder): - shutil.rmtree(ingest_folder) - # Create folder (recursively) - os.makedirs(ingest_folder) - - if files_are_remote: - # create ingest-<taskId>.remote file containing the remote machine, directory and filename - - with open(remote_dataproducts, "w+") as f: - #print('remote file : '+remote_dataproducts) - for remote_filename in list_of_valid_files: - f.write(remote_filename+"\n") - else: - # Create symbolic links when files are not remote - for full_file in list_of_valid_files: - # Get filename from full path - file_name = full_file.rsplit('/', 1)[1] - linked_file = ingest_folder + "/" + file_name - os.symlink(full_file, linked_file) - - # Create parameterfile (overwrite if exist) - with open(ingest_parfile, "w+") as f: - #print('parameter file : ' + ingest_parfile) - f.write(("--localDir=%s\n" % ingest_folder)) - f.write(("--irodsColl=%s\n" % irods_collection)) - f.write(("--size=%s\n" % str(total_size))) - f.write(("--host=%s\n" % str(irods_host))) - f.write(("--ttl=%s\n" % str(max_lifetime_on_disk))) - f.write(("--locality_policy=%s\n" % str(locality_policy))) - - return ingest_folder, ingest_parfile - - -def ingest_cleanup(ingest_folder, ingest_parfile): - """ - Remove the symbolic link folder and the parameterfile. - :param: ingest_folder: Name of the temporary ingest folder - :param ingest_parfile: Name of the created ingest parameterfile - """ - if os.path.exists(ingest_folder): - shutil.rmtree(ingest_folder) - if os.path.exists(ingest_parfile): - os.remove(ingest_parfile) - - -def __atdb_ingest_verbose_print(verbose, info_str): - """ - Print info string if verbose is enabled (default False) - :param info_str: String to print - """ - if verbose: - print("atdb_ingest " + info_str) - -# ------------------------------------------------------------------------------# -# Base Ingest use the alta session # -# ------------------------------------------------------------------------------# -class BaseIngest(): - """ - The Alta Base Ingest class. - Adapted from the irods_integration_tester.py - """ - - # ---------------------------------------------------------------------------# - @staticmethod - def create_command(options): - """ - Creates an ingest command with the provided options. - :param options: ingest command options - :return: The command string to be executed from shell. - """ - alta_ingest = os.path.join(ALTA_INGEST_DEPLOY_BIN, ALTA_INGEST_COMMAND) - ingest_command = '. ' + ALTA_INGEST_DEPLOY_ACTIVATE + '; ' + alta_ingest + ' %s' % options - return ingest_command - - # ---------------------------------------------------------------------------# - @staticmethod - def execute_ingest(options, timeout_in_seconds=SECONDS_IN_A_DAY): - """ - Executes the ingest command with the options. - :param options: the options to executes the ingest command. - :param timeout_in_seconds: ingest timeout in seconds. - :return A tuple with (returncode, ingest) from the ingest command. - """ - ingest_command = BaseIngest.create_command(options) - with Session.from_default() as sess: - ingest_output = sess.execute(ingest_command, timeout_in_seconds) - return ingest_output - - # ---------------------------------------------------------------------------# - @staticmethod - def format_ingest_output(ingest_output): - """ - :param ingest_output: The result of the ingest command - :return: formatted_ingest_output: A tuple with (returncode, ingest) from the ingest command. - returncode indicated OK else ERROR - """ - formatted_ingest_output = "\n ALTA ingest process stdout: \n" + ingest_output[1] \ - + "\n ALTA ingest process stderr: \n" + ingest_output[2] - return formatted_ingest_output diff --git a/atdb_services_pip/atdb_services/atdb_io.py b/atdb_services_pip/atdb_services/atdb_io.py deleted file mode 100644 index 8849edd6cc000e2ab939f423eb07c8efefcfbc14..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/atdb_io.py +++ /dev/null @@ -1,340 +0,0 @@ -""" - File name: atdb_io.py - Authors: Nico Vermaas, Roy de Goei - Astron - Date created: 2018-11-24 - Date last modified: 2018-12-02 - Description: This is the IO class of the atdb_services that handles the communication with ATDB and ALTA. - It also has functionality to write to slack, stdout and logging. -""" - -import os -import subprocess -import datetime -import requests -import logging - -logger = logging.getLogger(__name__) - -from atdb_interface.atdb_interface import ATDB - -try: - from alta_interface.alta_interface import ALTA -except: - print("no alta_interface available, install alta_interface when start_ingest service is needed on this machine.") - -# The request header -ATDB_HEADER = { - 'content-type': "application/json", - 'cache-control': "no-cache", - 'authorization': "Basic YWRtaW46YWRtaW4=" -} - -# some constants -ATDB_HOST_DEV = "http://localhost:8000/atdb" # your local development environment with Django webserver -ATDB_HOST_VM = "http://192.168.22.22/atdb" # your local Ansible/Vagrant setup for testing -ATDB_HOST_ACC = "http://192.168.22.25/atdb" # your local Ansible/Vagrant acceptance setup -ATDB_HOST_TEST = "http://atdb-test.astron.nl/atdb" # the atdb test environment -ATDB_HOST_PROD = "http://atdb.astron.nl/atdb" # the atdb production environment. -ATDB_HOST_DOCKER = "http://dop457.astron.nl/atdb" # the atdb production environment. - -ALTA_HOST_DEV = "http://localhost:8000/altapi" -ALTA_HOST_TEST = "http://dop457.astron.nl/altapi" -ALTA_HOST_ACC = "https://alta-acc.astron.nl/altapi" -ALTA_HOST_PROD = "https://alta.astron.nl/altapi" -ALTA_HOST_DOCKER = "http://dop457.astron.nl/altapi" - -DEFAULT_ATDB_HOST = ATDB_HOST_TEST -DEFAULT_ALTA_HOST = ALTA_HOST_ACC - - -def unicode_to_ascii(value, encoding='utf-8'): - """ - :param value: - :param encoding: UTF-8 - :return: String - """ - try: - # python 2 - if isinstance(value, unicode): - return value.encode(encoding) - return value - except: - # python 3 - return value - -class ATDB_IO: - """ - This is the IO class of the atdb_services that handles the communication with ATDB and ALTA. - It also has functionality to write to slack, stdout and logging. - """ - TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ" - - def __init__(self, atdb_host, alta_host='', user='', password='', obs_mode_filter='', host_filter='', verbose=False, verbose_deep=False, testmode=False): - """ - Constructor. - :param host: the host name of the backend. - :param username: The username known in Django Admin. - :param verbose: more information about atdb_service at runtime. - :param verbose_deep: more information about underlying atdb_interface at runtime. - :param testmode: runs the services in testmode if true. Look in services what this means per service. - """ - - # accept some presets to set host to dev, test, acc or prod - self.host = atdb_host - if self.host=='dev': - self.host = ATDB_HOST_DEV - elif self.host=='vm': - self.host = ATDB_HOST_VM - elif self.host=='test': - self.host = ATDB_HOST_TEST - elif self.host=='prod': - self.host = ATDB_HOST_PROD - elif self.host == 'docker': - self.host = ATDB_HOST_DOCKER - elif (not self.host.endswith('/')): - self.host += '/' - - self.alta_host = alta_host - - if self.alta_host=='dev': - self.alta_host = ALTA_HOST_DEV - elif self.alta_host=='test': - self.alta_host = ALTA_HOST_TEST - elif self.alta_host=='acc': - self.alta_host = ALTA_HOST_ACC - elif self.alta_host=='prod': - self.alta_host = ALTA_HOST_PROD - elif self.alta_host=='docker': - self.alta_host = ALTA_HOST_DOCKER - - elif (not self.alta_host.endswith('/')): - self.alta_host += '/' - - self.verbose = verbose - self.verbose_deep = verbose_deep - self.header = ATDB_HEADER - self.user = user - self.password = password - self.testmode = testmode - self.obs_mode_filter = obs_mode_filter - self.host_filter = host_filter - self.atdb_interface = ATDB(self.host, self.verbose_deep) - #self.atdb_interface = ATDB(self.host) - try: - self.alta_interface = ALTA(self.alta_host,self.user,self.password, self.verbose_deep) - except: - print("WARNING: No connection to ALTA could be made on "+self.alta_host+" (valid credentials provided?). Continuing without ALTA connection.") - print("(Currently, only the 'ingest_monitor' service needs an ALTA connection to check if it can change the status from 'ingesting' to 'archived'. The other services will run fine without the ALTA connection)") - - def verbose_print(self, info_str): - """ - Print info string if verbose is enabled (default False) - :param info_str: String to print - """ - if self.verbose: - timestamp = datetime.datetime.now().strftime(self.TIME_FORMAT) - print(str(timestamp)+ ' - '+info_str) - - def get_dir_size(self, start_path='.'): - total_size = 0 - for dirpath, dirnames, filenames in os.walk(start_path, followlinks=True): - for f in filenames: - fp = os.path.join(dirpath, f) - total_size += os.path.getsize(fp) - return total_size - -# --- remote ssh commands--------------------------------------------------------------------------------------- - # as found in copy_to_alta.py - def run_on_node(self, hostname, command, background=True): - """Run command on an ARTS node. Assumes ssh keys have been set up - node: nr of node (string or int) - command: command to run - background: whether to run ssh in the banode: nr of node (string or int)ckground - """ - if background: - ssh_cmd = "ssh {} \"{}\" &".format(hostname, command) - else: - ssh_cmd = "ssh {} \"{}\"".format(hostname, command) - # print("Executing '{}'".format(ssh_cmd)) - return os.system(ssh_cmd) - - # copy a dataproduct from its hardcoded name (like tabA.fits) to the name provided by the atdb specfication service - def copy_dataproduct_remote(self, node, data_location, from_name, to_name): - """ copy a dataproduct from its hardcoded name (like tabA.fits) to the name provided by the atdb specfication service - node: nr of node (string or int) - data_location: directory on the node where the source file is, and where the target file will be copied. - from_name: file to copy - to_name : the new file. - """ - #print('copy dataproduct ' + node + ':/' + data_location + '/' + from_name + ' to ' + to_name) - src = data_location + '/' + from_name - tgt = data_location + '/' + to_name - cmd = 'cp ' + src + ' ' + tgt - - self.run_on_node(node, cmd, background=False) - - # move/rename a remote dataproduct - def move_dataproduct_remote(self, node, data_location, from_name, to_name): - """ move/rename a remote dataproduct - node: nr of node (string or int) - data_location: directory on the node where the source file is, and where the target file will be copied. - from_name: filename to rename - to_name : new filename - """ - #print('copy dataproduct ' + node + ':/' + data_location + '/' + from_name + ' to ' + to_name) - src = data_location + '/' + from_name - tgt = data_location + '/' + to_name - cmd = 'mv ' + src + ' ' + tgt - - self.run_on_node(node, cmd, background=False) - - # scp a dataproduct from a node to a local dir - def scp_dataproduct(self, node, from_location, from_name, to_location, to_name): - """ secure copy a file from a node to the current machine - node: nr of node (string or int) - data_location: directory on the node where the source file is, and where the target file will be copied. - from_name: file to copy - to_name : the new file. - """ - #print('copy dataproduct ' + node + ':/' + data_location + '/' + from_name + ' to ' + to_name) - src = from_location + '/' + from_name - tgt = to_location + '/' + to_name - cmd = 'scp ' + node + ':' + src + ' ' + tgt - os.system(cmd) - - # check if the specified file exist on the node. - def check_dataproduct(self, node, data_location, filename): - """ check if the dataproduct exists on the given location on the node) - node: nr of node (string or int) - data_location: directory on the node where the source file is, and where the target file will be copied. - from_name: file to check - """ - src = data_location + '/' + filename - cmd = 'test -s ' + src - if self.run_on_node(node, cmd, background=False) == 0: - return True - else: - return False - - # returns filesize of a remote file - def get_filesize_remote(self, node, filepath): - cmd = 'ssh ' + node + ' stat -Lc%s ' + filepath - try: - size = subprocess.check_output(cmd, shell=True) - size = size.split()[0].decode('utf-8') - return size - except Exception as err: - # file does not exist? - self.report('ERROR get_filesize_remote of' +filepath) - return 0 - - def remove_dataproduct_remote(self, node, data_location, filename): - """ remove a dataproduct from the given location on the node) - node: nr of node (string or int) - data_location: directory on the node where the source file is, and where the target file will be copied. - filename: file to remove - """ - src = data_location + '/' + filename - cmd = 'rm ' + src - self.run_on_node(node, cmd, background=False) - - - # -------------------------------------------------------------------------------------------------------- - # example: change status of observation with taskid=180223003 to valid. - # change_status('observations','taskid:180223003','valid' - def do_change_status(self, resource, search_key, status): - - my_key = resource + ':new_status' # observations:new_status - - # id:27 or taskid:180223003 - params = search_key.split(':') - search_field = params[0] # taskid - search_value = params[1] # 180223003 - - if search_field=='taskid': - if my_key.startswith('observations'): - self.atdb_interface.do_PUT(key=my_key, id=None, taskid=search_value, value=status) - if my_key.startswith('dataproducts'): - self.atdb_interface.do_PUT_LIST(key=my_key, taskid=search_value, value=status) - else: - self.atdb_interface.do_PUT(key=my_key, id=search_value, taskid=None, value=status) - -# -------------------------------------------------------------------------------------------------------- - def do_delete_taskid(self, taskid): - - # find the observation - cnt = 0 - id = self.atdb_interface.do_GET_ID(key='observations:taskID', value=taskid) - while (int(id) > 0): - cnt += 1 - self.verbose_print('delete observation : ' + str(taskid) + ' (id = ' + str(id) + ')') - self.atdb_interface.do_DELETE(resource='observations', id=id) - # check for more - id = self.atdb_interface.do_GET_ID(key='observations:taskID', value=taskid) - print(str(cnt) + ' observations with taskID ' + str(taskid) + ' removed') - - cnt = 0 - id = self.atdb_interface.do_GET_ID(key='dataproducts:taskID', value=taskid) - while (int(id) > 0): - cnt += 1 - self.verbose_print('delete dataproduct for taskID ' + str(taskid) + ' (id = ' + str(id) + ')') - self.atdb_interface.do_DELETE(resource='dataproducts', id=id) - # check for more - id = self.atdb_interface.do_GET_ID(key='dataproducts:taskID', value=taskid) - print(str(cnt) + ' dataproducts with taskID ' + str(taskid) + ' removed') - - -# -------------------------------------------------------------------------------------------------------- - def report(self, message, method='logging'): - self.verbose_print(message) - if 'ERROR' in message.upper(): - logging.error(message) - else: - logging.info(message) - - if 'print' in method: - self.verbose_print(message) - - if 'slack' in method: - self.send_message_to_atdb_slack_channel(message) - - - def _send_message_to_alta_channel(self, message_str): - """ - Send a message to the Slack channel #alta-transfers - With this channel a notification of Ingest ready (or failed) is given. - Don't raise an Exception in case of error - :param message_str: Message String - """ - try: - payload = {"text": message_str} - url = "https://hooks.slack.com/services/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" - res = requests.post(url, data=str(payload)) - self.verbose_print("Result of sending message to alta-channel: " + str(res)) - except Exception as err: - self.verbose_print("Exception of sending message to alta-channel: " + str(err)) - - - def send_message_to_atdb_slack_channel(self, message_str): - """ - Send a message to the Slack channel #atdb-logging - With this channel a notification of Ingest ready (or failed) is given. - Don't raise an Exception in case of error - :param message_str: Message String - """ - try: - timestamp = datetime.datetime.now().strftime(self.TIME_FORMAT) - message_str = unicode_to_ascii(message_str) - payload = {"text": str(timestamp) + ' - ' + message_str} - - if (self.host == ATDB_HOST_PROD): - # in production send to 'atdb_logging' - url = "https://hooks.slack.com/services/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" - else: - # otherwise send to 'atdb-test' - url = "https://hooks.slack.com/services/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" - - - res = requests.post(url, data=str(payload)) - except Exception as err: - print("Error sending message to slack: " + str(err)) \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/atdb_parset_generator.py b/atdb_services_pip/atdb_services/atdb_parset_generator.py deleted file mode 100644 index b70757df7895c0426f12c07dcdf23155d1c49c8d..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/atdb_parset_generator.py +++ /dev/null @@ -1,478 +0,0 @@ -""" - File name: parset_generator.py - Author: Boudewijn Hut - Astron - Date created: 2018-09-18 - Date last modified: 2019-01-09 - Description: A python wrapper module for the parset generation - It uses modules from the apertif repo - Should be used for Apertif as well Arts project -""" -# First 'load' the casacore, This will avoid the following error -# ImportError: /usr/lib/libcasa_tables.so.2: undefined symbol: _ZN4casa11MutexedInitC1EPFvPvES1_NS_5Mutex4TypeE -# during import of from apertif.tools.add_beam_dirs_to_parset import add_beam_dirs -import pyrap.images as pim - -from lofar.parameterset import parameterset -from apertif.common.util import locate_file -from apertif.tools.add_beam_dirs_to_parset import add_beam_dirs - -print('** parset_generator (atdb version) **') - -skip_pointing = False -try: - from apertif.tools.add_pointing_pattern_to_parset import add_pointing_pattern -except Exception as e: - # nv: 25jan2018 very temporary solution to prevent an import error until the next Apertif rollout - skip_pointing = True - print( - "WARNING: apertif.tools.add_beam_dirs_to_parset not yet deployed. Continuing without imaging_pointing functionality.") - -from apertif.tools.frequency_conversion import centralFrequency2LOFrequencies -from apertif.messaging.send_file import send_and_wait_files -from datetime import datetime, timedelta -from iso8601 import parse_date - - -PARSET_TIME_FORMAT = "%Y-%m-%d %H:%M:%S" -MAX_TIME_SLEW = 10 * 60 # maximum time required to slew the dishes, in seconds - -# ------------------------------------------------------------------------------# -# Module level functions # -# ------------------------------------------------------------------------------# - - -def send_parset_to_bus(parset_path, timeout=20.0): - """ - Send parset to the bus and wait for response - :param parset_path: path to the parset file - :param timeout: number of seconds to wait for responses from controllers (opt) - :return: reply: reply from the bus for this parset file - """ - reply = send_and_wait_files(parset_path, timeout=timeout) - reply = reply[parset_path] - return reply - - -def create_parset_from_template(atdb_interface, taskID, template_path, parset_dir): - """ - Create valid parset for an observation, based on a template and the provided taskID - - Create a parset for this taskID - - Add parset keys based on the observation specification in the database - - Returns the path to the generated parset - :param atdb_interface: an ATDB instance on which do_GET() can be called - :param taskID: ID of the task for which a parset is generated - :param template_path: path to the parset template - :param parset_dir: path to the directory that should hold the new parset file - - :return: parset_path: full path to the generated parset - """ - #parset_path = get_string('%s/%s.parset' % (parset_dir, taskID)) - parset_path = get_string('%s/%s.parset' % (parset_dir, taskID)) - # create parset by copying the template and by filling in the taskID - template_path = get_string(template_path) - parset = parameterset(template_path) - parset.replace('task.taskID', get_string(taskID)) - parset.writeFile(get_string(parset_path)) - # add information from the database - add_parset_keys_without_conversion(parset_path, atdb_interface) - add_parset_keys_with_conversion(parset_path, atdb_interface) - # make sure the parset becomes valid (i.e. passing the checks in obsIbletInfo) - obs_mode = str(atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) ) - # fill in other keys - add_observing_mode(parset_path, obs_mode) - add_recipient_list(parset_path, obs_mode=obs_mode) - add_beam_dirs(parset_path) - - # add pointing pattern for imaging_pointing observations - if not skip_pointing: - if 'imaging_pointing' in obs_mode: - add_pointing_pattern(parset_path) - - # Add file names to parset, retrieve all dataproducts for taskid - if 'imaging' in obs_mode: - ids = atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + taskID) - filenames = [] - for id in ids: - filename = atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - filenames.append(filename) - # Make sure start with beam 0 - filenames.sort() - add_ms_names(parset_path, filenames) - return parset_path - - -def add_observing_mode(parset_path, obs_mode_str): - """ - :param parset_path: path to the parset that should have the keys added - :param obs_mode_str: string of observing mode - Add observer mode to the parset - """ - parset = parameterset(get_string(parset_path)) - parset.replace('task.observingMode', get_string(obs_mode_str)) - parset.writeFile(get_string(parset_path)) - - -def add_parset_keys_without_conversion(parset_path, atdb_interface): - """ - Add parset keys based on data in the database, without changing the data value - :param parset_path: path to the parset that should have the keys added - :param atdb_interface: an ATDB instance on which do_GET() can be called - """ - - # get taskID from parset - parset = parameterset(get_string(parset_path)) - taskID = parset.getInt("task.taskID") - - # define how db specification keys map to parset keys - obs_mode = str(atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) ) - spec_key_map = {} - spec_key_map['observations:field_name'] = ['task.source.name', 'task.fieldName'] - spec_key_map['observations:beamPattern'] = 'task.beamSet.0.pattern' - spec_key_map['observations:field_beam'] = 'task.source.beam' - spec_key_map['observations:data_location'] = 'dataWriter.outputPath' - - if 'imaging' in obs_mode: - spec_key_map['observations:integration_factor'] = 'task.timeIntegrationFactor' - elif 'arts_sc1' in obs_mode: - spec_key_map['observations:par_file_name'] = 'arts.timing.parFile' - spec_key_map['observations:integration_factor'] = 'arts.timing.integrationTime' - spec_key_map['observations:number_of_bins'] = 'arts.timing.bins' - # loop over db keys - - for spec_key in spec_key_map.keys(): - parset_key = spec_key_map[spec_key] - if atdb_interface is None: - # define valid value if no interface available - parset_val = str(0) - if parset_key is 'task.beamSet.0.pattern': - parset_val = 'square_39p1_8bit_37beams' - else: - # retrieve data from database - parset_val = str(atdb_interface.do_GET(key=spec_key, id=None, taskid=taskID) ) - # add data to the parset - if not isinstance(parset_key, list): - parset.replace(get_string(parset_key), get_string(parset_val)) - else: - parset_keys = parset_key - for parset_key in parset_keys: - parset.replace(get_string(parset_key), get_string(parset_val)) - parset.writeFile(get_string(parset_path)) - - -def add_parset_keys_with_conversion(parset_path, atdb_interface): - """ - Add parset keys based on data in the database, with conversion to system settings - :param parset_path: path to the parset that should have the keys added - :param atdb_interface: an ATDB instance on which do_GET() can be called - """ - # get taskID from parset - parset = parameterset(parset_path) - taskID = parset.getInt ("task.taskID") - - # define which function to use for conversion of what db specification key - # key_func_spec_map - key: parset key - # - first value in list: function name that does conversion - # - other values in list: key for database for which value will - # be passed as argument to the function - obs_mode = str(atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) ) - key_func_spec_map = {} - key_func_spec_map['task.LO1freq'] = [determineLO1Frequency, 'observations:central_frequency'] - key_func_spec_map['task.beamSet.0.compoundBeams'] = [determineBeamSelection, 'observations:beamPattern'] - key_func_spec_map['task.source.direction'] = [determineSourceDirection, 'observations:field_ra', 'observations:field_dec'] - key_func_spec_map['_control.command.execution_time'] = [determineExecutionTime, 'observations:starttime'] - key_func_spec_map['_control.command.deadline'] = [convertTime, 'observations:endtime'] - key_func_spec_map['task.startTime'] = [convertTime, 'observations:starttime'] - key_func_spec_map['task.stopTime'] = [convertTime, 'observations:endtime'] - key_func_spec_map['task.telescopes'] = [convertTelescopeList, 'observations:telescopes'] - key_func_spec_map['task.beamSet.0.subbands'] = [determineSubbandSelection, 'observations:beamPattern'] - - if 'imaging' in obs_mode: # overwrite/add for imaging - key_func_spec_map['task.beamSet.0.subbands'] = [determineSubbandSelectionImaging, 'observations:start_band', 'observations:end_band'] - - if 'arts_sc1' in obs_mode: # overwrite/add for ARTS - key_func_spec_map['task.beamSet.0.subbands'] = [determineSubbandSelectionARTS, 'observations:start_band', 'observations:end_band'] - key_func_spec_map['arts.timing.recordBaseband'] = [determineTimingRecordBaseband, 'observations:observing_mode'] - key_func_spec_map['arts.timing.timing'] = [determineTimingTiming, 'observations:observing_mode'] - - if 'arts_sc4' in obs_mode: # overwrite/add for ARTS SC4 - key_func_spec_map['task.beamSet.0.subbands'] = [determineSubbandSelectionARTS, 'observations:start_band', - 'observations:end_band'] - - # loop over parset keys - for parset_key in key_func_spec_map.keys(): - # selection conversion method - conversionMethod = key_func_spec_map[parset_key][0] - if len(key_func_spec_map[parset_key]) == 1: - parset_val = conversionMethod() - else: - # retrieve data from database - conversionArguments = [] - for spec_key in key_func_spec_map[parset_key][1:]: - if atdb_interface == None: # define valid value if no interface available - if spec_key is 'observations:central_frequency': - conversionArguments.append('1400') - elif spec_key is 'observations:beamPattern': - conversionArguments.append('square_39p1_8bit_37beams') - elif spec_key is 'observations:starttime': - conversionArguments.append('2018-09-26 06:00:01') - else: - conversionArguments.append(str(0)) - else: - conversionArguments.append(atdb_interface.do_GET(key=spec_key, id=None, taskid=taskID)) - # do conversion - parset_val = conversionMethod(*conversionArguments) - # add data to the parset - #print('*replace* '+str(parset_key)+ ' => '+str(parset_val)) - parset.replace(get_string(parset_key), get_string(parset_val)) - parset.writeFile(get_string(parset_path)) - - -def add_recipient_list(parset_path, obs_mode='imaging'): - """ - Add recipient list to the parset, addressing specific controllers. - Some controllers are always added, like DirectionControl@ccu-corr and CorrelatorControl@ccu-corr. - Based on the telescope selection and the defined datawriter host, SignalControl, DelayCompControl - and DatawriterControl is added with specific hosts. - :param parset_path: path to the parset that should have the keys added - """ - parset = parameterset(get_string(parset_path)) - # define standard controllers, always in a parset - recipients = ['DirectionControl@ccu-corr'] - # add signal and delayCompControl based on telescope selection in parset - telescopeList = parset.getStringVector("task.telescopes") - for tel in telescopeList: - recipients.append('SignalControl@%s' % tel2hostname(tel)) - recipients.append('DelayCompControl@%s' % tel2hostname(tel)) - # add observation mode dependent controllers - if 'imaging' in obs_mode: - # central uniboards - recipients.append('CorrelatorControl@ccu-corr') - # datawriter - datawriterHost = parset.getString("task.beamSet.0.dataWriter.hostname") - recipients.append('DatawriterControl@%s' % datawriterHost) - if 'arts_sc1' in obs_mode: - recipients.append('ARTSTimingControl@arts0') - # write recipient list to parset - parset.replace('_msg.recipients', get_string(str(recipients))) - parset.writeFile(get_string(parset_path)) - - -def add_ms_names(parset_path, filenames): - """ - Add MS names to the parset - :param parset_path: The full path name of the parset file - :param filenames: List of filenames sorted by name - """ - parset = parameterset(parset_path) - # define the measurement set for each beam - idx = 0 - for filename in filenames: - key = 'dataWriter.beamSet.0.compoundBeam.%d.MSName' % idx - parset.replace(get_string(key), get_string(filename)) - idx += 1 - parset.writeFile(get_string(parset_path)) - - -def add_fits_names(parset_path, filenames, atdb_interface): - """ - Add fits file names (ARTS SC4) to the parset - :param parset_path: The full path name of the parset file - :param filenames: List of filenames sorted by name - """ - parset = parameterset(parset_path) - for filename in filenames: - id = atdb_interface.do_GET_ID(key='dataproducts:filename', value=filename) - nodename = atdb_interface.do_GET(key='dataproducts:node', id=id, taskid=None) - - # The filename says something about compound beam and TAB id. This info is also requires in the - # parset key. Translate this filename to parset_key , which is used in the ranslate the filename to a - # Also remove the .fits from filename - # eg. "ARTS200108001_CB38_TAB12.fits" or "ARTS190107009_CB39.fits" - if 'TAB' in filename: - compoundbeam_id = _get_substring(filename, 'CB', '_TAB') - tab_id = _get_substring(filename, '_TAB', '.') - else: - compoundbeam_id = _get_substring(filename, 'CB', '.') - tab_id = '0' - - key = 'arts.dataSet.compoundBeam.%d.TAB.%d.baseName' % (int(compoundbeam_id), int(tab_id)) - filename = nodename + ":" + filename.split('.fit',1)[0] - parset.replace(get_string(key), get_string(filename)) - parset.writeFile(get_string(parset_path)) - - -def _get_substring(my_str, start_str, end_str): - """ - Retrieve the substring from the given string between start end string - :param my_str: The main string - :param start_str: Start indication string - :param end_str: End indication string - :return: The result string - """ - start_len = len(start_str) - sub_str = my_str[my_str.find(start_str)+start_len:my_str.find(end_str)] - return sub_str - - -def force_integration_factor_int(parset_path): - """ - Force the integration factor to be an integer value. - The database currently (2018-10-03) contains double numbers, that should become integer numbers. - As long that has not been updated, this function fixes the parset - """ - parset = parameterset(parset_path) - key = 'task.timeIntegrationFactor' - factor_double = parset.getDouble(key) - parset.replace(get_string(key), get_string(str(int(factor_double)))) - parset.writeFile(get_string(parset_path)) - - -def tel2hostname(tel): - """ Convert a telescope name ("RT2") to a LCU hostname ("lcu-rt2") """ - return 'lcu-%s' % tel.lower() - - -def determineLO1Frequency(centralFrequency): - """ - Determine the LO1 frequency for a given central frequency in MHz - :param centralFrequency: central frequency in MHz - """ - if isinstance(centralFrequency, basestring): # convert from string to float - centralFrequency = float(centralFrequency) - (f_lo1, f_lo2) = centralFrequency2LOFrequencies(centralFrequency*1e6) - f_lo1 = '%i' % (f_lo1/1e6) # convert to string and to MHz - return f_lo1 - - -def determineBeamSelection(beamPattern): - """ - Determine the beam selection, based on the beam pattern name and the content of the corresponding cb_offsets - file - :param beamPattern: beam pattern identifier, used to find the correct cb_offsets file - """ - cb_offsets_file = locate_file('%s.cb_offsets' % beamPattern, subdir='share/cb_offsets') - if cb_offsets_file is None: - raise ValueError("Pattern file %s not found" % beamPattern) - cb_offsets = parameterset(get_string(cb_offsets_file)) - n_beam = cb_offsets.getInt("nrOfCompoundBeams") - if n_beam == 1: - return '[0]' - else: - return '[0..%d]' % (n_beam - 1) - -def determineSubbandSelection(beamPattern): - return '[64..319]' # TODO, when using 6 bit this should become '[64..447]' - # nv: 7feb2019, this is a hardcoded hack to test 6 bit mode. - # return '[64..447]' - - -def determineSubbandSelectionImaging(start_band, end_band): - """ - Determine the subband selection for imaging - :param int start_band: number in range [1, 16] of first subband - :param int end_band: number in range [1, 16] of end subband - :return string: subband selection in range [64, 447] - """ - if (end_band==16): - # 8bit mode - return '[64..319]' - - elif (end_band==24): - # 6bit mode - return '[64..447]' - - else: - # do the ARTS magic - first_sb = 64 - n_sb_per_band = 24 - start_sb = first_sb + (start_band - 1) * n_sb_per_band - end_sb = first_sb + (end_band) * n_sb_per_band - 1 - return '[%i..%i]' % (start_sb, end_sb) - - -def determineSubbandSelectionARTS(start_band, end_band): - """ - Determine the subband selection for ARTS - :param int start_band: number in range [1, 16] of first subband - :param int end_band: number in range [1, 16] of end subband - :return string: subband selection in range [64, 447] - """ - first_sb = 64 - n_sb_per_band = 24 - start_sb = first_sb + (start_band-1)*n_sb_per_band - end_sb = first_sb + (end_band)*n_sb_per_band - 1 - return '[%i..%i]' % (start_sb, end_sb) - - -def determineTimingRecordBaseband(obs_mode): - if 'arts_sc1_baseband' in obs_mode: - return 'True' - else: - return 'False' - -def determineTimingTiming(obs_mode): - if 'arts_sc1_timing' in obs_mode: - return 'True' - else: - return 'False' - - -def determineSourceDirection(ra, dec): - """ - Determine the source direction by combining the provided field_ra and field_dec coordinates - :params ra: ra value - :params dec: dec value - """ - return '[%sdeg, %sdeg]' % (ra, dec) - - -def determineExecutionTime(startTime): - """ - Determine the execution time of this task, assuming that this function is called when the previous - measurement has finished. This tasks execution time should be at max 10 minutes before the start time, - in order to allow the dishes to slew to the correct position. - :param startTime: start time of this task - """ - execTime = parse_date(startTime) - timedelta(seconds=MAX_TIME_SLEW) - return execTime.strftime(PARSET_TIME_FORMAT) - -def convertTime(isoTime): - """ - Convert the time string from ATDB which is expresses as (example) "2018-10-03T10:10:04Z" - to "2018-10-03 10:10:04" which is required by the parset - :param isoTime: time with format "YYYY-MM-DDThh:mm:ssZ" - :return: time with format "YYYY-MM-DD hh:mm:ss" - """ - my_time = parse_date(isoTime) - return my_time.strftime(PARSET_TIME_FORMAT) - - -def convertTelescopeList(telescopeString): - """ - Convert the telescope string to a list of telescopes. - Fori example: string '23ad' would become ['RT2', 'RT3', 'RTA', 'RTD'] - :param telescopeString: string of telescope characters (single char per RT) - :return: list of telescope names - """ - as_list = [get_string('RT%c' % tel.upper()) for tel in telescopeString] - as_string = str(as_list) - as_string = as_string.replace("'",'') - return as_string - - -def get_string(str_or_unicode, encoding='utf-8'): - """ - Check if parameter is unicode or string. If unicode convert to string - otherwise just return the string. - The parameters of the parameterset class -> in C++ PyParameterSet class - expect std::string and not unicode otherwise it will raise an - exception "did not match C++ signature" - So make sure that parameter is a string - :param str_or_unicode: - :param encoding: UTF-8 - :return: String - """ - if isinstance(str_or_unicode, unicode): - return str_or_unicode.encode(encoding) - return str_or_unicode - diff --git a/atdb_services_pip/atdb_services/atdb_service.py b/atdb_services_pip/atdb_services/atdb_service.py deleted file mode 100644 index 591cbe2a290b07edc17e74653855b2aa6d29d4c9..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/atdb_service.py +++ /dev/null @@ -1,584 +0,0 @@ -#!/usr/bin/python3 -""" - File name: atdb_service.py - Authors: Nico Vermaas - Astron - Date created: 2018-11-24 - Description: The main program that controls all atdb_services. -""" - -import os -import sys - -import argparse -import time -import logging -import logging.config - -from atdb_io import ATDB_IO, DEFAULT_ATDB_HOST, DEFAULT_ALTA_HOST -from service_specification import do_specification -from service_scheduler import do_scheduler -from service_executor import do_executor -from service_data_monitor import do_data_monitor -from service_start_ingest import do_start_ingest -from service_ingest_monitor import do_ingest_monitor, do_check_and_send_quality_to_alta -from service_cleanup import do_cleanup, do_checkup_completed_observations -from service_add_dataproduct import do_add_dataproduct -from service_checkup import do_checkup - -# the following imports depend on separate pip installations. -# see https://www.astron.nl/wsrt/wiki/doku.php?id=atdb:atdb_installation -# They are placed in try/except blocks to be able to run atdb_service standalone without these dependencies - - -from pkg_resources import get_distribution -pkg_version = get_distribution('atdb_services').version - -LAST_UPDATE = "24 jan 2020" - -# ==================================================================== - -def timeit(method): - def timed(*args, **kw): - ts = time.time() - result = method(*args, **kw) - te = time.time() - if 'log_time' in kw: - name = kw.get('log_name', method.__name__.upper()) - kw['log_time'][name] = int((te - ts) * 1000) - else: - print('execution time: %r %2.2f ms' % \ - (method.__name__, (te - ts) * 1000)) - return result - return timed - -# ------------------------------------------------------------------------------# -# Module level functions # -# ------------------------------------------------------------------------------# -def exit_with_error(message): - """ - Exit the code for an error. - :param message: the message to print. - """ - print(message) - sys.exit(-1) - - -def get_arguments(parser): - """ - Gets the arguments with which this application is called and returns - the parsed arguments. - If a parfile is give as argument, the arguments will be overrided - The args.parfile need to be an absolute path! - :param parser: the argument parser. - :return: Returns the arguments. - """ - args = parser.parse_args() - if args.parfile: - args_file = args.parfile - if os.path.exists(args_file): - parse_args_params = ['@' + args_file] - # First add argument file - # Now add command-line arguments to allow override of settings from file. - for arg in sys.argv[1:]: # Ignore first argument, since it is the path to the python script itself - parse_args_params.append(arg) - print(parse_args_params) - args = parser.parse_args(parse_args_params) - else: - raise (Exception("Can not find parameter file " + args_file)) - return args - -# ------------------------------------------------------------------------------# -# Main # -# ------------------------------------------------------------------------------# - -def main(): - """ - The main module. - """ - try: - logging_config_file = os.path.join(os.path.dirname(__file__), 'atdb_service_logging.ini') - logging.config.fileConfig(logging_config_file) - logger = logging.getLogger('atdb_service') - except: - pass - - parser = argparse.ArgumentParser(fromfile_prefix_chars='@') - - # Specification parameters (required) - parser.add_argument("--field_name", - default="unknown", - help="SPECIFICATION parameter") - parser.add_argument("--field_ra", - default=None, - help="SPECIFICATION parameter. Right Ascension in decimal degrees like 202.4842") - parser.add_argument("--field_ha", - default=None, - help="SPECIFICATION parameter. Hour Angle in decimal degrees like 202.4842") - parser.add_argument("--field_dec", - default=None, - help="SPECIFICATION parameter. Declination in decimal degrees like 47.2306") - parser.add_argument("--field_beam", - default="0", - help="SPECIFICATION parameter. Which beam the source should be in") - parser.add_argument("--integration_factor", - default="0", - help="SPECIFICATION parameter. Multipled by 1.024 to get seconds") - parser.add_argument("--central_frequency", - default="0", - help="SPECIFICATION parameter. In MHz") - # Specification or Scheduler parameters (required) - parser.add_argument("--starttime", - default=None, - help="SPECIFICATION or SCHEDULING parameter. Format like 2018-02-23 21:03:33") - parser.add_argument("--endtime", - default=None, - help="SPECIFICATION or SCHEDULING parameter. Format like 2018-02-23 21:03:33") - parser.add_argument("--duration", - default=None, - help="SPECIFICATION or SCHEDULING parameter. Format like 21:03:33 or as an integer in seconds. If endtime is not given, then endtime is calculated, otherwise endtime overrides the duration parameter") - # Specification and Datamonitor parameters (required) - parser.add_argument("--data_dir", - default=None, - help="SPECIFICATION and DATA_MONITOR parameter. This is where EXECUTOR must write the data and DATA_MONITOR will monitor it.") - # Specification parameters (optional) - parser.add_argument("--taskid", nargs="?", - default=None, - help="Optional taskID which can be used instead of '--id' to lookup Observations or Dataproducts.") - parser.add_argument("--taskid_postfix", - nargs="?", - default="", - help="Optional postfix to be added to generated taskid by SPECIFICATION service (used for pipelines).") - parser.add_argument("--ndps", - default=None, - help="(Optional) SPECIFICATION parameter: Number of dataproducts to add. For known beam patterns this is handled by the --pattern argument") - parser.add_argument("--pattern", - default="square_39p1_8bit_37beams", - help="SPECIFICATION parameter. Beam pattern used to determine the number of beams/dataproducts to add to the Observation/task") - parser.add_argument("--irods_coll", - default=None, - help="(Optional) SPECIFICATION parameter: The relative iRODS collections name") - parser.add_argument("--parset_location", - default='/opt/apertif/share/parsets/parset_start_observation_atdb.template', - help="SPECIFICATION parameter. This is where parset template can be found for the EXECUTOR service") - parser.add_argument("--parset_only", - default=False, - help="If specified then a parset will be created in the --parset_location directory and the observation will go to 'defined' instead of 'scheduled", - action="store_true") - parser.add_argument("--create_parset_early", - default=False, - help="If specified then the parset will be created during the specification phase, instead of by the executor just before the starttime. " - "Be aware that this also means that you cannot change the specification anymore, unless you manually delete the parset first. " - "If you manually delete the parset then the executor service will re-create it just before the starttime.", - action="store_true") - parser.add_argument("--combine_script", - default='/home/arts/scripts/combine_obs_sc1_for_atdb.sh', - help="EXECUTOR. This is where the combine script can be found for the EXECUTOR service") - parser.add_argument("--node", - default=None, - help="ADD_DATAPRODUCT. This indicates on which external machine (arts node) the dataproduct lives") - parser.add_argument("--observing_mode", - default='imaging', - help="SPECIFICATION parameter: imaging, imaging_pointing, arts_sc1_timing, arts_sc1_baseband, arts_sc4_record, arts_sc4_survey, arts_sc4_dump,") - parser.add_argument("--process_type", - default='system', - help="SPECIFICATION parameter: science_observation, science_driftscan, system_pointing, system_reservation") - parser.add_argument("--science_mode", - default=None, - help="SPECIFICATION parameter for ARTS. TAB or IAB") - parser.add_argument("--skip_auto_ingest", - default=False, - help="If specified then the Observation will end in the 'completed' state instead of (in)complete, and not be automatically ingested and deleted", - action="store_true") - parser.add_argument("--telescopes", - default='23456789ABCD', - help="SPECIFICATION parameter. List of telescopes used in the observation like 01234567890ABCD. (do not use commas)") - parser.add_argument("--beams", - default='[0..39]', - help="SPECIFICATION parameter. List of beams, example: beams=[1..10,11,12]") - parser.add_argument("--delay_center_offset", - default=None, - help="[x,y], where x and y are floats. Optionally add a unit 'deg' (default) or 'rad'. example: delay_center_offset=[0.5,0.0]") - parser.add_argument("--par_file_name", - default='source.par', - help="Pulsar parameter file (SC1 only)") - parser.add_argument("--number_of_bins", - default='1024', - help="Number of bins in pulsar pulse profile (SC1 only)") - parser.add_argument("--start_band", - default='1', - help="Lowest frequency band to use (1--16) (SC1 only)") - parser.add_argument("--end_band", - default='16', - help="Highest frequency band to use (1--16) (SC1 only). For ARTS end_band=16 => 6bit mode. For imaging, end_band=16 => 8bit mode, end_band=24 =>6bit mode, ") - parser.add_argument("--process_triggers", - default=False, - help="Whether or not to run the ARTS real-time pipeline (SC3/4 only)", - action="store_true") - parser.add_argument("--filename", - default=None, - help="Filename of dataproduct added to a running observation. Like ARTS190101001_CB01_TAB01.fits") - # Non-workflow general parameters - parser.add_argument("--status", - default=None, - help="status to be set by the set-status operation") - parser.add_argument("--resource","-r", - default='observations', - help="observations or dataproducts") - parser.add_argument("--search_key", "-k", - default='taskid:180223003', - help="Search key used for various services") - parser.add_argument("--locality_policy", - default='cold_tape', - help="Where should the data be eventually stored? 'archive', 'cold_tape', 'cold_disk'") - parser.add_argument("--max_lifetime_on_disk", - default=None, - help="TTL in minutes after which the ALTA scheduler starts the cold storage process. If not provided, it will be 90 days for imaging and 1 minute for ARTS") - - # Global parameters (required) - parser.add_argument("--operation","-o", - default="None", - help="specification, scheduler, executor, data_monitor, start_ingest, ingest_monitor, cleanup, delete_taskid, change_status, checkup") - - # Global parameters - parser.add_argument("--query", - default=None, - help="query to the ATDB REST API, used by the CHECKUP service to limit the search") - parser.add_argument("--obs_mode_filter", - default="", - help="This instance of the service only acts on Observations that have this (substring) value in their observing_mode. " - "That makes it possible to run multiple instances of a service on different locations. " - "For example: executor --obs_mode_filter=ARTS will only execute observations for ARTS without interfering with imaging") - parser.add_argument("--status_filter", - default=None, - help="The 'start_ingest' can react to a specific status, like 'valid' or 'valid_priority. Default is None, then the start_ingest service will listen for both 'valid_priority' and 'valid', in that order.") - parser.add_argument("--host_filter", - default="", - help="When specified, the service checks if the 'data_location' contains this value and will only execute when that is the case.") - parser.add_argument("--interval", - default=None, - help="Polling interval in seconds. When enabled this instance of the program will run in monitoring mode.") - parser.add_argument("--testmode", - default=False, - help="Test mode. Writes to ATDB, but does not start/stop observations, does not execute ingests and does not delete data from disk.", - action="store_true") - parser.add_argument("--atdb_host", - nargs="?", - default=DEFAULT_ATDB_HOST, - help="Presets are 'dev', 'vm', 'test', 'acc', 'prod'. Otherwise give a full url like https://atdb.astron.nl/atdb") - parser.add_argument("--alta_host", - nargs="?", - default=DEFAULT_ALTA_HOST, - help="Presets are 'dev', 'test', 'acc', 'prod'. Otherwise give a full url like https://alta-acc.astron.nl/altapi") - parser.add_argument("-u","--user", - nargs="?", - default='vagrant', - help="Username.") - parser.add_argument("-p", "--password", - nargs="?", - default='vagrant', - help="Password.") - # Global parameters (for info) - parser.add_argument("-v", "--verbose", - default=False, - help="More information about atdb_services at run time.", - action="store_true") - parser.add_argument("-v2", "--verbose_deep", - default=False, - help="More information about atdb_interface at run time.", - action="store_true") - parser.add_argument("--version", - default=False, - help="Show current version of this program.", - action="store_true") - parser.add_argument("--examples", "-e", - default=False, - help="Show some examples", - action="store_true") - # All parameters in a file - parser.add_argument('--parfile', - nargs='?', - type=str, - help='Parameter file') - - args = get_arguments(parser) - try: - atdb_service = ATDB_IO(args.atdb_host, args.alta_host, args.user, args.password, args.obs_mode_filter, - args.host_filter, args.verbose, args.verbose_deep, args.testmode) - - # don't spam the channel for every added dataproduct - if (args.operation != 'add_dataproduct'): - host_filter_text = '' - if args.host_filter!='': - host_filter_text = " for host "+ args.host_filter - - obs_mode_filter_text = '' - if args.obs_mode_filter!='': - obs_mode_filter_text = " for observing_mode "+ args.obs_mode_filter - - if args.testmode: - message = 'starting *'+args.operation+'* ' + obs_mode_filter_text + host_filter_text + ' service version '+pkg_version+'... (testmode)' - else: - message ='starting *' + args.operation+'* ' + obs_mode_filter_text + host_filter_text + ' service version '+pkg_version+'...' - - atdb_service.report(message) - atdb_service.send_message_to_atdb_slack_channel(message) - - if (args.examples): - - print('atdb_service.py version = '+ pkg_version + " (last updated " + LAST_UPDATE + ")") - print('--------------------------------------------------------------') - print() - print('--- Examples --- ') - print() - print("SPECIFCATION creates an Observation with 37 dataproducts with initial status defined with the given specification parameters. TaskID is automatically generated with addition of an optional '_RAW' postfix") - print(">atdb_service -o specification --pattern square_39p1_8bit_37beams --field_name M51 --starttime 2018-02-23T21:03:33 --endtime 2018-02-24T08:33:34 --field_ra 202.4842 --field_dec 47.2306 --field_beam 0 --integration_factor 30 --central_frequency=1350.12") - print() - print("SCHEDULER sets starttime and endtime and PUTS status on 'scheduled'") - print(">atdb_service -o scheduler --taskid 180906001_RAW --starttime 2018-09-09T06:30:00 --endtime 2018-09-09T06:35:00") - print() - print("EXECUTOR checks for starttime and endtime of 'scheduled' Observations and sets its status accordingly") - print(">atdb_service -o executor --interval 30") - print() - print("Start the DATA_MONITOR and let it check for completed observations every minute") - print(">atdb_service -o data_monitor --interval 60") - print() - print("START_INGEST. This service will look for 'valid' tasks and dataproducts and starts the ingest to ALTA") - print(">atdb_service -o start_ingest --interval 60") - print() - print("Start the INGEST_MONITOR and let it check for finished ingests every minute") - print(">atdb_service -o ingest_monitor --interval 60") - print() - print("Change status of all dataproducts with taskid=180223003 to valid") - print(">atdb_service -o change_status --resource dataproducts --search_key taskid:180223003_IMG --status valid") - print() - print("Change status of 1 dataproduct with id=55 to invalid") - print(">atdb_service -o change_status --resource dataproducts --search_key id:55 --status invalid") - print() - print("Change status of observation with taskid=180223003 to valid") - print("WARNING: this starts the Ingest of this Observation and all its 'valid' dataproducts ") - print(">atdb_service -o change_status --resource observations --search_key taskid:180223003_IMG --status valid") - print() - print("Delete Observation and DataProducts for taskid 180223003_IMG (from the ATDB database only)") - print(">atdb_service -o delete_taskid --taskid 180223003_IMG") - print() - print("Add a dataproduct to an existing Observation (for arts_sc4)") - print(">atdb_service -o add_dataproduct --taskid 20190106 --node arts001 --data_dir /data2/output/20190106/2019-01-06-09:50:00.J1810-197/fits/CB00 --filename ARTS20190106_CB00_TAB01.fits") - print() - print('--------------------------------------------------------------') - return - - # -------------------------------------------------------------------------------------------------------- - if (args.version): - print('--- atdb_service.py version = '+ pkg_version + " (last updated " + LAST_UPDATE + ") ---") - return - - # -------------------------------------------------------------------------------------------------------- - if (args.operation=='specification'): - do_specification(atdb_service, - taskid=args.taskid, - taskid_postfix=args.taskid_postfix, - initial_status=args.status, - ndps=args.ndps, - pattern=args.pattern, - field_name=args.field_name, - starttime=args.starttime, - endtime=args.endtime, - duration=args.duration, - field_ra=args.field_ra, - field_ha=args.field_ha, - field_dec=args.field_dec, - field_beam=args.field_beam, - integration_factor=args.integration_factor, - central_frequency=args.central_frequency, - data_dir=args.data_dir, - irods_coll=args.irods_coll, - observing_mode=args.observing_mode, - process_type=args.process_type, - science_mode=args.science_mode, - parset_location=args.parset_location, - parset_only=args.parset_only, - create_parset_early=args.create_parset_early, - skip_auto_ingest=args.skip_auto_ingest, - telescopes=args.telescopes, - par_file_name=args.par_file_name, - number_of_bins=args.number_of_bins, - start_band=args.start_band, - end_band=args.end_band, - process_triggers = args.process_triggers, - beams = args.beams, - delay_center_offset=args.delay_center_offset, - locality_policy=args.locality_policy, - max_lifetime_on_disk=args.max_lifetime_on_disk) - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'scheduler'): - do_scheduler(atdb_service, taskid=args.taskid, starttime=args.starttime, endtime=args.endtime) - - # -------------------------------------------------------------------------------------------------------- - def check_dependencies(atdb): - ''' - Check if the dependencies are met, if not, raise an error in slack - :param atdb: - :return: - ''' - atdb.report('*executor* check dependencies') - try: - atdb.report('HOME=' + os.environ['HOME']) - except: - atdb.report('HOME not set') - - try: - atdb.report('PYTHONPATH=' + os.environ['PYTHONPATH']) - except: - atdb.report('PYTHONPATH not set') - - try: - atdb.report('LD_LIBRARY_PATH=' + os.environ['LD_LIBRARY_PATH']) - except: - atdb.report('LD_LIBRARY_PATH not set') - - try: - import pyrap.images as pim - from lofar.parameterset import parameterset - from apertif.common.util import locate_file - from apertif.messaging.send_file import send_and_wait_files - except Exception as err: - atdb.report(str(err), "print,slack") - - - if (args.operation == 'executor'): - - check_dependencies(atdb_service) - - do_executor(atdb_service) - if args.interval: - print('*executor* starting polling ' + atdb_service.host + ' every ' + args.interval + ' secs') - while True: - try: - time.sleep(int(args.interval)) - do_executor(atdb_service) - except: - print('*** executor crashed! ***') - print(sys.exc_info()[0]) - print('trying to continue...') - atdb_service.send_message_to_atdb_slack_channel("*executor service* crashed! ... restarting.") - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'data_monitor'): - do_data_monitor(atdb_service) - if args.interval: - print('*data_monitor* starting polling ' + atdb_service.host + ' every ' + args.interval + ' secs') - while True: - try: - time.sleep(int(args.interval)) - do_data_monitor(atdb_service) - except: - print('*** data_monitor crashed! ***') - print(sys.exc_info()[0]) - print('trying to continue...') - atdb_service.send_message_to_atdb_slack_channel("*data_monitor service* crashed! ... restarting.") - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'start_ingest'): - # the 'complete' status is triggered by the 'data_monitor' service - do_start_ingest(atdb_service, args.status_filter) - - if args.interval: - atdb_service.report('*start_ingest* for status_filter = '+str(args.status_filter)+', starting polling ' + atdb_service.host + ' every ' + args.interval + ' secs') - while True: - try: - time.sleep(int(args.interval)) - do_start_ingest(atdb_service, args.status_filter) - except: - print('*** start_ingest crashed! ***') - print(sys.exc_info()[0]) - print('trying to continue...') - atdb_service.send_message_to_atdb_slack_channel("*start_ingest* crashed! ... restarting.") - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'ingest_monitor'): - do_check_and_send_quality_to_alta(atdb_service) - do_ingest_monitor(atdb_service) - - if args.interval: - print('*ingest_monitor* starting polling ' + atdb_service.host + ' every ' + args.interval + ' secs') - while True: - try: - time.sleep(int(args.interval)) - do_check_and_send_quality_to_alta(atdb_service) - do_ingest_monitor(atdb_service) - - except: - print('*** ingest_monitor crashed! ***') - print(sys.exc_info()[0]) - print('trying to continue...') - atdb_service.send_message_to_atdb_slack_channel("*ingest_monitor service* crashed! ... restarting.") - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'cleanup'): - # the 'archived' status is written by the 'ingest_monitor' service - # or the 'removing' status is set from the GUI or otherwise. - - do_cleanup(atdb_service,'archived','removed') - do_cleanup(atdb_service,'removing', 'removed (manual)') - do_cleanup(atdb_service, 'cleanup', 'removed (manual)') - - # flag completed validation observation as 'cleanup' after 48 hours - query = "my_status__icontains=completed&process_type__icontains=validation" - do_checkup_completed_observations(atdb_service, args, query, 48) - - # flag all completed system observations as 'cleanup' after 72 hours - query = "my_status__icontains=completed&science_observation=false" - do_checkup_completed_observations(atdb_service, args, query, 72) - - if args.interval: - print('*cleanup* starting polling ' + atdb_service.host + ' every ' + args.interval + ' secs') - while True: - try: - time.sleep(int(args.interval)) - do_cleanup(atdb_service, 'archived', 'removed') - do_cleanup(atdb_service, 'removing', 'removed (manual)') - do_cleanup(atdb_service, 'cleanup', 'removed (manual)') - - # flag completed validation observation as 'cleanup' after 48 hours - query = "my_status__icontains=completed&process_type__icontains=validation" - do_checkup_completed_observations(atdb_service, args, query, 48) - - # flag all completed system observations as 'cleanup' after 72 hours - query = "my_status__icontains=completed&science_observation=false" - do_checkup_completed_observations(atdb_service, args, query, 72) - - except: - print('*** cleanup crashed! ***') - print(sys.exc_info()[0]) - print('trying to continue...') - atdb_service.send_message_to_atdb_slack_channel("*cleanup service* crashed! ... restarting.") - - # -------------------------------------------------------------------------------------------------------- - if (args.operation == 'add_dataproduct'): - do_add_dataproduct(atdb_service, taskid=args.taskid, node=args.node, data_dir=args.data_dir, filename=args.filename) - - # -------------------------------------------------------------------------------------------------------- - if (args.operation=='change_status'): - atdb_service.do_change_status(resource=args.resource, search_key=args.search_key, status=args.status) - - # -------------------------------------------------------------------------------------------------------- - if (args.operation=='delete_taskid'): - atdb_service.do_delete_taskid(taskid=args.taskid) - - # -------------------------------------------------------------------------------------------------------- - if (args.operation=='checkup'): - do_checkup(atdb_service, args) - - - except Exception as exp: - message = str(exp) - atdb_service.send_message_to_atdb_slack_channel(message) - exit_with_error(str(exp)) - - sys.exit(0) - - -if __name__ == "__main__": - main() - diff --git a/atdb_services_pip/atdb_services/atdb_service_logging.ini b/atdb_services_pip/atdb_services/atdb_service_logging.ini deleted file mode 100644 index 918c584c3d94645f94ad304409811edd673fb128..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/atdb_service_logging.ini +++ /dev/null @@ -1,31 +0,0 @@ -[loggers] -keys=root - -[handlers] -keys=consoleHandler,fileHandler - -[formatters] -keys=fileFormatter,consoleFormatter - -[logger_root] -level=INFO -handlers=fileHandler - -[handler_consoleHandler] -class=StreamHandler -formatter=consoleFormatter -args=(sys.stdout,) - -[handler_fileHandler] -class=FileHandler -formatter=fileFormatter -args=('atdb_service.log',) -#args=('c:\\temp\\atdb_service.log',) - -[formatter_fileFormatter] -format=%(asctime)s - %(levelname)s - %(message)s -datefmt= - -[formatter_consoleFormatter] -format=%(asctime)s - %(levelname)s - %(message)s -datefmt= \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/examples/180914001_test.parfile b/atdb_services_pip/atdb_services/examples/180914001_test.parfile deleted file mode 100644 index 2898f82e3cb0efc46b62963dd55c9292089633aa..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/180914001_test.parfile +++ /dev/null @@ -1,15 +0,0 @@ ---operation=specification ---taskid=180914001 ---data_dir=/data/apertif/ ---pattern=square_39p1_8bit_37beams ---starttime=2018-09-14T02:30:00:00 ---endtime=2018-09-17T04:30:00 ---field_name=M51 ---field_ra=202.4842 ---field_dec=47.2306 ---field_beam=0 ---integration_factor=30 ---central_frequency=1350.12 ---atdb_host=prod ---testmode --v diff --git a/atdb_services_pip/atdb_services/examples/my_arts_sc1_specification.parfile b/atdb_services_pip/atdb_services/examples/my_arts_sc1_specification.parfile deleted file mode 100644 index a3d7cdfb8702e5bf8fb434e626ad1262675716e0..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_arts_sc1_specification.parfile +++ /dev/null @@ -1,23 +0,0 @@ ---atdb_host=prod ---operation=specification ---data_dir=/data/01/Timing ---parset_location=/opt/apertif/share/parsets/parset_start_observation_atdb_arts_sc1.template ---par_file_name=1713+0747.par ---irods_coll=arts_main/arts_sc1 ---pattern=central_element_beams_x_37beams ---ndps=1 ---starttime=2018-12-06 08:30:00 ---duration=60 ---field_name=J1713+0747 ---field_ra=202.4842 ---field_dec=47.2306 ---field_beam=0 ---integration_factor=30 ---central_frequency=1350 ---observing_mode=arts_sc1_nv_test ---science_mode=TAB ---number_of_bins=1024 ---start_band=1 ---end_band=16 --v ---verbose_deep \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/examples/my_arts_sc4_specification.parfile b/atdb_services_pip/atdb_services/examples/my_arts_sc4_specification.parfile deleted file mode 100644 index 8703872a48cfe05ca232dfbb4450af7ff3dc9dc1..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_arts_sc4_specification.parfile +++ /dev/null @@ -1,16 +0,0 @@ ---field_name=T1515-0232 ---field_ra=228.833333 ---field_dec=-2.536389 ---field_beam=0 ---starttime=2019-01-10 13:50:13 ---duration=00:03:00 ---pattern=square_39p1 ---observing_mode=arts_sc4_tab ---central_frequency=1400 ---operation=specification ---atdb_host=test ---science_mode=IAB ---integration_factor=30 ---telescopes=23568ABCD ---data_dir=/home/vagrant/my_arts_cluster/data2/output ---ndps=2 \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/examples/my_imaging_pointing.parfile b/atdb_services_pip/atdb_services/examples/my_imaging_pointing.parfile deleted file mode 100644 index c8f75bd3e301bb88b41df319cd62c3ff57529654..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_imaging_pointing.parfile +++ /dev/null @@ -1,19 +0,0 @@ ---operation=specification ---data_dir=/home/vagrant/my_data_dir ---pattern=square_39p1_8bit ---ndps=3 ---parset_location=/home/vagrant/atdb-client/share/parset_start_observation_atdb.template ---starttime=2019-01-28 15:05:00 ---duration=00:01:00 ---field_name=Tau A ---field_ha=123.4567 ---field_dec=47.2306 ---field_beam=0 ---integration_factor=30 ---central_frequency=1350 ---observing_mode=imaging_pointing ---telescopes=23456789ABCD ---par_file_name=my_parfile.par ---atdb_host=test ---testmode --v diff --git a/atdb_services_pip/atdb_services/examples/my_reservation.parfile b/atdb_services_pip/atdb_services/examples/my_reservation.parfile deleted file mode 100644 index fe50efaced90d13159f0f340540ef7b1044c60bd..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_reservation.parfile +++ /dev/null @@ -1,18 +0,0 @@ ---operation=specification ---data_dir=/home/vagrant/my_data_dir ---pattern=square_39p1 ---ndps=3 ---parset_location=/home/vagrant/atdb-client/share/parset_start_observation_atdb.template ---starttime=2019-07-22 07:15:00 ---duration=00:01:00 ---field_name=Beamweights ---field_ha=123.4567 ---field_dec=47.2306 ---status=reserved ---observing_mode=imaging ---process_type=system_observation_filler ---telescopes=23456789 ---par_file_name=my_parfile.par ---atdb_host=vm --v --v2 diff --git a/atdb_services_pip/atdb_services/examples/my_scheduler_180223003.parfile b/atdb_services_pip/atdb_services/examples/my_scheduler_180223003.parfile deleted file mode 100644 index b1d0b363c310dc9d7164f3d3ac2b134fd22082f7..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_scheduler_180223003.parfile +++ /dev/null @@ -1,6 +0,0 @@ ---operation=scheduler ---taskid=180223003 ---starttime=2018-09-14T09:46:00 ---endtime=2018-09-14T09:46:00 ---atdb_host=test --v diff --git a/atdb_services_pip/atdb_services/examples/my_specification.parfile b/atdb_services_pip/atdb_services/examples/my_specification.parfile deleted file mode 100644 index 200f468c0441fe4f944763c9736c20a03caa3c8b..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_specification.parfile +++ /dev/null @@ -1,24 +0,0 @@ ---operation=specification ---observing_mode=imaging ---process_type=system ---data_dir=None ---pattern=square_39p1 ---ndps=3 ---parset_location=/home/vagrant/atdb-client/share/parset_start_observation_atdb.template ---starttime=2020-10-01 10:00:00 ---duration=2 ---field_name=NV Testing ATDB ---field_ra=83.7 ---field_dec=-5.4 ---field_beam=0 ---beams=[1..10,11,12] ---science_mode=IAB ---integration_factor=30 ---central_frequency=1350 ---telescopes=23456789 ---par_file_name=my_parfile.par ---process_triggers ---atdb_host=http://atdb.astron.nl/atdb/ ---locality_policy=cold_disk --v --v2 diff --git a/atdb_services_pip/atdb_services/examples/my_specification_180223002.parfile b/atdb_services_pip/atdb_services/examples/my_specification_180223002.parfile deleted file mode 100644 index 3d6ab77f85d42008ec6806e20104513e99455364..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_specification_180223002.parfile +++ /dev/null @@ -1,14 +0,0 @@ ---operation=specification ---taskid=180223002 ---data_dir=/home/vagrant/my_data_dir ---pattern=calibrator_1beam ---starttime=2018-02-23T21:03:33 ---endtime=2018-02-24T08:33:34 ---field_name=3C196 ---field_ra=202.4842 ---field_dec=47.2306 ---field_beam=0 ---integration_factor=30 ---central_frequency=1350.12 ---atdb_host=test --v diff --git a/atdb_services_pip/atdb_services/examples/my_specification_180223003.parfile b/atdb_services_pip/atdb_services/examples/my_specification_180223003.parfile deleted file mode 100644 index 926958e177194b4b8751b04d091e9f4c6ae6a598..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_specification_180223003.parfile +++ /dev/null @@ -1,14 +0,0 @@ ---operation=specification ---taskid=180223003 ---data_dir=/home/vagrant/my_data_dir ---pattern=testing_3beams ---starttime=2018-02-23T21:03:33 ---endtime=2018-02-24T08:33:34 ---field_name=M51 ---field_ra=202.4842 ---field_dec=47.2306 ---field_beam=0 ---integration_factor=30 ---central_frequency=1350.12 ---atdb_host=test --v diff --git a/atdb_services_pip/atdb_services/examples/my_specification_cd.parfile b/atdb_services_pip/atdb_services/examples/my_specification_cd.parfile deleted file mode 100644 index 2ad9a221902298e47b25b2e8fe0f790b2314ae5f..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_specification_cd.parfile +++ /dev/null @@ -1,19 +0,0 @@ ---central_frequency=1400 ---starttime=2020-04-09 10:00:00 ---duration=1 ---field_name=3C48 ---field_ra=24.4221 ---field_dec=33.1598 ---field_beam=0 ---pattern=central_element_beams_x_37beams ---observing_mode=imaging ---process_type=system ---integration_factor=10 ---data_dir=/data/apertif/ ---atdb_host=prod ---operation=specification ---skip_auto_ingest ---start_band=1 ---end_band=24 ---telescopes=cd ---parset_only \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/examples/my_stop_observation.parfile b/atdb_services_pip/atdb_services/examples/my_stop_observation.parfile deleted file mode 100644 index 3ba87210633183ae081e228afb6caf21d4b54926..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/examples/my_stop_observation.parfile +++ /dev/null @@ -1,24 +0,0 @@ ---operation=specification ---data_dir=wcudata2:/home/vagrant/my_data_dir ---pattern=square_39p1 ---ndps=3 ---parset_location=/home/vagrant/atdb-client/share/parset_stop_observation_atdb.template ---starttime=2019-06-13 7:00:00 ---duration=00:01:00 ---field_name=Tau A ---field_ha=123.4567 ---field_dec=47.2306 ---field_beam=0 ---beams=[1..10,11,12] ---science_mode=IAB ---integration_factor=30 ---central_frequency=1350 ---observing_mode=imaging ---telescopes=23456789 ---par_file_name=my_parfile.par ---process_triggers ---atdb_host=vm ---skip_auto_ingest ---testmode --v --v2 diff --git a/atdb_services_pip/atdb_services/parset_start_observation_atdb.template b/atdb_services_pip/atdb_services/parset_start_observation_atdb.template deleted file mode 100644 index e7022ef7e1d2bf8a462b58fb06acd92262c00b10..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/parset_start_observation_atdb.template +++ /dev/null @@ -1,1820 +0,0 @@ -# -# This is the template for a parset that is used by the ATDB software -# -task.beamSet.0.dataWriterUV.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriterUV.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. -task.beamSet.0.dataWriter.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriter.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. - -system.beamFormer.bypassTranspose = False -_msg.system_name = APERTIF -_msg.message_type = "CommandMessage" -_control.command.type = "start_observation" -task.taskGroupID = 0000018 # it is possible to cluster Tasks in groups, and this will be the groupID a specific Task belongs to -task.directionReferenceFrame = 'J2000' # any casacore reference frame for task.telescope.RTx.pointing, task.phaseCenter.x, task.source.direction -task.pointingName = 'P01234' # name of the pointing (empty string, or user named for e.g. survey pointings) -task.source.calibrationGroup = 0 # grouping for calibration purpose -task.source.code = 'BANDPASS CAL' # used to describe any special characteristics of the source, such as the nature of a calibrator. Reserved: 'BANDPASS CAL'. Might be useful for pipelines. -task.project.code = 'DB-000' # project code as assigned by the Observatory -task.project.PI = '' # name of the principal investigator -task.project.coPIs = '' # name(s) of the co-PI(s), separated by semi-colons -task.project.releaseDate = '2020-01-01 00:00:00' # release date (when will archived data be publicly available), default is 1 yr after cycle project end -task.scheduleType = 'Manual Schedule' # could be used to distinguish manual from automatic scheduling (APERTIF already prefixed in MS) -task.schedule = 'Cycle 0' # could be used for observation/proposal a cycle identifier -task.inputPaths = [0..63] # names of the used input paths -task.nrOfCompoundBeamSets = 1 # nr of compound beam sets defined in this file -task.beamSet.0.dataWriterUV.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -task.beamSet.0.dataWriter.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -# network interface indentifiers. Note: only as used in dataWriter.<host indent>.<interface indent>.*; 'ethX' matches the i/f name for clarity, but no software has to query the OS for e.g. 'eth0' (i.e. any identifier could do). Default in operations: ['eth0', 'eth1', 'eth2', 'eth3'] -task.nrChannelsPerSubband = 64 # always 64 with the current correlator -#TODO: add variable attenuator/amp (and other hardware (if any)) settings -# datawriteruv -dataWriterUV.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriter.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriterUV.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriter.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriterUV.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -dataWriter.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -# datawriteruv network stream properties. Key format: dataWriter.<host ident>.<interface indent>.xxx. -# The interface indent matches eth interface names for clarity, but never needs to be looked up outside the parset. -dataWriterUV.wcudata1.eth0.ip = '10.99.100.1' -dataWriterUV.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriterUV.wcudata1.eth0.port = 4000 -dataWriterUV.wcudata1.eth0.proto = 'udp' -dataWriterUV.wcudata1.eth1.ip = '10.99.100.2' -dataWriterUV.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriterUV.wcudata1.eth1.port = 4000 -dataWriterUV.wcudata1.eth1.proto = 'udp' -dataWriterUV.wcudata1.eth2.ip = '10.99.100.3' -dataWriterUV.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriterUV.wcudata1.eth2.port = 4000 -dataWriterUV.wcudata1.eth2.proto = 'udp' -dataWriterUV.wcudata1.eth3.ip = '10.99.100.4' -dataWriterUV.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriterUV.wcudata1.eth3.port = 4000 -dataWriterUV.wcudata1.eth3.proto = 'udp' -dataWriterUV.wcudata2.eth0.ip = '10.99.101.1' -dataWriterUV.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriterUV.wcudata2.eth0.port = 4000 -dataWriterUV.wcudata2.eth0.proto = 'udp' -dataWriterUV.wcudata2.eth1.ip = '10.99.101.2' -dataWriterUV.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriterUV.wcudata2.eth1.port = 4000 -dataWriterUV.wcudata2.eth1.proto = 'udp' -dataWriterUV.wcudata2.eth2.ip = '10.99.101.3' -dataWriterUV.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriterUV.wcudata2.eth2.port = 4000 -dataWriterUV.wcudata2.eth2.proto = 'udp' -dataWriterUV.wcudata2.eth3.ip = '10.99.101.4' -dataWriterUV.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriterUV.wcudata2.eth3.port = 4000 -dataWriterUV.wcudata2.eth3.proto = 'udp' -dataWriterUV.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data - -dataWriter.wcudata1.eth0.ip = '10.99.100.1' -dataWriter.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriter.wcudata1.eth0.port = 4000 -dataWriter.wcudata1.eth0.proto = 'udp' -dataWriter.wcudata1.eth1.ip = '10.99.100.2' -dataWriter.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriter.wcudata1.eth1.port = 4000 -dataWriter.wcudata1.eth1.proto = 'udp' -dataWriter.wcudata1.eth2.ip = '10.99.100.3' -dataWriter.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriter.wcudata1.eth2.port = 4000 -dataWriter.wcudata1.eth2.proto = 'udp' -dataWriter.wcudata1.eth3.ip = '10.99.100.4' -dataWriter.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriter.wcudata1.eth3.port = 4000 -dataWriter.wcudata1.eth3.proto = 'udp' -dataWriter.wcudata2.eth0.ip = '10.99.101.1' -dataWriter.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriter.wcudata2.eth0.port = 4000 -dataWriter.wcudata2.eth0.proto = 'udp' -dataWriter.wcudata2.eth1.ip = '10.99.101.2' -dataWriter.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriter.wcudata2.eth1.port = 4000 -dataWriter.wcudata2.eth1.proto = 'udp' -dataWriter.wcudata2.eth2.ip = '10.99.101.3' -dataWriter.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriter.wcudata2.eth2.port = 4000 -dataWriter.wcudata2.eth2.proto = 'udp' -dataWriter.wcudata2.eth3.ip = '10.99.101.4' -dataWriter.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriter.wcudata2.eth3.port = 4000 -dataWriter.wcudata2.eth3.proto = 'udp' -dataWriter.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data -dataWriter.useODirect = True -dataWriter.applySubbandPhaseCorrection = False -arts.recordBaseband = True # record baseband data to disk -arts.timing = True # perform dedispertion and folding on raw data -arts.parFile = 'file.par' # name of the parfile used on ARTS-0 -arts.samplingTime = 100.25 # sampling time of the folded data in microsec -arts.frequencyChannelWidth = 10.5 # width of frequency channels in MHz -arts.survey.snr_threshold = 8.0 # ARTS SC4 pipeline S/N threshold -arts.survey.enable_iquv = false # Whether or not to enable IQUV buffering for ARTS SC4 -arts.survey.history_i = 10 # ARTS SC4 buffer size for stokes I -arts.survey.history_iquv = 10 # ARTS SC4 buffer size for stokes IQUV -atmosphere.refracDryAir = 0.000305 # atmosphere constants taken from WSRT (pre-APERTIF) MS -atmosphere.refracWaterVapour = 0.0 -atmosphere.scaleHeight = 8 # km -system.parsetVersion = '0.0.1' -system.skipChecksUnsupported = false # skipChecksUnsupported; default: false; true means: skip as many parset sanity checks as possible (without affecting system stability for subsequent observations), i.e. log this setting and do as asked, but no software support if anything turns out broken -system.arrayPosition = [3828630.63486200943589211, 443593.39226634375518188, 5064922.99755000043660402] # meter, ITRF. RT8 atm -system.telescope.RT2.position = [3828729.99081358872354031, 442735.17696416645776480,5064923.00829000025987625] # meter, ITRF -system.telescope.RT3.position = [3828713.43109884625300765, 442878.21189340209821239,5064923.00435999967157841] -system.telescope.RT4.position = [3828696.86994427768513560, 443021.24917263782117516,5064923.00396999996155500] -system.telescope.RT5.position = [3828680.31391932582482696, 443164.28596862131962553,5064923.00035000033676624] -system.telescope.RT6.position = [3828663.75159173039719462, 443307.32138055720133707,5064923.00203999970108271] -system.telescope.RT7.position = [3828647.19342757249251008, 443450.35604637680808082,5064923.00229999981820583] -system.telescope.RT8.position = [3828630.63486200943589211, 443593.39226634375518188,5064922.99755000043660402] -system.telescope.RT9.position = [3828614.07606798363849521, 443736.42941620573401451,5064923.00000000000000000] -system.telescope.RTA.position = [3828609.94224429363384843, 443772.19450029480503872,5064922.99868000019341707] -system.telescope.RTB.position = [3828603.73202611599117517, 443825.83321168005932122,5064922.99963000044226646] -system.telescope.RTC.position = [3828460.92418734729290009, 445059.52053928520763293,5064922.99070999957621098] -system.telescope.RTD.position = [3828452.64716351125389338, 445131.03744105156511068,5064922.98792999982833862] -system.telescope.axesDistance = 4.95 # meter -system.telescope.focalAxesDistance = 9.25 # meter -system.telescope.polarAxesLength = 16.922 # meter -system.correlator.outputBoardList = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] # cannot be "[0..15]", results in error -# to be decided on later maybe more hardware versions needed. Values come from prepare telescope command. -# system.beamformerVersion = '0.8' # beamformer version -# system.correlatorVersion = '0.9' # correlator version - -#system.telescope.RT2.residualDelay = 1.4618e-9 # 0.0 # 3.9734e-9 #3.0402e-9 #1.9029e-9 -#system.telescope.RT3.residualDelay = 3.6548e-9 # 0.0 # 1.2513e-9 #4.1736e-9 -#system.telescope.RT4.residualDelay = 0.0 # 0.0 #5.0991e-9 # -#system.telescope.RT5.residualDelay = 0.1513e-9 # 0.0 # 0.0894e-9 #4.0534e-9 #0.1034e-9 -#system.telescope.RT6.residualDelay = 3.5733e-9 # 0.0 # 1.8253e-9 #3.6861e-9 -#system.telescope.RT7.residualDelay = 0.0 # 0.0 #3.8860e-9 # -#system.telescope.RT8.residualDelay = 0.8254e-9 # 0.0 # 4.1577e-9 #3.5752e-9 #0.6541e-9 # 20171206 -#system.telescope.RT9.residualDelay = 0.4405e-9 # 0.0 # 0.0 #3.9317e-9 #1.8725e-9 -#system.telescope.RTA.residualDelay = 0.0 # 0.0 # 0.1397e-9 #4.4971e-9 # -#system.telescope.RTB.residualDelay = 2.8676e-9 # 0.0 # 2.6496e-9 #2.8192e-9 #1.8206e-9 -#system.telescope.RT2.residualDelay = 2.727e-9 -#system.telescope.RT3.residualDelay = 4.902e-9 -#system.telescope.RT4.residualDelay = 0.206e-9 -#system.telescope.RT5.residualDelay = 1.450e-9 -#system.telescope.RT6.residualDelay = 4.827e-9 -#system.telescope.RT7.residualDelay = 1.716e-9 -#system.telescope.RT8.residualDelay = 2.028e-9 -#system.telescope.RT9.residualDelay = 1.747e-9 -#system.telescope.RTA.residualDelay = 1.306e-9 -#system.telescope.RTB.residualDelay = 2.868e-9 -# The new optimum values (6-2-2018) - -# 13 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 4.771e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 4.098e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 6.046e-9 -#system.telescope.RT8.residualDelay = 6.376e-9 -#system.telescope.RT9.residualDelay = 5.131e-9 -#system.telescope.RTA.residualDelay = 3.434e-9 -#system.telescope.RTB.residualDelay = 4.970e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -# 14 -#system.telescope.RT2.residualDelay = 16.732e-9 -#system.telescope.RT3.residualDelay = 13.031e-9 -#system.telescope.RT4.residualDelay = 14.511e-9 -#system.telescope.RT5.residualDelay = 12.522e-9 -#system.telescope.RT6.residualDelay = 20.239e-9 -#system.telescope.RT7.residualDelay = 15.641e-9 -#system.telescope.RT8.residualDelay = 15.645e-9 -#system.telescope.RT9.residualDelay = 13.194e-9 -#system.telescope.RTA.residualDelay = 8.708e-9 -#system.telescope.RTB.residualDelay = 6.995e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 9.658e-9 - -# 15 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 6.169e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.332e-9 -#system.telescope.RT6.residualDelay = 6.813e-9 -#system.telescope.RT7.residualDelay = 6.109e-9 -#system.telescope.RT8.residualDelay = 6.765e-9 -#system.telescope.RT9.residualDelay = 6.726e-9 -#system.telescope.RTA.residualDelay = 7.818e-9 -#system.telescope.RTB.residualDelay = 12.603e-9 -#system.telescope.RTC.residualDelay = 9.658e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -#system.telescope.RT2.residualDelay = 8.230e-9 -#system.telescope.RT3.residualDelay = 6.709e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.547e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 7.071e-9 -#system.telescope.RTA.residualDelay = 6.673e-9 -#system.telescope.RTB.residualDelay = 9.965e-9 -#system.telescope.RTC.residualDelay = 5.622e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -# because phaseZero is random (LO1 problem) I use 0.0 as default (6-2--2018) -# -# new values 5-3-2018 (RT2,3,4,5,6,9,a,b,c used) -# -#system.telescope.RT2.residualDelay = 11.706e-9 -#system.telescope.RT3.residualDelay = 10.283e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 7.774e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 10.630e-9 -#system.telescope.RTA.residualDelay = 11.452e-9 -#system.telescope.RTB.residualDelay = 11.848e-9 -#system.telescope.RTC.residualDelay = 8.992e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 0.000 -#system.telescope.RT4.phaseZero = 0.000 -#system.telescope.RT5.phaseZero = 0.000 -#system.telescope.RT6.phaseZero = 0.000 -#system.telescope.RT7.phaseZero = 0.000 -#system.telescope.RT8.phaseZero = 0.000 -#system.telescope.RT9.phaseZero = 0.000 -#system.telescope.RTA.phaseZero = 0.000 -#system.telescope.RTB.phaseZero = 0.000 -#system.telescope.RTC.phaseZero = 0.000 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 08-03-2018 BH -#system.telescope.RT2.residualDelay = 13.060e-9 -#system.telescope.RT3.residualDelay = 10.430e-9 -#system.telescope.RT4.residualDelay = 6.242e-9 -#system.telescope.RT5.residualDelay = 9.436e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 12.041e-9 -#system.telescope.RT8.residualDelay = 12.735e-9 -#system.telescope.RT9.residualDelay = 11.876e-9 -#system.telescope.RTA.residualDelay = 12.821e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 11.851e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 2.858 -#system.telescope.RT4.phaseZero = -0.284 -#system.telescope.RT5.phaseZero = -2.599 -#system.telescope.RT6.phaseZero = -0.499 -#system.telescope.RT7.phaseZero = 2.736 -#system.telescope.RT8.phaseZero = -0.845 -#system.telescope.RT9.phaseZero = 0.232 -#system.telescope.RTA.phaseZero = 0.172 -#system.telescope.RTB.phaseZero = 0.096 -#system.telescope.RTC.phaseZero = -2.156 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 09-03-2018 BH -#system.telescope.RT2.residualDelay = 15.561e-9 -#system.telescope.RT3.residualDelay = 12.945e-9 -#system.telescope.RT4.residualDelay = 7.509e-9 -#system.telescope.RT5.residualDelay = 10.688e-9 -#system.telescope.RT6.residualDelay = 14.920e-9 -#system.telescope.RT7.residualDelay = 14.546e-9 -#system.telescope.RT8.residualDelay = 12.741e-9 -#system.telescope.RT9.residualDelay = 13.151e-9 -#system.telescope.RTA.residualDelay = 14.078e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 13.031e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 1.615 -#system.telescope.RT4.phaseZero = 1.138 -#system.telescope.RT5.phaseZero = -0.787 -#system.telescope.RT6.phaseZero = -0.573 -#system.telescope.RT7.phaseZero = 0.313 -#system.telescope.RT8.phaseZero = 0.274 -#system.telescope.RT9.phaseZero = 1.533 -#system.telescope.RTA.phaseZero = 1.741 -#system.telescope.RTB.phaseZero = -1.637 -#system.telescope.RTC.phaseZero = -5.201 -#system.telescope.RTD.phaseZero = 0.000 - -# 09-04-2018 MN, RT2..RTC new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 21.944e-9 -system.telescope.RT3.residualDelay = 19.397e-9 -system.telescope.RT4.residualDelay = 15.170e-9 -system.telescope.RT5.residualDelay = 20.627e-9 -system.telescope.RT6.residualDelay = 25.326e-9 -system.telescope.RT7.residualDelay = 20.963e-9 -system.telescope.RT8.residualDelay = 21.768e-9 -system.telescope.RT9.residualDelay = 20.771e-9 -system.telescope.RTA.residualDelay = 20.480e-9 -system.telescope.RTB.residualDelay = 23.421e-9 -system.telescope.RTC.residualDelay = 18.441e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.448 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.936 -system.telescope.RT6.phaseZero = -1.609 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.086 -system.telescope.RT9.phaseZero = 0.281 -system.telescope.RTA.phaseZero = 0.744 -system.telescope.RTB.phaseZero = 2.157 -system.telescope.RTC.phaseZero = -8.142 -system.telescope.RTD.phaseZero = 0.000 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 6.921e-9 -system.telescope.RT3.residualDelay = 4.435e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.666e-9 -system.telescope.RT6.residualDelay = 11.301e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.804e-9 -system.telescope.RT9.residualDelay = 5.798e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.434e-9 -system.telescope.RTC.residualDelay = 3.271e-9 -system.telescope.RTD.residualDelay = 43.929e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.370 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.855 -system.telescope.RT6.phaseZero = -2.818 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.062 -system.telescope.RT9.phaseZero = 0.168 -system.telescope.RTA.phaseZero = 0.556 -system.telescope.RTB.phaseZero = 2.165 -system.telescope.RTC.phaseZero = -8.707 -system.telescope.RTD.phaseZero = -2.827 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz, version 2 -system.telescope.RT2.residualDelay = 6.936e-9 -system.telescope.RT3.residualDelay = 4.443e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.681e-9 -system.telescope.RT6.residualDelay = 11.331e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.819e-9 -system.telescope.RT9.residualDelay = 5.820e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.437e-9 -system.telescope.RTC.residualDelay = 3.313e-9 -system.telescope.RTD.residualDelay = 44.021e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.392 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.896 -system.telescope.RT6.phaseZero = -2.064 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.110 -system.telescope.RT9.phaseZero = 0.204 -system.telescope.RTA.phaseZero = 0.584 -system.telescope.RTB.phaseZero = 2.177 -system.telescope.RTC.phaseZero = -8.873 -system.telescope.RTD.phaseZero = -2.741 - -# residualDelay and phaseZero values determined using task 14092018 -system.telescope.RT2.residualDelay = 6.695e-9 -system.telescope.RT3.residualDelay = 2.769e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.507e-9 -system.telescope.RT6.residualDelay = 8.455e-9 -system.telescope.RT7.residualDelay = 6.812e-9 -system.telescope.RT8.residualDelay = 6.439e-9 -system.telescope.RT9.residualDelay = 3.011e-9 -system.telescope.RTA.residualDelay = 5.088e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 1.036e-9 -system.telescope.RTD.residualDelay = 45.233e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 2.774 -system.telescope.RT4.phaseZero = -0.843 -system.telescope.RT5.phaseZero = 5.163 -system.telescope.RT6.phaseZero = 0.959 -system.telescope.RT7.phaseZero = -2.120 -system.telescope.RT8.phaseZero = 3.544 -system.telescope.RT9.phaseZero = 3.221 -system.telescope.RTA.phaseZero = 0.176 -system.telescope.RTB.phaseZero = -0.832 -system.telescope.RTC.phaseZero = -9.472 -system.telescope.RTD.phaseZero = -2.531 - -# residualDelay and phaseZero values determined using task 1409201801 -system.telescope.RT2.residualDelay = 6.660e-9 -system.telescope.RT3.residualDelay = 2.756e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.492e-9 -system.telescope.RT6.residualDelay = 8.466e-9 -system.telescope.RT7.residualDelay = 6.798e-9 -system.telescope.RT8.residualDelay = 6.545e-9 -system.telescope.RT9.residualDelay = 2.999e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 1.924e-9 -system.telescope.RTC.residualDelay = 0.819e-9 -system.telescope.RTD.residualDelay = 45.308e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.774 -system.telescope.RT4.phaseZero = -0.457 -system.telescope.RT5.phaseZero = 3.798 -system.telescope.RT6.phaseZero = 3.288 -system.telescope.RT7.phaseZero = -0.193 -system.telescope.RT8.phaseZero = 3.234 -system.telescope.RT9.phaseZero = 5.630 -system.telescope.RTA.phaseZero = -0.104 -system.telescope.RTB.phaseZero = 2.143 -system.telescope.RTC.phaseZero = -12.286 -system.telescope.RTD.phaseZero = -0.055 - -#RB 21-09-2018 -# residualDelay and phaseZero values determined using task 2109201800 -system.telescope.RT2.residualDelay = 6.719e-9 -system.telescope.RT3.residualDelay = 2.740e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.487e-9 -system.telescope.RT6.residualDelay = 9.812e-9 -system.telescope.RT7.residualDelay = 8.056e-9 -system.telescope.RT8.residualDelay = 6.589e-9 -system.telescope.RT9.residualDelay = 6.673e-9 -system.telescope.RTA.residualDelay = 5.168e-9 -system.telescope.RTB.residualDelay = 3.168e-9 -system.telescope.RTC.residualDelay = 5.412e-9 -system.telescope.RTD.residualDelay = 45.297e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.978 -system.telescope.RT4.phaseZero = -0.261 -system.telescope.RT5.phaseZero = 3.795 -system.telescope.RT6.phaseZero = 1.513 -system.telescope.RT7.phaseZero = -2.116 -system.telescope.RT8.phaseZero = 3.552 -system.telescope.RT9.phaseZero = 6.339 -system.telescope.RTA.phaseZero = 0.090 -system.telescope.RTB.phaseZero = 0.601 -system.telescope.RTC.phaseZero = -12.655 -system.telescope.RTD.phaseZero = -0.502 - -#RB 21-09-2018 second run -# residualDelay and phaseZero values determined using task 2109201801 -system.telescope.RT2.residualDelay = 6.679e-9 -system.telescope.RT3.residualDelay = 2.751e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.500e-9 -system.telescope.RT6.residualDelay = 9.831e-9 -system.telescope.RT7.residualDelay = 8.097e-9 -system.telescope.RT8.residualDelay = 6.749e-9 -system.telescope.RT9.residualDelay = 6.775e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.199e-9 -system.telescope.RTC.residualDelay = 5.474e-9 -system.telescope.RTD.residualDelay = 45.255e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.850 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = 3.725 -system.telescope.RT6.phaseZero = 3.413 -system.telescope.RT7.phaseZero = -0.328 -system.telescope.RT8.phaseZero = 3.545 -system.telescope.RT9.phaseZero = 5.518 -system.telescope.RTA.phaseZero = 0.104 -system.telescope.RTB.phaseZero = 2.368 -system.telescope.RTC.phaseZero = -11.890 -system.telescope.RTD.phaseZero = -0.527 - -#20181005 -# residualDelay and phaseZero values determined using task 181005002 -system.telescope.RT2.residualDelay = 5.442e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.457e-9 -system.telescope.RT6.residualDelay = 9.798e-9 -system.telescope.RT7.residualDelay = 6.791e-9 -system.telescope.RT8.residualDelay = 6.592e-9 -system.telescope.RT9.residualDelay = 6.694e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 3.242e-9 -system.telescope.RTC.residualDelay = 3.538e-9 -system.telescope.RTD.residualDelay = 44.069e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.266 -system.telescope.RT4.phaseZero = -2.003 -system.telescope.RT5.phaseZero = 2.163 -system.telescope.RT6.phaseZero = 2.001 -system.telescope.RT7.phaseZero = 0.034 -system.telescope.RT8.phaseZero = 2.123 -system.telescope.RT9.phaseZero = 3.950 -system.telescope.RTA.phaseZero = -1.597 -system.telescope.RTB.phaseZero = 0.530 -system.telescope.RTC.phaseZero = -13.909 -system.telescope.RTD.phaseZero = -0.640 - -# residualDelay and phaseZero values determined using task 181005003 -system.telescope.RT2.residualDelay = 5.496e-9 -system.telescope.RT3.residualDelay = 1.605e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 9.820e-9 -system.telescope.RT7.residualDelay = 6.788e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.629e-9 -system.telescope.RTA.residualDelay = 5.145e-9 -system.telescope.RTB.residualDelay = 3.198e-9 -system.telescope.RTC.residualDelay = 3.760e-9 -system.telescope.RTD.residualDelay = 44.042e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.249 -system.telescope.RT4.phaseZero = -0.137 -system.telescope.RT5.phaseZero = 3.981 -system.telescope.RT6.phaseZero = 3.836 -system.telescope.RT7.phaseZero = -0.055 -system.telescope.RT8.phaseZero = 3.766 -system.telescope.RT9.phaseZero = 5.685 -system.telescope.RTA.phaseZero = 0.191 -system.telescope.RTB.phaseZero = 2.481 -system.telescope.RTC.phaseZero = -14.952 -system.telescope.RTD.phaseZero = -0.513 - -# residualDelay and phaseZero values determined using task 181012004 -system.telescope.RT2.residualDelay = 5.373e-9 -system.telescope.RT3.residualDelay = 1.498e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.472e-9 -system.telescope.RT6.residualDelay = 8.551e-9 -system.telescope.RT7.residualDelay = 6.800e-9 -system.telescope.RT8.residualDelay = 6.600e-9 -system.telescope.RT9.residualDelay = 6.729e-9 -system.telescope.RTA.residualDelay = 6.347e-9 -system.telescope.RTB.residualDelay = 2.004e-9 -system.telescope.RTC.residualDelay = 3.926e-9 -system.telescope.RTD.residualDelay = 42.875e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.192 -system.telescope.RT4.phaseZero = -0.443 -system.telescope.RT5.phaseZero = 3.721 -system.telescope.RT6.phaseZero = 5.446 -system.telescope.RT7.phaseZero = -0.318 -system.telescope.RT8.phaseZero = 3.510 -system.telescope.RT9.phaseZero = 5.291 -system.telescope.RTA.phaseZero = -1.835 -system.telescope.RTB.phaseZero = 4.197 -system.telescope.RTC.phaseZero = -15.103 -system.telescope.RTD.phaseZero = 1.012 - -# residualDelay and phaseZero values determined using task 181012005 -system.telescope.RT2.residualDelay = 5.432e-9 -system.telescope.RT3.residualDelay = 1.554e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.348e-9 -system.telescope.RT6.residualDelay = 8.557e-9 -system.telescope.RT7.residualDelay = 6.829e-9 -system.telescope.RT8.residualDelay = 6.503e-9 -system.telescope.RT9.residualDelay = 6.640e-9 -system.telescope.RTA.residualDelay = 6.362e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.167 -system.telescope.RT4.phaseZero = -0.264 -system.telescope.RT5.phaseZero = 3.973 -system.telescope.RT6.phaseZero = 3.787 -system.telescope.RT7.phaseZero = -0.039 -system.telescope.RT8.phaseZero = 3.808 -system.telescope.RT9.phaseZero = 5.714 -system.telescope.RTA.phaseZero = 0.234 -system.telescope.RTB.phaseZero = 2.653 -system.telescope.RTC.phaseZero = -14.577 -system.telescope.RTD.phaseZero = -0.531 - -# residualDelay and phaseZero values determined using task 181015007 -system.telescope.RT2.residualDelay = 5.393e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.483e-9 -system.telescope.RT6.residualDelay = 8.522e-9 -system.telescope.RT7.residualDelay = 6.811e-9 -system.telescope.RT8.residualDelay = 5.667e-9 -system.telescope.RT9.residualDelay = 6.701e-9 -system.telescope.RTA.residualDelay = 6.394e-9 -system.telescope.RTB.residualDelay = 30.724e-9 -system.telescope.RTC.residualDelay = 2303.554e-9 -system.telescope.RTD.residualDelay = 1242.839e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.087 -system.telescope.RT4.phaseZero = -0.592 -system.telescope.RT5.phaseZero = 3.674 -system.telescope.RT6.phaseZero = 3.698 -system.telescope.RT7.phaseZero = 0.010 -system.telescope.RT8.phaseZero = 3.430 -system.telescope.RT9.phaseZero = 5.461 -system.telescope.RTA.phaseZero = 0.173 -system.telescope.RTB.phaseZero = 2.971 -system.telescope.RTC.phaseZero = -16.811 -system.telescope.RTD.phaseZero = -2.070 - -# residualDelay and phaseZero values determined using task 181015009 -system.telescope.RT2.residualDelay = 5.394e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.469e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.790e-9 -system.telescope.RT8.residualDelay = 6.567e-9 -system.telescope.RT9.residualDelay = 6.645e-9 -system.telescope.RTA.residualDelay = 6.389e-9 -system.telescope.RTB.residualDelay = 30.721e-9 -system.telescope.RTC.residualDelay = 4863.459e-9 -system.telescope.RTD.residualDelay = 2522.633e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.072 -system.telescope.RT4.phaseZero = -0.552 -system.telescope.RT5.phaseZero = 3.906 -system.telescope.RT6.phaseZero = 3.679 -system.telescope.RT7.phaseZero = 0.058 -system.telescope.RT8.phaseZero = 2.316 -system.telescope.RT9.phaseZero = 5.599 -system.telescope.RTA.phaseZero = 0.251 -system.telescope.RTB.phaseZero = 2.696 -system.telescope.RTC.phaseZero = -15.027 -system.telescope.RTD.phaseZero = -3.665 - -# residualDelay and phaseZero values determined using task 181015010 -system.telescope.RT2.residualDelay = 5.420e-9 -system.telescope.RT3.residualDelay = 1.585e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.550e-9 -system.telescope.RT7.residualDelay = 6.789e-9 -system.telescope.RT8.residualDelay = 6.499e-9 -system.telescope.RT9.residualDelay = 6.668e-9 -system.telescope.RTA.residualDelay = 6.397e-9 -system.telescope.RTB.residualDelay = 30.689e-9 -system.telescope.RTC.residualDelay = 7423.493e-9 -system.telescope.RTD.residualDelay = 4102.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.048 -system.telescope.RT4.phaseZero = -0.582 -system.telescope.RT5.phaseZero = 3.843 -system.telescope.RT6.phaseZero = 3.619 -system.telescope.RT7.phaseZero = -0.020 -system.telescope.RT8.phaseZero = 3.643 -system.telescope.RT9.phaseZero = 5.478 -system.telescope.RTA.phaseZero = 0.232 -system.telescope.RTB.phaseZero = 2.667 -system.telescope.RTC.phaseZero = -15.207 -system.telescope.RTD.phaseZero = -5.932 - -# residualDelay and phaseZero values determined using task 181016004 -# manually changed RTB RTC RTD -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.564e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.455e-9 -system.telescope.RT6.residualDelay = 9.791e-9 -system.telescope.RT7.residualDelay = 8.039e-9 -system.telescope.RT8.residualDelay = 6.663e-9 -system.telescope.RT9.residualDelay = 6.672e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.075 -system.telescope.RT4.phaseZero = -0.401 -system.telescope.RT5.phaseZero = 4.023 -system.telescope.RT6.phaseZero = 1.802 -system.telescope.RT7.phaseZero = -1.935 -system.telescope.RT8.phaseZero = 3.598 -system.telescope.RT9.phaseZero = 5.617 -system.telescope.RTA.phaseZero = 1.995 -system.telescope.RTB.phaseZero = 2.483 -system.telescope.RTC.phaseZero = -13.513 -system.telescope.RTD.phaseZero = -7.368 - - -# residualDelay and phaseZero values determined using task 181016006 -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.481e-9 -system.telescope.RT6.residualDelay = 9.818e-9 -system.telescope.RT7.residualDelay = 8.062e-9 -system.telescope.RT8.residualDelay = 6.648e-9 -system.telescope.RT9.residualDelay = 6.678e-9 -system.telescope.RTA.residualDelay = 5.127e-9 -system.telescope.RTB.residualDelay = 5.713e-9 -system.telescope.RTC.residualDelay = 4.052e-9 -system.telescope.RTD.residualDelay = 42.878e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.026 -system.telescope.RT4.phaseZero = -0.417 -system.telescope.RT5.phaseZero = 3.950 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.844 -system.telescope.RT9.phaseZero = 5.596 -system.telescope.RTA.phaseZero = 0.144 -system.telescope.RTB.phaseZero = 2.926 -system.telescope.RTC.phaseZero = -15.035 -system.telescope.RTD.phaseZero = -7.296 - -# residualDelay and phaseZero values determined using task 181016007 -system.telescope.RT2.residualDelay = 5.475e-9 -system.telescope.RT3.residualDelay = 1.604e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.642e-9 -system.telescope.RT9.residualDelay = 6.652e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 5.718e-9 -system.telescope.RTC.residualDelay = 3.999e-9 -system.telescope.RTD.residualDelay = 42.797e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.444 -system.telescope.RT5.phaseZero = 3.942 -system.telescope.RT6.phaseZero = 3.700 -system.telescope.RT7.phaseZero = -0.013 -system.telescope.RT8.phaseZero = 3.802 -system.telescope.RT9.phaseZero = 5.581 -system.telescope.RTA.phaseZero = 0.126 -system.telescope.RTB.phaseZero = 2.390 -system.telescope.RTC.phaseZero = -14.708 -system.telescope.RTD.phaseZero = -7.101 - -# residualDelay and phaseZero values determined using task 181017001 -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.539e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.463e-9 -system.telescope.RT6.residualDelay = 9.808e-9 -system.telescope.RT7.residualDelay = 8.008e-9 -system.telescope.RT8.residualDelay = 6.535e-9 -system.telescope.RT9.residualDelay = 6.649e-9 -system.telescope.RTA.residualDelay = 5.089e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.834e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.045 -system.telescope.RT4.phaseZero = -0.482 -system.telescope.RT5.phaseZero = 3.940 -system.telescope.RT6.phaseZero = 3.611 -system.telescope.RT7.phaseZero = -0.166 -system.telescope.RT8.phaseZero = 3.699 -system.telescope.RT9.phaseZero = 5.421 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 1.702 -system.telescope.RTC.phaseZero = -14.982 -system.telescope.RTD.phaseZero = -7.397 - -# residualDelay and phaseZero values determined using task 181017002 -system.telescope.RT2.residualDelay = 5.388e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 9.816e-9 -system.telescope.RT7.residualDelay = 8.069e-9 -system.telescope.RT8.residualDelay = 6.577e-9 -system.telescope.RT9.residualDelay = 6.721e-9 -system.telescope.RTA.residualDelay = 5.103e-9 -system.telescope.RTB.residualDelay = 1.923e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.452 -system.telescope.RT5.phaseZero = 3.891 -system.telescope.RT6.phaseZero = 3.672 -system.telescope.RT7.phaseZero = -0.148 -system.telescope.RT8.phaseZero = 3.608 -system.telescope.RT9.phaseZero = 5.477 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 2.369 -system.telescope.RTC.phaseZero = -15.390 -system.telescope.RTD.phaseZero = -7.204 - -# residualDelay and phaseZero values determined using task 181017003 -system.telescope.RT2.residualDelay = 5.422e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.432e-9 -system.telescope.RT6.residualDelay = 9.773e-9 -system.telescope.RT7.residualDelay = 8.058e-9 -system.telescope.RT8.residualDelay = 6.543e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.121e-9 -system.telescope.RTB.residualDelay = 1.934e-9 -system.telescope.RTC.residualDelay = 3.647e-9 -system.telescope.RTD.residualDelay = 42.811e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.020 -system.telescope.RT4.phaseZero = -0.366 -system.telescope.RT5.phaseZero = 3.969 -system.telescope.RT6.phaseZero = 3.748 -system.telescope.RT7.phaseZero = 0.020 -system.telescope.RT8.phaseZero = 3.725 -system.telescope.RT9.phaseZero = 5.663 -system.telescope.RTA.phaseZero = 0.130 -system.telescope.RTB.phaseZero = 2.419 -system.telescope.RTC.phaseZero = -15.274 -system.telescope.RTD.phaseZero = -7.069 - -# residualDelay and phaseZero values determined using task 181018005 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.603e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.514e-9 -system.telescope.RT6.residualDelay = 9.809e-9 -system.telescope.RT7.residualDelay = 8.133e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.670e-9 -system.telescope.RTA.residualDelay = 5.105e-9 -system.telescope.RTB.residualDelay = 2.014e-9 -system.telescope.RTC.residualDelay = 5.472e-9 -system.telescope.RTD.residualDelay = 41.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.105 -system.telescope.RT4.phaseZero = -0.546 -system.telescope.RT5.phaseZero = 3.714 -system.telescope.RT6.phaseZero = 3.573 -system.telescope.RT7.phaseZero = -0.121 -system.telescope.RT8.phaseZero = 3.616 -system.telescope.RT9.phaseZero = 5.516 -system.telescope.RTA.phaseZero = 0.039 -system.telescope.RTB.phaseZero = 2.331 -system.telescope.RTC.phaseZero = -15.338 -system.telescope.RTD.phaseZero = -5.065 - -# residualDelay and phaseZero values determined using task 181018006 -system.telescope.RT2.residualDelay = 5.397e-9 -system.telescope.RT3.residualDelay = 1.545e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.436e-9 -system.telescope.RT6.residualDelay = 9.845e-9 -system.telescope.RT7.residualDelay = 8.055e-9 -system.telescope.RT8.residualDelay = 6.584e-9 -system.telescope.RT9.residualDelay = 6.685e-9 -system.telescope.RTA.residualDelay = 5.109e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 5.406e-9 -system.telescope.RTD.residualDelay = 41.638e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.101 -system.telescope.RT4.phaseZero = -0.579 -system.telescope.RT5.phaseZero = 3.802 -system.telescope.RT6.phaseZero = 3.531 -system.telescope.RT7.phaseZero = -0.024 -system.telescope.RT8.phaseZero = 3.620 -system.telescope.RT9.phaseZero = 5.428 -system.telescope.RTA.phaseZero = -0.059 -system.telescope.RTB.phaseZero = 2.365 -system.telescope.RTC.phaseZero = -12.766 -system.telescope.RTD.phaseZero = -7.237 - -# residualDelay and phaseZero values determined using task 181018007 -system.telescope.RT2.residualDelay = 5.350e-9 -system.telescope.RT3.residualDelay = 1.479e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.470e-9 -system.telescope.RT6.residualDelay = 9.799e-9 -system.telescope.RT7.residualDelay = 8.012e-9 -system.telescope.RT8.residualDelay = 6.564e-9 -system.telescope.RT9.residualDelay = 6.709e-9 -system.telescope.RTA.residualDelay = 5.058e-9 -system.telescope.RTB.residualDelay = 1.986e-9 -system.telescope.RTC.residualDelay = 5.415e-9 -system.telescope.RTD.residualDelay = 41.645e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.113 -system.telescope.RT4.phaseZero = -0.487 -system.telescope.RT5.phaseZero = 3.781 -system.telescope.RT6.phaseZero = 3.722 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.637 -system.telescope.RT9.phaseZero = 5.569 -system.telescope.RTA.phaseZero = 0.087 -system.telescope.RTB.phaseZero = 2.488 -system.telescope.RTC.phaseZero = -12.735 -system.telescope.RTD.phaseZero = -7.124 - -# residualDelay and phaseZero values determined using task 181018008 -system.telescope.RT2.residualDelay = 5.351e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.460e-9 -system.telescope.RT6.residualDelay = 9.743e-9 -system.telescope.RT7.residualDelay = 8.009e-9 -system.telescope.RT8.residualDelay = 6.601e-9 -system.telescope.RT9.residualDelay = 6.717e-9 -system.telescope.RTA.residualDelay = 5.073e-9 -system.telescope.RTB.residualDelay = 1.980e-9 -system.telescope.RTC.residualDelay = 4.969e-9 -system.telescope.RTD.residualDelay = 41.508e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.124 -system.telescope.RT4.phaseZero = -0.403 -system.telescope.RT5.phaseZero = 3.886 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.065 -system.telescope.RT8.phaseZero = 3.587 -system.telescope.RT9.phaseZero = 5.588 -system.telescope.RTA.phaseZero = -0.014 -system.telescope.RTB.phaseZero = 2.393 -system.telescope.RTC.phaseZero = -12.762 -system.telescope.RTD.phaseZero = -7.206 - -# residualDelay and phaseZero values determined using task 181019002 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.619e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.450e-9 -system.telescope.RT6.residualDelay = 8.563e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.587e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.213e-9 -system.telescope.RTB.residualDelay = 3.271e-9 -system.telescope.RTC.residualDelay = 4.027e-9 -system.telescope.RTD.residualDelay = 41.657e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.087 -system.telescope.RT4.phaseZero = -0.266 -system.telescope.RT5.phaseZero = 4.091 -system.telescope.RT6.phaseZero = 5.690 -system.telescope.RT7.phaseZero = -0.083 -system.telescope.RT8.phaseZero = 3.881 -system.telescope.RT9.phaseZero = 5.887 -system.telescope.RTA.phaseZero = -0.109 -system.telescope.RTB.phaseZero = 0.275 -system.telescope.RTC.phaseZero = -13.702 -system.telescope.RTD.phaseZero = -7.586 - -# residualDelay and phaseZero values determined using task 181019003 -system.telescope.RT2.residualDelay = 5.479e-9 -system.telescope.RT3.residualDelay = 1.669e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 8.609e-9 -system.telescope.RT7.residualDelay = 8.076e-9 -system.telescope.RT8.residualDelay = 6.622e-9 -system.telescope.RT9.residualDelay = 6.734e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.307e-9 -system.telescope.RTC.residualDelay = 4.072e-9 -system.telescope.RTD.residualDelay = 1.632e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.079 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = 3.897 -system.telescope.RT6.phaseZero = 3.745 -system.telescope.RT7.phaseZero = -0.187 -system.telescope.RT8.phaseZero = 3.707 -system.telescope.RT9.phaseZero = 5.634 -system.telescope.RTA.phaseZero = -0.029 -system.telescope.RTB.phaseZero = 2.095 -system.telescope.RTC.phaseZero = -15.160 -system.telescope.RTD.phaseZero = -7.415 - -# residualDelay and phaseZero values determined using task 181026004 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.588e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.540e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 6.792e-9 -system.telescope.RT8.residualDelay = 6.659e-9 -system.telescope.RT9.residualDelay = 6.574e-9 -system.telescope.RTA.residualDelay = 5.169e-9 -system.telescope.RTB.residualDelay = 3.178e-9 -system.telescope.RTC.residualDelay = 3.901e-9 -system.telescope.RTD.residualDelay = 41.556e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.091 -system.telescope.RT4.phaseZero = -0.555 -system.telescope.RT5.phaseZero = 4.380 -system.telescope.RT6.phaseZero = 1.850 -system.telescope.RT7.phaseZero = 2.435 -system.telescope.RT8.phaseZero = 4.213 -system.telescope.RT9.phaseZero = 5.619 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.359 -system.telescope.RTC.phaseZero = -15.132 -system.telescope.RTD.phaseZero = -5.157 - -# residualDelay and phaseZero values determined using task 181026005 -# Manual reset as recommended by M. Norden -system.telescope.RT2.residualDelay = 0.000e-9 -system.telescope.RT3.residualDelay = 0.000e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 0.000e-9 -system.telescope.RT6.residualDelay = 0.000e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 0.000e-9 -system.telescope.RT9.residualDelay = 0.000e-9 -system.telescope.RTA.residualDelay = 0.000e-9 -system.telescope.RTB.residualDelay = 0.000e-9 -system.telescope.RTC.residualDelay = 0.000e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.000 -system.telescope.RT4.phaseZero = 0.000 -system.telescope.RT5.phaseZero = 0.000 -system.telescope.RT6.phaseZero = 0.000 -system.telescope.RT7.phaseZero = 0.000 -system.telescope.RT8.phaseZero = 0.000 -system.telescope.RT9.phaseZero = 0.000 -system.telescope.RTA.phaseZero = 0.000 -system.telescope.RTB.phaseZero = 0.000 -system.telescope.RTC.phaseZero = 0.000 -system.telescope.RTD.phaseZero = 0.000 - -# residualDelay and phaseZero values determined using task 181026006 -system.telescope.RT2.residualDelay = 5.459e-9 -system.telescope.RT3.residualDelay = 1.615e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.552e-9 -system.telescope.RT6.residualDelay = 9.784e-9 -system.telescope.RT7.residualDelay = 6.758e-9 -system.telescope.RT8.residualDelay = 6.573e-9 -system.telescope.RT9.residualDelay = 6.606e-9 -system.telescope.RTA.residualDelay = 5.132e-9 -system.telescope.RTB.residualDelay = 3.211e-9 -system.telescope.RTC.residualDelay = 3.866e-9 -system.telescope.RTD.residualDelay = 41.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.405 -system.telescope.RT4.phaseZero = 1.483 -system.telescope.RT5.phaseZero = -0.364 -system.telescope.RT6.phaseZero = -2.864 -system.telescope.RT7.phaseZero = -1.446 -system.telescope.RT8.phaseZero = 2.517 -system.telescope.RT9.phaseZero = -2.539 -system.telescope.RTA.phaseZero = 0.378 -system.telescope.RTB.phaseZero = -0.541 -system.telescope.RTC.phaseZero = -0.369 -system.telescope.RTD.phaseZero = 0.741 - -# residualDelay and phaseZero values determined using task 181026007 -# had to overrule the system.telescope.RTD.residualDelay by a fixed value (MN) -system.telescope.RT2.residualDelay = 5.448e-9 -system.telescope.RT3.residualDelay = 1.633e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.575e-9 -system.telescope.RT6.residualDelay = 9.806e-9 -system.telescope.RT7.residualDelay = 6.809e-9 -system.telescope.RT8.residualDelay = 6.594e-9 -system.telescope.RT9.residualDelay = 6.663e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 3.296e-9 -system.telescope.RTC.residualDelay = 4.038e-9 -system.telescope.RTD.residualDelay = 1.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.082 -system.telescope.RT4.phaseZero = -0.486 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.598 -system.telescope.RT7.phaseZero = 0.548 -system.telescope.RT8.phaseZero = 4.249 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.088 -system.telescope.RTB.phaseZero = 2.358 -system.telescope.RTC.phaseZero = -2.730 -system.telescope.RTD.phaseZero = -1.053 - -# residualDelay and phaseZero values determined using task 181026008 -system.telescope.RT2.residualDelay = 5.449e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.590e-9 -system.telescope.RT6.residualDelay = 8.514e-9 -system.telescope.RT7.residualDelay = 8.006e-9 -system.telescope.RT8.residualDelay = 6.615e-9 -system.telescope.RT9.residualDelay = 6.630e-9 -system.telescope.RTA.residualDelay = 5.173e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 4.020e-9 -system.telescope.RTD.residualDelay = 2.881e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.113 -system.telescope.RT4.phaseZero = -0.471 -system.telescope.RT5.phaseZero = -1.669 -system.telescope.RT6.phaseZero = -0.679 -system.telescope.RT7.phaseZero = -1.303 -system.telescope.RT8.phaseZero = 4.260 -system.telescope.RT9.phaseZero = -0.737 -system.telescope.RTA.phaseZero = -0.085 -system.telescope.RTB.phaseZero = 4.365 -system.telescope.RTC.phaseZero = -2.478 -system.telescope.RTD.phaseZero = -2.941 - -# residualDelay and phaseZero values determined using task 181026010 -system.telescope.RT2.residualDelay = 5.454e-9 -system.telescope.RT3.residualDelay = 1.617e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.539e-9 -system.telescope.RT6.residualDelay = 8.545e-9 -system.telescope.RT7.residualDelay = 8.014e-9 -system.telescope.RT8.residualDelay = 6.563e-9 -system.telescope.RT9.residualDelay = 6.552e-9 -system.telescope.RTA.residualDelay = 5.125e-9 -system.telescope.RTB.residualDelay = 1.932e-9 -system.telescope.RTC.residualDelay = 3.912e-9 -system.telescope.RTD.residualDelay = 2.888e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.027 -system.telescope.RT4.phaseZero = -0.466 -system.telescope.RT5.phaseZero = -1.671 -system.telescope.RT6.phaseZero = -2.641 -system.telescope.RT7.phaseZero = 0.479 -system.telescope.RT8.phaseZero = 4.304 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.060 -system.telescope.RTB.phaseZero = 2.412 -system.telescope.RTC.phaseZero = -2.485 -system.telescope.RTD.phaseZero = -0.960 - -# residualDelay and phaseZero values determined using task 181026011 by JS -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.513e-9 -system.telescope.RT7.residualDelay = 7.986e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.580e-9 -system.telescope.RTA.residualDelay = 5.104e-9 -system.telescope.RTB.residualDelay = 1.994e-9 -system.telescope.RTC.residualDelay = 3.948e-9 -system.telescope.RTD.residualDelay = 2.713e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.768 -system.telescope.RT6.phaseZero = -2.633 -system.telescope.RT7.phaseZero = 0.452 -system.telescope.RT8.phaseZero = 4.170 -system.telescope.RT9.phaseZero = -0.969 -system.telescope.RTA.phaseZero = -0.176 -system.telescope.RTB.phaseZero = 2.238 -system.telescope.RTC.phaseZero = -2.726 -system.telescope.RTD.phaseZero = -1.043 - -# residualDelay and phaseZero values determined using task 181102001 by JS -system.telescope.RT2.residualDelay = 5.453e-9 -system.telescope.RT3.residualDelay = 1.591e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.477e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.764e-9 -system.telescope.RT8.residualDelay = 6.675e-9 -system.telescope.RT9.residualDelay = 6.637e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 2.006e-9 -system.telescope.RTC.residualDelay = 3.944e-9 -system.telescope.RTD.residualDelay = 1.572e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.128 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.614 -system.telescope.RT6.phaseZero = -2.545 -system.telescope.RT7.phaseZero = 2.389 -system.telescope.RT8.phaseZero = 4.495 -system.telescope.RT9.phaseZero = -0.840 -system.telescope.RTA.phaseZero = -0.093 -system.telescope.RTB.phaseZero = 2.340 -system.telescope.RTC.phaseZero = -2.881 -system.telescope.RTD.phaseZero = 0.473 - -# residualDelay and phaseZero values determined using task 181102002 by JS -system.telescope.RT2.residualDelay = 5.408e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.490e-9 -system.telescope.RT6.residualDelay = 8.488e-9 -system.telescope.RT7.residualDelay = 6.782e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.650e-9 -system.telescope.RTA.residualDelay = 5.139e-9 -system.telescope.RTB.residualDelay = 2.018e-9 -system.telescope.RTC.residualDelay = 3.916e-9 -system.telescope.RTD.residualDelay = 1.693e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.133 -system.telescope.RT4.phaseZero = -0.543 -system.telescope.RT5.phaseZero = -1.692 -system.telescope.RT6.phaseZero = -2.603 -system.telescope.RT7.phaseZero = 0.516 -system.telescope.RT8.phaseZero = 4.555 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 2.311 -system.telescope.RTC.phaseZero = -2.890 -system.telescope.RTD.phaseZero = -1.242 - -# residualDelay and phaseZero values determined using task 181102003 JS -system.telescope.RT2.residualDelay = 5.417e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.458e-9 -system.telescope.RT6.residualDelay = 8.501e-9 -system.telescope.RT7.residualDelay = 6.754e-9 -system.telescope.RT8.residualDelay = 6.704e-9 -system.telescope.RT9.residualDelay = 6.593e-9 -system.telescope.RTA.residualDelay = 5.187e-9 -system.telescope.RTB.residualDelay = 2.023e-9 -system.telescope.RTC.residualDelay = 3.959e-9 -system.telescope.RTD.residualDelay = 1.549e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.118 -system.telescope.RT4.phaseZero = -0.468 -system.telescope.RT5.phaseZero = -1.587 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = 0.633 -system.telescope.RT8.phaseZero = 4.648 -system.telescope.RT9.phaseZero = -0.676 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.382 -system.telescope.RTC.phaseZero = -2.815 -system.telescope.RTD.phaseZero = -0.963 - -# residualDelay and phaseZero values determined using task 181102004 by JS - -system.telescope.RT2.residualDelay = 5.435e-9 -system.telescope.RT3.residualDelay = 1.581e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 8.496e-9 -system.telescope.RT7.residualDelay = 6.801e-9 -system.telescope.RT8.residualDelay = 6.662e-9 -system.telescope.RT9.residualDelay = 6.533e-9 -system.telescope.RTA.residualDelay = 5.120e-9 -system.telescope.RTB.residualDelay = 1.907e-9 -system.telescope.RTC.residualDelay = 3.950e-9 -system.telescope.RTD.residualDelay = 1.533e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.059 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.713 -system.telescope.RT6.phaseZero = -2.560 -system.telescope.RT7.phaseZero = 0.490 -system.telescope.RT8.phaseZero = 4.584 -system.telescope.RT9.phaseZero = -0.856 -system.telescope.RTA.phaseZero = -0.046 -system.telescope.RTB.phaseZero = 2.245 -system.telescope.RTC.phaseZero = -2.944 -system.telescope.RTD.phaseZero = -1.373 - -# residualDelay and phaseZero values determined using task 181102005 JS -system.telescope.RT2.residualDelay = 5.465e-9 -system.telescope.RT3.residualDelay = 1.608e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.486e-9 -system.telescope.RT6.residualDelay = 8.561e-9 -system.telescope.RT7.residualDelay = 6.772e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.646e-9 -system.telescope.RTA.residualDelay = 5.117e-9 -system.telescope.RTB.residualDelay = 2.017e-9 -system.telescope.RTC.residualDelay = 3.974e-9 -system.telescope.RTD.residualDelay = 1.586e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.095 -system.telescope.RT4.phaseZero = -0.496 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.592 -system.telescope.RT7.phaseZero = 0.576 -system.telescope.RT8.phaseZero = 4.483 -system.telescope.RT9.phaseZero = -0.955 -system.telescope.RTA.phaseZero = -0.196 -system.telescope.RTB.phaseZero = 2.038 -system.telescope.RTC.phaseZero = -2.987 -system.telescope.RTD.phaseZero = -1.406 - -# residualDelay and phaseZero values determined using task 181108005 -system.telescope.RT2.residualDelay = 5.429e-9 -system.telescope.RT3.residualDelay = 1.569e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.494e-9 -system.telescope.RT6.residualDelay = 8.487e-9 -system.telescope.RT7.residualDelay = 3.177e-9 -system.telescope.RT8.residualDelay = 6.606e-9 -system.telescope.RT9.residualDelay = 6.666e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 1.949e-9 -system.telescope.RTC.residualDelay = 4.004e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.044 -system.telescope.RT4.phaseZero = -0.700 -system.telescope.RT5.phaseZero = -1.799 -system.telescope.RT6.phaseZero = -2.711 -system.telescope.RT7.phaseZero = -1.490 -system.telescope.RT8.phaseZero = 4.021 -system.telescope.RT9.phaseZero = -1.085 -system.telescope.RTA.phaseZero = -0.327 -system.telescope.RTB.phaseZero = 2.012 -system.telescope.RTC.phaseZero = -3.314 -system.telescope.RTD.phaseZero = -1.354 - -# residualDelay and phaseZero values determined using task 181108006 -system.telescope.RT2.residualDelay = 5.457e-9 -system.telescope.RT3.residualDelay = 1.592e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.543e-9 -system.telescope.RT6.residualDelay = 8.530e-9 -system.telescope.RT7.residualDelay = 3.266e-9 -system.telescope.RT8.residualDelay = 6.641e-9 -system.telescope.RT9.residualDelay = 6.639e-9 -system.telescope.RTA.residualDelay = 5.185e-9 -system.telescope.RTB.residualDelay = 1.988e-9 -system.telescope.RTC.residualDelay = 3.993e-9 -system.telescope.RTD.residualDelay = 42.970e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.651 -system.telescope.RT5.phaseZero = -1.708 -system.telescope.RT6.phaseZero = -2.726 -system.telescope.RT7.phaseZero = -0.568 -system.telescope.RT8.phaseZero = 4.070 -system.telescope.RT9.phaseZero = -0.827 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.189 -system.telescope.RTC.phaseZero = -2.954 -system.telescope.RTD.phaseZero = -1.359 - -# residualDelay and phaseZero values determined using task 181108007 -system.telescope.RT2.residualDelay = 5.461e-9 -system.telescope.RT3.residualDelay = 1.627e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.518e-9 -system.telescope.RT6.residualDelay = 8.508e-9 -system.telescope.RT7.residualDelay = 3.217e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.674e-9 -system.telescope.RTA.residualDelay = 5.198e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.832e-9 -#system.telescope.RTD.residualDelay = 43.078e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.030 -system.telescope.RT4.phaseZero = -0.656 -system.telescope.RT5.phaseZero = -1.617 -system.telescope.RT6.phaseZero = -2.635 -system.telescope.RT7.phaseZero = -0.360 -system.telescope.RT8.phaseZero = 4.184 -system.telescope.RT9.phaseZero = -0.816 -system.telescope.RTA.phaseZero = 0.066 -system.telescope.RTB.phaseZero = 2.259 -system.telescope.RTC.phaseZero = -3.144 -system.telescope.RTD.phaseZero = -1.386 - -# residualDelay and phaseZero values determined using task 181109001 -system.telescope.RT2.residualDelay = 5.452e-9 -system.telescope.RT3.residualDelay = 1.612e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.761e-9 -system.telescope.RT7.residualDelay = 3.200e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.599e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 2.025e-9 -system.telescope.RTC.residualDelay = 3.573e-9 -system.telescope.RTD.residualDelay = 1.568e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.143 -system.telescope.RT4.phaseZero = -0.503 -system.telescope.RT5.phaseZero = -1.590 -system.telescope.RT6.phaseZero = -4.433 -system.telescope.RT7.phaseZero = -0.436 -system.telescope.RT8.phaseZero = 4.169 -system.telescope.RT9.phaseZero = -0.699 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.296 -system.telescope.RTD.phaseZero = -3.863 - -# residualDelay and phaseZero values determined using task 181109003 -system.telescope.RT2.residualDelay = 5.433e-9 -system.telescope.RT3.residualDelay = 1.595e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.529e-9 -system.telescope.RT6.residualDelay = 9.701e-9 -system.telescope.RT7.residualDelay = 3.160e-9 -system.telescope.RT8.residualDelay = 6.613e-9 -system.telescope.RT9.residualDelay = 6.611e-9 -system.telescope.RTA.residualDelay = 5.122e-9 -system.telescope.RTB.residualDelay = 2.046e-9 -system.telescope.RTC.residualDelay = 3.628e-9 -system.telescope.RTD.residualDelay = 1.610e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.162 -system.telescope.RT4.phaseZero = -0.474 -system.telescope.RT5.phaseZero = -1.581 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = -0.415 -system.telescope.RT8.phaseZero = 4.204 -system.telescope.RT9.phaseZero = -0.810 -system.telescope.RTA.phaseZero = -0.114 -system.telescope.RTB.phaseZero = 2.154 -system.telescope.RTC.phaseZero = -3.691 -system.telescope.RTD.phaseZero = -1.496 - -# residualDelay and phaseZero values determined using task 181109004 JS -system.telescope.RT2.residualDelay = 5.490e-9 -system.telescope.RT3.residualDelay = 1.661e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.781e-9 -system.telescope.RT7.residualDelay = 3.195e-9 -system.telescope.RT8.residualDelay = 6.673e-9 -system.telescope.RT9.residualDelay = 6.618e-9 -system.telescope.RTA.residualDelay = 5.209e-9 -system.telescope.RTB.residualDelay = 2.062e-9 -system.telescope.RTC.residualDelay = 3.850e-9 -system.telescope.RTD.residualDelay = 1.598e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.142 -system.telescope.RT4.phaseZero = -0.451 -system.telescope.RT5.phaseZero = -1.532 -system.telescope.RT6.phaseZero = -2.600 -system.telescope.RT7.phaseZero = -0.472 -system.telescope.RT8.phaseZero = 4.203 -system.telescope.RT9.phaseZero = -0.766 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.191 -system.telescope.RTC.phaseZero = -3.550 -system.telescope.RTD.phaseZero = -1.429 -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116002 -system.telescope.RT2.residualDelay = 5.438e-9 -system.telescope.RT3.residualDelay = 1.607e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.502e-9 -system.telescope.RT6.residualDelay = 8.515e-9 -system.telescope.RT7.residualDelay = 4.407e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.236e-9 -system.telescope.RTB.residualDelay = 3.310e-9 -system.telescope.RTC.residualDelay = 4.084e-9 -system.telescope.RTD.residualDelay = 1.672e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.271 -system.telescope.RT4.phaseZero = -0.421 -system.telescope.RT5.phaseZero = -1.631 -system.telescope.RT6.phaseZero = -2.427 -system.telescope.RT7.phaseZero = -0.532 -system.telescope.RT8.phaseZero = 4.017 -system.telescope.RT9.phaseZero = -0.673 -system.telescope.RTA.phaseZero = -0.218 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.881 -system.telescope.RTD.phaseZero = -1.905 - -# residualDelay and phaseZero values determined using task 181116003 -system.telescope.RT2.residualDelay = 5.480e-9 -system.telescope.RT3.residualDelay = 1.678e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 8.540e-9 -system.telescope.RT7.residualDelay = 4.480e-9 -system.telescope.RT8.residualDelay = 6.660e-9 -system.telescope.RT9.residualDelay = 6.704e-9 -system.telescope.RTA.residualDelay = 5.227e-9 -system.telescope.RTB.residualDelay = 3.294e-9 -system.telescope.RTC.residualDelay = 4.114e-9 -system.telescope.RTD.residualDelay = 1.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.243 -system.telescope.RT4.phaseZero = -0.394 -system.telescope.RT5.phaseZero = -1.554 -system.telescope.RT6.phaseZero = -2.396 -system.telescope.RT7.phaseZero = -0.537 -system.telescope.RT8.phaseZero = 4.144 -system.telescope.RT9.phaseZero = -0.658 -system.telescope.RTA.phaseZero = -0.070 -system.telescope.RTB.phaseZero = 1.900 -system.telescope.RTC.phaseZero = -2.800 -system.telescope.RTD.phaseZero = -1.745 - -# residualDelay and phaseZero values determined using task 181116005 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.667e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.506e-9 -system.telescope.RT6.residualDelay = 8.552e-9 -system.telescope.RT7.residualDelay = 4.469e-9 -system.telescope.RT8.residualDelay = 6.562e-9 -system.telescope.RT9.residualDelay = 6.705e-9 -system.telescope.RTA.residualDelay = 5.188e-9 -system.telescope.RTB.residualDelay = 3.324e-9 -system.telescope.RTC.residualDelay = 4.110e-9 -system.telescope.RTD.residualDelay = 1.703e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.285 -system.telescope.RT4.phaseZero = -0.458 -system.telescope.RT5.phaseZero = -1.564 -system.telescope.RT6.phaseZero = -2.420 -system.telescope.RT7.phaseZero = -0.467 -system.telescope.RT8.phaseZero = 4.080 -system.telescope.RT9.phaseZero = -0.638 -system.telescope.RTA.phaseZero = -0.124 -system.telescope.RTB.phaseZero = 1.826 -system.telescope.RTC.phaseZero = -3.389 -system.telescope.RTD.phaseZero = -1.815 - -# residualDelay and phaseZero values determined using task 181116006 -system.telescope.RT2.residualDelay = 5.428e-9 -system.telescope.RT3.residualDelay = 1.613e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.468e-9 -system.telescope.RT6.residualDelay = 8.507e-9 -system.telescope.RT7.residualDelay = 4.409e-9 -system.telescope.RT8.residualDelay = 6.505e-9 -system.telescope.RT9.residualDelay = 6.625e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 3.280e-9 -system.telescope.RTC.residualDelay = 4.068e-9 -system.telescope.RTD.residualDelay = 1.670e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.317 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = -1.538 -system.telescope.RT6.phaseZero = -2.342 -system.telescope.RT7.phaseZero = -0.447 -system.telescope.RT8.phaseZero = 3.970 -system.telescope.RT9.phaseZero = -0.640 -system.telescope.RTA.phaseZero = -0.152 -system.telescope.RTB.phaseZero = 1.915 -system.telescope.RTC.phaseZero = -3.538 -system.telescope.RTD.phaseZero = -1.902 - -# residualDelay and phaseZero values determined using task 181120007 -system.telescope.RT2.residualDelay = 2.977e-9 -system.telescope.RT3.residualDelay = 5.307e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.096e-9 -system.telescope.RT6.residualDelay = 10.958e-9 -system.telescope.RT7.residualDelay = 4.476e-9 -system.telescope.RT8.residualDelay = 7.739e-9 -system.telescope.RT9.residualDelay = 6.567e-9 -system.telescope.RTA.residualDelay = 4.960e-9 -system.telescope.RTB.residualDelay = 7.008e-9 -system.telescope.RTC.residualDelay = 3.652e-9 -system.telescope.RTD.residualDelay = 6.643e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -2.417 -system.telescope.RT4.phaseZero = 0.905 -system.telescope.RT5.phaseZero = -0.210 -system.telescope.RT6.phaseZero = -2.772 -system.telescope.RT7.phaseZero = 1.864 -system.telescope.RT8.phaseZero = 0.899 -system.telescope.RT9.phaseZero = -2.482 -system.telescope.RTA.phaseZero = -0.643 -system.telescope.RTB.phaseZero = -0.986 -system.telescope.RTC.phaseZero = -6.518 -system.telescope.RTD.phaseZero = -3.940 - -# residualDelay and phaseZero values determined using task 181120008 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.314e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.090e-9 -system.telescope.RT6.residualDelay = 10.945e-9 -system.telescope.RT7.residualDelay = 4.421e-9 -system.telescope.RT8.residualDelay = 7.796e-9 -system.telescope.RT9.residualDelay = 6.548e-9 -system.telescope.RTA.residualDelay = 4.922e-9 -system.telescope.RTB.residualDelay = 7.013e-9 -system.telescope.RTC.residualDelay = 3.761e-9 -system.telescope.RTD.residualDelay = 6.641e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.582 -system.telescope.RT4.phaseZero = -1.697 -system.telescope.RT5.phaseZero = 1.401 -system.telescope.RT6.phaseZero = -1.652 -system.telescope.RT7.phaseZero = -0.654 -system.telescope.RT8.phaseZero = 0.168 -system.telescope.RT9.phaseZero = -5.165 -system.telescope.RTA.phaseZero = -3.529 -system.telescope.RTB.phaseZero = 2.048 -system.telescope.RTC.phaseZero = -3.539 -system.telescope.RTD.phaseZero = -5.402 - -# residualDelay and phaseZero values determined using task 181120009 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.330e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.144e-9 -system.telescope.RT6.residualDelay = 10.929e-9 -system.telescope.RT7.residualDelay = 4.477e-9 -system.telescope.RT8.residualDelay = 7.755e-9 -system.telescope.RT9.residualDelay = 6.536e-9 -system.telescope.RTA.residualDelay = 4.976e-9 -system.telescope.RTB.residualDelay = 6.997e-9 -system.telescope.RTC.residualDelay = 3.880e-9 -system.telescope.RTD.residualDelay = 6.704e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.600 -system.telescope.RT4.phaseZero = -1.704 -system.telescope.RT5.phaseZero = 1.380 -system.telescope.RT6.phaseZero = -1.703 -system.telescope.RT7.phaseZero = -0.782 -system.telescope.RT8.phaseZero = 0.208 -system.telescope.RT9.phaseZero = -5.248 -system.telescope.RTA.phaseZero = -3.649 -system.telescope.RTB.phaseZero = 2.004 -system.telescope.RTC.phaseZero = -3.502 -system.telescope.RTD.phaseZero = -5.530 - -# residualDelay and phaseZero values determined using task 181123001 -system.telescope.RT2.residualDelay = 0.476e-9 -system.telescope.RT3.residualDelay = 9.099e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 1.732e-9 -system.telescope.RT6.residualDelay = 13.341e-9 -system.telescope.RT7.residualDelay = 0.921e-9 -system.telescope.RT8.residualDelay = 8.849e-9 -system.telescope.RT9.residualDelay = 6.500e-9 -system.telescope.RTA.residualDelay = 4.836e-9 -system.telescope.RTB.residualDelay = 12.066e-9 -system.telescope.RTC.residualDelay = 2.928e-9 -system.telescope.RTD.residualDelay = 9.397e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -1.829 -system.telescope.RT4.phaseZero = -0.236 -system.telescope.RT5.phaseZero = 3.080 -system.telescope.RT6.phaseZero = -1.666 -system.telescope.RT7.phaseZero = -0.010 -system.telescope.RT8.phaseZero = -2.646 -system.telescope.RT9.phaseZero = -6.555 -system.telescope.RTA.phaseZero = -3.916 -system.telescope.RTB.phaseZero = 3.266 -system.telescope.RTC.phaseZero = -1.055 -system.telescope.RTD.phaseZero = -4.422 - - -# residualDelay and phaseZero values determined using task 181123002 -system.telescope.RT2.residualDelay = 0.621e-9 -system.telescope.RT3.residualDelay = 15.511e-9 -system.telescope.RT4.residualDelay = 2.638e-9 -system.telescope.RT5.residualDelay = 2.914e-9 -system.telescope.RT6.residualDelay = 18.391e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 12.579e-9 -system.telescope.RT9.residualDelay = 8.998e-9 -system.telescope.RTA.residualDelay = 7.286e-9 -system.telescope.RTB.residualDelay = 19.632e-9 -system.telescope.RTC.residualDelay = 3.820e-9 -system.telescope.RTD.residualDelay = 14.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -4.265 -system.telescope.RT4.phaseZero = 1.218 -system.telescope.RT5.phaseZero = 4.772 -system.telescope.RT6.phaseZero = -1.655 -system.telescope.RT7.phaseZero = 0.718 -system.telescope.RT8.phaseZero = -5.535 -system.telescope.RT9.phaseZero = -7.917 -system.telescope.RTA.phaseZero = -4.215 -system.telescope.RTB.phaseZero = 4.487 -system.telescope.RTC.phaseZero = 1.298 -system.telescope.RTD.phaseZero = -3.381 - - -# residualDelay and phaseZero values determined using task 181123006 -system.telescope.RT2.residualDelay = 2.944e-9 -system.telescope.RT3.residualDelay = 5.400e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.072e-9 -system.telescope.RT6.residualDelay = 10.971e-9 -system.telescope.RT7.residualDelay = 5.645e-9 -system.telescope.RT8.residualDelay = 7.649e-9 -system.telescope.RT9.residualDelay = 6.515e-9 -system.telescope.RTA.residualDelay = 4.995e-9 -system.telescope.RTB.residualDelay = 5.787e-9 -system.telescope.RTC.residualDelay = 3.329e-9 -system.telescope.RTD.residualDelay = 6.591e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.449 -system.telescope.RT4.phaseZero = -0.335 -system.telescope.RT5.phaseZero = 4.807 -system.telescope.RT6.phaseZero = 0.761 -system.telescope.RT7.phaseZero = 0.784 -system.telescope.RT8.phaseZero = -7.524 -system.telescope.RT9.phaseZero = -10.245 -system.telescope.RTA.phaseZero = -2.455 -system.telescope.RTB.phaseZero = 1.666 -system.telescope.RTC.phaseZero = 0.638 -system.telescope.RTD.phaseZero = -1.772 - - -# residualDelay and phaseZero values determined using task 181123007 -system.telescope.RT2.residualDelay = 2.990e-9 -system.telescope.RT3.residualDelay = 5.378e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.142e-9 -system.telescope.RT6.residualDelay = 10.954e-9 -system.telescope.RT7.residualDelay = 5.785e-9 -system.telescope.RT8.residualDelay = 7.716e-9 -system.telescope.RT9.residualDelay = 6.612e-9 -system.telescope.RTA.residualDelay = 5.031e-9 -system.telescope.RTB.residualDelay = 5.834e-9 -system.telescope.RTC.residualDelay = 3.489e-9 -system.telescope.RTD.residualDelay = 6.650e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.440 -system.telescope.RT4.phaseZero = -1.594 -system.telescope.RT5.phaseZero = 7.803 -system.telescope.RT6.phaseZero = -1.442 -system.telescope.RT7.phaseZero = -0.486 -system.telescope.RT8.phaseZero = -5.954 -system.telescope.RT9.phaseZero = -11.272 -system.telescope.RTA.phaseZero = -3.214 -system.telescope.RTB.phaseZero = 2.267 -system.telescope.RTC.phaseZero = 2.608 -system.telescope.RTD.phaseZero = 1.312 - - -# residualDelay and phaseZero values determined using task 181123008 -system.telescope.RT2.residualDelay = 2.991e-9 -system.telescope.RT3.residualDelay = 5.381e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.117e-9 -system.telescope.RT6.residualDelay = 10.937e-9 -system.telescope.RT7.residualDelay = 5.683e-9 -system.telescope.RT8.residualDelay = 7.719e-9 -system.telescope.RT9.residualDelay = 6.546e-9 -system.telescope.RTA.residualDelay = 4.970e-9 -system.telescope.RTB.residualDelay = 5.798e-9 -system.telescope.RTC.residualDelay = 3.492e-9 -system.telescope.RTD.residualDelay = 6.662e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.539 -system.telescope.RT4.phaseZero = -1.694 -system.telescope.RT5.phaseZero = 7.825 -system.telescope.RT6.phaseZero = -1.562 -system.telescope.RT7.phaseZero = -0.395 -system.telescope.RT8.phaseZero = -5.991 -system.telescope.RT9.phaseZero = -11.217 -system.telescope.RTA.phaseZero = -3.274 -system.telescope.RTB.phaseZero = 2.217 -system.telescope.RTC.phaseZero = 2.721 -system.telescope.RTD.phaseZero = 1.250 - diff --git a/atdb_services_pip/atdb_services/parset_start_observation_atdb_SubbandPhaseCorrection.template b/atdb_services_pip/atdb_services/parset_start_observation_atdb_SubbandPhaseCorrection.template deleted file mode 100644 index da85cbadb42ad9ad9c64cc740ae9a558a9b3b0eb..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/parset_start_observation_atdb_SubbandPhaseCorrection.template +++ /dev/null @@ -1,1820 +0,0 @@ -# -# This is the template for a parset that is used by the ATDB software -# -task.beamSet.0.dataWriterUV.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriterUV.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. -task.beamSet.0.dataWriter.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriter.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. - -system.beamFormer.bypassTranspose = False -_msg.system_name = APERTIF -_msg.message_type = "CommandMessage" -_control.command.type = "start_observation" -task.taskGroupID = 0000018 # it is possible to cluster Tasks in groups, and this will be the groupID a specific Task belongs to -task.directionReferenceFrame = 'J2000' # any casacore reference frame for task.telescope.RTx.pointing, task.phaseCenter.x, task.source.direction -task.pointingName = 'P01234' # name of the pointing (empty string, or user named for e.g. survey pointings) -task.source.calibrationGroup = 0 # grouping for calibration purpose -task.source.code = 'BANDPASS CAL' # used to describe any special characteristics of the source, such as the nature of a calibrator. Reserved: 'BANDPASS CAL'. Might be useful for pipelines. -task.project.code = 'DB-000' # project code as assigned by the Observatory -task.project.PI = '' # name of the principal investigator -task.project.coPIs = '' # name(s) of the co-PI(s), separated by semi-colons -task.project.releaseDate = '2020-01-01 00:00:00' # release date (when will archived data be publicly available), default is 1 yr after cycle project end -task.scheduleType = 'Manual Schedule' # could be used to distinguish manual from automatic scheduling (APERTIF already prefixed in MS) -task.schedule = 'Cycle 0' # could be used for observation/proposal a cycle identifier -task.inputPaths = [0..63] # names of the used input paths -task.nrOfCompoundBeamSets = 1 # nr of compound beam sets defined in this file -task.beamSet.0.dataWriterUV.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -task.beamSet.0.dataWriter.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -# network interface indentifiers. Note: only as used in dataWriter.<host indent>.<interface indent>.*; 'ethX' matches the i/f name for clarity, but no software has to query the OS for e.g. 'eth0' (i.e. any identifier could do). Default in operations: ['eth0', 'eth1', 'eth2', 'eth3'] -task.nrChannelsPerSubband = 64 # always 64 with the current correlator -#TODO: add variable attenuator/amp (and other hardware (if any)) settings -# datawriteruv -dataWriterUV.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriter.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriterUV.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriter.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriterUV.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -dataWriter.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -# datawriteruv network stream properties. Key format: dataWriter.<host ident>.<interface indent>.xxx. -# The interface indent matches eth interface names for clarity, but never needs to be looked up outside the parset. -dataWriterUV.wcudata1.eth0.ip = '10.99.100.1' -dataWriterUV.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriterUV.wcudata1.eth0.port = 4000 -dataWriterUV.wcudata1.eth0.proto = 'udp' -dataWriterUV.wcudata1.eth1.ip = '10.99.100.2' -dataWriterUV.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriterUV.wcudata1.eth1.port = 4000 -dataWriterUV.wcudata1.eth1.proto = 'udp' -dataWriterUV.wcudata1.eth2.ip = '10.99.100.3' -dataWriterUV.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriterUV.wcudata1.eth2.port = 4000 -dataWriterUV.wcudata1.eth2.proto = 'udp' -dataWriterUV.wcudata1.eth3.ip = '10.99.100.4' -dataWriterUV.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriterUV.wcudata1.eth3.port = 4000 -dataWriterUV.wcudata1.eth3.proto = 'udp' -dataWriterUV.wcudata2.eth0.ip = '10.99.101.1' -dataWriterUV.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriterUV.wcudata2.eth0.port = 4000 -dataWriterUV.wcudata2.eth0.proto = 'udp' -dataWriterUV.wcudata2.eth1.ip = '10.99.101.2' -dataWriterUV.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriterUV.wcudata2.eth1.port = 4000 -dataWriterUV.wcudata2.eth1.proto = 'udp' -dataWriterUV.wcudata2.eth2.ip = '10.99.101.3' -dataWriterUV.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriterUV.wcudata2.eth2.port = 4000 -dataWriterUV.wcudata2.eth2.proto = 'udp' -dataWriterUV.wcudata2.eth3.ip = '10.99.101.4' -dataWriterUV.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriterUV.wcudata2.eth3.port = 4000 -dataWriterUV.wcudata2.eth3.proto = 'udp' -dataWriterUV.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data - -dataWriter.wcudata1.eth0.ip = '10.99.100.1' -dataWriter.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriter.wcudata1.eth0.port = 4000 -dataWriter.wcudata1.eth0.proto = 'udp' -dataWriter.wcudata1.eth1.ip = '10.99.100.2' -dataWriter.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriter.wcudata1.eth1.port = 4000 -dataWriter.wcudata1.eth1.proto = 'udp' -dataWriter.wcudata1.eth2.ip = '10.99.100.3' -dataWriter.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriter.wcudata1.eth2.port = 4000 -dataWriter.wcudata1.eth2.proto = 'udp' -dataWriter.wcudata1.eth3.ip = '10.99.100.4' -dataWriter.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriter.wcudata1.eth3.port = 4000 -dataWriter.wcudata1.eth3.proto = 'udp' -dataWriter.wcudata2.eth0.ip = '10.99.101.1' -dataWriter.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriter.wcudata2.eth0.port = 4000 -dataWriter.wcudata2.eth0.proto = 'udp' -dataWriter.wcudata2.eth1.ip = '10.99.101.2' -dataWriter.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriter.wcudata2.eth1.port = 4000 -dataWriter.wcudata2.eth1.proto = 'udp' -dataWriter.wcudata2.eth2.ip = '10.99.101.3' -dataWriter.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriter.wcudata2.eth2.port = 4000 -dataWriter.wcudata2.eth2.proto = 'udp' -dataWriter.wcudata2.eth3.ip = '10.99.101.4' -dataWriter.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriter.wcudata2.eth3.port = 4000 -dataWriter.wcudata2.eth3.proto = 'udp' -dataWriter.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data -dataWriter.useODirect = True -dataWriter.applySubbandPhaseCorrection = True -arts.recordBaseband = True # record baseband data to disk -arts.timing = True # perform dedispertion and folding on raw data -arts.parFile = 'file.par' # name of the parfile used on ARTS-0 -arts.samplingTime = 100.25 # sampling time of the folded data in microsec -arts.frequencyChannelWidth = 10.5 # width of frequency channels in MHz -arts.survey.snr_threshold = 8.0 # ARTS SC4 pipeline S/N threshold -arts.survey.enable_iquv = false # Whether or not to enable IQUV buffering for ARTS SC4 -arts.survey.history_i = 10 # ARTS SC4 buffer size for stokes I -arts.survey.history_iquv = 10 # ARTS SC4 buffer size for stokes IQUV -atmosphere.refracDryAir = 0.000305 # atmosphere constants taken from WSRT (pre-APERTIF) MS -atmosphere.refracWaterVapour = 0.0 -atmosphere.scaleHeight = 8 # km -system.parsetVersion = '0.0.1' -system.skipChecksUnsupported = false # skipChecksUnsupported; default: false; true means: skip as many parset sanity checks as possible (without affecting system stability for subsequent observations), i.e. log this setting and do as asked, but no software support if anything turns out broken -system.arrayPosition = [3828630.63486200943589211, 443593.39226634375518188, 5064922.99755000043660402] # meter, ITRF. RT8 atm -system.telescope.RT2.position = [3828729.99081358872354031, 442735.17696416645776480,5064923.00829000025987625] # meter, ITRF -system.telescope.RT3.position = [3828713.43109884625300765, 442878.21189340209821239,5064923.00435999967157841] -system.telescope.RT4.position = [3828696.86994427768513560, 443021.24917263782117516,5064923.00396999996155500] -system.telescope.RT5.position = [3828680.31391932582482696, 443164.28596862131962553,5064923.00035000033676624] -system.telescope.RT6.position = [3828663.75159173039719462, 443307.32138055720133707,5064923.00203999970108271] -system.telescope.RT7.position = [3828647.19342757249251008, 443450.35604637680808082,5064923.00229999981820583] -system.telescope.RT8.position = [3828630.63486200943589211, 443593.39226634375518188,5064922.99755000043660402] -system.telescope.RT9.position = [3828614.07606798363849521, 443736.42941620573401451,5064923.00000000000000000] -system.telescope.RTA.position = [3828609.94224429363384843, 443772.19450029480503872,5064922.99868000019341707] -system.telescope.RTB.position = [3828603.73202611599117517, 443825.83321168005932122,5064922.99963000044226646] -system.telescope.RTC.position = [3828460.92418734729290009, 445059.52053928520763293,5064922.99070999957621098] -system.telescope.RTD.position = [3828452.64716351125389338, 445131.03744105156511068,5064922.98792999982833862] -system.telescope.axesDistance = 4.95 # meter -system.telescope.focalAxesDistance = 9.25 # meter -system.telescope.polarAxesLength = 16.922 # meter -system.correlator.outputBoardList = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] # cannot be "[0..15]", results in error -# to be decided on later maybe more hardware versions needed. Values come from prepare telescope command. -# system.beamformerVersion = '0.8' # beamformer version -# system.correlatorVersion = '0.9' # correlator version - -#system.telescope.RT2.residualDelay = 1.4618e-9 # 0.0 # 3.9734e-9 #3.0402e-9 #1.9029e-9 -#system.telescope.RT3.residualDelay = 3.6548e-9 # 0.0 # 1.2513e-9 #4.1736e-9 -#system.telescope.RT4.residualDelay = 0.0 # 0.0 #5.0991e-9 # -#system.telescope.RT5.residualDelay = 0.1513e-9 # 0.0 # 0.0894e-9 #4.0534e-9 #0.1034e-9 -#system.telescope.RT6.residualDelay = 3.5733e-9 # 0.0 # 1.8253e-9 #3.6861e-9 -#system.telescope.RT7.residualDelay = 0.0 # 0.0 #3.8860e-9 # -#system.telescope.RT8.residualDelay = 0.8254e-9 # 0.0 # 4.1577e-9 #3.5752e-9 #0.6541e-9 # 20171206 -#system.telescope.RT9.residualDelay = 0.4405e-9 # 0.0 # 0.0 #3.9317e-9 #1.8725e-9 -#system.telescope.RTA.residualDelay = 0.0 # 0.0 # 0.1397e-9 #4.4971e-9 # -#system.telescope.RTB.residualDelay = 2.8676e-9 # 0.0 # 2.6496e-9 #2.8192e-9 #1.8206e-9 -#system.telescope.RT2.residualDelay = 2.727e-9 -#system.telescope.RT3.residualDelay = 4.902e-9 -#system.telescope.RT4.residualDelay = 0.206e-9 -#system.telescope.RT5.residualDelay = 1.450e-9 -#system.telescope.RT6.residualDelay = 4.827e-9 -#system.telescope.RT7.residualDelay = 1.716e-9 -#system.telescope.RT8.residualDelay = 2.028e-9 -#system.telescope.RT9.residualDelay = 1.747e-9 -#system.telescope.RTA.residualDelay = 1.306e-9 -#system.telescope.RTB.residualDelay = 2.868e-9 -# The new optimum values (6-2-2018) - -# 13 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 4.771e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 4.098e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 6.046e-9 -#system.telescope.RT8.residualDelay = 6.376e-9 -#system.telescope.RT9.residualDelay = 5.131e-9 -#system.telescope.RTA.residualDelay = 3.434e-9 -#system.telescope.RTB.residualDelay = 4.970e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -# 14 -#system.telescope.RT2.residualDelay = 16.732e-9 -#system.telescope.RT3.residualDelay = 13.031e-9 -#system.telescope.RT4.residualDelay = 14.511e-9 -#system.telescope.RT5.residualDelay = 12.522e-9 -#system.telescope.RT6.residualDelay = 20.239e-9 -#system.telescope.RT7.residualDelay = 15.641e-9 -#system.telescope.RT8.residualDelay = 15.645e-9 -#system.telescope.RT9.residualDelay = 13.194e-9 -#system.telescope.RTA.residualDelay = 8.708e-9 -#system.telescope.RTB.residualDelay = 6.995e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 9.658e-9 - -# 15 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 6.169e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.332e-9 -#system.telescope.RT6.residualDelay = 6.813e-9 -#system.telescope.RT7.residualDelay = 6.109e-9 -#system.telescope.RT8.residualDelay = 6.765e-9 -#system.telescope.RT9.residualDelay = 6.726e-9 -#system.telescope.RTA.residualDelay = 7.818e-9 -#system.telescope.RTB.residualDelay = 12.603e-9 -#system.telescope.RTC.residualDelay = 9.658e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -#system.telescope.RT2.residualDelay = 8.230e-9 -#system.telescope.RT3.residualDelay = 6.709e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.547e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 7.071e-9 -#system.telescope.RTA.residualDelay = 6.673e-9 -#system.telescope.RTB.residualDelay = 9.965e-9 -#system.telescope.RTC.residualDelay = 5.622e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -# because phaseZero is random (LO1 problem) I use 0.0 as default (6-2--2018) -# -# new values 5-3-2018 (RT2,3,4,5,6,9,a,b,c used) -# -#system.telescope.RT2.residualDelay = 11.706e-9 -#system.telescope.RT3.residualDelay = 10.283e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 7.774e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 10.630e-9 -#system.telescope.RTA.residualDelay = 11.452e-9 -#system.telescope.RTB.residualDelay = 11.848e-9 -#system.telescope.RTC.residualDelay = 8.992e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 0.000 -#system.telescope.RT4.phaseZero = 0.000 -#system.telescope.RT5.phaseZero = 0.000 -#system.telescope.RT6.phaseZero = 0.000 -#system.telescope.RT7.phaseZero = 0.000 -#system.telescope.RT8.phaseZero = 0.000 -#system.telescope.RT9.phaseZero = 0.000 -#system.telescope.RTA.phaseZero = 0.000 -#system.telescope.RTB.phaseZero = 0.000 -#system.telescope.RTC.phaseZero = 0.000 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 08-03-2018 BH -#system.telescope.RT2.residualDelay = 13.060e-9 -#system.telescope.RT3.residualDelay = 10.430e-9 -#system.telescope.RT4.residualDelay = 6.242e-9 -#system.telescope.RT5.residualDelay = 9.436e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 12.041e-9 -#system.telescope.RT8.residualDelay = 12.735e-9 -#system.telescope.RT9.residualDelay = 11.876e-9 -#system.telescope.RTA.residualDelay = 12.821e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 11.851e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 2.858 -#system.telescope.RT4.phaseZero = -0.284 -#system.telescope.RT5.phaseZero = -2.599 -#system.telescope.RT6.phaseZero = -0.499 -#system.telescope.RT7.phaseZero = 2.736 -#system.telescope.RT8.phaseZero = -0.845 -#system.telescope.RT9.phaseZero = 0.232 -#system.telescope.RTA.phaseZero = 0.172 -#system.telescope.RTB.phaseZero = 0.096 -#system.telescope.RTC.phaseZero = -2.156 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 09-03-2018 BH -#system.telescope.RT2.residualDelay = 15.561e-9 -#system.telescope.RT3.residualDelay = 12.945e-9 -#system.telescope.RT4.residualDelay = 7.509e-9 -#system.telescope.RT5.residualDelay = 10.688e-9 -#system.telescope.RT6.residualDelay = 14.920e-9 -#system.telescope.RT7.residualDelay = 14.546e-9 -#system.telescope.RT8.residualDelay = 12.741e-9 -#system.telescope.RT9.residualDelay = 13.151e-9 -#system.telescope.RTA.residualDelay = 14.078e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 13.031e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 1.615 -#system.telescope.RT4.phaseZero = 1.138 -#system.telescope.RT5.phaseZero = -0.787 -#system.telescope.RT6.phaseZero = -0.573 -#system.telescope.RT7.phaseZero = 0.313 -#system.telescope.RT8.phaseZero = 0.274 -#system.telescope.RT9.phaseZero = 1.533 -#system.telescope.RTA.phaseZero = 1.741 -#system.telescope.RTB.phaseZero = -1.637 -#system.telescope.RTC.phaseZero = -5.201 -#system.telescope.RTD.phaseZero = 0.000 - -# 09-04-2018 MN, RT2..RTC new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 21.944e-9 -system.telescope.RT3.residualDelay = 19.397e-9 -system.telescope.RT4.residualDelay = 15.170e-9 -system.telescope.RT5.residualDelay = 20.627e-9 -system.telescope.RT6.residualDelay = 25.326e-9 -system.telescope.RT7.residualDelay = 20.963e-9 -system.telescope.RT8.residualDelay = 21.768e-9 -system.telescope.RT9.residualDelay = 20.771e-9 -system.telescope.RTA.residualDelay = 20.480e-9 -system.telescope.RTB.residualDelay = 23.421e-9 -system.telescope.RTC.residualDelay = 18.441e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.448 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.936 -system.telescope.RT6.phaseZero = -1.609 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.086 -system.telescope.RT9.phaseZero = 0.281 -system.telescope.RTA.phaseZero = 0.744 -system.telescope.RTB.phaseZero = 2.157 -system.telescope.RTC.phaseZero = -8.142 -system.telescope.RTD.phaseZero = 0.000 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 6.921e-9 -system.telescope.RT3.residualDelay = 4.435e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.666e-9 -system.telescope.RT6.residualDelay = 11.301e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.804e-9 -system.telescope.RT9.residualDelay = 5.798e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.434e-9 -system.telescope.RTC.residualDelay = 3.271e-9 -system.telescope.RTD.residualDelay = 43.929e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.370 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.855 -system.telescope.RT6.phaseZero = -2.818 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.062 -system.telescope.RT9.phaseZero = 0.168 -system.telescope.RTA.phaseZero = 0.556 -system.telescope.RTB.phaseZero = 2.165 -system.telescope.RTC.phaseZero = -8.707 -system.telescope.RTD.phaseZero = -2.827 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz, version 2 -system.telescope.RT2.residualDelay = 6.936e-9 -system.telescope.RT3.residualDelay = 4.443e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.681e-9 -system.telescope.RT6.residualDelay = 11.331e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.819e-9 -system.telescope.RT9.residualDelay = 5.820e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.437e-9 -system.telescope.RTC.residualDelay = 3.313e-9 -system.telescope.RTD.residualDelay = 44.021e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.392 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.896 -system.telescope.RT6.phaseZero = -2.064 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.110 -system.telescope.RT9.phaseZero = 0.204 -system.telescope.RTA.phaseZero = 0.584 -system.telescope.RTB.phaseZero = 2.177 -system.telescope.RTC.phaseZero = -8.873 -system.telescope.RTD.phaseZero = -2.741 - -# residualDelay and phaseZero values determined using task 14092018 -system.telescope.RT2.residualDelay = 6.695e-9 -system.telescope.RT3.residualDelay = 2.769e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.507e-9 -system.telescope.RT6.residualDelay = 8.455e-9 -system.telescope.RT7.residualDelay = 6.812e-9 -system.telescope.RT8.residualDelay = 6.439e-9 -system.telescope.RT9.residualDelay = 3.011e-9 -system.telescope.RTA.residualDelay = 5.088e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 1.036e-9 -system.telescope.RTD.residualDelay = 45.233e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 2.774 -system.telescope.RT4.phaseZero = -0.843 -system.telescope.RT5.phaseZero = 5.163 -system.telescope.RT6.phaseZero = 0.959 -system.telescope.RT7.phaseZero = -2.120 -system.telescope.RT8.phaseZero = 3.544 -system.telescope.RT9.phaseZero = 3.221 -system.telescope.RTA.phaseZero = 0.176 -system.telescope.RTB.phaseZero = -0.832 -system.telescope.RTC.phaseZero = -9.472 -system.telescope.RTD.phaseZero = -2.531 - -# residualDelay and phaseZero values determined using task 1409201801 -system.telescope.RT2.residualDelay = 6.660e-9 -system.telescope.RT3.residualDelay = 2.756e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.492e-9 -system.telescope.RT6.residualDelay = 8.466e-9 -system.telescope.RT7.residualDelay = 6.798e-9 -system.telescope.RT8.residualDelay = 6.545e-9 -system.telescope.RT9.residualDelay = 2.999e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 1.924e-9 -system.telescope.RTC.residualDelay = 0.819e-9 -system.telescope.RTD.residualDelay = 45.308e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.774 -system.telescope.RT4.phaseZero = -0.457 -system.telescope.RT5.phaseZero = 3.798 -system.telescope.RT6.phaseZero = 3.288 -system.telescope.RT7.phaseZero = -0.193 -system.telescope.RT8.phaseZero = 3.234 -system.telescope.RT9.phaseZero = 5.630 -system.telescope.RTA.phaseZero = -0.104 -system.telescope.RTB.phaseZero = 2.143 -system.telescope.RTC.phaseZero = -12.286 -system.telescope.RTD.phaseZero = -0.055 - -#RB 21-09-2018 -# residualDelay and phaseZero values determined using task 2109201800 -system.telescope.RT2.residualDelay = 6.719e-9 -system.telescope.RT3.residualDelay = 2.740e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.487e-9 -system.telescope.RT6.residualDelay = 9.812e-9 -system.telescope.RT7.residualDelay = 8.056e-9 -system.telescope.RT8.residualDelay = 6.589e-9 -system.telescope.RT9.residualDelay = 6.673e-9 -system.telescope.RTA.residualDelay = 5.168e-9 -system.telescope.RTB.residualDelay = 3.168e-9 -system.telescope.RTC.residualDelay = 5.412e-9 -system.telescope.RTD.residualDelay = 45.297e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.978 -system.telescope.RT4.phaseZero = -0.261 -system.telescope.RT5.phaseZero = 3.795 -system.telescope.RT6.phaseZero = 1.513 -system.telescope.RT7.phaseZero = -2.116 -system.telescope.RT8.phaseZero = 3.552 -system.telescope.RT9.phaseZero = 6.339 -system.telescope.RTA.phaseZero = 0.090 -system.telescope.RTB.phaseZero = 0.601 -system.telescope.RTC.phaseZero = -12.655 -system.telescope.RTD.phaseZero = -0.502 - -#RB 21-09-2018 second run -# residualDelay and phaseZero values determined using task 2109201801 -system.telescope.RT2.residualDelay = 6.679e-9 -system.telescope.RT3.residualDelay = 2.751e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.500e-9 -system.telescope.RT6.residualDelay = 9.831e-9 -system.telescope.RT7.residualDelay = 8.097e-9 -system.telescope.RT8.residualDelay = 6.749e-9 -system.telescope.RT9.residualDelay = 6.775e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.199e-9 -system.telescope.RTC.residualDelay = 5.474e-9 -system.telescope.RTD.residualDelay = 45.255e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.850 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = 3.725 -system.telescope.RT6.phaseZero = 3.413 -system.telescope.RT7.phaseZero = -0.328 -system.telescope.RT8.phaseZero = 3.545 -system.telescope.RT9.phaseZero = 5.518 -system.telescope.RTA.phaseZero = 0.104 -system.telescope.RTB.phaseZero = 2.368 -system.telescope.RTC.phaseZero = -11.890 -system.telescope.RTD.phaseZero = -0.527 - -#20181005 -# residualDelay and phaseZero values determined using task 181005002 -system.telescope.RT2.residualDelay = 5.442e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.457e-9 -system.telescope.RT6.residualDelay = 9.798e-9 -system.telescope.RT7.residualDelay = 6.791e-9 -system.telescope.RT8.residualDelay = 6.592e-9 -system.telescope.RT9.residualDelay = 6.694e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 3.242e-9 -system.telescope.RTC.residualDelay = 3.538e-9 -system.telescope.RTD.residualDelay = 44.069e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.266 -system.telescope.RT4.phaseZero = -2.003 -system.telescope.RT5.phaseZero = 2.163 -system.telescope.RT6.phaseZero = 2.001 -system.telescope.RT7.phaseZero = 0.034 -system.telescope.RT8.phaseZero = 2.123 -system.telescope.RT9.phaseZero = 3.950 -system.telescope.RTA.phaseZero = -1.597 -system.telescope.RTB.phaseZero = 0.530 -system.telescope.RTC.phaseZero = -13.909 -system.telescope.RTD.phaseZero = -0.640 - -# residualDelay and phaseZero values determined using task 181005003 -system.telescope.RT2.residualDelay = 5.496e-9 -system.telescope.RT3.residualDelay = 1.605e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 9.820e-9 -system.telescope.RT7.residualDelay = 6.788e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.629e-9 -system.telescope.RTA.residualDelay = 5.145e-9 -system.telescope.RTB.residualDelay = 3.198e-9 -system.telescope.RTC.residualDelay = 3.760e-9 -system.telescope.RTD.residualDelay = 44.042e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.249 -system.telescope.RT4.phaseZero = -0.137 -system.telescope.RT5.phaseZero = 3.981 -system.telescope.RT6.phaseZero = 3.836 -system.telescope.RT7.phaseZero = -0.055 -system.telescope.RT8.phaseZero = 3.766 -system.telescope.RT9.phaseZero = 5.685 -system.telescope.RTA.phaseZero = 0.191 -system.telescope.RTB.phaseZero = 2.481 -system.telescope.RTC.phaseZero = -14.952 -system.telescope.RTD.phaseZero = -0.513 - -# residualDelay and phaseZero values determined using task 181012004 -system.telescope.RT2.residualDelay = 5.373e-9 -system.telescope.RT3.residualDelay = 1.498e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.472e-9 -system.telescope.RT6.residualDelay = 8.551e-9 -system.telescope.RT7.residualDelay = 6.800e-9 -system.telescope.RT8.residualDelay = 6.600e-9 -system.telescope.RT9.residualDelay = 6.729e-9 -system.telescope.RTA.residualDelay = 6.347e-9 -system.telescope.RTB.residualDelay = 2.004e-9 -system.telescope.RTC.residualDelay = 3.926e-9 -system.telescope.RTD.residualDelay = 42.875e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.192 -system.telescope.RT4.phaseZero = -0.443 -system.telescope.RT5.phaseZero = 3.721 -system.telescope.RT6.phaseZero = 5.446 -system.telescope.RT7.phaseZero = -0.318 -system.telescope.RT8.phaseZero = 3.510 -system.telescope.RT9.phaseZero = 5.291 -system.telescope.RTA.phaseZero = -1.835 -system.telescope.RTB.phaseZero = 4.197 -system.telescope.RTC.phaseZero = -15.103 -system.telescope.RTD.phaseZero = 1.012 - -# residualDelay and phaseZero values determined using task 181012005 -system.telescope.RT2.residualDelay = 5.432e-9 -system.telescope.RT3.residualDelay = 1.554e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.348e-9 -system.telescope.RT6.residualDelay = 8.557e-9 -system.telescope.RT7.residualDelay = 6.829e-9 -system.telescope.RT8.residualDelay = 6.503e-9 -system.telescope.RT9.residualDelay = 6.640e-9 -system.telescope.RTA.residualDelay = 6.362e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.167 -system.telescope.RT4.phaseZero = -0.264 -system.telescope.RT5.phaseZero = 3.973 -system.telescope.RT6.phaseZero = 3.787 -system.telescope.RT7.phaseZero = -0.039 -system.telescope.RT8.phaseZero = 3.808 -system.telescope.RT9.phaseZero = 5.714 -system.telescope.RTA.phaseZero = 0.234 -system.telescope.RTB.phaseZero = 2.653 -system.telescope.RTC.phaseZero = -14.577 -system.telescope.RTD.phaseZero = -0.531 - -# residualDelay and phaseZero values determined using task 181015007 -system.telescope.RT2.residualDelay = 5.393e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.483e-9 -system.telescope.RT6.residualDelay = 8.522e-9 -system.telescope.RT7.residualDelay = 6.811e-9 -system.telescope.RT8.residualDelay = 5.667e-9 -system.telescope.RT9.residualDelay = 6.701e-9 -system.telescope.RTA.residualDelay = 6.394e-9 -system.telescope.RTB.residualDelay = 30.724e-9 -system.telescope.RTC.residualDelay = 2303.554e-9 -system.telescope.RTD.residualDelay = 1242.839e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.087 -system.telescope.RT4.phaseZero = -0.592 -system.telescope.RT5.phaseZero = 3.674 -system.telescope.RT6.phaseZero = 3.698 -system.telescope.RT7.phaseZero = 0.010 -system.telescope.RT8.phaseZero = 3.430 -system.telescope.RT9.phaseZero = 5.461 -system.telescope.RTA.phaseZero = 0.173 -system.telescope.RTB.phaseZero = 2.971 -system.telescope.RTC.phaseZero = -16.811 -system.telescope.RTD.phaseZero = -2.070 - -# residualDelay and phaseZero values determined using task 181015009 -system.telescope.RT2.residualDelay = 5.394e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.469e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.790e-9 -system.telescope.RT8.residualDelay = 6.567e-9 -system.telescope.RT9.residualDelay = 6.645e-9 -system.telescope.RTA.residualDelay = 6.389e-9 -system.telescope.RTB.residualDelay = 30.721e-9 -system.telescope.RTC.residualDelay = 4863.459e-9 -system.telescope.RTD.residualDelay = 2522.633e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.072 -system.telescope.RT4.phaseZero = -0.552 -system.telescope.RT5.phaseZero = 3.906 -system.telescope.RT6.phaseZero = 3.679 -system.telescope.RT7.phaseZero = 0.058 -system.telescope.RT8.phaseZero = 2.316 -system.telescope.RT9.phaseZero = 5.599 -system.telescope.RTA.phaseZero = 0.251 -system.telescope.RTB.phaseZero = 2.696 -system.telescope.RTC.phaseZero = -15.027 -system.telescope.RTD.phaseZero = -3.665 - -# residualDelay and phaseZero values determined using task 181015010 -system.telescope.RT2.residualDelay = 5.420e-9 -system.telescope.RT3.residualDelay = 1.585e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.550e-9 -system.telescope.RT7.residualDelay = 6.789e-9 -system.telescope.RT8.residualDelay = 6.499e-9 -system.telescope.RT9.residualDelay = 6.668e-9 -system.telescope.RTA.residualDelay = 6.397e-9 -system.telescope.RTB.residualDelay = 30.689e-9 -system.telescope.RTC.residualDelay = 7423.493e-9 -system.telescope.RTD.residualDelay = 4102.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.048 -system.telescope.RT4.phaseZero = -0.582 -system.telescope.RT5.phaseZero = 3.843 -system.telescope.RT6.phaseZero = 3.619 -system.telescope.RT7.phaseZero = -0.020 -system.telescope.RT8.phaseZero = 3.643 -system.telescope.RT9.phaseZero = 5.478 -system.telescope.RTA.phaseZero = 0.232 -system.telescope.RTB.phaseZero = 2.667 -system.telescope.RTC.phaseZero = -15.207 -system.telescope.RTD.phaseZero = -5.932 - -# residualDelay and phaseZero values determined using task 181016004 -# manually changed RTB RTC RTD -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.564e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.455e-9 -system.telescope.RT6.residualDelay = 9.791e-9 -system.telescope.RT7.residualDelay = 8.039e-9 -system.telescope.RT8.residualDelay = 6.663e-9 -system.telescope.RT9.residualDelay = 6.672e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.075 -system.telescope.RT4.phaseZero = -0.401 -system.telescope.RT5.phaseZero = 4.023 -system.telescope.RT6.phaseZero = 1.802 -system.telescope.RT7.phaseZero = -1.935 -system.telescope.RT8.phaseZero = 3.598 -system.telescope.RT9.phaseZero = 5.617 -system.telescope.RTA.phaseZero = 1.995 -system.telescope.RTB.phaseZero = 2.483 -system.telescope.RTC.phaseZero = -13.513 -system.telescope.RTD.phaseZero = -7.368 - - -# residualDelay and phaseZero values determined using task 181016006 -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.481e-9 -system.telescope.RT6.residualDelay = 9.818e-9 -system.telescope.RT7.residualDelay = 8.062e-9 -system.telescope.RT8.residualDelay = 6.648e-9 -system.telescope.RT9.residualDelay = 6.678e-9 -system.telescope.RTA.residualDelay = 5.127e-9 -system.telescope.RTB.residualDelay = 5.713e-9 -system.telescope.RTC.residualDelay = 4.052e-9 -system.telescope.RTD.residualDelay = 42.878e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.026 -system.telescope.RT4.phaseZero = -0.417 -system.telescope.RT5.phaseZero = 3.950 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.844 -system.telescope.RT9.phaseZero = 5.596 -system.telescope.RTA.phaseZero = 0.144 -system.telescope.RTB.phaseZero = 2.926 -system.telescope.RTC.phaseZero = -15.035 -system.telescope.RTD.phaseZero = -7.296 - -# residualDelay and phaseZero values determined using task 181016007 -system.telescope.RT2.residualDelay = 5.475e-9 -system.telescope.RT3.residualDelay = 1.604e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.642e-9 -system.telescope.RT9.residualDelay = 6.652e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 5.718e-9 -system.telescope.RTC.residualDelay = 3.999e-9 -system.telescope.RTD.residualDelay = 42.797e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.444 -system.telescope.RT5.phaseZero = 3.942 -system.telescope.RT6.phaseZero = 3.700 -system.telescope.RT7.phaseZero = -0.013 -system.telescope.RT8.phaseZero = 3.802 -system.telescope.RT9.phaseZero = 5.581 -system.telescope.RTA.phaseZero = 0.126 -system.telescope.RTB.phaseZero = 2.390 -system.telescope.RTC.phaseZero = -14.708 -system.telescope.RTD.phaseZero = -7.101 - -# residualDelay and phaseZero values determined using task 181017001 -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.539e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.463e-9 -system.telescope.RT6.residualDelay = 9.808e-9 -system.telescope.RT7.residualDelay = 8.008e-9 -system.telescope.RT8.residualDelay = 6.535e-9 -system.telescope.RT9.residualDelay = 6.649e-9 -system.telescope.RTA.residualDelay = 5.089e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.834e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.045 -system.telescope.RT4.phaseZero = -0.482 -system.telescope.RT5.phaseZero = 3.940 -system.telescope.RT6.phaseZero = 3.611 -system.telescope.RT7.phaseZero = -0.166 -system.telescope.RT8.phaseZero = 3.699 -system.telescope.RT9.phaseZero = 5.421 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 1.702 -system.telescope.RTC.phaseZero = -14.982 -system.telescope.RTD.phaseZero = -7.397 - -# residualDelay and phaseZero values determined using task 181017002 -system.telescope.RT2.residualDelay = 5.388e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 9.816e-9 -system.telescope.RT7.residualDelay = 8.069e-9 -system.telescope.RT8.residualDelay = 6.577e-9 -system.telescope.RT9.residualDelay = 6.721e-9 -system.telescope.RTA.residualDelay = 5.103e-9 -system.telescope.RTB.residualDelay = 1.923e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.452 -system.telescope.RT5.phaseZero = 3.891 -system.telescope.RT6.phaseZero = 3.672 -system.telescope.RT7.phaseZero = -0.148 -system.telescope.RT8.phaseZero = 3.608 -system.telescope.RT9.phaseZero = 5.477 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 2.369 -system.telescope.RTC.phaseZero = -15.390 -system.telescope.RTD.phaseZero = -7.204 - -# residualDelay and phaseZero values determined using task 181017003 -system.telescope.RT2.residualDelay = 5.422e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.432e-9 -system.telescope.RT6.residualDelay = 9.773e-9 -system.telescope.RT7.residualDelay = 8.058e-9 -system.telescope.RT8.residualDelay = 6.543e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.121e-9 -system.telescope.RTB.residualDelay = 1.934e-9 -system.telescope.RTC.residualDelay = 3.647e-9 -system.telescope.RTD.residualDelay = 42.811e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.020 -system.telescope.RT4.phaseZero = -0.366 -system.telescope.RT5.phaseZero = 3.969 -system.telescope.RT6.phaseZero = 3.748 -system.telescope.RT7.phaseZero = 0.020 -system.telescope.RT8.phaseZero = 3.725 -system.telescope.RT9.phaseZero = 5.663 -system.telescope.RTA.phaseZero = 0.130 -system.telescope.RTB.phaseZero = 2.419 -system.telescope.RTC.phaseZero = -15.274 -system.telescope.RTD.phaseZero = -7.069 - -# residualDelay and phaseZero values determined using task 181018005 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.603e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.514e-9 -system.telescope.RT6.residualDelay = 9.809e-9 -system.telescope.RT7.residualDelay = 8.133e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.670e-9 -system.telescope.RTA.residualDelay = 5.105e-9 -system.telescope.RTB.residualDelay = 2.014e-9 -system.telescope.RTC.residualDelay = 5.472e-9 -system.telescope.RTD.residualDelay = 41.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.105 -system.telescope.RT4.phaseZero = -0.546 -system.telescope.RT5.phaseZero = 3.714 -system.telescope.RT6.phaseZero = 3.573 -system.telescope.RT7.phaseZero = -0.121 -system.telescope.RT8.phaseZero = 3.616 -system.telescope.RT9.phaseZero = 5.516 -system.telescope.RTA.phaseZero = 0.039 -system.telescope.RTB.phaseZero = 2.331 -system.telescope.RTC.phaseZero = -15.338 -system.telescope.RTD.phaseZero = -5.065 - -# residualDelay and phaseZero values determined using task 181018006 -system.telescope.RT2.residualDelay = 5.397e-9 -system.telescope.RT3.residualDelay = 1.545e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.436e-9 -system.telescope.RT6.residualDelay = 9.845e-9 -system.telescope.RT7.residualDelay = 8.055e-9 -system.telescope.RT8.residualDelay = 6.584e-9 -system.telescope.RT9.residualDelay = 6.685e-9 -system.telescope.RTA.residualDelay = 5.109e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 5.406e-9 -system.telescope.RTD.residualDelay = 41.638e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.101 -system.telescope.RT4.phaseZero = -0.579 -system.telescope.RT5.phaseZero = 3.802 -system.telescope.RT6.phaseZero = 3.531 -system.telescope.RT7.phaseZero = -0.024 -system.telescope.RT8.phaseZero = 3.620 -system.telescope.RT9.phaseZero = 5.428 -system.telescope.RTA.phaseZero = -0.059 -system.telescope.RTB.phaseZero = 2.365 -system.telescope.RTC.phaseZero = -12.766 -system.telescope.RTD.phaseZero = -7.237 - -# residualDelay and phaseZero values determined using task 181018007 -system.telescope.RT2.residualDelay = 5.350e-9 -system.telescope.RT3.residualDelay = 1.479e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.470e-9 -system.telescope.RT6.residualDelay = 9.799e-9 -system.telescope.RT7.residualDelay = 8.012e-9 -system.telescope.RT8.residualDelay = 6.564e-9 -system.telescope.RT9.residualDelay = 6.709e-9 -system.telescope.RTA.residualDelay = 5.058e-9 -system.telescope.RTB.residualDelay = 1.986e-9 -system.telescope.RTC.residualDelay = 5.415e-9 -system.telescope.RTD.residualDelay = 41.645e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.113 -system.telescope.RT4.phaseZero = -0.487 -system.telescope.RT5.phaseZero = 3.781 -system.telescope.RT6.phaseZero = 3.722 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.637 -system.telescope.RT9.phaseZero = 5.569 -system.telescope.RTA.phaseZero = 0.087 -system.telescope.RTB.phaseZero = 2.488 -system.telescope.RTC.phaseZero = -12.735 -system.telescope.RTD.phaseZero = -7.124 - -# residualDelay and phaseZero values determined using task 181018008 -system.telescope.RT2.residualDelay = 5.351e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.460e-9 -system.telescope.RT6.residualDelay = 9.743e-9 -system.telescope.RT7.residualDelay = 8.009e-9 -system.telescope.RT8.residualDelay = 6.601e-9 -system.telescope.RT9.residualDelay = 6.717e-9 -system.telescope.RTA.residualDelay = 5.073e-9 -system.telescope.RTB.residualDelay = 1.980e-9 -system.telescope.RTC.residualDelay = 4.969e-9 -system.telescope.RTD.residualDelay = 41.508e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.124 -system.telescope.RT4.phaseZero = -0.403 -system.telescope.RT5.phaseZero = 3.886 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.065 -system.telescope.RT8.phaseZero = 3.587 -system.telescope.RT9.phaseZero = 5.588 -system.telescope.RTA.phaseZero = -0.014 -system.telescope.RTB.phaseZero = 2.393 -system.telescope.RTC.phaseZero = -12.762 -system.telescope.RTD.phaseZero = -7.206 - -# residualDelay and phaseZero values determined using task 181019002 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.619e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.450e-9 -system.telescope.RT6.residualDelay = 8.563e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.587e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.213e-9 -system.telescope.RTB.residualDelay = 3.271e-9 -system.telescope.RTC.residualDelay = 4.027e-9 -system.telescope.RTD.residualDelay = 41.657e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.087 -system.telescope.RT4.phaseZero = -0.266 -system.telescope.RT5.phaseZero = 4.091 -system.telescope.RT6.phaseZero = 5.690 -system.telescope.RT7.phaseZero = -0.083 -system.telescope.RT8.phaseZero = 3.881 -system.telescope.RT9.phaseZero = 5.887 -system.telescope.RTA.phaseZero = -0.109 -system.telescope.RTB.phaseZero = 0.275 -system.telescope.RTC.phaseZero = -13.702 -system.telescope.RTD.phaseZero = -7.586 - -# residualDelay and phaseZero values determined using task 181019003 -system.telescope.RT2.residualDelay = 5.479e-9 -system.telescope.RT3.residualDelay = 1.669e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 8.609e-9 -system.telescope.RT7.residualDelay = 8.076e-9 -system.telescope.RT8.residualDelay = 6.622e-9 -system.telescope.RT9.residualDelay = 6.734e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.307e-9 -system.telescope.RTC.residualDelay = 4.072e-9 -system.telescope.RTD.residualDelay = 1.632e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.079 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = 3.897 -system.telescope.RT6.phaseZero = 3.745 -system.telescope.RT7.phaseZero = -0.187 -system.telescope.RT8.phaseZero = 3.707 -system.telescope.RT9.phaseZero = 5.634 -system.telescope.RTA.phaseZero = -0.029 -system.telescope.RTB.phaseZero = 2.095 -system.telescope.RTC.phaseZero = -15.160 -system.telescope.RTD.phaseZero = -7.415 - -# residualDelay and phaseZero values determined using task 181026004 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.588e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.540e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 6.792e-9 -system.telescope.RT8.residualDelay = 6.659e-9 -system.telescope.RT9.residualDelay = 6.574e-9 -system.telescope.RTA.residualDelay = 5.169e-9 -system.telescope.RTB.residualDelay = 3.178e-9 -system.telescope.RTC.residualDelay = 3.901e-9 -system.telescope.RTD.residualDelay = 41.556e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.091 -system.telescope.RT4.phaseZero = -0.555 -system.telescope.RT5.phaseZero = 4.380 -system.telescope.RT6.phaseZero = 1.850 -system.telescope.RT7.phaseZero = 2.435 -system.telescope.RT8.phaseZero = 4.213 -system.telescope.RT9.phaseZero = 5.619 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.359 -system.telescope.RTC.phaseZero = -15.132 -system.telescope.RTD.phaseZero = -5.157 - -# residualDelay and phaseZero values determined using task 181026005 -# Manual reset as recommended by M. Norden -system.telescope.RT2.residualDelay = 0.000e-9 -system.telescope.RT3.residualDelay = 0.000e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 0.000e-9 -system.telescope.RT6.residualDelay = 0.000e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 0.000e-9 -system.telescope.RT9.residualDelay = 0.000e-9 -system.telescope.RTA.residualDelay = 0.000e-9 -system.telescope.RTB.residualDelay = 0.000e-9 -system.telescope.RTC.residualDelay = 0.000e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.000 -system.telescope.RT4.phaseZero = 0.000 -system.telescope.RT5.phaseZero = 0.000 -system.telescope.RT6.phaseZero = 0.000 -system.telescope.RT7.phaseZero = 0.000 -system.telescope.RT8.phaseZero = 0.000 -system.telescope.RT9.phaseZero = 0.000 -system.telescope.RTA.phaseZero = 0.000 -system.telescope.RTB.phaseZero = 0.000 -system.telescope.RTC.phaseZero = 0.000 -system.telescope.RTD.phaseZero = 0.000 - -# residualDelay and phaseZero values determined using task 181026006 -system.telescope.RT2.residualDelay = 5.459e-9 -system.telescope.RT3.residualDelay = 1.615e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.552e-9 -system.telescope.RT6.residualDelay = 9.784e-9 -system.telescope.RT7.residualDelay = 6.758e-9 -system.telescope.RT8.residualDelay = 6.573e-9 -system.telescope.RT9.residualDelay = 6.606e-9 -system.telescope.RTA.residualDelay = 5.132e-9 -system.telescope.RTB.residualDelay = 3.211e-9 -system.telescope.RTC.residualDelay = 3.866e-9 -system.telescope.RTD.residualDelay = 41.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.405 -system.telescope.RT4.phaseZero = 1.483 -system.telescope.RT5.phaseZero = -0.364 -system.telescope.RT6.phaseZero = -2.864 -system.telescope.RT7.phaseZero = -1.446 -system.telescope.RT8.phaseZero = 2.517 -system.telescope.RT9.phaseZero = -2.539 -system.telescope.RTA.phaseZero = 0.378 -system.telescope.RTB.phaseZero = -0.541 -system.telescope.RTC.phaseZero = -0.369 -system.telescope.RTD.phaseZero = 0.741 - -# residualDelay and phaseZero values determined using task 181026007 -# had to overrule the system.telescope.RTD.residualDelay by a fixed value (MN) -system.telescope.RT2.residualDelay = 5.448e-9 -system.telescope.RT3.residualDelay = 1.633e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.575e-9 -system.telescope.RT6.residualDelay = 9.806e-9 -system.telescope.RT7.residualDelay = 6.809e-9 -system.telescope.RT8.residualDelay = 6.594e-9 -system.telescope.RT9.residualDelay = 6.663e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 3.296e-9 -system.telescope.RTC.residualDelay = 4.038e-9 -system.telescope.RTD.residualDelay = 1.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.082 -system.telescope.RT4.phaseZero = -0.486 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.598 -system.telescope.RT7.phaseZero = 0.548 -system.telescope.RT8.phaseZero = 4.249 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.088 -system.telescope.RTB.phaseZero = 2.358 -system.telescope.RTC.phaseZero = -2.730 -system.telescope.RTD.phaseZero = -1.053 - -# residualDelay and phaseZero values determined using task 181026008 -system.telescope.RT2.residualDelay = 5.449e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.590e-9 -system.telescope.RT6.residualDelay = 8.514e-9 -system.telescope.RT7.residualDelay = 8.006e-9 -system.telescope.RT8.residualDelay = 6.615e-9 -system.telescope.RT9.residualDelay = 6.630e-9 -system.telescope.RTA.residualDelay = 5.173e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 4.020e-9 -system.telescope.RTD.residualDelay = 2.881e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.113 -system.telescope.RT4.phaseZero = -0.471 -system.telescope.RT5.phaseZero = -1.669 -system.telescope.RT6.phaseZero = -0.679 -system.telescope.RT7.phaseZero = -1.303 -system.telescope.RT8.phaseZero = 4.260 -system.telescope.RT9.phaseZero = -0.737 -system.telescope.RTA.phaseZero = -0.085 -system.telescope.RTB.phaseZero = 4.365 -system.telescope.RTC.phaseZero = -2.478 -system.telescope.RTD.phaseZero = -2.941 - -# residualDelay and phaseZero values determined using task 181026010 -system.telescope.RT2.residualDelay = 5.454e-9 -system.telescope.RT3.residualDelay = 1.617e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.539e-9 -system.telescope.RT6.residualDelay = 8.545e-9 -system.telescope.RT7.residualDelay = 8.014e-9 -system.telescope.RT8.residualDelay = 6.563e-9 -system.telescope.RT9.residualDelay = 6.552e-9 -system.telescope.RTA.residualDelay = 5.125e-9 -system.telescope.RTB.residualDelay = 1.932e-9 -system.telescope.RTC.residualDelay = 3.912e-9 -system.telescope.RTD.residualDelay = 2.888e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.027 -system.telescope.RT4.phaseZero = -0.466 -system.telescope.RT5.phaseZero = -1.671 -system.telescope.RT6.phaseZero = -2.641 -system.telescope.RT7.phaseZero = 0.479 -system.telescope.RT8.phaseZero = 4.304 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.060 -system.telescope.RTB.phaseZero = 2.412 -system.telescope.RTC.phaseZero = -2.485 -system.telescope.RTD.phaseZero = -0.960 - -# residualDelay and phaseZero values determined using task 181026011 by JS -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.513e-9 -system.telescope.RT7.residualDelay = 7.986e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.580e-9 -system.telescope.RTA.residualDelay = 5.104e-9 -system.telescope.RTB.residualDelay = 1.994e-9 -system.telescope.RTC.residualDelay = 3.948e-9 -system.telescope.RTD.residualDelay = 2.713e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.768 -system.telescope.RT6.phaseZero = -2.633 -system.telescope.RT7.phaseZero = 0.452 -system.telescope.RT8.phaseZero = 4.170 -system.telescope.RT9.phaseZero = -0.969 -system.telescope.RTA.phaseZero = -0.176 -system.telescope.RTB.phaseZero = 2.238 -system.telescope.RTC.phaseZero = -2.726 -system.telescope.RTD.phaseZero = -1.043 - -# residualDelay and phaseZero values determined using task 181102001 by JS -system.telescope.RT2.residualDelay = 5.453e-9 -system.telescope.RT3.residualDelay = 1.591e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.477e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.764e-9 -system.telescope.RT8.residualDelay = 6.675e-9 -system.telescope.RT9.residualDelay = 6.637e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 2.006e-9 -system.telescope.RTC.residualDelay = 3.944e-9 -system.telescope.RTD.residualDelay = 1.572e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.128 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.614 -system.telescope.RT6.phaseZero = -2.545 -system.telescope.RT7.phaseZero = 2.389 -system.telescope.RT8.phaseZero = 4.495 -system.telescope.RT9.phaseZero = -0.840 -system.telescope.RTA.phaseZero = -0.093 -system.telescope.RTB.phaseZero = 2.340 -system.telescope.RTC.phaseZero = -2.881 -system.telescope.RTD.phaseZero = 0.473 - -# residualDelay and phaseZero values determined using task 181102002 by JS -system.telescope.RT2.residualDelay = 5.408e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.490e-9 -system.telescope.RT6.residualDelay = 8.488e-9 -system.telescope.RT7.residualDelay = 6.782e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.650e-9 -system.telescope.RTA.residualDelay = 5.139e-9 -system.telescope.RTB.residualDelay = 2.018e-9 -system.telescope.RTC.residualDelay = 3.916e-9 -system.telescope.RTD.residualDelay = 1.693e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.133 -system.telescope.RT4.phaseZero = -0.543 -system.telescope.RT5.phaseZero = -1.692 -system.telescope.RT6.phaseZero = -2.603 -system.telescope.RT7.phaseZero = 0.516 -system.telescope.RT8.phaseZero = 4.555 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 2.311 -system.telescope.RTC.phaseZero = -2.890 -system.telescope.RTD.phaseZero = -1.242 - -# residualDelay and phaseZero values determined using task 181102003 JS -system.telescope.RT2.residualDelay = 5.417e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.458e-9 -system.telescope.RT6.residualDelay = 8.501e-9 -system.telescope.RT7.residualDelay = 6.754e-9 -system.telescope.RT8.residualDelay = 6.704e-9 -system.telescope.RT9.residualDelay = 6.593e-9 -system.telescope.RTA.residualDelay = 5.187e-9 -system.telescope.RTB.residualDelay = 2.023e-9 -system.telescope.RTC.residualDelay = 3.959e-9 -system.telescope.RTD.residualDelay = 1.549e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.118 -system.telescope.RT4.phaseZero = -0.468 -system.telescope.RT5.phaseZero = -1.587 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = 0.633 -system.telescope.RT8.phaseZero = 4.648 -system.telescope.RT9.phaseZero = -0.676 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.382 -system.telescope.RTC.phaseZero = -2.815 -system.telescope.RTD.phaseZero = -0.963 - -# residualDelay and phaseZero values determined using task 181102004 by JS - -system.telescope.RT2.residualDelay = 5.435e-9 -system.telescope.RT3.residualDelay = 1.581e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 8.496e-9 -system.telescope.RT7.residualDelay = 6.801e-9 -system.telescope.RT8.residualDelay = 6.662e-9 -system.telescope.RT9.residualDelay = 6.533e-9 -system.telescope.RTA.residualDelay = 5.120e-9 -system.telescope.RTB.residualDelay = 1.907e-9 -system.telescope.RTC.residualDelay = 3.950e-9 -system.telescope.RTD.residualDelay = 1.533e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.059 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.713 -system.telescope.RT6.phaseZero = -2.560 -system.telescope.RT7.phaseZero = 0.490 -system.telescope.RT8.phaseZero = 4.584 -system.telescope.RT9.phaseZero = -0.856 -system.telescope.RTA.phaseZero = -0.046 -system.telescope.RTB.phaseZero = 2.245 -system.telescope.RTC.phaseZero = -2.944 -system.telescope.RTD.phaseZero = -1.373 - -# residualDelay and phaseZero values determined using task 181102005 JS -system.telescope.RT2.residualDelay = 5.465e-9 -system.telescope.RT3.residualDelay = 1.608e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.486e-9 -system.telescope.RT6.residualDelay = 8.561e-9 -system.telescope.RT7.residualDelay = 6.772e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.646e-9 -system.telescope.RTA.residualDelay = 5.117e-9 -system.telescope.RTB.residualDelay = 2.017e-9 -system.telescope.RTC.residualDelay = 3.974e-9 -system.telescope.RTD.residualDelay = 1.586e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.095 -system.telescope.RT4.phaseZero = -0.496 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.592 -system.telescope.RT7.phaseZero = 0.576 -system.telescope.RT8.phaseZero = 4.483 -system.telescope.RT9.phaseZero = -0.955 -system.telescope.RTA.phaseZero = -0.196 -system.telescope.RTB.phaseZero = 2.038 -system.telescope.RTC.phaseZero = -2.987 -system.telescope.RTD.phaseZero = -1.406 - -# residualDelay and phaseZero values determined using task 181108005 -system.telescope.RT2.residualDelay = 5.429e-9 -system.telescope.RT3.residualDelay = 1.569e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.494e-9 -system.telescope.RT6.residualDelay = 8.487e-9 -system.telescope.RT7.residualDelay = 3.177e-9 -system.telescope.RT8.residualDelay = 6.606e-9 -system.telescope.RT9.residualDelay = 6.666e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 1.949e-9 -system.telescope.RTC.residualDelay = 4.004e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.044 -system.telescope.RT4.phaseZero = -0.700 -system.telescope.RT5.phaseZero = -1.799 -system.telescope.RT6.phaseZero = -2.711 -system.telescope.RT7.phaseZero = -1.490 -system.telescope.RT8.phaseZero = 4.021 -system.telescope.RT9.phaseZero = -1.085 -system.telescope.RTA.phaseZero = -0.327 -system.telescope.RTB.phaseZero = 2.012 -system.telescope.RTC.phaseZero = -3.314 -system.telescope.RTD.phaseZero = -1.354 - -# residualDelay and phaseZero values determined using task 181108006 -system.telescope.RT2.residualDelay = 5.457e-9 -system.telescope.RT3.residualDelay = 1.592e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.543e-9 -system.telescope.RT6.residualDelay = 8.530e-9 -system.telescope.RT7.residualDelay = 3.266e-9 -system.telescope.RT8.residualDelay = 6.641e-9 -system.telescope.RT9.residualDelay = 6.639e-9 -system.telescope.RTA.residualDelay = 5.185e-9 -system.telescope.RTB.residualDelay = 1.988e-9 -system.telescope.RTC.residualDelay = 3.993e-9 -system.telescope.RTD.residualDelay = 42.970e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.651 -system.telescope.RT5.phaseZero = -1.708 -system.telescope.RT6.phaseZero = -2.726 -system.telescope.RT7.phaseZero = -0.568 -system.telescope.RT8.phaseZero = 4.070 -system.telescope.RT9.phaseZero = -0.827 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.189 -system.telescope.RTC.phaseZero = -2.954 -system.telescope.RTD.phaseZero = -1.359 - -# residualDelay and phaseZero values determined using task 181108007 -system.telescope.RT2.residualDelay = 5.461e-9 -system.telescope.RT3.residualDelay = 1.627e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.518e-9 -system.telescope.RT6.residualDelay = 8.508e-9 -system.telescope.RT7.residualDelay = 3.217e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.674e-9 -system.telescope.RTA.residualDelay = 5.198e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.832e-9 -#system.telescope.RTD.residualDelay = 43.078e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.030 -system.telescope.RT4.phaseZero = -0.656 -system.telescope.RT5.phaseZero = -1.617 -system.telescope.RT6.phaseZero = -2.635 -system.telescope.RT7.phaseZero = -0.360 -system.telescope.RT8.phaseZero = 4.184 -system.telescope.RT9.phaseZero = -0.816 -system.telescope.RTA.phaseZero = 0.066 -system.telescope.RTB.phaseZero = 2.259 -system.telescope.RTC.phaseZero = -3.144 -system.telescope.RTD.phaseZero = -1.386 - -# residualDelay and phaseZero values determined using task 181109001 -system.telescope.RT2.residualDelay = 5.452e-9 -system.telescope.RT3.residualDelay = 1.612e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.761e-9 -system.telescope.RT7.residualDelay = 3.200e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.599e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 2.025e-9 -system.telescope.RTC.residualDelay = 3.573e-9 -system.telescope.RTD.residualDelay = 1.568e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.143 -system.telescope.RT4.phaseZero = -0.503 -system.telescope.RT5.phaseZero = -1.590 -system.telescope.RT6.phaseZero = -4.433 -system.telescope.RT7.phaseZero = -0.436 -system.telescope.RT8.phaseZero = 4.169 -system.telescope.RT9.phaseZero = -0.699 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.296 -system.telescope.RTD.phaseZero = -3.863 - -# residualDelay and phaseZero values determined using task 181109003 -system.telescope.RT2.residualDelay = 5.433e-9 -system.telescope.RT3.residualDelay = 1.595e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.529e-9 -system.telescope.RT6.residualDelay = 9.701e-9 -system.telescope.RT7.residualDelay = 3.160e-9 -system.telescope.RT8.residualDelay = 6.613e-9 -system.telescope.RT9.residualDelay = 6.611e-9 -system.telescope.RTA.residualDelay = 5.122e-9 -system.telescope.RTB.residualDelay = 2.046e-9 -system.telescope.RTC.residualDelay = 3.628e-9 -system.telescope.RTD.residualDelay = 1.610e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.162 -system.telescope.RT4.phaseZero = -0.474 -system.telescope.RT5.phaseZero = -1.581 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = -0.415 -system.telescope.RT8.phaseZero = 4.204 -system.telescope.RT9.phaseZero = -0.810 -system.telescope.RTA.phaseZero = -0.114 -system.telescope.RTB.phaseZero = 2.154 -system.telescope.RTC.phaseZero = -3.691 -system.telescope.RTD.phaseZero = -1.496 - -# residualDelay and phaseZero values determined using task 181109004 JS -system.telescope.RT2.residualDelay = 5.490e-9 -system.telescope.RT3.residualDelay = 1.661e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.781e-9 -system.telescope.RT7.residualDelay = 3.195e-9 -system.telescope.RT8.residualDelay = 6.673e-9 -system.telescope.RT9.residualDelay = 6.618e-9 -system.telescope.RTA.residualDelay = 5.209e-9 -system.telescope.RTB.residualDelay = 2.062e-9 -system.telescope.RTC.residualDelay = 3.850e-9 -system.telescope.RTD.residualDelay = 1.598e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.142 -system.telescope.RT4.phaseZero = -0.451 -system.telescope.RT5.phaseZero = -1.532 -system.telescope.RT6.phaseZero = -2.600 -system.telescope.RT7.phaseZero = -0.472 -system.telescope.RT8.phaseZero = 4.203 -system.telescope.RT9.phaseZero = -0.766 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.191 -system.telescope.RTC.phaseZero = -3.550 -system.telescope.RTD.phaseZero = -1.429 -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116002 -system.telescope.RT2.residualDelay = 5.438e-9 -system.telescope.RT3.residualDelay = 1.607e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.502e-9 -system.telescope.RT6.residualDelay = 8.515e-9 -system.telescope.RT7.residualDelay = 4.407e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.236e-9 -system.telescope.RTB.residualDelay = 3.310e-9 -system.telescope.RTC.residualDelay = 4.084e-9 -system.telescope.RTD.residualDelay = 1.672e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.271 -system.telescope.RT4.phaseZero = -0.421 -system.telescope.RT5.phaseZero = -1.631 -system.telescope.RT6.phaseZero = -2.427 -system.telescope.RT7.phaseZero = -0.532 -system.telescope.RT8.phaseZero = 4.017 -system.telescope.RT9.phaseZero = -0.673 -system.telescope.RTA.phaseZero = -0.218 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.881 -system.telescope.RTD.phaseZero = -1.905 - -# residualDelay and phaseZero values determined using task 181116003 -system.telescope.RT2.residualDelay = 5.480e-9 -system.telescope.RT3.residualDelay = 1.678e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 8.540e-9 -system.telescope.RT7.residualDelay = 4.480e-9 -system.telescope.RT8.residualDelay = 6.660e-9 -system.telescope.RT9.residualDelay = 6.704e-9 -system.telescope.RTA.residualDelay = 5.227e-9 -system.telescope.RTB.residualDelay = 3.294e-9 -system.telescope.RTC.residualDelay = 4.114e-9 -system.telescope.RTD.residualDelay = 1.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.243 -system.telescope.RT4.phaseZero = -0.394 -system.telescope.RT5.phaseZero = -1.554 -system.telescope.RT6.phaseZero = -2.396 -system.telescope.RT7.phaseZero = -0.537 -system.telescope.RT8.phaseZero = 4.144 -system.telescope.RT9.phaseZero = -0.658 -system.telescope.RTA.phaseZero = -0.070 -system.telescope.RTB.phaseZero = 1.900 -system.telescope.RTC.phaseZero = -2.800 -system.telescope.RTD.phaseZero = -1.745 - -# residualDelay and phaseZero values determined using task 181116005 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.667e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.506e-9 -system.telescope.RT6.residualDelay = 8.552e-9 -system.telescope.RT7.residualDelay = 4.469e-9 -system.telescope.RT8.residualDelay = 6.562e-9 -system.telescope.RT9.residualDelay = 6.705e-9 -system.telescope.RTA.residualDelay = 5.188e-9 -system.telescope.RTB.residualDelay = 3.324e-9 -system.telescope.RTC.residualDelay = 4.110e-9 -system.telescope.RTD.residualDelay = 1.703e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.285 -system.telescope.RT4.phaseZero = -0.458 -system.telescope.RT5.phaseZero = -1.564 -system.telescope.RT6.phaseZero = -2.420 -system.telescope.RT7.phaseZero = -0.467 -system.telescope.RT8.phaseZero = 4.080 -system.telescope.RT9.phaseZero = -0.638 -system.telescope.RTA.phaseZero = -0.124 -system.telescope.RTB.phaseZero = 1.826 -system.telescope.RTC.phaseZero = -3.389 -system.telescope.RTD.phaseZero = -1.815 - -# residualDelay and phaseZero values determined using task 181116006 -system.telescope.RT2.residualDelay = 5.428e-9 -system.telescope.RT3.residualDelay = 1.613e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.468e-9 -system.telescope.RT6.residualDelay = 8.507e-9 -system.telescope.RT7.residualDelay = 4.409e-9 -system.telescope.RT8.residualDelay = 6.505e-9 -system.telescope.RT9.residualDelay = 6.625e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 3.280e-9 -system.telescope.RTC.residualDelay = 4.068e-9 -system.telescope.RTD.residualDelay = 1.670e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.317 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = -1.538 -system.telescope.RT6.phaseZero = -2.342 -system.telescope.RT7.phaseZero = -0.447 -system.telescope.RT8.phaseZero = 3.970 -system.telescope.RT9.phaseZero = -0.640 -system.telescope.RTA.phaseZero = -0.152 -system.telescope.RTB.phaseZero = 1.915 -system.telescope.RTC.phaseZero = -3.538 -system.telescope.RTD.phaseZero = -1.902 - -# residualDelay and phaseZero values determined using task 181120007 -system.telescope.RT2.residualDelay = 2.977e-9 -system.telescope.RT3.residualDelay = 5.307e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.096e-9 -system.telescope.RT6.residualDelay = 10.958e-9 -system.telescope.RT7.residualDelay = 4.476e-9 -system.telescope.RT8.residualDelay = 7.739e-9 -system.telescope.RT9.residualDelay = 6.567e-9 -system.telescope.RTA.residualDelay = 4.960e-9 -system.telescope.RTB.residualDelay = 7.008e-9 -system.telescope.RTC.residualDelay = 3.652e-9 -system.telescope.RTD.residualDelay = 6.643e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -2.417 -system.telescope.RT4.phaseZero = 0.905 -system.telescope.RT5.phaseZero = -0.210 -system.telescope.RT6.phaseZero = -2.772 -system.telescope.RT7.phaseZero = 1.864 -system.telescope.RT8.phaseZero = 0.899 -system.telescope.RT9.phaseZero = -2.482 -system.telescope.RTA.phaseZero = -0.643 -system.telescope.RTB.phaseZero = -0.986 -system.telescope.RTC.phaseZero = -6.518 -system.telescope.RTD.phaseZero = -3.940 - -# residualDelay and phaseZero values determined using task 181120008 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.314e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.090e-9 -system.telescope.RT6.residualDelay = 10.945e-9 -system.telescope.RT7.residualDelay = 4.421e-9 -system.telescope.RT8.residualDelay = 7.796e-9 -system.telescope.RT9.residualDelay = 6.548e-9 -system.telescope.RTA.residualDelay = 4.922e-9 -system.telescope.RTB.residualDelay = 7.013e-9 -system.telescope.RTC.residualDelay = 3.761e-9 -system.telescope.RTD.residualDelay = 6.641e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.582 -system.telescope.RT4.phaseZero = -1.697 -system.telescope.RT5.phaseZero = 1.401 -system.telescope.RT6.phaseZero = -1.652 -system.telescope.RT7.phaseZero = -0.654 -system.telescope.RT8.phaseZero = 0.168 -system.telescope.RT9.phaseZero = -5.165 -system.telescope.RTA.phaseZero = -3.529 -system.telescope.RTB.phaseZero = 2.048 -system.telescope.RTC.phaseZero = -3.539 -system.telescope.RTD.phaseZero = -5.402 - -# residualDelay and phaseZero values determined using task 181120009 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.330e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.144e-9 -system.telescope.RT6.residualDelay = 10.929e-9 -system.telescope.RT7.residualDelay = 4.477e-9 -system.telescope.RT8.residualDelay = 7.755e-9 -system.telescope.RT9.residualDelay = 6.536e-9 -system.telescope.RTA.residualDelay = 4.976e-9 -system.telescope.RTB.residualDelay = 6.997e-9 -system.telescope.RTC.residualDelay = 3.880e-9 -system.telescope.RTD.residualDelay = 6.704e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.600 -system.telescope.RT4.phaseZero = -1.704 -system.telescope.RT5.phaseZero = 1.380 -system.telescope.RT6.phaseZero = -1.703 -system.telescope.RT7.phaseZero = -0.782 -system.telescope.RT8.phaseZero = 0.208 -system.telescope.RT9.phaseZero = -5.248 -system.telescope.RTA.phaseZero = -3.649 -system.telescope.RTB.phaseZero = 2.004 -system.telescope.RTC.phaseZero = -3.502 -system.telescope.RTD.phaseZero = -5.530 - -# residualDelay and phaseZero values determined using task 181123001 -system.telescope.RT2.residualDelay = 0.476e-9 -system.telescope.RT3.residualDelay = 9.099e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 1.732e-9 -system.telescope.RT6.residualDelay = 13.341e-9 -system.telescope.RT7.residualDelay = 0.921e-9 -system.telescope.RT8.residualDelay = 8.849e-9 -system.telescope.RT9.residualDelay = 6.500e-9 -system.telescope.RTA.residualDelay = 4.836e-9 -system.telescope.RTB.residualDelay = 12.066e-9 -system.telescope.RTC.residualDelay = 2.928e-9 -system.telescope.RTD.residualDelay = 9.397e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -1.829 -system.telescope.RT4.phaseZero = -0.236 -system.telescope.RT5.phaseZero = 3.080 -system.telescope.RT6.phaseZero = -1.666 -system.telescope.RT7.phaseZero = -0.010 -system.telescope.RT8.phaseZero = -2.646 -system.telescope.RT9.phaseZero = -6.555 -system.telescope.RTA.phaseZero = -3.916 -system.telescope.RTB.phaseZero = 3.266 -system.telescope.RTC.phaseZero = -1.055 -system.telescope.RTD.phaseZero = -4.422 - - -# residualDelay and phaseZero values determined using task 181123002 -system.telescope.RT2.residualDelay = 0.621e-9 -system.telescope.RT3.residualDelay = 15.511e-9 -system.telescope.RT4.residualDelay = 2.638e-9 -system.telescope.RT5.residualDelay = 2.914e-9 -system.telescope.RT6.residualDelay = 18.391e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 12.579e-9 -system.telescope.RT9.residualDelay = 8.998e-9 -system.telescope.RTA.residualDelay = 7.286e-9 -system.telescope.RTB.residualDelay = 19.632e-9 -system.telescope.RTC.residualDelay = 3.820e-9 -system.telescope.RTD.residualDelay = 14.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -4.265 -system.telescope.RT4.phaseZero = 1.218 -system.telescope.RT5.phaseZero = 4.772 -system.telescope.RT6.phaseZero = -1.655 -system.telescope.RT7.phaseZero = 0.718 -system.telescope.RT8.phaseZero = -5.535 -system.telescope.RT9.phaseZero = -7.917 -system.telescope.RTA.phaseZero = -4.215 -system.telescope.RTB.phaseZero = 4.487 -system.telescope.RTC.phaseZero = 1.298 -system.telescope.RTD.phaseZero = -3.381 - - -# residualDelay and phaseZero values determined using task 181123006 -system.telescope.RT2.residualDelay = 2.944e-9 -system.telescope.RT3.residualDelay = 5.400e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.072e-9 -system.telescope.RT6.residualDelay = 10.971e-9 -system.telescope.RT7.residualDelay = 5.645e-9 -system.telescope.RT8.residualDelay = 7.649e-9 -system.telescope.RT9.residualDelay = 6.515e-9 -system.telescope.RTA.residualDelay = 4.995e-9 -system.telescope.RTB.residualDelay = 5.787e-9 -system.telescope.RTC.residualDelay = 3.329e-9 -system.telescope.RTD.residualDelay = 6.591e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.449 -system.telescope.RT4.phaseZero = -0.335 -system.telescope.RT5.phaseZero = 4.807 -system.telescope.RT6.phaseZero = 0.761 -system.telescope.RT7.phaseZero = 0.784 -system.telescope.RT8.phaseZero = -7.524 -system.telescope.RT9.phaseZero = -10.245 -system.telescope.RTA.phaseZero = -2.455 -system.telescope.RTB.phaseZero = 1.666 -system.telescope.RTC.phaseZero = 0.638 -system.telescope.RTD.phaseZero = -1.772 - - -# residualDelay and phaseZero values determined using task 181123007 -system.telescope.RT2.residualDelay = 2.990e-9 -system.telescope.RT3.residualDelay = 5.378e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.142e-9 -system.telescope.RT6.residualDelay = 10.954e-9 -system.telescope.RT7.residualDelay = 5.785e-9 -system.telescope.RT8.residualDelay = 7.716e-9 -system.telescope.RT9.residualDelay = 6.612e-9 -system.telescope.RTA.residualDelay = 5.031e-9 -system.telescope.RTB.residualDelay = 5.834e-9 -system.telescope.RTC.residualDelay = 3.489e-9 -system.telescope.RTD.residualDelay = 6.650e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.440 -system.telescope.RT4.phaseZero = -1.594 -system.telescope.RT5.phaseZero = 7.803 -system.telescope.RT6.phaseZero = -1.442 -system.telescope.RT7.phaseZero = -0.486 -system.telescope.RT8.phaseZero = -5.954 -system.telescope.RT9.phaseZero = -11.272 -system.telescope.RTA.phaseZero = -3.214 -system.telescope.RTB.phaseZero = 2.267 -system.telescope.RTC.phaseZero = 2.608 -system.telescope.RTD.phaseZero = 1.312 - - -# residualDelay and phaseZero values determined using task 181123008 -system.telescope.RT2.residualDelay = 2.991e-9 -system.telescope.RT3.residualDelay = 5.381e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.117e-9 -system.telescope.RT6.residualDelay = 10.937e-9 -system.telescope.RT7.residualDelay = 5.683e-9 -system.telescope.RT8.residualDelay = 7.719e-9 -system.telescope.RT9.residualDelay = 6.546e-9 -system.telescope.RTA.residualDelay = 4.970e-9 -system.telescope.RTB.residualDelay = 5.798e-9 -system.telescope.RTC.residualDelay = 3.492e-9 -system.telescope.RTD.residualDelay = 6.662e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.539 -system.telescope.RT4.phaseZero = -1.694 -system.telescope.RT5.phaseZero = 7.825 -system.telescope.RT6.phaseZero = -1.562 -system.telescope.RT7.phaseZero = -0.395 -system.telescope.RT8.phaseZero = -5.991 -system.telescope.RT9.phaseZero = -11.217 -system.telescope.RTA.phaseZero = -3.274 -system.telescope.RTB.phaseZero = 2.217 -system.telescope.RTC.phaseZero = 2.721 -system.telescope.RTD.phaseZero = 1.250 - diff --git a/atdb_services_pip/atdb_services/parset_start_observation_atdb_arts_sc1.template b/atdb_services_pip/atdb_services/parset_start_observation_atdb_arts_sc1.template deleted file mode 100644 index e10cda4ea8a609056c535327d247bc7bf152874f..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/parset_start_observation_atdb_arts_sc1.template +++ /dev/null @@ -1,49 +0,0 @@ -# -# This is the template for a parset that is used by the ATDB software -# -_msg.system_name = APERTIF -_msg.message_type = "CommandMessage" -_control.command.type = "start_observation" -system.beamFormer.bypassTranspose=True -task.taskGroupID = 0000018 # it is possible to cluster Tasks in groups, and this will be the groupID a specific Task belongs to -task.directionReferenceFrame = 'J2000' # any casacore reference frame for task.telescope.RTx.pointing, task.phaseCenter.x, task.source.direction -task.pointingName = 'P01234' # name of the pointing (empty string, or user named for e.g. survey pointings) -task.source.calibrationGroup = 0 # grouping for calibration purpose -task.source.code = 'BANDPASS CAL' # used to describe any special characteristics of the source, such as the nature of a calibrator. Reserved: 'BANDPASS CAL'. Might be useful for pipelines. -task.project.code = 'ARTSSC' # project code as assigned by the Observatory -task.project.PI = '' # name of the principal investigator -task.project.coPIs = '' # name(s) of the co-PI(s), separated by semi-colons -task.project.releaseDate = '2020-01-01 00:00:00' # release date (when will archived data be publicly available), default is 1 yr after cycle project end -task.scheduleType = 'Manual Schedule' # could be used to distinguish manual from automatic scheduling (APERTIF already prefixed in MS) -task.schedule = 'Cycle 0' # could be used for observation/proposal a cycle identifier -task.inputPaths = [0..63] # names of the used input paths -task.nrOfCompoundBeamSets = 1 # nr of compound beam sets defined in this file -task.nrChannelsPerSubband = 64 # always 64 with the current correlator -#TODO: add variable attenuator/amp (and other hardware (if any)) settings -arts.timing.frequencyChannelWidth = 0.781250 # width of frequency channels in MHz -atmosphere.refracDryAir = 0.000305 # atmosphere constants taken from WSRT (pre-APERTIF) MS -atmosphere.refracWaterVapour = 0.0 -atmosphere.scaleHeight = 8 # km -system.parsetVersion = '0.0.1' -system.skipChecksUnsupported = false # skipChecksUnsupported; default: false; true means: skip as many parset sanity checks as possible (without affecting system stability for subsequent observations), i.e. log this setting and do as asked, but no software support if anything turns out broken -system.arrayPosition = [3828630.63486200943589211, 443593.39226634375518188, 5064922.99755000043660402] # meter, ITRF. RT8 atm -system.telescope.RT2.position = [3828729.99081358872354031, 442735.17696416645776480,5064923.00829000025987625] # meter, ITRF -system.telescope.RT3.position = [3828713.43109884625300765, 442878.21189340209821239,5064923.00435999967157841] -system.telescope.RT4.position = [3828696.86994427768513560, 443021.24917263782117516,5064923.00396999996155500] -system.telescope.RT5.position = [3828680.31391932582482696, 443164.28596862131962553,5064923.00035000033676624] -system.telescope.RT6.position = [3828663.75159173039719462, 443307.32138055720133707,5064923.00203999970108271] -system.telescope.RT7.position = [3828647.19342757249251008, 443450.35604637680808082,5064923.00229999981820583] -system.telescope.RT8.position = [3828630.63486200943589211, 443593.39226634375518188,5064922.99755000043660402] -system.telescope.RT9.position = [3828614.07606798363849521, 443736.42941620573401451,5064923.00000000000000000] -system.telescope.RTA.position = [3828609.94224429363384843, 443772.19450029480503872,5064922.99868000019341707] -system.telescope.RTB.position = [3828603.73202611599117517, 443825.83321168005932122,5064922.99963000044226646] -system.telescope.RTC.position = [3828460.92418734729290009, 445059.52053928520763293,5064922.99070999957621098] -system.telescope.RTD.position = [3828452.64716351125389338, 445131.03744105156511068,5064922.98792999982833862] -system.telescope.axesDistance = 4.95 # meter -system.telescope.focalAxesDistance = 9.25 # meter -system.telescope.polarAxesLength = 16.922 # meter -system.correlator.outputBoardList = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] # cannot be "[0..15]", results in error -system.beamFormer.bypassTranspose = True -# to be decided on later maybe more hardware versions needed. Values come from prepare telescope command. -# system.beamformerVersion = '0.8' # beamformer version -# system.correlatorVersion = '0.9' # correlator version diff --git a/atdb_services_pip/atdb_services/parset_start_observation_driftscan_atdb.template b/atdb_services_pip/atdb_services/parset_start_observation_driftscan_atdb.template deleted file mode 100644 index 379dc5239c86294a316621e92904c37975ead51b..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/parset_start_observation_driftscan_atdb.template +++ /dev/null @@ -1,1820 +0,0 @@ -# -# This is the template for a parset that is used by the ATDB software -# -task.beamSet.0.dataWriterUV.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriterUV.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. -task.beamSet.0.dataWriter.hostname = 'wcudata1' # datawriteruv hostname, also used in the dataWriter.<hostname>.* keys. Valid in operations: 'wcudata1' or 'wcudata1' (fqdn is also fine, but in that case use fqdn in all beam sets). The name 'localhost' is only ok for datawriteruv tests. - -system.beamFormer.bypassTranspose = False -_msg.system_name = APERTIF -_msg.message_type = "CommandMessage" -_control.command.type = "start_observation" -task.taskGroupID = 0000018 # it is possible to cluster Tasks in groups, and this will be the groupID a specific Task belongs to -task.directionReferenceFrame = 'HADEC' # any casacore reference frame for task.telescope.RTx.pointing, task.phaseCenter.x, task.source.direction -task.pointingName = 'P01234' # name of the pointing (empty string, or user named for e.g. survey pointings) -task.source.calibrationGroup = 0 # grouping for calibration purpose -task.source.code = 'BANDPASS CAL' # used to describe any special characteristics of the source, such as the nature of a calibrator. Reserved: 'BANDPASS CAL'. Might be useful for pipelines. -task.project.code = 'DB-000' # project code as assigned by the Observatory -task.project.PI = '' # name of the principal investigator -task.project.coPIs = '' # name(s) of the co-PI(s), separated by semi-colons -task.project.releaseDate = '2020-01-01 00:00:00' # release date (when will archived data be publicly available), default is 1 yr after cycle project end -task.scheduleType = 'Manual Schedule' # could be used to distinguish manual from automatic scheduling (APERTIF already prefixed in MS) -task.schedule = 'Cycle 0' # could be used for observation/proposal a cycle identifier -task.inputPaths = [0..63] # names of the used input paths -task.nrOfCompoundBeamSets = 1 # nr of compound beam sets defined in this file -task.beamSet.0.dataWriterUV.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -task.beamSet.0.dataWriter.interfaces = ['eth0', 'eth1', 'eth2', 'eth3'] -# network interface indentifiers. Note: only as used in dataWriter.<host indent>.<interface indent>.*; 'ethX' matches the i/f name for clarity, but no software has to query the OS for e.g. 'eth0' (i.e. any identifier could do). Default in operations: ['eth0', 'eth1', 'eth2', 'eth3'] -task.nrChannelsPerSubband = 64 # always 64 with the current correlator -#TODO: add variable attenuator/amp (and other hardware (if any)) settings -# datawriteruv -dataWriterUV.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriter.applyBandpassCorrection = false # correct channel bandpass from double PPF ripple or not. Always true in operations. -dataWriterUV.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriter.applyNormalization = false # normalize visibilities wrt integration time, attenuation/amp, ... or not. Always true in operations. -dataWriterUV.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -dataWriter.intent = 'TARGET' # TARGET or CALIBRATION (or RESERVATION but never executed) -dataWriter.useODirect = True -dataWriter.applySubbandPhaseCorrection = False -# datawriteruv network stream properties. Key format: dataWriter.<host ident>.<interface indent>.xxx. -# The interface indent matches eth interface names for clarity, but never needs to be looked up outside the parset. -dataWriterUV.wcudata1.eth0.ip = '10.99.100.1' -dataWriterUV.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriterUV.wcudata1.eth0.port = 4000 -dataWriterUV.wcudata1.eth0.proto = 'udp' -dataWriterUV.wcudata1.eth1.ip = '10.99.100.2' -dataWriterUV.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriterUV.wcudata1.eth1.port = 4000 -dataWriterUV.wcudata1.eth1.proto = 'udp' -dataWriterUV.wcudata1.eth2.ip = '10.99.100.3' -dataWriterUV.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriterUV.wcudata1.eth2.port = 4000 -dataWriterUV.wcudata1.eth2.proto = 'udp' -dataWriterUV.wcudata1.eth3.ip = '10.99.100.4' -dataWriterUV.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriterUV.wcudata1.eth3.port = 4000 -dataWriterUV.wcudata1.eth3.proto = 'udp' -dataWriterUV.wcudata2.eth0.ip = '10.99.101.1' -dataWriterUV.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriterUV.wcudata2.eth0.port = 4000 -dataWriterUV.wcudata2.eth0.proto = 'udp' -dataWriterUV.wcudata2.eth1.ip = '10.99.101.2' -dataWriterUV.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriterUV.wcudata2.eth1.port = 4000 -dataWriterUV.wcudata2.eth1.proto = 'udp' -dataWriterUV.wcudata2.eth2.ip = '10.99.101.3' -dataWriterUV.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriterUV.wcudata2.eth2.port = 4000 -dataWriterUV.wcudata2.eth2.proto = 'udp' -dataWriterUV.wcudata2.eth3.ip = '10.99.101.4' -dataWriterUV.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriterUV.wcudata2.eth3.port = 4000 -dataWriterUV.wcudata2.eth3.proto = 'udp' -dataWriterUV.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data - -dataWriter.wcudata1.eth0.ip = '10.99.100.1' -dataWriter.wcudata1.eth0.mac = 'e4:1d:2d:e4:26:90' -dataWriter.wcudata1.eth0.port = 4000 -dataWriter.wcudata1.eth0.proto = 'udp' -dataWriter.wcudata1.eth1.ip = '10.99.100.2' -dataWriter.wcudata1.eth1.mac = 'e4:1d:2d:e4:26:91' -dataWriter.wcudata1.eth1.port = 4000 -dataWriter.wcudata1.eth1.proto = 'udp' -dataWriter.wcudata1.eth2.ip = '10.99.100.3' -dataWriter.wcudata1.eth2.mac = 'e4:1d:2d:bc:3c:d0' -dataWriter.wcudata1.eth2.port = 4000 -dataWriter.wcudata1.eth2.proto = 'udp' -dataWriter.wcudata1.eth3.ip = '10.99.100.4' -dataWriter.wcudata1.eth3.mac = 'e4:1d:2d:bc:3c:d1' -dataWriter.wcudata1.eth3.port = 4000 -dataWriter.wcudata1.eth3.proto = 'udp' -dataWriter.wcudata2.eth0.ip = '10.99.101.1' -dataWriter.wcudata2.eth0.mac = 'e4:1d:2d:bc:3d:c0' -dataWriter.wcudata2.eth0.port = 4000 -dataWriter.wcudata2.eth0.proto = 'udp' -dataWriter.wcudata2.eth1.ip = '10.99.101.2' -dataWriter.wcudata2.eth1.mac = 'e4:1d:2d:bc:3d:c1' -dataWriter.wcudata2.eth1.port = 4000 -dataWriter.wcudata2.eth1.proto = 'udp' -dataWriter.wcudata2.eth2.ip = '10.99.101.3' -dataWriter.wcudata2.eth2.mac = 'e4:1d:2d:e4:0d:30' -dataWriter.wcudata2.eth2.port = 4000 -dataWriter.wcudata2.eth2.proto = 'udp' -dataWriter.wcudata2.eth3.ip = '10.99.101.4' -dataWriter.wcudata2.eth3.mac = 'e4:1d:2d:e4:0d:31' -dataWriter.wcudata2.eth3.port = 4000 -dataWriter.wcudata2.eth3.proto = 'udp' -dataWriter.outputPath = '/data/apertif/' # in operations, preferably an *absolute*, project specific path on /data -arts.recordBaseband = True # record baseband data to disk -arts.timing = True # perform dedispertion and folding on raw data -arts.parFile = 'file.par' # name of the parfile used on ARTS-0 -arts.samplingTime = 100.25 # sampling time of the folded data in microsec -arts.frequencyChannelWidth = 10.5 # width of frequency channels in MHz -arts.survey.snr_threshold = 8.0 # ARTS SC4 pipeline S/N threshold -arts.survey.enable_iquv = true # Whether or not to enable IQUV buffering for ARTS SC4 -arts.survey.history_i = 10 # ARTS SC4 buffer size for stokes I -arts.survey.history_iquv = 10 # ARTS SC4 buffer size for stokes IQUV -atmosphere.refracDryAir = 0.000305 # atmosphere constants taken from WSRT (pre-APERTIF) MS -atmosphere.refracWaterVapour = 0.0 -atmosphere.scaleHeight = 8 # km -system.parsetVersion = '0.0.1' -system.skipChecksUnsupported = false # skipChecksUnsupported; default: false; true means: skip as many parset sanity checks as possible (without affecting system stability for subsequent observations), i.e. log this setting and do as asked, but no software support if anything turns out broken -system.arrayPosition = [3828630.63486200943589211, 443593.39226634375518188, 5064922.99755000043660402] # meter, ITRF. RT8 atm -system.telescope.RT2.position = [3828729.99081358872354031, 442735.17696416645776480,5064923.00829000025987625] # meter, ITRF -system.telescope.RT3.position = [3828713.43109884625300765, 442878.21189340209821239,5064923.00435999967157841] -system.telescope.RT4.position = [3828696.86994427768513560, 443021.24917263782117516,5064923.00396999996155500] -system.telescope.RT5.position = [3828680.31391932582482696, 443164.28596862131962553,5064923.00035000033676624] -system.telescope.RT6.position = [3828663.75159173039719462, 443307.32138055720133707,5064923.00203999970108271] -system.telescope.RT7.position = [3828647.19342757249251008, 443450.35604637680808082,5064923.00229999981820583] -system.telescope.RT8.position = [3828630.63486200943589211, 443593.39226634375518188,5064922.99755000043660402] -system.telescope.RT9.position = [3828614.07606798363849521, 443736.42941620573401451,5064923.00000000000000000] -system.telescope.RTA.position = [3828609.94224429363384843, 443772.19450029480503872,5064922.99868000019341707] -system.telescope.RTB.position = [3828603.73202611599117517, 443825.83321168005932122,5064922.99963000044226646] -system.telescope.RTC.position = [3828460.92418734729290009, 445059.52053928520763293,5064922.99070999957621098] -system.telescope.RTD.position = [3828452.64716351125389338, 445131.03744105156511068,5064922.98792999982833862] -system.telescope.axesDistance = 4.95 # meter -system.telescope.focalAxesDistance = 9.25 # meter -system.telescope.polarAxesLength = 16.922 # meter -system.correlator.outputBoardList = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] # cannot be "[0..15]", results in error -# to be decided on later maybe more hardware versions needed. Values come from prepare telescope command. -# system.beamformerVersion = '0.8' # beamformer version -# system.correlatorVersion = '0.9' # correlator version - -#system.telescope.RT2.residualDelay = 1.4618e-9 # 0.0 # 3.9734e-9 #3.0402e-9 #1.9029e-9 -#system.telescope.RT3.residualDelay = 3.6548e-9 # 0.0 # 1.2513e-9 #4.1736e-9 -#system.telescope.RT4.residualDelay = 0.0 # 0.0 #5.0991e-9 # -#system.telescope.RT5.residualDelay = 0.1513e-9 # 0.0 # 0.0894e-9 #4.0534e-9 #0.1034e-9 -#system.telescope.RT6.residualDelay = 3.5733e-9 # 0.0 # 1.8253e-9 #3.6861e-9 -#system.telescope.RT7.residualDelay = 0.0 # 0.0 #3.8860e-9 # -#system.telescope.RT8.residualDelay = 0.8254e-9 # 0.0 # 4.1577e-9 #3.5752e-9 #0.6541e-9 # 20171206 -#system.telescope.RT9.residualDelay = 0.4405e-9 # 0.0 # 0.0 #3.9317e-9 #1.8725e-9 -#system.telescope.RTA.residualDelay = 0.0 # 0.0 # 0.1397e-9 #4.4971e-9 # -#system.telescope.RTB.residualDelay = 2.8676e-9 # 0.0 # 2.6496e-9 #2.8192e-9 #1.8206e-9 -#system.telescope.RT2.residualDelay = 2.727e-9 -#system.telescope.RT3.residualDelay = 4.902e-9 -#system.telescope.RT4.residualDelay = 0.206e-9 -#system.telescope.RT5.residualDelay = 1.450e-9 -#system.telescope.RT6.residualDelay = 4.827e-9 -#system.telescope.RT7.residualDelay = 1.716e-9 -#system.telescope.RT8.residualDelay = 2.028e-9 -#system.telescope.RT9.residualDelay = 1.747e-9 -#system.telescope.RTA.residualDelay = 1.306e-9 -#system.telescope.RTB.residualDelay = 2.868e-9 -# The new optimum values (6-2-2018) - -# 13 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 4.771e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 4.098e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 6.046e-9 -#system.telescope.RT8.residualDelay = 6.376e-9 -#system.telescope.RT9.residualDelay = 5.131e-9 -#system.telescope.RTA.residualDelay = 3.434e-9 -#system.telescope.RTB.residualDelay = 4.970e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -# 14 -#system.telescope.RT2.residualDelay = 16.732e-9 -#system.telescope.RT3.residualDelay = 13.031e-9 -#system.telescope.RT4.residualDelay = 14.511e-9 -#system.telescope.RT5.residualDelay = 12.522e-9 -#system.telescope.RT6.residualDelay = 20.239e-9 -#system.telescope.RT7.residualDelay = 15.641e-9 -#system.telescope.RT8.residualDelay = 15.645e-9 -#system.telescope.RT9.residualDelay = 13.194e-9 -#system.telescope.RTA.residualDelay = 8.708e-9 -#system.telescope.RTB.residualDelay = 6.995e-9 -#system.telescope.RTC.residualDelay = 0.000e-9 -#system.telescope.RTD.residualDelay = 9.658e-9 - -# 15 -#system.telescope.RT2.residualDelay = 7.074e-9 -#system.telescope.RT3.residualDelay = 6.169e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.332e-9 -#system.telescope.RT6.residualDelay = 6.813e-9 -#system.telescope.RT7.residualDelay = 6.109e-9 -#system.telescope.RT8.residualDelay = 6.765e-9 -#system.telescope.RT9.residualDelay = 6.726e-9 -#system.telescope.RTA.residualDelay = 7.818e-9 -#system.telescope.RTB.residualDelay = 12.603e-9 -#system.telescope.RTC.residualDelay = 9.658e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 - -#system.telescope.RT2.residualDelay = 8.230e-9 -#system.telescope.RT3.residualDelay = 6.709e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 5.547e-9 -#system.telescope.RT6.residualDelay = 8.697e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 7.071e-9 -#system.telescope.RTA.residualDelay = 6.673e-9 -#system.telescope.RTB.residualDelay = 9.965e-9 -#system.telescope.RTC.residualDelay = 5.622e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -# because phaseZero is random (LO1 problem) I use 0.0 as default (6-2--2018) -# -# new values 5-3-2018 (RT2,3,4,5,6,9,a,b,c used) -# -#system.telescope.RT2.residualDelay = 11.706e-9 -#system.telescope.RT3.residualDelay = 10.283e-9 -#system.telescope.RT4.residualDelay = 4.853e-9 -#system.telescope.RT5.residualDelay = 7.774e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 7.218e-9 -#system.telescope.RT8.residualDelay = 7.145e-9 -#system.telescope.RT9.residualDelay = 10.630e-9 -#system.telescope.RTA.residualDelay = 11.452e-9 -#system.telescope.RTB.residualDelay = 11.848e-9 -#system.telescope.RTC.residualDelay = 8.992e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -# -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 0.000 -#system.telescope.RT4.phaseZero = 0.000 -#system.telescope.RT5.phaseZero = 0.000 -#system.telescope.RT6.phaseZero = 0.000 -#system.telescope.RT7.phaseZero = 0.000 -#system.telescope.RT8.phaseZero = 0.000 -#system.telescope.RT9.phaseZero = 0.000 -#system.telescope.RTA.phaseZero = 0.000 -#system.telescope.RTB.phaseZero = 0.000 -#system.telescope.RTC.phaseZero = 0.000 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 08-03-2018 BH -#system.telescope.RT2.residualDelay = 13.060e-9 -#system.telescope.RT3.residualDelay = 10.430e-9 -#system.telescope.RT4.residualDelay = 6.242e-9 -#system.telescope.RT5.residualDelay = 9.436e-9 -#system.telescope.RT6.residualDelay = 13.650e-9 -#system.telescope.RT7.residualDelay = 12.041e-9 -#system.telescope.RT8.residualDelay = 12.735e-9 -#system.telescope.RT9.residualDelay = 11.876e-9 -#system.telescope.RTA.residualDelay = 12.821e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 11.851e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 2.858 -#system.telescope.RT4.phaseZero = -0.284 -#system.telescope.RT5.phaseZero = -2.599 -#system.telescope.RT6.phaseZero = -0.499 -#system.telescope.RT7.phaseZero = 2.736 -#system.telescope.RT8.phaseZero = -0.845 -#system.telescope.RT9.phaseZero = 0.232 -#system.telescope.RTA.phaseZero = 0.172 -#system.telescope.RTB.phaseZero = 0.096 -#system.telescope.RTC.phaseZero = -2.156 -#system.telescope.RTD.phaseZero = 0.000 - -# new values 09-03-2018 BH -#system.telescope.RT2.residualDelay = 15.561e-9 -#system.telescope.RT3.residualDelay = 12.945e-9 -#system.telescope.RT4.residualDelay = 7.509e-9 -#system.telescope.RT5.residualDelay = 10.688e-9 -#system.telescope.RT6.residualDelay = 14.920e-9 -#system.telescope.RT7.residualDelay = 14.546e-9 -#system.telescope.RT8.residualDelay = 12.741e-9 -#system.telescope.RT9.residualDelay = 13.151e-9 -#system.telescope.RTA.residualDelay = 14.078e-9 -#system.telescope.RTB.residualDelay = 14.713e-9 -#system.telescope.RTC.residualDelay = 13.031e-9 -#system.telescope.RTD.residualDelay = 0.000e-9 -#system.telescope.RT2.phaseZero = 0.000 -#system.telescope.RT3.phaseZero = 1.615 -#system.telescope.RT4.phaseZero = 1.138 -#system.telescope.RT5.phaseZero = -0.787 -#system.telescope.RT6.phaseZero = -0.573 -#system.telescope.RT7.phaseZero = 0.313 -#system.telescope.RT8.phaseZero = 0.274 -#system.telescope.RT9.phaseZero = 1.533 -#system.telescope.RTA.phaseZero = 1.741 -#system.telescope.RTB.phaseZero = -1.637 -#system.telescope.RTC.phaseZero = -5.201 -#system.telescope.RTD.phaseZero = 0.000 - -# 09-04-2018 MN, RT2..RTC new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 21.944e-9 -system.telescope.RT3.residualDelay = 19.397e-9 -system.telescope.RT4.residualDelay = 15.170e-9 -system.telescope.RT5.residualDelay = 20.627e-9 -system.telescope.RT6.residualDelay = 25.326e-9 -system.telescope.RT7.residualDelay = 20.963e-9 -system.telescope.RT8.residualDelay = 21.768e-9 -system.telescope.RT9.residualDelay = 20.771e-9 -system.telescope.RTA.residualDelay = 20.480e-9 -system.telescope.RTB.residualDelay = 23.421e-9 -system.telescope.RTC.residualDelay = 18.441e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.448 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.936 -system.telescope.RT6.phaseZero = -1.609 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.086 -system.telescope.RT9.phaseZero = 0.281 -system.telescope.RTA.phaseZero = 0.744 -system.telescope.RTB.phaseZero = 2.157 -system.telescope.RTC.phaseZero = -8.142 -system.telescope.RTD.phaseZero = 0.000 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz -system.telescope.RT2.residualDelay = 6.921e-9 -system.telescope.RT3.residualDelay = 4.435e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.666e-9 -system.telescope.RT6.residualDelay = 11.301e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.804e-9 -system.telescope.RT9.residualDelay = 5.798e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.434e-9 -system.telescope.RTC.residualDelay = 3.271e-9 -system.telescope.RTD.residualDelay = 43.929e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.370 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.855 -system.telescope.RT6.phaseZero = -2.818 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.062 -system.telescope.RT9.phaseZero = 0.168 -system.telescope.RTA.phaseZero = 0.556 -system.telescope.RTB.phaseZero = 2.165 -system.telescope.RTC.phaseZero = -8.707 -system.telescope.RTD.phaseZero = -2.827 - -# 23-04-2018 MN, RT2..RTD new firmware, LO1=4800MHz, version 2 -system.telescope.RT2.residualDelay = 6.936e-9 -system.telescope.RT3.residualDelay = 4.443e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 5.681e-9 -system.telescope.RT6.residualDelay = 11.331e-9 -system.telescope.RT7.residualDelay = 5.793e-9 -system.telescope.RT8.residualDelay = 6.819e-9 -system.telescope.RT9.residualDelay = 5.820e-9 -system.telescope.RTA.residualDelay = 5.481e-9 -system.telescope.RTB.residualDelay = 8.437e-9 -system.telescope.RTC.residualDelay = 3.313e-9 -system.telescope.RTD.residualDelay = 44.021e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 1.392 -system.telescope.RT4.phaseZero = -0.330 -system.telescope.RT5.phaseZero = 3.896 -system.telescope.RT6.phaseZero = -2.064 -system.telescope.RT7.phaseZero = 0.531 -system.telescope.RT8.phaseZero = 4.110 -system.telescope.RT9.phaseZero = 0.204 -system.telescope.RTA.phaseZero = 0.584 -system.telescope.RTB.phaseZero = 2.177 -system.telescope.RTC.phaseZero = -8.873 -system.telescope.RTD.phaseZero = -2.741 - -# residualDelay and phaseZero values determined using task 14092018 -system.telescope.RT2.residualDelay = 6.695e-9 -system.telescope.RT3.residualDelay = 2.769e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.507e-9 -system.telescope.RT6.residualDelay = 8.455e-9 -system.telescope.RT7.residualDelay = 6.812e-9 -system.telescope.RT8.residualDelay = 6.439e-9 -system.telescope.RT9.residualDelay = 3.011e-9 -system.telescope.RTA.residualDelay = 5.088e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 1.036e-9 -system.telescope.RTD.residualDelay = 45.233e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 2.774 -system.telescope.RT4.phaseZero = -0.843 -system.telescope.RT5.phaseZero = 5.163 -system.telescope.RT6.phaseZero = 0.959 -system.telescope.RT7.phaseZero = -2.120 -system.telescope.RT8.phaseZero = 3.544 -system.telescope.RT9.phaseZero = 3.221 -system.telescope.RTA.phaseZero = 0.176 -system.telescope.RTB.phaseZero = -0.832 -system.telescope.RTC.phaseZero = -9.472 -system.telescope.RTD.phaseZero = -2.531 - -# residualDelay and phaseZero values determined using task 1409201801 -system.telescope.RT2.residualDelay = 6.660e-9 -system.telescope.RT3.residualDelay = 2.756e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.492e-9 -system.telescope.RT6.residualDelay = 8.466e-9 -system.telescope.RT7.residualDelay = 6.798e-9 -system.telescope.RT8.residualDelay = 6.545e-9 -system.telescope.RT9.residualDelay = 2.999e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 1.924e-9 -system.telescope.RTC.residualDelay = 0.819e-9 -system.telescope.RTD.residualDelay = 45.308e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.774 -system.telescope.RT4.phaseZero = -0.457 -system.telescope.RT5.phaseZero = 3.798 -system.telescope.RT6.phaseZero = 3.288 -system.telescope.RT7.phaseZero = -0.193 -system.telescope.RT8.phaseZero = 3.234 -system.telescope.RT9.phaseZero = 5.630 -system.telescope.RTA.phaseZero = -0.104 -system.telescope.RTB.phaseZero = 2.143 -system.telescope.RTC.phaseZero = -12.286 -system.telescope.RTD.phaseZero = -0.055 - -#RB 21-09-2018 -# residualDelay and phaseZero values determined using task 2109201800 -system.telescope.RT2.residualDelay = 6.719e-9 -system.telescope.RT3.residualDelay = 2.740e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.487e-9 -system.telescope.RT6.residualDelay = 9.812e-9 -system.telescope.RT7.residualDelay = 8.056e-9 -system.telescope.RT8.residualDelay = 6.589e-9 -system.telescope.RT9.residualDelay = 6.673e-9 -system.telescope.RTA.residualDelay = 5.168e-9 -system.telescope.RTB.residualDelay = 3.168e-9 -system.telescope.RTC.residualDelay = 5.412e-9 -system.telescope.RTD.residualDelay = 45.297e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.978 -system.telescope.RT4.phaseZero = -0.261 -system.telescope.RT5.phaseZero = 3.795 -system.telescope.RT6.phaseZero = 1.513 -system.telescope.RT7.phaseZero = -2.116 -system.telescope.RT8.phaseZero = 3.552 -system.telescope.RT9.phaseZero = 6.339 -system.telescope.RTA.phaseZero = 0.090 -system.telescope.RTB.phaseZero = 0.601 -system.telescope.RTC.phaseZero = -12.655 -system.telescope.RTD.phaseZero = -0.502 - -#RB 21-09-2018 second run -# residualDelay and phaseZero values determined using task 2109201801 -system.telescope.RT2.residualDelay = 6.679e-9 -system.telescope.RT3.residualDelay = 2.751e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.500e-9 -system.telescope.RT6.residualDelay = 9.831e-9 -system.telescope.RT7.residualDelay = 8.097e-9 -system.telescope.RT8.residualDelay = 6.749e-9 -system.telescope.RT9.residualDelay = 6.775e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.199e-9 -system.telescope.RTC.residualDelay = 5.474e-9 -system.telescope.RTD.residualDelay = 45.255e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.850 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = 3.725 -system.telescope.RT6.phaseZero = 3.413 -system.telescope.RT7.phaseZero = -0.328 -system.telescope.RT8.phaseZero = 3.545 -system.telescope.RT9.phaseZero = 5.518 -system.telescope.RTA.phaseZero = 0.104 -system.telescope.RTB.phaseZero = 2.368 -system.telescope.RTC.phaseZero = -11.890 -system.telescope.RTD.phaseZero = -0.527 - -#20181005 -# residualDelay and phaseZero values determined using task 181005002 -system.telescope.RT2.residualDelay = 5.442e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.457e-9 -system.telescope.RT6.residualDelay = 9.798e-9 -system.telescope.RT7.residualDelay = 6.791e-9 -system.telescope.RT8.residualDelay = 6.592e-9 -system.telescope.RT9.residualDelay = 6.694e-9 -system.telescope.RTA.residualDelay = 5.114e-9 -system.telescope.RTB.residualDelay = 3.242e-9 -system.telescope.RTC.residualDelay = 3.538e-9 -system.telescope.RTD.residualDelay = 44.069e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.266 -system.telescope.RT4.phaseZero = -2.003 -system.telescope.RT5.phaseZero = 2.163 -system.telescope.RT6.phaseZero = 2.001 -system.telescope.RT7.phaseZero = 0.034 -system.telescope.RT8.phaseZero = 2.123 -system.telescope.RT9.phaseZero = 3.950 -system.telescope.RTA.phaseZero = -1.597 -system.telescope.RTB.phaseZero = 0.530 -system.telescope.RTC.phaseZero = -13.909 -system.telescope.RTD.phaseZero = -0.640 - -# residualDelay and phaseZero values determined using task 181005003 -system.telescope.RT2.residualDelay = 5.496e-9 -system.telescope.RT3.residualDelay = 1.605e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 9.820e-9 -system.telescope.RT7.residualDelay = 6.788e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.629e-9 -system.telescope.RTA.residualDelay = 5.145e-9 -system.telescope.RTB.residualDelay = 3.198e-9 -system.telescope.RTC.residualDelay = 3.760e-9 -system.telescope.RTD.residualDelay = 44.042e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.249 -system.telescope.RT4.phaseZero = -0.137 -system.telescope.RT5.phaseZero = 3.981 -system.telescope.RT6.phaseZero = 3.836 -system.telescope.RT7.phaseZero = -0.055 -system.telescope.RT8.phaseZero = 3.766 -system.telescope.RT9.phaseZero = 5.685 -system.telescope.RTA.phaseZero = 0.191 -system.telescope.RTB.phaseZero = 2.481 -system.telescope.RTC.phaseZero = -14.952 -system.telescope.RTD.phaseZero = -0.513 - -# residualDelay and phaseZero values determined using task 181012004 -system.telescope.RT2.residualDelay = 5.373e-9 -system.telescope.RT3.residualDelay = 1.498e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.472e-9 -system.telescope.RT6.residualDelay = 8.551e-9 -system.telescope.RT7.residualDelay = 6.800e-9 -system.telescope.RT8.residualDelay = 6.600e-9 -system.telescope.RT9.residualDelay = 6.729e-9 -system.telescope.RTA.residualDelay = 6.347e-9 -system.telescope.RTB.residualDelay = 2.004e-9 -system.telescope.RTC.residualDelay = 3.926e-9 -system.telescope.RTD.residualDelay = 42.875e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.192 -system.telescope.RT4.phaseZero = -0.443 -system.telescope.RT5.phaseZero = 3.721 -system.telescope.RT6.phaseZero = 5.446 -system.telescope.RT7.phaseZero = -0.318 -system.telescope.RT8.phaseZero = 3.510 -system.telescope.RT9.phaseZero = 5.291 -system.telescope.RTA.phaseZero = -1.835 -system.telescope.RTB.phaseZero = 4.197 -system.telescope.RTC.phaseZero = -15.103 -system.telescope.RTD.phaseZero = 1.012 - -# residualDelay and phaseZero values determined using task 181012005 -system.telescope.RT2.residualDelay = 5.432e-9 -system.telescope.RT3.residualDelay = 1.554e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.348e-9 -system.telescope.RT6.residualDelay = 8.557e-9 -system.telescope.RT7.residualDelay = 6.829e-9 -system.telescope.RT8.residualDelay = 6.503e-9 -system.telescope.RT9.residualDelay = 6.640e-9 -system.telescope.RTA.residualDelay = 6.362e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.167 -system.telescope.RT4.phaseZero = -0.264 -system.telescope.RT5.phaseZero = 3.973 -system.telescope.RT6.phaseZero = 3.787 -system.telescope.RT7.phaseZero = -0.039 -system.telescope.RT8.phaseZero = 3.808 -system.telescope.RT9.phaseZero = 5.714 -system.telescope.RTA.phaseZero = 0.234 -system.telescope.RTB.phaseZero = 2.653 -system.telescope.RTC.phaseZero = -14.577 -system.telescope.RTD.phaseZero = -0.531 - -# residualDelay and phaseZero values determined using task 181015007 -system.telescope.RT2.residualDelay = 5.393e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.483e-9 -system.telescope.RT6.residualDelay = 8.522e-9 -system.telescope.RT7.residualDelay = 6.811e-9 -system.telescope.RT8.residualDelay = 5.667e-9 -system.telescope.RT9.residualDelay = 6.701e-9 -system.telescope.RTA.residualDelay = 6.394e-9 -system.telescope.RTB.residualDelay = 30.724e-9 -system.telescope.RTC.residualDelay = 2303.554e-9 -system.telescope.RTD.residualDelay = 1242.839e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.087 -system.telescope.RT4.phaseZero = -0.592 -system.telescope.RT5.phaseZero = 3.674 -system.telescope.RT6.phaseZero = 3.698 -system.telescope.RT7.phaseZero = 0.010 -system.telescope.RT8.phaseZero = 3.430 -system.telescope.RT9.phaseZero = 5.461 -system.telescope.RTA.phaseZero = 0.173 -system.telescope.RTB.phaseZero = 2.971 -system.telescope.RTC.phaseZero = -16.811 -system.telescope.RTD.phaseZero = -2.070 - -# residualDelay and phaseZero values determined using task 181015009 -system.telescope.RT2.residualDelay = 5.394e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.469e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.790e-9 -system.telescope.RT8.residualDelay = 6.567e-9 -system.telescope.RT9.residualDelay = 6.645e-9 -system.telescope.RTA.residualDelay = 6.389e-9 -system.telescope.RTB.residualDelay = 30.721e-9 -system.telescope.RTC.residualDelay = 4863.459e-9 -system.telescope.RTD.residualDelay = 2522.633e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.072 -system.telescope.RT4.phaseZero = -0.552 -system.telescope.RT5.phaseZero = 3.906 -system.telescope.RT6.phaseZero = 3.679 -system.telescope.RT7.phaseZero = 0.058 -system.telescope.RT8.phaseZero = 2.316 -system.telescope.RT9.phaseZero = 5.599 -system.telescope.RTA.phaseZero = 0.251 -system.telescope.RTB.phaseZero = 2.696 -system.telescope.RTC.phaseZero = -15.027 -system.telescope.RTD.phaseZero = -3.665 - -# residualDelay and phaseZero values determined using task 181015010 -system.telescope.RT2.residualDelay = 5.420e-9 -system.telescope.RT3.residualDelay = 1.585e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.550e-9 -system.telescope.RT7.residualDelay = 6.789e-9 -system.telescope.RT8.residualDelay = 6.499e-9 -system.telescope.RT9.residualDelay = 6.668e-9 -system.telescope.RTA.residualDelay = 6.397e-9 -system.telescope.RTB.residualDelay = 30.689e-9 -system.telescope.RTC.residualDelay = 7423.493e-9 -system.telescope.RTD.residualDelay = 4102.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.048 -system.telescope.RT4.phaseZero = -0.582 -system.telescope.RT5.phaseZero = 3.843 -system.telescope.RT6.phaseZero = 3.619 -system.telescope.RT7.phaseZero = -0.020 -system.telescope.RT8.phaseZero = 3.643 -system.telescope.RT9.phaseZero = 5.478 -system.telescope.RTA.phaseZero = 0.232 -system.telescope.RTB.phaseZero = 2.667 -system.telescope.RTC.phaseZero = -15.207 -system.telescope.RTD.phaseZero = -5.932 - -# residualDelay and phaseZero values determined using task 181016004 -# manually changed RTB RTC RTD -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.564e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.455e-9 -system.telescope.RT6.residualDelay = 9.791e-9 -system.telescope.RT7.residualDelay = 8.039e-9 -system.telescope.RT8.residualDelay = 6.663e-9 -system.telescope.RT9.residualDelay = 6.672e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 1.906e-9 -system.telescope.RTC.residualDelay = 3.846e-9 -system.telescope.RTD.residualDelay = 42.763e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.075 -system.telescope.RT4.phaseZero = -0.401 -system.telescope.RT5.phaseZero = 4.023 -system.telescope.RT6.phaseZero = 1.802 -system.telescope.RT7.phaseZero = -1.935 -system.telescope.RT8.phaseZero = 3.598 -system.telescope.RT9.phaseZero = 5.617 -system.telescope.RTA.phaseZero = 1.995 -system.telescope.RTB.phaseZero = 2.483 -system.telescope.RTC.phaseZero = -13.513 -system.telescope.RTD.phaseZero = -7.368 - - -# residualDelay and phaseZero values determined using task 181016006 -system.telescope.RT2.residualDelay = 5.430e-9 -system.telescope.RT3.residualDelay = 1.544e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.481e-9 -system.telescope.RT6.residualDelay = 9.818e-9 -system.telescope.RT7.residualDelay = 8.062e-9 -system.telescope.RT8.residualDelay = 6.648e-9 -system.telescope.RT9.residualDelay = 6.678e-9 -system.telescope.RTA.residualDelay = 5.127e-9 -system.telescope.RTB.residualDelay = 5.713e-9 -system.telescope.RTC.residualDelay = 4.052e-9 -system.telescope.RTD.residualDelay = 42.878e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.026 -system.telescope.RT4.phaseZero = -0.417 -system.telescope.RT5.phaseZero = 3.950 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.844 -system.telescope.RT9.phaseZero = 5.596 -system.telescope.RTA.phaseZero = 0.144 -system.telescope.RTB.phaseZero = 2.926 -system.telescope.RTC.phaseZero = -15.035 -system.telescope.RTD.phaseZero = -7.296 - -# residualDelay and phaseZero values determined using task 181016007 -system.telescope.RT2.residualDelay = 5.475e-9 -system.telescope.RT3.residualDelay = 1.604e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.642e-9 -system.telescope.RT9.residualDelay = 6.652e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 5.718e-9 -system.telescope.RTC.residualDelay = 3.999e-9 -system.telescope.RTD.residualDelay = 42.797e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.444 -system.telescope.RT5.phaseZero = 3.942 -system.telescope.RT6.phaseZero = 3.700 -system.telescope.RT7.phaseZero = -0.013 -system.telescope.RT8.phaseZero = 3.802 -system.telescope.RT9.phaseZero = 5.581 -system.telescope.RTA.phaseZero = 0.126 -system.telescope.RTB.phaseZero = 2.390 -system.telescope.RTC.phaseZero = -14.708 -system.telescope.RTD.phaseZero = -7.101 - -# residualDelay and phaseZero values determined using task 181017001 -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.539e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.463e-9 -system.telescope.RT6.residualDelay = 9.808e-9 -system.telescope.RT7.residualDelay = 8.008e-9 -system.telescope.RT8.residualDelay = 6.535e-9 -system.telescope.RT9.residualDelay = 6.649e-9 -system.telescope.RTA.residualDelay = 5.089e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.834e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.045 -system.telescope.RT4.phaseZero = -0.482 -system.telescope.RT5.phaseZero = 3.940 -system.telescope.RT6.phaseZero = 3.611 -system.telescope.RT7.phaseZero = -0.166 -system.telescope.RT8.phaseZero = 3.699 -system.telescope.RT9.phaseZero = 5.421 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 1.702 -system.telescope.RTC.phaseZero = -14.982 -system.telescope.RTD.phaseZero = -7.397 - -# residualDelay and phaseZero values determined using task 181017002 -system.telescope.RT2.residualDelay = 5.388e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 9.816e-9 -system.telescope.RT7.residualDelay = 8.069e-9 -system.telescope.RT8.residualDelay = 6.577e-9 -system.telescope.RT9.residualDelay = 6.721e-9 -system.telescope.RTA.residualDelay = 5.103e-9 -system.telescope.RTB.residualDelay = 1.923e-9 -system.telescope.RTC.residualDelay = 3.617e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.036 -system.telescope.RT4.phaseZero = -0.452 -system.telescope.RT5.phaseZero = 3.891 -system.telescope.RT6.phaseZero = 3.672 -system.telescope.RT7.phaseZero = -0.148 -system.telescope.RT8.phaseZero = 3.608 -system.telescope.RT9.phaseZero = 5.477 -system.telescope.RTA.phaseZero = 0.062 -system.telescope.RTB.phaseZero = 2.369 -system.telescope.RTC.phaseZero = -15.390 -system.telescope.RTD.phaseZero = -7.204 - -# residualDelay and phaseZero values determined using task 181017003 -system.telescope.RT2.residualDelay = 5.422e-9 -system.telescope.RT3.residualDelay = 1.538e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.432e-9 -system.telescope.RT6.residualDelay = 9.773e-9 -system.telescope.RT7.residualDelay = 8.058e-9 -system.telescope.RT8.residualDelay = 6.543e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.121e-9 -system.telescope.RTB.residualDelay = 1.934e-9 -system.telescope.RTC.residualDelay = 3.647e-9 -system.telescope.RTD.residualDelay = 42.811e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.020 -system.telescope.RT4.phaseZero = -0.366 -system.telescope.RT5.phaseZero = 3.969 -system.telescope.RT6.phaseZero = 3.748 -system.telescope.RT7.phaseZero = 0.020 -system.telescope.RT8.phaseZero = 3.725 -system.telescope.RT9.phaseZero = 5.663 -system.telescope.RTA.phaseZero = 0.130 -system.telescope.RTB.phaseZero = 2.419 -system.telescope.RTC.phaseZero = -15.274 -system.telescope.RTD.phaseZero = -7.069 - -# residualDelay and phaseZero values determined using task 181018005 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.603e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.514e-9 -system.telescope.RT6.residualDelay = 9.809e-9 -system.telescope.RT7.residualDelay = 8.133e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.670e-9 -system.telescope.RTA.residualDelay = 5.105e-9 -system.telescope.RTB.residualDelay = 2.014e-9 -system.telescope.RTC.residualDelay = 5.472e-9 -system.telescope.RTD.residualDelay = 41.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.105 -system.telescope.RT4.phaseZero = -0.546 -system.telescope.RT5.phaseZero = 3.714 -system.telescope.RT6.phaseZero = 3.573 -system.telescope.RT7.phaseZero = -0.121 -system.telescope.RT8.phaseZero = 3.616 -system.telescope.RT9.phaseZero = 5.516 -system.telescope.RTA.phaseZero = 0.039 -system.telescope.RTB.phaseZero = 2.331 -system.telescope.RTC.phaseZero = -15.338 -system.telescope.RTD.phaseZero = -5.065 - -# residualDelay and phaseZero values determined using task 181018006 -system.telescope.RT2.residualDelay = 5.397e-9 -system.telescope.RT3.residualDelay = 1.545e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.436e-9 -system.telescope.RT6.residualDelay = 9.845e-9 -system.telescope.RT7.residualDelay = 8.055e-9 -system.telescope.RT8.residualDelay = 6.584e-9 -system.telescope.RT9.residualDelay = 6.685e-9 -system.telescope.RTA.residualDelay = 5.109e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 5.406e-9 -system.telescope.RTD.residualDelay = 41.638e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.101 -system.telescope.RT4.phaseZero = -0.579 -system.telescope.RT5.phaseZero = 3.802 -system.telescope.RT6.phaseZero = 3.531 -system.telescope.RT7.phaseZero = -0.024 -system.telescope.RT8.phaseZero = 3.620 -system.telescope.RT9.phaseZero = 5.428 -system.telescope.RTA.phaseZero = -0.059 -system.telescope.RTB.phaseZero = 2.365 -system.telescope.RTC.phaseZero = -12.766 -system.telescope.RTD.phaseZero = -7.237 - -# residualDelay and phaseZero values determined using task 181018007 -system.telescope.RT2.residualDelay = 5.350e-9 -system.telescope.RT3.residualDelay = 1.479e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.470e-9 -system.telescope.RT6.residualDelay = 9.799e-9 -system.telescope.RT7.residualDelay = 8.012e-9 -system.telescope.RT8.residualDelay = 6.564e-9 -system.telescope.RT9.residualDelay = 6.709e-9 -system.telescope.RTA.residualDelay = 5.058e-9 -system.telescope.RTB.residualDelay = 1.986e-9 -system.telescope.RTC.residualDelay = 5.415e-9 -system.telescope.RTD.residualDelay = 41.645e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.113 -system.telescope.RT4.phaseZero = -0.487 -system.telescope.RT5.phaseZero = 3.781 -system.telescope.RT6.phaseZero = 3.722 -system.telescope.RT7.phaseZero = -0.029 -system.telescope.RT8.phaseZero = 3.637 -system.telescope.RT9.phaseZero = 5.569 -system.telescope.RTA.phaseZero = 0.087 -system.telescope.RTB.phaseZero = 2.488 -system.telescope.RTC.phaseZero = -12.735 -system.telescope.RTD.phaseZero = -7.124 - -# residualDelay and phaseZero values determined using task 181018008 -system.telescope.RT2.residualDelay = 5.351e-9 -system.telescope.RT3.residualDelay = 1.512e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.460e-9 -system.telescope.RT6.residualDelay = 9.743e-9 -system.telescope.RT7.residualDelay = 8.009e-9 -system.telescope.RT8.residualDelay = 6.601e-9 -system.telescope.RT9.residualDelay = 6.717e-9 -system.telescope.RTA.residualDelay = 5.073e-9 -system.telescope.RTB.residualDelay = 1.980e-9 -system.telescope.RTC.residualDelay = 4.969e-9 -system.telescope.RTD.residualDelay = 41.508e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.124 -system.telescope.RT4.phaseZero = -0.403 -system.telescope.RT5.phaseZero = 3.886 -system.telescope.RT6.phaseZero = 3.680 -system.telescope.RT7.phaseZero = -0.065 -system.telescope.RT8.phaseZero = 3.587 -system.telescope.RT9.phaseZero = 5.588 -system.telescope.RTA.phaseZero = -0.014 -system.telescope.RTB.phaseZero = 2.393 -system.telescope.RTC.phaseZero = -12.762 -system.telescope.RTD.phaseZero = -7.206 - -# residualDelay and phaseZero values determined using task 181019002 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.619e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.450e-9 -system.telescope.RT6.residualDelay = 8.563e-9 -system.telescope.RT7.residualDelay = 8.052e-9 -system.telescope.RT8.residualDelay = 6.587e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.213e-9 -system.telescope.RTB.residualDelay = 3.271e-9 -system.telescope.RTC.residualDelay = 4.027e-9 -system.telescope.RTD.residualDelay = 41.657e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.087 -system.telescope.RT4.phaseZero = -0.266 -system.telescope.RT5.phaseZero = 4.091 -system.telescope.RT6.phaseZero = 5.690 -system.telescope.RT7.phaseZero = -0.083 -system.telescope.RT8.phaseZero = 3.881 -system.telescope.RT9.phaseZero = 5.887 -system.telescope.RTA.phaseZero = -0.109 -system.telescope.RTB.phaseZero = 0.275 -system.telescope.RTC.phaseZero = -13.702 -system.telescope.RTD.phaseZero = -7.586 - -# residualDelay and phaseZero values determined using task 181019003 -system.telescope.RT2.residualDelay = 5.479e-9 -system.telescope.RT3.residualDelay = 1.669e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.482e-9 -system.telescope.RT6.residualDelay = 8.609e-9 -system.telescope.RT7.residualDelay = 8.076e-9 -system.telescope.RT8.residualDelay = 6.622e-9 -system.telescope.RT9.residualDelay = 6.734e-9 -system.telescope.RTA.residualDelay = 5.150e-9 -system.telescope.RTB.residualDelay = 3.307e-9 -system.telescope.RTC.residualDelay = 4.072e-9 -system.telescope.RTD.residualDelay = 1.632e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.079 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = 3.897 -system.telescope.RT6.phaseZero = 3.745 -system.telescope.RT7.phaseZero = -0.187 -system.telescope.RT8.phaseZero = 3.707 -system.telescope.RT9.phaseZero = 5.634 -system.telescope.RTA.phaseZero = -0.029 -system.telescope.RTB.phaseZero = 2.095 -system.telescope.RTC.phaseZero = -15.160 -system.telescope.RTD.phaseZero = -7.415 - -# residualDelay and phaseZero values determined using task 181026004 -system.telescope.RT2.residualDelay = 5.458e-9 -system.telescope.RT3.residualDelay = 1.588e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.540e-9 -system.telescope.RT6.residualDelay = 9.805e-9 -system.telescope.RT7.residualDelay = 6.792e-9 -system.telescope.RT8.residualDelay = 6.659e-9 -system.telescope.RT9.residualDelay = 6.574e-9 -system.telescope.RTA.residualDelay = 5.169e-9 -system.telescope.RTB.residualDelay = 3.178e-9 -system.telescope.RTC.residualDelay = 3.901e-9 -system.telescope.RTD.residualDelay = 41.556e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.091 -system.telescope.RT4.phaseZero = -0.555 -system.telescope.RT5.phaseZero = 4.380 -system.telescope.RT6.phaseZero = 1.850 -system.telescope.RT7.phaseZero = 2.435 -system.telescope.RT8.phaseZero = 4.213 -system.telescope.RT9.phaseZero = 5.619 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.359 -system.telescope.RTC.phaseZero = -15.132 -system.telescope.RTD.phaseZero = -5.157 - -# residualDelay and phaseZero values determined using task 181026005 -# Manual reset as recommended by M. Norden -system.telescope.RT2.residualDelay = 0.000e-9 -system.telescope.RT3.residualDelay = 0.000e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 0.000e-9 -system.telescope.RT6.residualDelay = 0.000e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 0.000e-9 -system.telescope.RT9.residualDelay = 0.000e-9 -system.telescope.RTA.residualDelay = 0.000e-9 -system.telescope.RTB.residualDelay = 0.000e-9 -system.telescope.RTC.residualDelay = 0.000e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.000 -system.telescope.RT4.phaseZero = 0.000 -system.telescope.RT5.phaseZero = 0.000 -system.telescope.RT6.phaseZero = 0.000 -system.telescope.RT7.phaseZero = 0.000 -system.telescope.RT8.phaseZero = 0.000 -system.telescope.RT9.phaseZero = 0.000 -system.telescope.RTA.phaseZero = 0.000 -system.telescope.RTB.phaseZero = 0.000 -system.telescope.RTC.phaseZero = 0.000 -system.telescope.RTD.phaseZero = 0.000 - -# residualDelay and phaseZero values determined using task 181026006 -system.telescope.RT2.residualDelay = 5.459e-9 -system.telescope.RT3.residualDelay = 1.615e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.552e-9 -system.telescope.RT6.residualDelay = 9.784e-9 -system.telescope.RT7.residualDelay = 6.758e-9 -system.telescope.RT8.residualDelay = 6.573e-9 -system.telescope.RT9.residualDelay = 6.606e-9 -system.telescope.RTA.residualDelay = 5.132e-9 -system.telescope.RTB.residualDelay = 3.211e-9 -system.telescope.RTC.residualDelay = 3.866e-9 -system.telescope.RTD.residualDelay = 41.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -0.405 -system.telescope.RT4.phaseZero = 1.483 -system.telescope.RT5.phaseZero = -0.364 -system.telescope.RT6.phaseZero = -2.864 -system.telescope.RT7.phaseZero = -1.446 -system.telescope.RT8.phaseZero = 2.517 -system.telescope.RT9.phaseZero = -2.539 -system.telescope.RTA.phaseZero = 0.378 -system.telescope.RTB.phaseZero = -0.541 -system.telescope.RTC.phaseZero = -0.369 -system.telescope.RTD.phaseZero = 0.741 - -# residualDelay and phaseZero values determined using task 181026007 -# had to overrule the system.telescope.RTD.residualDelay by a fixed value (MN) -system.telescope.RT2.residualDelay = 5.448e-9 -system.telescope.RT3.residualDelay = 1.633e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.575e-9 -system.telescope.RT6.residualDelay = 9.806e-9 -system.telescope.RT7.residualDelay = 6.809e-9 -system.telescope.RT8.residualDelay = 6.594e-9 -system.telescope.RT9.residualDelay = 6.663e-9 -system.telescope.RTA.residualDelay = 5.142e-9 -system.telescope.RTB.residualDelay = 3.296e-9 -system.telescope.RTC.residualDelay = 4.038e-9 -system.telescope.RTD.residualDelay = 1.579e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.082 -system.telescope.RT4.phaseZero = -0.486 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.598 -system.telescope.RT7.phaseZero = 0.548 -system.telescope.RT8.phaseZero = 4.249 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.088 -system.telescope.RTB.phaseZero = 2.358 -system.telescope.RTC.phaseZero = -2.730 -system.telescope.RTD.phaseZero = -1.053 - -# residualDelay and phaseZero values determined using task 181026008 -system.telescope.RT2.residualDelay = 5.449e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.590e-9 -system.telescope.RT6.residualDelay = 8.514e-9 -system.telescope.RT7.residualDelay = 8.006e-9 -system.telescope.RT8.residualDelay = 6.615e-9 -system.telescope.RT9.residualDelay = 6.630e-9 -system.telescope.RTA.residualDelay = 5.173e-9 -system.telescope.RTB.residualDelay = 2.022e-9 -system.telescope.RTC.residualDelay = 4.020e-9 -system.telescope.RTD.residualDelay = 2.881e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.113 -system.telescope.RT4.phaseZero = -0.471 -system.telescope.RT5.phaseZero = -1.669 -system.telescope.RT6.phaseZero = -0.679 -system.telescope.RT7.phaseZero = -1.303 -system.telescope.RT8.phaseZero = 4.260 -system.telescope.RT9.phaseZero = -0.737 -system.telescope.RTA.phaseZero = -0.085 -system.telescope.RTB.phaseZero = 4.365 -system.telescope.RTC.phaseZero = -2.478 -system.telescope.RTD.phaseZero = -2.941 - -# residualDelay and phaseZero values determined using task 181026010 -system.telescope.RT2.residualDelay = 5.454e-9 -system.telescope.RT3.residualDelay = 1.617e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.539e-9 -system.telescope.RT6.residualDelay = 8.545e-9 -system.telescope.RT7.residualDelay = 8.014e-9 -system.telescope.RT8.residualDelay = 6.563e-9 -system.telescope.RT9.residualDelay = 6.552e-9 -system.telescope.RTA.residualDelay = 5.125e-9 -system.telescope.RTB.residualDelay = 1.932e-9 -system.telescope.RTC.residualDelay = 3.912e-9 -system.telescope.RTD.residualDelay = 2.888e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.027 -system.telescope.RT4.phaseZero = -0.466 -system.telescope.RT5.phaseZero = -1.671 -system.telescope.RT6.phaseZero = -2.641 -system.telescope.RT7.phaseZero = 0.479 -system.telescope.RT8.phaseZero = 4.304 -system.telescope.RT9.phaseZero = -0.813 -system.telescope.RTA.phaseZero = -0.060 -system.telescope.RTB.phaseZero = 2.412 -system.telescope.RTC.phaseZero = -2.485 -system.telescope.RTD.phaseZero = -0.960 - -# residualDelay and phaseZero values determined using task 181026011 by JS -system.telescope.RT2.residualDelay = 5.445e-9 -system.telescope.RT3.residualDelay = 1.593e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.501e-9 -system.telescope.RT6.residualDelay = 8.513e-9 -system.telescope.RT7.residualDelay = 7.986e-9 -system.telescope.RT8.residualDelay = 6.619e-9 -system.telescope.RT9.residualDelay = 6.580e-9 -system.telescope.RTA.residualDelay = 5.104e-9 -system.telescope.RTB.residualDelay = 1.994e-9 -system.telescope.RTC.residualDelay = 3.948e-9 -system.telescope.RTD.residualDelay = 2.713e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.768 -system.telescope.RT6.phaseZero = -2.633 -system.telescope.RT7.phaseZero = 0.452 -system.telescope.RT8.phaseZero = 4.170 -system.telescope.RT9.phaseZero = -0.969 -system.telescope.RTA.phaseZero = -0.176 -system.telescope.RTB.phaseZero = 2.238 -system.telescope.RTC.phaseZero = -2.726 -system.telescope.RTD.phaseZero = -1.043 - -# residualDelay and phaseZero values determined using task 181102001 by JS -system.telescope.RT2.residualDelay = 5.453e-9 -system.telescope.RT3.residualDelay = 1.591e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.477e-9 -system.telescope.RT6.residualDelay = 8.505e-9 -system.telescope.RT7.residualDelay = 6.764e-9 -system.telescope.RT8.residualDelay = 6.675e-9 -system.telescope.RT9.residualDelay = 6.637e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 2.006e-9 -system.telescope.RTC.residualDelay = 3.944e-9 -system.telescope.RTD.residualDelay = 1.572e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.128 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.614 -system.telescope.RT6.phaseZero = -2.545 -system.telescope.RT7.phaseZero = 2.389 -system.telescope.RT8.phaseZero = 4.495 -system.telescope.RT9.phaseZero = -0.840 -system.telescope.RTA.phaseZero = -0.093 -system.telescope.RTB.phaseZero = 2.340 -system.telescope.RTC.phaseZero = -2.881 -system.telescope.RTD.phaseZero = 0.473 - -# residualDelay and phaseZero values determined using task 181102002 by JS -system.telescope.RT2.residualDelay = 5.408e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.490e-9 -system.telescope.RT6.residualDelay = 8.488e-9 -system.telescope.RT7.residualDelay = 6.782e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.650e-9 -system.telescope.RTA.residualDelay = 5.139e-9 -system.telescope.RTB.residualDelay = 2.018e-9 -system.telescope.RTC.residualDelay = 3.916e-9 -system.telescope.RTD.residualDelay = 1.693e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.133 -system.telescope.RT4.phaseZero = -0.543 -system.telescope.RT5.phaseZero = -1.692 -system.telescope.RT6.phaseZero = -2.603 -system.telescope.RT7.phaseZero = 0.516 -system.telescope.RT8.phaseZero = 4.555 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 2.311 -system.telescope.RTC.phaseZero = -2.890 -system.telescope.RTD.phaseZero = -1.242 - -# residualDelay and phaseZero values determined using task 181102003 JS -system.telescope.RT2.residualDelay = 5.417e-9 -system.telescope.RT3.residualDelay = 1.548e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.458e-9 -system.telescope.RT6.residualDelay = 8.501e-9 -system.telescope.RT7.residualDelay = 6.754e-9 -system.telescope.RT8.residualDelay = 6.704e-9 -system.telescope.RT9.residualDelay = 6.593e-9 -system.telescope.RTA.residualDelay = 5.187e-9 -system.telescope.RTB.residualDelay = 2.023e-9 -system.telescope.RTC.residualDelay = 3.959e-9 -system.telescope.RTD.residualDelay = 1.549e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.118 -system.telescope.RT4.phaseZero = -0.468 -system.telescope.RT5.phaseZero = -1.587 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = 0.633 -system.telescope.RT8.phaseZero = 4.648 -system.telescope.RT9.phaseZero = -0.676 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.382 -system.telescope.RTC.phaseZero = -2.815 -system.telescope.RTD.phaseZero = -0.963 - -# residualDelay and phaseZero values determined using task 181102004 by JS - -system.telescope.RT2.residualDelay = 5.435e-9 -system.telescope.RT3.residualDelay = 1.581e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.467e-9 -system.telescope.RT6.residualDelay = 8.496e-9 -system.telescope.RT7.residualDelay = 6.801e-9 -system.telescope.RT8.residualDelay = 6.662e-9 -system.telescope.RT9.residualDelay = 6.533e-9 -system.telescope.RTA.residualDelay = 5.120e-9 -system.telescope.RTB.residualDelay = 1.907e-9 -system.telescope.RTC.residualDelay = 3.950e-9 -system.telescope.RTD.residualDelay = 1.533e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.059 -system.telescope.RT4.phaseZero = -0.498 -system.telescope.RT5.phaseZero = -1.713 -system.telescope.RT6.phaseZero = -2.560 -system.telescope.RT7.phaseZero = 0.490 -system.telescope.RT8.phaseZero = 4.584 -system.telescope.RT9.phaseZero = -0.856 -system.telescope.RTA.phaseZero = -0.046 -system.telescope.RTB.phaseZero = 2.245 -system.telescope.RTC.phaseZero = -2.944 -system.telescope.RTD.phaseZero = -1.373 - -# residualDelay and phaseZero values determined using task 181102005 JS -system.telescope.RT2.residualDelay = 5.465e-9 -system.telescope.RT3.residualDelay = 1.608e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.486e-9 -system.telescope.RT6.residualDelay = 8.561e-9 -system.telescope.RT7.residualDelay = 6.772e-9 -system.telescope.RT8.residualDelay = 6.680e-9 -system.telescope.RT9.residualDelay = 6.646e-9 -system.telescope.RTA.residualDelay = 5.117e-9 -system.telescope.RTB.residualDelay = 2.017e-9 -system.telescope.RTC.residualDelay = 3.974e-9 -system.telescope.RTD.residualDelay = 1.586e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.095 -system.telescope.RT4.phaseZero = -0.496 -system.telescope.RT5.phaseZero = -1.725 -system.telescope.RT6.phaseZero = -2.592 -system.telescope.RT7.phaseZero = 0.576 -system.telescope.RT8.phaseZero = 4.483 -system.telescope.RT9.phaseZero = -0.955 -system.telescope.RTA.phaseZero = -0.196 -system.telescope.RTB.phaseZero = 2.038 -system.telescope.RTC.phaseZero = -2.987 -system.telescope.RTD.phaseZero = -1.406 - -# residualDelay and phaseZero values determined using task 181108005 -system.telescope.RT2.residualDelay = 5.429e-9 -system.telescope.RT3.residualDelay = 1.569e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.494e-9 -system.telescope.RT6.residualDelay = 8.487e-9 -system.telescope.RT7.residualDelay = 3.177e-9 -system.telescope.RT8.residualDelay = 6.606e-9 -system.telescope.RT9.residualDelay = 6.666e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 1.949e-9 -system.telescope.RTC.residualDelay = 4.004e-9 -system.telescope.RTD.residualDelay = 42.857e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.044 -system.telescope.RT4.phaseZero = -0.700 -system.telescope.RT5.phaseZero = -1.799 -system.telescope.RT6.phaseZero = -2.711 -system.telescope.RT7.phaseZero = -1.490 -system.telescope.RT8.phaseZero = 4.021 -system.telescope.RT9.phaseZero = -1.085 -system.telescope.RTA.phaseZero = -0.327 -system.telescope.RTB.phaseZero = 2.012 -system.telescope.RTC.phaseZero = -3.314 -system.telescope.RTD.phaseZero = -1.354 - -# residualDelay and phaseZero values determined using task 181108006 -system.telescope.RT2.residualDelay = 5.457e-9 -system.telescope.RT3.residualDelay = 1.592e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.543e-9 -system.telescope.RT6.residualDelay = 8.530e-9 -system.telescope.RT7.residualDelay = 3.266e-9 -system.telescope.RT8.residualDelay = 6.641e-9 -system.telescope.RT9.residualDelay = 6.639e-9 -system.telescope.RTA.residualDelay = 5.185e-9 -system.telescope.RTB.residualDelay = 1.988e-9 -system.telescope.RTC.residualDelay = 3.993e-9 -system.telescope.RTD.residualDelay = 42.970e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.046 -system.telescope.RT4.phaseZero = -0.651 -system.telescope.RT5.phaseZero = -1.708 -system.telescope.RT6.phaseZero = -2.726 -system.telescope.RT7.phaseZero = -0.568 -system.telescope.RT8.phaseZero = 4.070 -system.telescope.RT9.phaseZero = -0.827 -system.telescope.RTA.phaseZero = -0.001 -system.telescope.RTB.phaseZero = 2.189 -system.telescope.RTC.phaseZero = -2.954 -system.telescope.RTD.phaseZero = -1.359 - -# residualDelay and phaseZero values determined using task 181108007 -system.telescope.RT2.residualDelay = 5.461e-9 -system.telescope.RT3.residualDelay = 1.627e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.518e-9 -system.telescope.RT6.residualDelay = 8.508e-9 -system.telescope.RT7.residualDelay = 3.217e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.674e-9 -system.telescope.RTA.residualDelay = 5.198e-9 -system.telescope.RTB.residualDelay = 1.942e-9 -system.telescope.RTC.residualDelay = 3.832e-9 -#system.telescope.RTD.residualDelay = 43.078e-9 -system.telescope.RTD.residualDelay = 0.000e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.030 -system.telescope.RT4.phaseZero = -0.656 -system.telescope.RT5.phaseZero = -1.617 -system.telescope.RT6.phaseZero = -2.635 -system.telescope.RT7.phaseZero = -0.360 -system.telescope.RT8.phaseZero = 4.184 -system.telescope.RT9.phaseZero = -0.816 -system.telescope.RTA.phaseZero = 0.066 -system.telescope.RTB.phaseZero = 2.259 -system.telescope.RTC.phaseZero = -3.144 -system.telescope.RTD.phaseZero = -1.386 - -# residualDelay and phaseZero values determined using task 181109001 -system.telescope.RT2.residualDelay = 5.452e-9 -system.telescope.RT3.residualDelay = 1.612e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.761e-9 -system.telescope.RT7.residualDelay = 3.200e-9 -system.telescope.RT8.residualDelay = 6.632e-9 -system.telescope.RT9.residualDelay = 6.599e-9 -system.telescope.RTA.residualDelay = 5.149e-9 -system.telescope.RTB.residualDelay = 2.025e-9 -system.telescope.RTC.residualDelay = 3.573e-9 -system.telescope.RTD.residualDelay = 1.568e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.143 -system.telescope.RT4.phaseZero = -0.503 -system.telescope.RT5.phaseZero = -1.590 -system.telescope.RT6.phaseZero = -4.433 -system.telescope.RT7.phaseZero = -0.436 -system.telescope.RT8.phaseZero = 4.169 -system.telescope.RT9.phaseZero = -0.699 -system.telescope.RTA.phaseZero = -0.094 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.296 -system.telescope.RTD.phaseZero = -3.863 - -# residualDelay and phaseZero values determined using task 181109003 -system.telescope.RT2.residualDelay = 5.433e-9 -system.telescope.RT3.residualDelay = 1.595e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.529e-9 -system.telescope.RT6.residualDelay = 9.701e-9 -system.telescope.RT7.residualDelay = 3.160e-9 -system.telescope.RT8.residualDelay = 6.613e-9 -system.telescope.RT9.residualDelay = 6.611e-9 -system.telescope.RTA.residualDelay = 5.122e-9 -system.telescope.RTB.residualDelay = 2.046e-9 -system.telescope.RTC.residualDelay = 3.628e-9 -system.telescope.RTD.residualDelay = 1.610e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.162 -system.telescope.RT4.phaseZero = -0.474 -system.telescope.RT5.phaseZero = -1.581 -system.telescope.RT6.phaseZero = -2.530 -system.telescope.RT7.phaseZero = -0.415 -system.telescope.RT8.phaseZero = 4.204 -system.telescope.RT9.phaseZero = -0.810 -system.telescope.RTA.phaseZero = -0.114 -system.telescope.RTB.phaseZero = 2.154 -system.telescope.RTC.phaseZero = -3.691 -system.telescope.RTD.phaseZero = -1.496 - -# residualDelay and phaseZero values determined using task 181109004 JS -system.telescope.RT2.residualDelay = 5.490e-9 -system.telescope.RT3.residualDelay = 1.661e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.517e-9 -system.telescope.RT6.residualDelay = 9.781e-9 -system.telescope.RT7.residualDelay = 3.195e-9 -system.telescope.RT8.residualDelay = 6.673e-9 -system.telescope.RT9.residualDelay = 6.618e-9 -system.telescope.RTA.residualDelay = 5.209e-9 -system.telescope.RTB.residualDelay = 2.062e-9 -system.telescope.RTC.residualDelay = 3.850e-9 -system.telescope.RTD.residualDelay = 1.598e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.142 -system.telescope.RT4.phaseZero = -0.451 -system.telescope.RT5.phaseZero = -1.532 -system.telescope.RT6.phaseZero = -2.600 -system.telescope.RT7.phaseZero = -0.472 -system.telescope.RT8.phaseZero = 4.203 -system.telescope.RT9.phaseZero = -0.766 -system.telescope.RTA.phaseZero = -0.158 -system.telescope.RTB.phaseZero = 2.191 -system.telescope.RTC.phaseZero = -3.550 -system.telescope.RTD.phaseZero = -1.429 -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116001 -system.telescope.RT2.residualDelay = 5.463e-9 -system.telescope.RT3.residualDelay = 1.654e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.476e-9 -system.telescope.RT6.residualDelay = 8.528e-9 -system.telescope.RT7.residualDelay = 4.454e-9 -system.telescope.RT8.residualDelay = 6.571e-9 -system.telescope.RT9.residualDelay = 6.691e-9 -system.telescope.RTA.residualDelay = 5.160e-9 -system.telescope.RTB.residualDelay = 3.357e-9 -system.telescope.RTC.residualDelay = 3.794e-9 -system.telescope.RTD.residualDelay = 1.604e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.239 -system.telescope.RT4.phaseZero = -0.440 -system.telescope.RT5.phaseZero = -1.589 -system.telescope.RT6.phaseZero = -0.554 -system.telescope.RT7.phaseZero = -2.423 -system.telescope.RT8.phaseZero = 4.168 -system.telescope.RT9.phaseZero = -0.786 -system.telescope.RTA.phaseZero = -0.171 -system.telescope.RTB.phaseZero = -0.046 -system.telescope.RTC.phaseZero = -3.854 -system.telescope.RTD.phaseZero = -1.964 - -# residualDelay and phaseZero values determined using task 181116002 -system.telescope.RT2.residualDelay = 5.438e-9 -system.telescope.RT3.residualDelay = 1.607e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.502e-9 -system.telescope.RT6.residualDelay = 8.515e-9 -system.telescope.RT7.residualDelay = 4.407e-9 -system.telescope.RT8.residualDelay = 6.620e-9 -system.telescope.RT9.residualDelay = 6.660e-9 -system.telescope.RTA.residualDelay = 5.236e-9 -system.telescope.RTB.residualDelay = 3.310e-9 -system.telescope.RTC.residualDelay = 4.084e-9 -system.telescope.RTD.residualDelay = 1.672e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.271 -system.telescope.RT4.phaseZero = -0.421 -system.telescope.RT5.phaseZero = -1.631 -system.telescope.RT6.phaseZero = -2.427 -system.telescope.RT7.phaseZero = -0.532 -system.telescope.RT8.phaseZero = 4.017 -system.telescope.RT9.phaseZero = -0.673 -system.telescope.RTA.phaseZero = -0.218 -system.telescope.RTB.phaseZero = 1.959 -system.telescope.RTC.phaseZero = -3.881 -system.telescope.RTD.phaseZero = -1.905 - -# residualDelay and phaseZero values determined using task 181116003 -system.telescope.RT2.residualDelay = 5.480e-9 -system.telescope.RT3.residualDelay = 1.678e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.522e-9 -system.telescope.RT6.residualDelay = 8.540e-9 -system.telescope.RT7.residualDelay = 4.480e-9 -system.telescope.RT8.residualDelay = 6.660e-9 -system.telescope.RT9.residualDelay = 6.704e-9 -system.telescope.RTA.residualDelay = 5.227e-9 -system.telescope.RTB.residualDelay = 3.294e-9 -system.telescope.RTC.residualDelay = 4.114e-9 -system.telescope.RTD.residualDelay = 1.661e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.243 -system.telescope.RT4.phaseZero = -0.394 -system.telescope.RT5.phaseZero = -1.554 -system.telescope.RT6.phaseZero = -2.396 -system.telescope.RT7.phaseZero = -0.537 -system.telescope.RT8.phaseZero = 4.144 -system.telescope.RT9.phaseZero = -0.658 -system.telescope.RTA.phaseZero = -0.070 -system.telescope.RTB.phaseZero = 1.900 -system.telescope.RTC.phaseZero = -2.800 -system.telescope.RTD.phaseZero = -1.745 - -# residualDelay and phaseZero values determined using task 181116005 -system.telescope.RT2.residualDelay = 5.456e-9 -system.telescope.RT3.residualDelay = 1.667e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.506e-9 -system.telescope.RT6.residualDelay = 8.552e-9 -system.telescope.RT7.residualDelay = 4.469e-9 -system.telescope.RT8.residualDelay = 6.562e-9 -system.telescope.RT9.residualDelay = 6.705e-9 -system.telescope.RTA.residualDelay = 5.188e-9 -system.telescope.RTB.residualDelay = 3.324e-9 -system.telescope.RTC.residualDelay = 4.110e-9 -system.telescope.RTD.residualDelay = 1.703e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.285 -system.telescope.RT4.phaseZero = -0.458 -system.telescope.RT5.phaseZero = -1.564 -system.telescope.RT6.phaseZero = -2.420 -system.telescope.RT7.phaseZero = -0.467 -system.telescope.RT8.phaseZero = 4.080 -system.telescope.RT9.phaseZero = -0.638 -system.telescope.RTA.phaseZero = -0.124 -system.telescope.RTB.phaseZero = 1.826 -system.telescope.RTC.phaseZero = -3.389 -system.telescope.RTD.phaseZero = -1.815 - -# residualDelay and phaseZero values determined using task 181116006 -system.telescope.RT2.residualDelay = 5.428e-9 -system.telescope.RT3.residualDelay = 1.613e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 4.468e-9 -system.telescope.RT6.residualDelay = 8.507e-9 -system.telescope.RT7.residualDelay = 4.409e-9 -system.telescope.RT8.residualDelay = 6.505e-9 -system.telescope.RT9.residualDelay = 6.625e-9 -system.telescope.RTA.residualDelay = 5.136e-9 -system.telescope.RTB.residualDelay = 3.280e-9 -system.telescope.RTC.residualDelay = 4.068e-9 -system.telescope.RTD.residualDelay = 1.670e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.317 -system.telescope.RT4.phaseZero = -0.389 -system.telescope.RT5.phaseZero = -1.538 -system.telescope.RT6.phaseZero = -2.342 -system.telescope.RT7.phaseZero = -0.447 -system.telescope.RT8.phaseZero = 3.970 -system.telescope.RT9.phaseZero = -0.640 -system.telescope.RTA.phaseZero = -0.152 -system.telescope.RTB.phaseZero = 1.915 -system.telescope.RTC.phaseZero = -3.538 -system.telescope.RTD.phaseZero = -1.902 - -# residualDelay and phaseZero values determined using task 181120007 -system.telescope.RT2.residualDelay = 2.977e-9 -system.telescope.RT3.residualDelay = 5.307e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.096e-9 -system.telescope.RT6.residualDelay = 10.958e-9 -system.telescope.RT7.residualDelay = 4.476e-9 -system.telescope.RT8.residualDelay = 7.739e-9 -system.telescope.RT9.residualDelay = 6.567e-9 -system.telescope.RTA.residualDelay = 4.960e-9 -system.telescope.RTB.residualDelay = 7.008e-9 -system.telescope.RTC.residualDelay = 3.652e-9 -system.telescope.RTD.residualDelay = 6.643e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -2.417 -system.telescope.RT4.phaseZero = 0.905 -system.telescope.RT5.phaseZero = -0.210 -system.telescope.RT6.phaseZero = -2.772 -system.telescope.RT7.phaseZero = 1.864 -system.telescope.RT8.phaseZero = 0.899 -system.telescope.RT9.phaseZero = -2.482 -system.telescope.RTA.phaseZero = -0.643 -system.telescope.RTB.phaseZero = -0.986 -system.telescope.RTC.phaseZero = -6.518 -system.telescope.RTD.phaseZero = -3.940 - -# residualDelay and phaseZero values determined using task 181120008 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.314e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.090e-9 -system.telescope.RT6.residualDelay = 10.945e-9 -system.telescope.RT7.residualDelay = 4.421e-9 -system.telescope.RT8.residualDelay = 7.796e-9 -system.telescope.RT9.residualDelay = 6.548e-9 -system.telescope.RTA.residualDelay = 4.922e-9 -system.telescope.RTB.residualDelay = 7.013e-9 -system.telescope.RTC.residualDelay = 3.761e-9 -system.telescope.RTD.residualDelay = 6.641e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.582 -system.telescope.RT4.phaseZero = -1.697 -system.telescope.RT5.phaseZero = 1.401 -system.telescope.RT6.phaseZero = -1.652 -system.telescope.RT7.phaseZero = -0.654 -system.telescope.RT8.phaseZero = 0.168 -system.telescope.RT9.phaseZero = -5.165 -system.telescope.RTA.phaseZero = -3.529 -system.telescope.RTB.phaseZero = 2.048 -system.telescope.RTC.phaseZero = -3.539 -system.telescope.RTD.phaseZero = -5.402 - -# residualDelay and phaseZero values determined using task 181120009 -system.telescope.RT2.residualDelay = 2.974e-9 -system.telescope.RT3.residualDelay = 5.330e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.144e-9 -system.telescope.RT6.residualDelay = 10.929e-9 -system.telescope.RT7.residualDelay = 4.477e-9 -system.telescope.RT8.residualDelay = 7.755e-9 -system.telescope.RT9.residualDelay = 6.536e-9 -system.telescope.RTA.residualDelay = 4.976e-9 -system.telescope.RTB.residualDelay = 6.997e-9 -system.telescope.RTC.residualDelay = 3.880e-9 -system.telescope.RTD.residualDelay = 6.704e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = 0.600 -system.telescope.RT4.phaseZero = -1.704 -system.telescope.RT5.phaseZero = 1.380 -system.telescope.RT6.phaseZero = -1.703 -system.telescope.RT7.phaseZero = -0.782 -system.telescope.RT8.phaseZero = 0.208 -system.telescope.RT9.phaseZero = -5.248 -system.telescope.RTA.phaseZero = -3.649 -system.telescope.RTB.phaseZero = 2.004 -system.telescope.RTC.phaseZero = -3.502 -system.telescope.RTD.phaseZero = -5.530 - -# residualDelay and phaseZero values determined using task 181123001 -system.telescope.RT2.residualDelay = 0.476e-9 -system.telescope.RT3.residualDelay = 9.099e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 1.732e-9 -system.telescope.RT6.residualDelay = 13.341e-9 -system.telescope.RT7.residualDelay = 0.921e-9 -system.telescope.RT8.residualDelay = 8.849e-9 -system.telescope.RT9.residualDelay = 6.500e-9 -system.telescope.RTA.residualDelay = 4.836e-9 -system.telescope.RTB.residualDelay = 12.066e-9 -system.telescope.RTC.residualDelay = 2.928e-9 -system.telescope.RTD.residualDelay = 9.397e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -1.829 -system.telescope.RT4.phaseZero = -0.236 -system.telescope.RT5.phaseZero = 3.080 -system.telescope.RT6.phaseZero = -1.666 -system.telescope.RT7.phaseZero = -0.010 -system.telescope.RT8.phaseZero = -2.646 -system.telescope.RT9.phaseZero = -6.555 -system.telescope.RTA.phaseZero = -3.916 -system.telescope.RTB.phaseZero = 3.266 -system.telescope.RTC.phaseZero = -1.055 -system.telescope.RTD.phaseZero = -4.422 - - -# residualDelay and phaseZero values determined using task 181123002 -system.telescope.RT2.residualDelay = 0.621e-9 -system.telescope.RT3.residualDelay = 15.511e-9 -system.telescope.RT4.residualDelay = 2.638e-9 -system.telescope.RT5.residualDelay = 2.914e-9 -system.telescope.RT6.residualDelay = 18.391e-9 -system.telescope.RT7.residualDelay = 0.000e-9 -system.telescope.RT8.residualDelay = 12.579e-9 -system.telescope.RT9.residualDelay = 8.998e-9 -system.telescope.RTA.residualDelay = 7.286e-9 -system.telescope.RTB.residualDelay = 19.632e-9 -system.telescope.RTC.residualDelay = 3.820e-9 -system.telescope.RTD.residualDelay = 14.621e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -4.265 -system.telescope.RT4.phaseZero = 1.218 -system.telescope.RT5.phaseZero = 4.772 -system.telescope.RT6.phaseZero = -1.655 -system.telescope.RT7.phaseZero = 0.718 -system.telescope.RT8.phaseZero = -5.535 -system.telescope.RT9.phaseZero = -7.917 -system.telescope.RTA.phaseZero = -4.215 -system.telescope.RTB.phaseZero = 4.487 -system.telescope.RTC.phaseZero = 1.298 -system.telescope.RTD.phaseZero = -3.381 - - -# residualDelay and phaseZero values determined using task 181123006 -system.telescope.RT2.residualDelay = 2.944e-9 -system.telescope.RT3.residualDelay = 5.400e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.072e-9 -system.telescope.RT6.residualDelay = 10.971e-9 -system.telescope.RT7.residualDelay = 5.645e-9 -system.telescope.RT8.residualDelay = 7.649e-9 -system.telescope.RT9.residualDelay = 6.515e-9 -system.telescope.RTA.residualDelay = 4.995e-9 -system.telescope.RTB.residualDelay = 5.787e-9 -system.telescope.RTC.residualDelay = 3.329e-9 -system.telescope.RTD.residualDelay = 6.591e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.449 -system.telescope.RT4.phaseZero = -0.335 -system.telescope.RT5.phaseZero = 4.807 -system.telescope.RT6.phaseZero = 0.761 -system.telescope.RT7.phaseZero = 0.784 -system.telescope.RT8.phaseZero = -7.524 -system.telescope.RT9.phaseZero = -10.245 -system.telescope.RTA.phaseZero = -2.455 -system.telescope.RTB.phaseZero = 1.666 -system.telescope.RTC.phaseZero = 0.638 -system.telescope.RTD.phaseZero = -1.772 - - -# residualDelay and phaseZero values determined using task 181123007 -system.telescope.RT2.residualDelay = 2.990e-9 -system.telescope.RT3.residualDelay = 5.378e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.142e-9 -system.telescope.RT6.residualDelay = 10.954e-9 -system.telescope.RT7.residualDelay = 5.785e-9 -system.telescope.RT8.residualDelay = 7.716e-9 -system.telescope.RT9.residualDelay = 6.612e-9 -system.telescope.RTA.residualDelay = 5.031e-9 -system.telescope.RTB.residualDelay = 5.834e-9 -system.telescope.RTC.residualDelay = 3.489e-9 -system.telescope.RTD.residualDelay = 6.650e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.440 -system.telescope.RT4.phaseZero = -1.594 -system.telescope.RT5.phaseZero = 7.803 -system.telescope.RT6.phaseZero = -1.442 -system.telescope.RT7.phaseZero = -0.486 -system.telescope.RT8.phaseZero = -5.954 -system.telescope.RT9.phaseZero = -11.272 -system.telescope.RTA.phaseZero = -3.214 -system.telescope.RTB.phaseZero = 2.267 -system.telescope.RTC.phaseZero = 2.608 -system.telescope.RTD.phaseZero = 1.312 - - -# residualDelay and phaseZero values determined using task 181123008 -system.telescope.RT2.residualDelay = 2.991e-9 -system.telescope.RT3.residualDelay = 5.381e-9 -system.telescope.RT4.residualDelay = 0.000e-9 -system.telescope.RT5.residualDelay = 3.117e-9 -system.telescope.RT6.residualDelay = 10.937e-9 -system.telescope.RT7.residualDelay = 5.683e-9 -system.telescope.RT8.residualDelay = 7.719e-9 -system.telescope.RT9.residualDelay = 6.546e-9 -system.telescope.RTA.residualDelay = 4.970e-9 -system.telescope.RTB.residualDelay = 5.798e-9 -system.telescope.RTC.residualDelay = 3.492e-9 -system.telescope.RTD.residualDelay = 6.662e-9 -system.telescope.RT2.phaseZero = 0.000 -system.telescope.RT3.phaseZero = -5.539 -system.telescope.RT4.phaseZero = -1.694 -system.telescope.RT5.phaseZero = 7.825 -system.telescope.RT6.phaseZero = -1.562 -system.telescope.RT7.phaseZero = -0.395 -system.telescope.RT8.phaseZero = -5.991 -system.telescope.RT9.phaseZero = -11.217 -system.telescope.RTA.phaseZero = -3.274 -system.telescope.RTB.phaseZero = 2.217 -system.telescope.RTC.phaseZero = 2.721 -system.telescope.RTD.phaseZero = 1.250 - diff --git a/atdb_services_pip/atdb_services/service_add_dataproduct.py b/atdb_services_pip/atdb_services/service_add_dataproduct.py deleted file mode 100644 index 9710378b5d597c5410a1e5f9e16ed41460b79498..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_add_dataproduct.py +++ /dev/null @@ -1,66 +0,0 @@ -""" - File name: service_cleanup.py - Author: Nico Vermaas - Astron - Date created: 2018-12-11 - Date last modified: 2018-12-11 - Description: An ATDB service to add new dataproducts to a running observation. - This can be called from a SC4 trigger. -""" - -STATUS_DPS_DEFINED = 'defined' - -# -------------------------------------------------------------------------------------------------------- -def do_add_dataproduct(atdb, taskid, node, data_dir, filename): - # retrieve the parent observation to get some extra information that has to be stored with the dataproduct - parent_id = atdb.atdb_interface.do_GET_ID(key='observations:taskID', value=taskid) - if data_dir is not None: - data_location = data_dir - else: - data_location = atdb.atdb_interface.do_GET(key='observations:data_location', id=parent_id, taskid=None) - irods_collection = atdb.atdb_interface.do_GET(key='observations:irods_collection', id=parent_id, taskid=None) - - - - payload = "{" -# payload += "name=" + filename + ',' -# payload += "taskID=" + str(taskid) + ',' -# payload += "parent=" + str(parent_id) + ',' -# payload += "node=" + str(node) + ',' -# payload += "filename=" + filename + ',' -# payload += "data_location=" + data_location + ',' -# payload += "irods_collection=" + irods_collection + ',' -# payload += "description=" + filename + ',' -# payload += "size=0" + ',' -# payload += "quality=?" + ',' -# payload += "new_status=" + str(STATUS_DPS_DEFINED) - - #payload += '"field_dec" : "' + str(field_dec) + '",' - payload += '"name" : "' + str(filename) + '",' - payload += '"taskID" : "' + str(taskid) + '",' - payload += '"parent" : "' + str(parent_id) + '",' - payload += '"node" : "' + str(node) + '",' - payload += '"filename" : "' + str(filename) + '",' - payload += '"data_location" : "' + str(data_location) + '",' - payload += '"irods_collection" : "' + str(irods_collection) + '",' - payload += '"description" : "' + str(filename) + '",' - payload += '"size" : "0",' - payload += '"quality" : "?",' - payload += '"new_status=" : "' + str(STATUS_DPS_DEFINED) + '"' - payload += "}" - - atdb.report('*add_dataproduct* is adding ' + filename + ' to Observation ' + str(taskid)) - # atdb.atdb_interface.do_POST(resource='dataproducts', payload=payload) - atdb.atdb_interface.do_POST_json(resource='dataproducts', payload=payload) - - -def do_add_dataproducts(atdb, taskid, dataproducts): - """ - add a batch of dataproducts to a taskid. - This function is not abstracted into a commandline call like 'service -o add_dataproducts', but could be if needed. - :param atdb: - :param taskid: - :param dataproducts: json list of dataproducts to be added to the provided taskid - """ - - atdb.report('*add_dataproducts* is adding ' + str(len(dataproducts)) + 'dataproducts to Observation ' + str(taskid)) - return atdb.atdb_interface.do_POST_dataproducts(taskid,dataproducts) \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/service_checkup.py b/atdb_services_pip/atdb_services/service_checkup.py deleted file mode 100644 index e55c88827876c9dc45a5d368e4dbb9eb1125d9f7..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_checkup.py +++ /dev/null @@ -1,140 +0,0 @@ -""" - File name: service_checkup.py - Author: Nico Vermaas - Astron - Date created: 2019-10-22 - Description: An ATDB service to check if the database is still consistant with ALTA and the datawriters -""" - -import os -import datetime -import time - -def get_age_in_hours(atdb,target_timestring): - - now = datetime.datetime.utcnow() - target_time = datetime.datetime.strptime(target_timestring, atdb.TIME_FORMAT) - - # Convert to Unix timestamp - d1_ts = time.mktime(now.timetuple()) - d2_ts = time.mktime(target_time.timetuple()) - age_in_hours = round(((d1_ts - d2_ts) / 3600), 2) - - return age_in_hours - -# ------------------------------------------------------------------------------------------------------------------ - -def checkup_removed_from_datawriter(atdb, args): - - # check if observations are indeed removed from the datawriter - - # build the query to include all statusses with 'removed' in it. This will also search for 'removed (manual)' - STATUS_TO_CHECK = 'removed' - query = 'my_status__icontains='+STATUS_TO_CHECK - - # note that this service runs locally on the datawriter, so it only checks observations for this datawriter - if atdb.host_filter!='': - query = query + '&data_location__icontains=' + atdb.host_filter - - # possibly an extra --query is given to limit the range of taskid's to check - if args.query!=None: - query = query + "&" + args.query - - # gather the list of taskIDs to check - count = 0 - page = 1 - while page > 0: - - taskIDs, total_count, next_page = atdb.atdb_interface.do_GET_LIST_page(key='observations:taskID', - query=query, page=page) - - if total_count > 0: - atdb.report('*checkup * found '+str(total_count)+ ' observations to check.') - - # loop through the list of 'removed' observations and check if they exists - for taskID in taskIDs: - count = count + 1 - atdb.report('checking ' + str(count) + ' of ' + str(total_count)) - - data_dir = atdb.atdb_interface.do_GET(key='observations:data_location', id=None, taskid=taskID) - - # split off the host from the location - # host should now always be onboard... - try: - datawriter, data_location = data_dir.split(':') - except: - # ... just in case the host is not onboard - data_location = data_dir - - # every dataproduct is a different directory in the main folder. - # If one exists, they all exists, so just search for beam 000 - # construct a directory name - directory = 'WSRTA'+taskID+"_B000.MS" - - try: - - filepath = os.path.join(data_location, directory) - if os.path.exists(filepath): - # uhoh, it is still there. Do not remove, but warn. - atdb.report("WARNING: "+taskID+" still exists on disk") - - - except Exception as err: - - atdb.report("ERROR by *checkup* : " + str(err),"print,slack") - - page = int(next_page) - - - -def checkup_completed_observations(atdb, args, process_type, age_limit_in_hours): - - # check if observations are indeed removed from the datawriter - - # build the query to include all statusses with 'removed' in it. This will also search for 'removed (manual)' - - query = "my_status__icontains=completed&process_type__icontains="+process_type - - # possibly an extra --query is given to limit the range of taskid's to check - if args.query != None: - query = query + "&" + args.query - - # gather the list of taskIDs to check - count = 0 - page = 1 - while page > 0: - - taskIDs, total_count, next_page = atdb.atdb_interface.do_GET_LIST_page(key='observations:taskID', - query=query, page=page) - - if total_count > 0: - atdb.report('*checkup * found ' + str(total_count) + ' observations to check.') - - # loop through the list of 'removed' observations and check if they exists - for taskID in taskIDs: - count = count + 1 - try: - endtime = atdb.atdb_interface.do_GET(key='observations:endtime', id=None, taskid=taskID) - - age_in_hours = get_age_in_hours(atdb,endtime) - - if (age_in_hours > age_limit_in_hours): - atdb.report(str(count) + " - " + taskID + " age in hours: " + str(age_in_hours) + "... cleanup","slack") - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value="cleanup") - - except Exception as err: - - atdb.report("ERROR by *checkup* : " + str(err), "print,slack") - - page = int(next_page) - - -# -------------------------------------------------------------------------------------------------------- -def do_checkup(atdb, args): - - # check if removed observations still exist on the current datawriter - #checkup_removed_from_datawriter(atdb,args) - - # check if there are 'completed' verification observations in ATDB. - checkup_completed_observations(atdb, args, 'validation', 24) - - # checkup_completed_observations(atdb, args, 'system', 100) \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/service_cleanup.py b/atdb_services_pip/atdb_services/service_cleanup.py deleted file mode 100644 index d2fa66b878cc0d3f4a303d0e8f20757c1ffc6d2b..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_cleanup.py +++ /dev/null @@ -1,167 +0,0 @@ -""" - File name: service_cleanup.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Date last modified: 2018-12-02 - Description: An ATDB service to remove dataproducts from the file system. - It looks in ATDB for Observations with status 'archived' or 'removing', and within thouse for - for dataproducts with status 'archived'. It removes those dataproducts and then puts the - statusses of dataproducta and observations to 'removed'. -""" - -import os -import shutil -import datetime -from datetime import timedelta -import time - -STATUS_SKIP = 'ingesting' # the operation of this service will be skipped for this status - -def get_age_in_hours(atdb,target_timestring): - - now = datetime.datetime.utcnow() - target_time = datetime.datetime.strptime(target_timestring, atdb.TIME_FORMAT) - - # Convert to Unix timestamp - d1_ts = time.mktime(now.timetuple()) - d2_ts = time.mktime(target_time.timetuple()) - age_in_hours = round(((d1_ts - d2_ts) / 3600), 2) - - return age_in_hours - - -def get_timestamp_by_age(age_in_hours): - - now = datetime.datetime.utcnow() - target_time = now - timedelta(hours=age_in_hours) - - return target_time - - -# -------------------------------------------------------------------------------------------------------- -def do_checkup_completed_observations(atdb, args, query, age_limit_in_hours): - """ - This function looks for 'completed' observations in ATDB for a given 'query' and age limit. - - :param atdb: - :param args: - :param process_type: 'validation' or 'system'? - :param age_limit_in_hours: completed observations older than this limit will be put to 'cleanup' - :return: - """ - - # possibly an extra --query is given to limit the range of taskid's to check - if args.query != None: - query = query + "&" + args.query - - # gather the list of taskIDs to check - count = 0 - page = 1 - while page > 0: - target_time = get_timestamp_by_age(age_limit_in_hours) - # make sure only observations for the given observing_mode and host machine are cleaned - query = query + '&observing_mode__icontains=' + atdb.obs_mode_filter + '&data_location__icontains=' + atdb.host_filter - # query = query + '&observing_mode__icontains=' + atdb.obs_mode_filter - query = query + '&endtime__lt='+str(target_time) - - taskIDs, total_count, next_page = atdb.atdb_interface.do_GET_LIST_page(key='observations:taskID', - query=query, page=page) - - if total_count > 0: - atdb.report('*cleanup* found ' + str(total_count) + ' completed observations to clean up.',"slack") - - # loop through the list of 'removed' observations and check if they exists - for taskID in taskIDs: - count = count + 1 - try: - endtime = atdb.atdb_interface.do_GET(key='observations:endtime', id=None, taskid=taskID) - - age_in_hours = get_age_in_hours(atdb, endtime) - - if (age_in_hours > age_limit_in_hours): - - # first set all the dataproducts to the 'cleanup' status - # this is actually a bit overkill when the do_cleanup could be made faster by not checking the status - # of the dataproducts. But I find that too scary. The extra check isn't time critical. - ids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + taskID) - for id in ids: - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value="cleanup") - - # set the observation to the 'cleanup', so it will be picked up by the actual do_cleanup function - atdb.report(str(count) + " - " + taskID + " age in hours: " + str(age_in_hours) + "...go clean up", "slack") - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value="cleanup") - - - except Exception as err: - - atdb.report("ERROR by *checkup* : " + str(err), "print,slack") - - page = int(next_page) - -# -------------------------------------------------------------------------------------------------------- -def do_cleanup(atdb,STATUS_START,STATUS_END): - # check if observations and dataproducts with status 'archived' or 'removing' and puts their status to 'removed' - - # get the list taskID of 'archived/removed' observations - query = 'my_status=' + STATUS_START + '&observing_mode__icontains=' + atdb.obs_mode_filter + '&data_location__icontains=' + atdb.host_filter - - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - - if len(taskIDs) > 0: - atdb.report('*cleanup* found the following ' + STATUS_START + ' tasks : ' + str(taskIDs) + ' with status '+STATUS_START,"slack") - - # loop through the list of 'archived/removed/cleanup' observations and gather its archived dataproducts, - for taskID in taskIDs: - # to prevent a race condition, check if the ingest_monitor is all finished by checking for 'ingesting' dps. - still_ingesting = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', - query='taskID=' + taskID + '&my_status=' + STATUS_SKIP) - - # If there are still 'ingesting' dataproducts then abort the cleanup, next try on the next polling heartbeat. - if len(still_ingesting) > 0: - atdb.report( - '*cleanup* is skipping a heartbeat. *ingest_monitor* is still handling : ' + str(still_ingesting)) - else: - ids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', - query='taskID=' + taskID + '&my_status__in=' + STATUS_START) - for id in ids: - # data_location = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - data_dir = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - - # split off the host from the location - # host should now always be onboard... - try: - _, data_location = data_dir.split(':') - except: - # ... just in case the host is not onboard - data_location = data_dir - - filename = atdb.atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - filepath = os.path.join(data_location, filename) - - # If a cluster or remote machine is used (like for ARTS SC4) then the 'node' field has the value of - # a remote machine. In that case the dataproducts on that remote machine are searched. - # Otherwise the dataproducts are searched on the local machine. - node = atdb.atdb_interface.do_GET(key='dataproducts:node', id=id, taskid=None) - - try: - if (node is None): - atdb.report('removing (local)' + filepath) - - if os.path.isfile(filepath): - os.remove(filepath) - else: - shutil.rmtree(filepath) - - else: - atdb.report('removing (remote)' + filepath) - atdb.remove_dataproduct_remote(node, data_location, filename) - - except Exception as err: - atdb.report("ERROR by *cleanup* : \n"+str(err) + "...continuing.","print,slack") - - # whether removing worked or not, continue to put the dataproduct status on 'removed' (from view). - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value=STATUS_END) - - # wether all dataproducts were succesfully removed or not, put the status of the observation on 'removed' - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_END) - atdb.report("*cleanup* service: " + taskID + " " + STATUS_END, "slack") \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/service_data_monitor.py b/atdb_services_pip/atdb_services/service_data_monitor.py deleted file mode 100644 index 9210f5625b0868cfbfb9e6d043df17c8d42c4462..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_data_monitor.py +++ /dev/null @@ -1,192 +0,0 @@ -""" - File name: service_do_data_monitor.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Description: checks for completing observations. It then checks for all its defined dataproducts, - gathers their sizes, and finally puts the status to complete, incomplete - (or completed when the skip_auto_ingest parameter was specified). - During this operation, the status is briefly set to checking to prevent a race condition with itatdb) -""" - -import os -import time - -#STATUS_COMPLETING = 'completing_sc4' # only works for this status -STATUS_COMPLETING = 'completing' -STATUS_END = 'valid' -STATUS_SKIP_AUTO_INGEST = 'completed' -STATUS_INCOMPLETE = 'incomplete' -STATUS_CHECKING = 'checking' -STATUS_DEFINED_DPS = 'defined' -STATUS_VALID_DPS = 'valid' -STATUS_INVALID_DPS = 'invalid' - -def get_size_local(atdb, filepath): - """ - Get the size of a file (FITS) or directory (MS) - dataproduct is locally searched through the filesystem - :param atdb: instance of the atdb_interface - :param filepath: - :return: full path to search for (file or dir) - """ - # get the size of the file (FITS) or directory (MS) - if os.path.isfile(filepath): - size = os.path.getsize(filepath) - else: - size = atdb.get_dir_size(filepath) - return size - - -def get_size_remote(atdb, node, filepath): - """ - Get the size of a file (FITS) - dataproduct is remotely searched with a ssh command - :param atdb: instance of the atdb_interface - :param filepath: full path to search for (file or dir) - """ - size = atdb.get_filesize_remote(node,filepath) - return size - - -def translate_arts_filename(filename): - """ - arts has hardcoded filenames like tabA.fits to tabL.fits. Reconstruct these filenames to find them. - :param filename: filename from ATDB - :return: arts_filename - """ - # for science_mode=IAB every dataproduct has the same name: tabA.fits - arts_filename = 'tabA.fits' - - try: - # for science_mode=TAB, there are 12 different possible filenames, ranging from tabA.fits to tabL.fits - # to make this algorithm more generic I check the filename itself, not the science_mode. - - # isolate the tab number - i = filename.find('TAB') + 3 - j = filename.find('.fits') - tab = filename[i:j] - - # translate the tab number to the character that is used by ARTS, 01 -> A, 02 -> B, ... , 12 -> L - character = chr(64+int(tab)) - arts_filename = 'tab'+character+'.fits' - - except: - # if this fails, then assume a non TAB observation and continue. - pass - - return arts_filename - -# --- Main Service ----------------------------------------------------------------------------------------------- - -def do_data_monitor(atdb): - # get the list taskID of 'completed' observations - - task_end_status = STATUS_END - - # query = 'my_status='+STATUS_COMPLETING+'&observing_mode__icontains=' + atdb.obs_mode_filter - query = 'my_status='+STATUS_COMPLETING+'&observing_mode__icontains=' + atdb.obs_mode_filter+'&data_location__icontains=' + atdb.host_filter - - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - - if len(taskIDs) > 0: - atdb.report('*data_monitor* found the following '+STATUS_COMPLETING+' tasks : ' + str(taskIDs)) - - # loop through the list of 'completed' observations and check if its 'defined' dataproducts have manifested - for taskID in taskIDs: - observing_mode = atdb.atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) - - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_CHECKING) - atdb.report("*data_monitor* : " + taskID + " " + STATUS_CHECKING,"slack") - - # should this observation be automatically ingested and removed? or is the skip flag set? - skip_ingest = atdb.atdb_interface.do_GET(key='observations:skip_auto_ingest', id=None, taskid=taskID) - if str(skip_ingest) == 'True': - task_end_status = STATUS_SKIP_AUTO_INGEST - - ids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + taskID + '&my_status='+STATUS_DEFINED_DPS) - # atdb.report("ids = " + str(ids), "slack") - - for id in ids: - - # check if the file exists and get its size. - # data_location = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - data_dir = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - - # split off the host from the location - # host should now always be onboard... - try: - _, data_location = data_dir.split(':') - except: - # ... just in case the host is not onboard - data_location = data_dir - - try: - filename = atdb.atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - filepath = os.path.join(data_location, filename) - - # If a cluster or remote machine is used (like for ARTS SC4) then the 'node' field has the value of - # a remote machine. In that case the dataproducts on that remote machine are searched. - # Otherwise the dataproducts are searched on the local machine. - node = atdb.atdb_interface.do_GET(key='dataproducts:node', id=id, taskid=None) - - # get the size of the file (FITS) or directory (MS) - if (node is None): - # dataproducts are local - atdb.report('checking dataproduct (local) ' + filepath + '...') - size = get_size_local(atdb, filepath) - else: - # dataproducts are on a remote machine - #filename_arts = translate_arts_filename(filename) - #atdb.report('translate_arts_filename '+filename + ' -> '+filename_arts) - - # copy the dataproduct remotely. This is currently the safest option as long as - # the ARTS4 scripts are not adjusted to use the ATDB metadata. - # atdb.report('copy_dataproduct_remote (' + filename_arts + ',' + filename + ')') - # atdb.copy_dataproduct_remote(node, data_location, filename_arts, filename) - - # scp from remote to local works, but commented out because it is not needed (now). - #atdb.report('scp_dataproduct (' + filename + ',/home/vagrant/atdb-client/ff/' + filename + ')') - #atdb.scp_dataproduct(node, data_location, filename, '/home/vagrant/atdb-client/ff', filename) - - # renaming a remote dataproduct works and is much faster than remote copy, to be used later? - # rename the dataproduct from tab?.fits to its expected filename (like ARTS190103001_CB19.fits) - #atdb.report('move_dataproduct_remote (' + filename_arts + ',' + filename + ')') - #atdb.move_dataproduct_remote(node, data_location, filename_arts, filename) - - # check the filesize - atdb.report('checking dataproduct (remote on node '+node+') ' + filepath + '...') - size = get_size_remote(atdb, node, filepath) - - # renaming a remote dataproduct works and is much faster than remote copy, to be used later? - # rename the dataproduct back to its original name (temporarily). - # atdb.report('move_dataproduct_remote (' + filename + ',' + filename_arts + ')') - # atdb.move_dataproduct_remote(node, data_location, filename, filename_arts) - - - atdb.report('...size = ' + str(size)) - atdb.atdb_interface.do_PUT(key='dataproducts:size', id=id, taskid=None, value=size) - - # very simple validation functionality, just checking for file/dir size > 0 bytes. - if int(size) > 0: - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value=STATUS_VALID_DPS) - else: - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value=STATUS_INVALID_DPS) - atdb.report("ERROR by *data_monitor* : "+filepath+ " not found.","print,slack") - task_end_status = STATUS_INCOMPLETE - - except Exception as err: - # file not found. What should I do, wait for it? (leave status on 'defined') or give it an error status? - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value=STATUS_INVALID_DPS) - message = "ERROR by *data_monitor* : " + str(err) - atdb.report("ERROR by *data_monitor* : " + str(err),"print,slack") - task_end_status = STATUS_INCOMPLETE - - # do a final check for 'invalid' dataproducts (which may be put in manually or otherwise through the REST API or GUI). - invalids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', - query='taskID=' + taskID + '&my_status='+STATUS_INVALID_DPS) - if (len(invalids) > 0): - task_end_status = STATUS_INCOMPLETE - - # when all dps have been checked, put observation status back to 'complete' or 'incomplete'. - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=task_end_status) - atdb.report("*data_monitor* : " + taskID + " " + task_end_status,"slack") \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/service_executor.py b/atdb_services_pip/atdb_services/service_executor.py deleted file mode 100644 index dc237c549c9fa00d09e27ff311cfa63fa03433ea..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_executor.py +++ /dev/null @@ -1,325 +0,0 @@ -""" - File name: service_executor.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Date last modified: 2018-12-14 - Description: checks for scheduled observations. When the specified starttime is almost reached, - a parset is put on the messagebus so the system can start, and the status in ATDB is set to running. - This will happen 10 minutes before the actual starttime when the telescopes are free, - or 1 minute before the actual starttime when there is already a running observation. - The executor also checks for running observations. - When the specified endtime is reached this service waits for 30 seconds and then sets - the ATDB status to 'completing' (for imaging) or 'combine' (for arts_sc1) -""" -import os -import time -import datetime - - -try: - #import atdb_parset_generator as atdb_parset_generator - - # the dependency on the messagebus (needs to be installed on the system where the executor runs - from apertif.messaging.RPC import RPCWrapper - #from apertif.messaging.send_file import send_and_wait_files - - skip_parset_generator = False -except Exception as e: - skip_parset_error_message = "ERROR: apertif.messaging.RPC could not be loaded :" + str(e) + \ - "\nContinuing without parset generation/start observation" - skip_parset_generator = True - - - -# T = 11 minute, start the parset generation. -MINUTES_LEFT_TO_START_PARSET_DEFAULT = 10 -MINUTES_LEFT_TO_START_PARSET_IF_RUNNING = 1 -COMPLETING_ERROR_TRESHOLD = -15 -COMPLETING_ERROR_TRESHOLD_IMAGING = -1 - -STATUS_SCHEDULED = 'scheduled' # the statusses that trigger this service. -STATUS_STARTING = 'starting' -STATUS_RUNNING = 'running' -STATUS_COMBINE = 'combine' -STATUS_COMPLETING = 'completing' # this service will leave the observation in this state -STATUS_ERROR_NO_COMPLETING = 'error (no completing)' # this service will leave the observation in this state - -# --- Helper Function --------------------------------------------------------------------------------------------- -def timeit(method): - def timed(*args, **kw): - ts = time.time() - result = method(*args, **kw) - te = time.time() - if 'log_time' in kw: - name = kw.get('log_name', method.__name__.upper()) - kw['log_time'][name] = int((te - ts) * 1000) - else: - print('execution time: %r %2.2f ms' % \ - (method.__name__, (te - ts) * 1000)) - return result - return timed - -def send_parset_to_bus(parset_path, timeout=20.0): - """ - Send parset to the bus and wait for response - :param parset_path: path to the parset file - :param timeout: number of seconds to wait for responses from controllers (opt) - :return: reply: reply from the bus for this parset file - """ - reply = send_and_wait_files(parset_path, timeout=timeout) - reply = reply[parset_path] - return reply - - -def get_minutes_left(atdb, target_timestring): - """ - Determine how many minutes is left until the target_time is reached - :param target_timestring: The target time defined as string "YYYY-MM-DDThh:mm:ss" - :return: minutes left - A negative number of minutes means that the current time has already reached the target_time, - there is no time left. - A positive number of minutes means that there is still time left - """ - now = datetime.datetime.utcnow() - target_time = datetime.datetime.strptime(target_timestring, atdb.TIME_FORMAT) - - # Convert to Unix timestamp - d1_ts = time.mktime(now.timetuple()) - d2_ts = time.mktime(target_time.timetuple()) - minutes_left = round(((d2_ts - d1_ts) / 60), 2) - - return minutes_left - -@timeit -def start_observation(atdb, taskID): - """ - Start the observation by: - - creating a parset file from template (location) - - sending the generated parset file to message bus (not in testmode) - - set status of the observation to 'starting' - :param atdb: Instance of atdb - :param taskID: The taskID of the observation to start - """ - atdb.report('*executor* : start_observation :' + taskID, "slack") - - # Get all observation parameters - observation = atdb.atdb_interface.do_GET_Observation(taskID) - - parset_template = observation['parset_location'] - parset_dir, _ = os.path.split(parset_template) - - - if not atdb.testmode: - # Make (blocking) RPC call to parset_rpc service to - # generate the parset for the specified observation. - - # nv: 23 may 2019 This is a temporary switch to enable/disable the previous API of the parset_generator - new_new_parset = True - if new_new_parset: - # KJW 25 jun 2019. Increase timeout to 30s (>> 20.0 = timeout in parset_rpc) - # to ensure that the RPC call doesn't timeout before parset_rpc. - with RPCWrapper('APERTIF', 'ParsetRPC', timeout=30.0) as parset_rpc: - parset_file = parset_rpc.rpc( - 'send_start_observation', - observation, - template_path=parset_template, - parset_dir=parset_dir) - atdb.report('*executor* : created and sent (new new) parset ' + parset_file, "slack") - - else: - # nv: 23 may 2019 keep this alive for imaging as long as no new Apertif software is deployed - with RPCWrapper('APERTIF', 'ParsetRPC') as parset_rpc: - parset_file = parset_rpc.rpc( - 'create_start_observation_parset', - observation, - template_path=parset_template, - parset_dir=parset_dir) - atdb.report('*executor* : created and sent (old new) parset ' + parset_file, "slack") - - time.sleep(int(5)) # Vanessa wants 5 seconds, KJ wants no seconds - reply = str(send_parset_to_bus(str(parset_file))) - atdb.report('*executor* : sent parset to messagebus ', "slack") - - # when the file isn't shared over nfs fast enough we could have an error - if "Error" in reply: - # {'status': 'Error', 'error_messages': 'Unable to open file /opt/apertif/share/parsets/190509039.parset'} - message = "*executor* : WARNING " + reply +", retrying..." - atdb.report(message, "slack") - return - - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_STARTING) - message = "*executor* :" + taskID + " " + STATUS_STARTING - else: - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_STARTING) - message = "*executor* :" + taskID + " " + STATUS_STARTING + ' (testmode)' - - atdb.report(message,"slack") - - # take a short breath to give this status a chance to arrive in ATDB, - # to prevent an occasional race condition with the next step for observations that - # are timed less than a minute apart.. (just to be on the safer side). - time.sleep(int(3)) - -@timeit -def end_observation(atdb, taskID, minutes_left): - - observing_mode = atdb.atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) - if ('ARTS_SC4' in observing_mode.upper()): - # nv: 1 feb 2019, from now on the ARTS controller will send the 'completing' message. - atdb.report("*executor* : " + taskID + " expecting ARTS_SC4 controller to send " + STATUS_COMPLETING,"slack") - - elif ('ARTS_SC1' in observing_mode.upper()): - # nv: 13 may 2019, from now on the ARTS controller will send the 'completing' message. - atdb.report("*executor* : " + taskID + " expecting ARTS_SC1 controller to send " + STATUS_COMPLETING,"slack") - - elif ('IMAGING' in observing_mode.upper()): - #atdb.report('go to sleep for 30 seconds to give the datawriter time to complete writing...','print') - #time.sleep(int(30)) - #atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_COMPLETING) - #atdb.report("*executor* : " + taskID + " " + STATUS_COMPLETING,"slack") - - # nv: 27 feb 2019, from now on the IMAGING controller will send the 'completing' message. (deactivated the next day) - # nv: 27 may 2019, reactivated it. - atdb.report("*executor* : " + taskID + " expecting datawriter_control to send " + STATUS_COMPLETING,"slack") - - # the imaging backstop for backward compatiliby - # if the controller has not sent 'completing' after 1 minute, then I do it. - if (minutes_left < COMPLETING_ERROR_TRESHOLD_IMAGING): - # arts sc1, prepare observation to be picked up by the 'combine' service. Only for 'arts_sc1_timing' - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_COMPLETING) - atdb.report("*executor* : imaging backstop, " + taskID + " " + STATUS_COMPLETING, "slack") - - # the backstop - # if the controller has not sent 'completing' after 15 minutes, then set an error - if (minutes_left < COMPLETING_ERROR_TRESHOLD): - # arts sc1, prepare observation to be picked up by the 'combine' service. Only for 'arts_sc1_timing' - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_ERROR_NO_COMPLETING) - atdb.report("*executor* : backstop, " + taskID + " " + STATUS_ERROR_NO_COMPLETING, "slack") - - -def get_minutes_left_to_start_parset(atdb): - # This is where the 'algorithm' is called to determine how much time is needed for the telescopes to slew - # into position between observations. To be expanded later. - - # default - minutes_left = MINUTES_LEFT_TO_START_PARSET_DEFAULT - - # check if there are 'running' or 'starting' observations. If so, change the slew time. - query = 'my_status__in=' + STATUS_STARTING + ',' + STATUS_RUNNING + '&observing_mode__icontains=' + atdb.obs_mode_filter - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - if len(taskIDs) > 0: - minutes_left = MINUTES_LEFT_TO_START_PARSET_IF_RUNNING - - atdb.report('parset starting window = ' + str(minutes_left)) - return minutes_left - - -@timeit -def handle_running_to_completing(atdb): - # get the list taskID of 'running' observations for the required obs_mode_filter (arts, imaging or all) - query = 'my_status=' + STATUS_RUNNING + '&observing_mode__icontains=' + atdb.obs_mode_filter - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - if len(taskIDs) > 0: - atdb.report('*executor* found the following ' + STATUS_RUNNING + ' tasks : ' + str(taskIDs)) - - # loop through the 'running' observations and check if they should be 'completed' - for taskID in taskIDs: - # check if their endtime has arrived. - endtime = atdb.atdb_interface.do_GET(key='observations:endtime', id=None, taskid=taskID) - minutes_left = get_minutes_left(atdb, endtime) - atdb.report(taskID + ' completing in ' + str(minutes_left) + ' minutes... and counting') - - # T = 0 minute, complete the observation. - if minutes_left < 0: - end_observation(atdb, taskID, minutes_left) - -@timeit -def handle_starting_to_running(atdb): - query = 'my_status=' + STATUS_STARTING + '&observing_mode__icontains=' + atdb.obs_mode_filter - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - if len(taskIDs) > 0: - atdb.report('*executor* found the following ' + STATUS_STARTING + ' tasks : ' + str(taskIDs)) - - # loop through the 'started' observations - for taskID in taskIDs: - # check if their starttime has arrived. - starttime = atdb.atdb_interface.do_GET(key='observations:starttime', id=None, taskid=taskID) - minutes_left = get_minutes_left(atdb, starttime) - if minutes_left < 0: - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_RUNNING) - atdb.report("*executor* : " + taskID + " " + STATUS_RUNNING,"slack") - - -def get_next_scheduled_observation(atdb): - # for which datawriter? split off the 'wcudata1:/' or 'wcudata2:/' from the data_location - datawriter = "" - next_taskID, next_minutes_left = atdb.atdb_interface.do_GET_NextObservation(STATUS_SCHEDULED, atdb.obs_mode_filter, datawriter) - return next_taskID,next_minutes_left - - -@timeit -def handle_scheduled_to_starting(atdb): - - # get the next scheduled observation (if any). - taskID, minutes_left = get_next_scheduled_observation(atdb) - - if taskID!=None: - atdb.report("*executor* : next scheduled observation is "+str(taskID)+" in "+str(minutes_left)+ " minutes.") - - # T = -11 minute, start the parset generation. - # TODO: should there be an upper limit also where observations are too late to be put on 'running'? - # Comment Boudewijn: yes: that should be the time required to get the message to the controller - # My estimate would be 3 seconds - - if minutes_left < get_minutes_left_to_start_parset(atdb): - - if minutes_left < -1: - # too late to start - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, - value='error (too late)' + '') - atdb.report("ERROR by *executor*: " + taskID + " too late to start. Aborted.","slack") - - # recursion! - # when an observation is 'too late' then find the next one within the same heartbeat - handle_scheduled_to_starting(atdb) - - return - - if not skip_parset_generator: - try: - start_observation(atdb, taskID) - except Exception as err: - # nv: 3 jun 2019, when the parset_rpc times out, the observation ends in a error state, - # but there is probably still more than enough time to try again. So put it back on 'scheduled' and - # see if the next 'heartbeat' is more succsful... )report the error though) - # atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_SCHEDULED) - # atdb.report("ERROR by *executor* in parset_generator: " + str(err)+', retrying...', "slack") - - # KJW: 25 jun 2019. When parset_rpc times out it is not safe to retry since - # the start_observation is probably half done (i.e. on some but not all telescopes/controllers). - # Not all controllers can handle another start_observation for the same observation. Simply give up. - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value='error (start obs)') - atdb.report("ERROR by *executor*: " + taskID + " error starting observation. " + str(err), "slack") - return - - else: - atdb.report("*executor* : "+skip_parset_error_message,"slack") - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_STARTING) - atdb.report("*executor* : "+taskID+" "+STATUS_STARTING+" (skip parset_generator)","slack") - -# --- Main Service ----------------------------------------------------------------------------------------------- - -def do_executor(atdb): - - # --- from RUNNING to COMPLETING ------------------------ - # loop through 'running observations' and complete them when their endtime has arrived. - # note that the end status is different for imaging (completing) and arts_sc1 (combine). - handle_running_to_completing(atdb) - - # --- from STARTING to RUNNING ------------------------ - # get the list taskID of 'running' observations for the required obs_mode_filter (arts, imaging or all) - handle_starting_to_running(atdb) - - # --- from SCHEDULED to STARTING ------------------------ - # get the list taskID of 'scheduled' observations for the required obs_mode_filter (arts, imaging or all) - handle_scheduled_to_starting(atdb) diff --git a/atdb_services_pip/atdb_services/service_ingest_monitor.py b/atdb_services_pip/atdb_services/service_ingest_monitor.py deleted file mode 100644 index 6997266b7e724eff972db6166a88543e8004aacf..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_ingest_monitor.py +++ /dev/null @@ -1,118 +0,0 @@ -""" - File name: service_ingest_monitor.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Description: checks in ALTA if dataproducts are present, which marks a successful ingest. - Finally, the status is set to archived -""" - -STATUS_START = 'ingesting' # the statusses that trigger this service. -STATUS_END = 'archived' # this service will leave the observation and dataproducts in this state - -# -------------------------------------------------------------------------------------------------------- -def do_ingest_monitor(atdb): - - # check if observations and dataproducts with status 'ingesting' if they have arrived in ALTA - # if they do, then put the status on 'archived'. - - # get the list taskID of 'ingesting' observations - query = 'my_status=' + STATUS_START + '&observing_mode__icontains=' + atdb.obs_mode_filter - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - - if len(taskIDs) > 0: - atdb.report('*ingest_monitor* found the following ' + STATUS_START + ' tasks: ' + str(taskIDs)) - - # connect to ALTA - for taskID in taskIDs: - try: - if not atdb.testmode: - alta_id = atdb.alta_interface.do_GET_ID(key='activities:runId', value=taskID) - else: - # in testmode: fake a succesful query to ALTA - alta_id = 1 - except Exception as err: - raise (Exception("ERROR: " + str(err) + ' - perhaps could not reach ALTA at '+ atdb.alta_host)) - - if (int(alta_id) > 0): - atdb.report('Observation ' + taskID + ' found in ALTA = ' + str(alta_id)) - # dataproduct was found in ALTA, put it on 'archived' in ATDB - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_END) - atdb.report("*ingest_monitor* : " + taskID + " " + STATUS_END,"slack") - - if not atdb.testmode: - # Send a message to the #alta-transfer slack channel - observing_mode = atdb.atdb_interface.do_GET(key='observations:observing_mode', id=None, runid=taskID) - message_str = "ATDB: Ingest of taskID=%s (observing mode = %s) to ALTA is finished." % (str(taskID), str(observing_mode)) - atdb._send_message_to_alta_channel(message_str) - - # get the list of names of 'ingesting' dataproducts - names = atdb.atdb_interface.do_GET_LIST(key='dataproducts:name', query='my_status=' + STATUS_START) - - # connect to ALTA. - for name in names: - # get the alta_id of the dataproduct - try: - if not atdb.testmode: - alta_id = atdb.alta_interface.do_GET_ID(key='dataproducts:name', value=name) - else: - # in testmode: fake a succesful query to ALTA - alta_id = 1 - except Exception as err: - raise (Exception("ERROR: " + str(err) + ' - perhaps could not reach ALTA at '+ atdb.alta_host)) - - # atdb.report('Dataproduct found in ALTA = ' + str(alta_id)+' '+str(name)) - - # check if this dataproduct has already arrived in ALTA.. - if (int(alta_id) > 0): - # ... if it has arrived in ALTA then put it on 'archived' in ATDB - # get the atdb_id of this dataproduct - atdb_id = atdb.atdb_interface.do_GET_ID(key='dataproducts:name', value=name) - atdb.report('set status of ' + name + ' to ' + STATUS_END) - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=atdb_id, taskid=None, value=STATUS_END) - - -def handle_quality(atdb,check_quality,write_quality): - - query = "quality=" + check_quality - taskIDs = atdb.atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - - if len(taskIDs) > 0: - atdb.report('*ingest_monitor* found the following ' + query + ' tasks: ' + str(taskIDs)) - - # connect to ALTA - for taskID in taskIDs: - # check if alta can be reached - alta_id = atdb.alta_interface.do_GET_ID(key='activities:runId', value=taskID) - if (int(alta_id) > 0): - - # write the quality to both ATDB and ALTA - atdb.alta_interface.do_PUT(key='observations:quality', id=None, runid=taskID, value=write_quality) - atdb.atdb_interface.do_PUT(key='observations:quality', id=None, taskid=taskID, value=write_quality) - atdb.report("*ingest_monitor* : " + taskID + " => " + write_quality, "slack") - else: - # observation was not found in ALTA - atdb.atdb_interface.do_PUT(key='observations:quality', id=None, taskid=taskID, value="not_in_alta") - atdb.report("*ingest_monitor* : ERROR: " + taskID + " was not found in ALTA", "slack") - - - -def do_check_and_send_quality_to_alta(atdb): - """ - # check if observations have been put on 'go_to_good' or 'go_to_bad'. - # and if found, send a 'good' or 'bad' quality to ALTA. - # This is used in conjunction with the 'mark-period-as' functionality of the backend, with which - # (super)users can mark a range of observations as good/bad for replication/removal from ALTA. - - # note: this function is placed in the 'service_ingest_monitoring' service because this is the - # only service that communicates with ALTA. - # This way no extra services is needed, so no supervisor config needs to be changed, so the - # change to the system is as small as possible. - # it would be better to rename the service to something like 'service_alta_gateway', - # but that would also mean a change to supervisor config. Keeping it as simple as possible. - - :param atdb: - :return: - """ - - handle_quality(atdb,"data_is_good", "good") - handle_quality(atdb,"data_is_bad", "bad") diff --git a/atdb_services_pip/atdb_services/service_scheduler.py b/atdb_services_pip/atdb_services/service_scheduler.py deleted file mode 100644 index 1dce3126ac5f86f5429415002c2d3ea3c08d6bc4..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_scheduler.py +++ /dev/null @@ -1,24 +0,0 @@ -""" - File name: service_scheduler.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Date last modified: 2018-11-23 - Description: Add starttime and endtime to an existing observation and PUT it status on 'scheduled' -""" - -STATUS_END = 'scheduled' # this service will leave the observation in this state - -# -------------------------------------------------------------------------------------------------------- -def do_scheduler(atdb, taskid, starttime, endtime): - # Add starttime and endtime to an existing observation and PUT it status on 'scheduled' - - # put starttime into the databasse - if starttime != None: - atdb.atdb_interface.do_PUT(key='observations:starttime', id=None, taskid=taskid, value=starttime) - - # put endtime into the databasse - if endtime != None: - atdb.atdb_interface.do_PUT(key='observations:endtime', id=None, taskid=taskid, value=endtime) - - # put the observation on 'scheduled' - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskid, value=STATUS_END) diff --git a/atdb_services_pip/atdb_services/service_specification.py b/atdb_services_pip/atdb_services/service_specification.py deleted file mode 100644 index a0de02c1b22598c857f483e94cf51c806b85a96d..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_specification.py +++ /dev/null @@ -1,460 +0,0 @@ -""" - File name: service_specification.py - Author: Nico Vermaas - Astron - Date created: 2018-11-23 - Description: (Manual) specification service to specify both imaging and ARTS observations. -""" - -import os -import datetime -import time -import json -import logging - -TASKID_TIME_FORMAT = "%Y%m%d" -DURATION_TIME_FORMAT ="%H:%M:%S" -SPECIFICATION_TIME_FORMAT = "%Y-%m-%d %H:%M:%S" - -ALTA_IRODS_DEFAULT_INGEST_PATH="apertif_main/visibilities_default/" - -# --- Helper Functions --------------------------------------------------------------------------------------------- - -# decorator to time the execution of a function -def timeit(method): - def timed(*args, **kw): - ts = time.time() - result = method(*args, **kw) - te = time.time() - if 'log_time' in kw: - name = kw.get('log_name', method.__name__.upper()) - kw['log_time'][name] = int((te - ts) * 1000) - else: - print('execution time: %r %2.2f ms' % \ - (method.__name__, (te - ts) * 1000)) - return result - return timed - - -def get_number_of_dataproducts(atdb, pattern): - """ - Get the number of dataproducts based on the beam pattern (unless the number is already given - :param pattern: - :param ndps: - :return: - """ - - if pattern == 'ebm_20180720T090400.dat' or \ - pattern == 'ebm_20180720T064500.dat' or \ - pattern == 'ebm_20171214T104900.dat' or \ - pattern == 'hybridXX_20180928_8bit' or \ - pattern == 'square_39p1_8bit_37beams' or \ - pattern == 'square_39p1_37beams' or \ - pattern == 'central_element_beams_x_37beams' or \ - pattern == 'central_element_beams_y_37beams' or \ - pattern == 'dev_pass_si62': - ndps = 37 - elif pattern == 'calibrator_1beam' or \ - pattern == 'central_element_beam_x' or \ - pattern == 'central_element_beam_y': - ndps = 1 - elif pattern == 'testing_3beams': - ndps = 3 - elif pattern == 'square_39p1_8bit' or \ - pattern == 'square_39p1' or \ - pattern == 'central_element_beams_x' or \ - pattern == 'central_element_beams_y': - ndps = 40 - else: - atdb.report( - "WARNING by *specification*: unsupported beam pattern: " + pattern + '. Provide the --ndps parameter in the specification to indicate the number of dataproducts for this pattern.', - 'print,slack') - - return ndps - - - -@timeit -def generate_taskid(atdb, timestamp, taskid_postfix): - """ - :param atdb: the atdb interface abstraction layer - :param timestamp: timestamp on which the taskid is based - :param taskid_postfix: optional addition to the tasked, like 190405001_IMG - :return: taskid - """ - - taskid = atdb.atdb_interface.do_GET_NextTaskID(timestamp, taskid_postfix) - return taskid - - -def check_starttime(starttime): - now = datetime.datetime.utcnow() - target_time = datetime.datetime.strptime(starttime, SPECIFICATION_TIME_FORMAT) - - # Convert to Unix timestamp - d1_ts = time.mktime(now.timetuple()) - d2_ts = time.mktime(target_time.timetuple()) - if (d1_ts > d2_ts): - raise (Exception( - "ERROR by *specification*: starttime must be in the future: "+str(starttime))) - - -def check_datawriter_host(data_location): - """ - With the activation of datawriter2 the data_location must always have the format <datawriter>:data_location. - This function checks that and adds datawriter1 as default when it is missing. - :param data_location: - :return: data_location - """ - try: - host,path = data_location.split(':') - except: - # if no host is given, then add wcudata1 as a default - host = 'wcudata1:' - data_location = host+data_location - - return data_location - - -def calculate_endtime(atdb, starttime, duration): - """ - if given, use duration to calculate the endtime. - duration can come in 2 formats. As HH:mm:ss or as an integer in seconds. - :param atdb: - :param starttime: - :param duration: - :return: - """ - - ds = str(duration) - if (ds.find(':'))>=0: - target_time = time.strptime(ds, DURATION_TIME_FORMAT) - seconds = target_time.tm_hour*3600 + target_time.tm_min*60 + target_time.tm_sec - else: - seconds = int(duration) - - if seconds < 0: - raise (Exception( - "ERROR by *specification*: 'duration' is negative. WARNING! negative time could cause an FRB!.")) - - - # Convert to Unix timestamp - timestamp = datetime.datetime.strptime(starttime, SPECIFICATION_TIME_FORMAT) - endtime = timestamp + datetime.timedelta(seconds=seconds) - return endtime - - -@timeit -def do_create_parset(atdb, parset_location, taskID): - ''' - Early create the parset file. - :param atdb: the atdb interface abstraction layer - :param taskID: the taskID of the observation for which to generated the parset - :return string: path to generated parset - ''' - - parset_dir, parset_file = os.path.split(parset_location) - - # Get all observation parameters - observation = atdb.atdb_interface.do_GET_Observation(taskID) - - # Make (blocking) RPC call to parset_rpc service to - # generate the parset for the specified observation. - from apertif.messaging.RPC import RPCWrapper - with RPCWrapper('APERTIF', 'ParsetRPC') as parset_rpc: - parset_file = parset_rpc.rpc( - 'create_start_observation_parset', - observation, - template_path=parset_location, - parset_dir=parset_dir) - - return parset_file - - # try: - # import atdb_parset_generator as atdb_parset_generator - # parset_path_atdb = atdb_parset_generator.create_parset_from_template(atdb.atdb_interface, taskID, - # template_path=parset_location, - # parset_dir=parset_dir) - - # atdb.report('*specification* : created parset ' + parset_path_atdb, "slack") - # except Exception as e: - # atdb.report("ERROR: No parset created. parset_generator could not be imported: " + str(e),"slack") - - -# add dataproducts as a batch -@timeit -def add_dataproducts(atdb, taskid, ndps, observing_mode, new_status, field_name): - """ - add dataproduct as a batch to a given observation - :param atdb: - :param taskid: taskid of the observation to which the dataproducts are added - :param ndps: number of dataproducts to generated (based on beam_pattern) - :param observing_mode: Only 'Imaging' and 'ARTS_SC1' now still generate dataproducts - :param new_status: the status of the new dataproducts, this should be 'defined'. - :param field_name: For SC1 the field_name becomes part of the dataproduct filename - see ARTS algorithm : https://support.astron.nl/apertif_issuetracker/issues/2508 - :return: - """ - dps = [] - for i in range(int(ndps)): - dp = {} -# if ('ARTS_SC1' in observing_mode.upper()): -# pulsar = field_name.replace('+','p') -# pulsar = pulsar.replace('-','m') -# dp['filename'] = 'ARTS' + str(taskid) + '_' + pulsar + '.ar' -# dp['new_status'] = new_status - -# atdb.report('adding dataproduct : ' + str(dp['filename'])) -# dps.append(dp) - if ('IMAGING' in observing_mode.upper()): - dp['filename'] = 'WSRTA' + str(taskid) + '_B' + str(i).zfill((3)) + '.MS' - dp['new_status'] = new_status - - atdb.report('adding dataproduct : ' + str(dp['filename'])) - dps.append(dp) - - if len(dps)>0: - atdb.atdb_interface.do_POST_dataproducts(taskid, dps) - else: - atdb.report("*specification* : (intentionally?) no dataproducts created for observing_mode: " + str(observing_mode)) - - - -def assign_resources(atdb, observing_mode, data_location, science_observation, taskid): - """ - This is the precursor of the later 'atdb_reources' service that will handle this logic. - Currently this is only used to switch between wcudata1 and wcudata2 for certain imaging observations - :param observing_mode: - :param process_type: - :return: - """ - - # only do this for imaging - if 'IMAGING' in observing_mode.upper(): - - # only do it for 'science' observations - if science_observation: - - try: - # only do this when there is no host specified in data_location. - if not ":" in data_location: - - # check if a taskid is even - if (int(taskid) % 2) == 0: - # if so, change the host to wcudata2, in all other cases use wcudata1 - data_location = "wcudata2:" + data_location - atdb.report("*specification* : sending "+str(taskid)+" to wcudata2") - - except: - pass - # in all other cases, do nothing, 'check_datawriter_host' will catch it and assign wcudata1 - - # final check, if data_dir doesn't have a host, use wcudata1 - data_location = check_datawriter_host(data_location) - - return data_location - -def check_process_type(observing_mode, process_type): - """ - process_type is used as a container to drop some extra properties, - currently: science, system, filler, validation - They translate to some other settings - :return: - """ - science_observation = False - filler = False - - if "VALIDATION" in process_type.upper(): - science_observation = False - - if "FILLER" in process_type.upper(): - filler = True - - if "POINTING" in observing_mode.upper(): - science_observation = False - - if "SCIENCE" in process_type.upper(): - science_observation = True - - return science_observation,filler - -# --- Main Service ------- -# ---------------------------------------------------------------------------------------- -@timeit -def do_specification(atdb, taskid, taskid_postfix, initial_status, ndps, pattern, field_name, starttime, endtime, duration, field_ra, - field_ha, field_dec, field_beam, integration_factor, central_frequency, data_dir, irods_coll, - observing_mode, process_type, science_mode, parset_location, parset_only, create_parset_early, skip_auto_ingest, - telescopes, par_file_name, number_of_bins, start_band, end_band, process_triggers, beams, delay_center_offset, - locality_policy, max_lifetime_on_disk): - - # if no taskid is given, then generate the new taskid based on date and (optional) taskid_postfix - STATUS_OBS_END = 'scheduled' # this service will leave the observation in this state - STATUS_DPS_END = 'defined' # this service will leave the dataproducts in this state - - if initial_status!=None: - STATUS_OBS_END = initial_status # this service will leave the observation in this state - # STATUS_DPS_END = initial_status # leave the dataproducts on 'defined', otherwise the data_monitor service will not pick it up - - if taskid is None: - if starttime!=None: - target_time = datetime.datetime.strptime(starttime, SPECIFICATION_TIME_FORMAT) - timestamp = target_time.strftime(TASKID_TIME_FORMAT) - else: - timestamp = datetime.datetime.now().strftime(TASKID_TIME_FORMAT) - taskid = generate_taskid(atdb, timestamp, taskid_postfix) - - # an engineering/test mode to only create a parset without scheduling the observation - if parset_only: - STATUS_OBS_END = 'defined' - - # look at the beam pattern to discover how many dataproducts should be created. - # unless this is overridden by the ndps parameter. - if ndps is None: - ndps = get_number_of_dataproducts(atdb,pattern) - - - # If not irods collection is given, just use the default (apertif visibilities) one - if irods_coll is None: - irods_collection_str = ALTA_IRODS_DEFAULT_INGEST_PATH + str(taskid) - else: - if (not irods_coll.endswith('/')): - irods_coll += '/' - irods_collection_str = str(irods_coll) + str(taskid) - - # nv: 29 aug 2019: this is now handled by 'assign_resources' - # check datawriter host (only for imaging modes). - # if ('IMAGING' in observing_mode.upper()): - # data_dir = check_datawriter_host(data_dir) - # - - # check if the starttime is in the future - try: - check_starttime(starttime) - except: - raise (Exception( - "ERROR by *specification*: Invalid starttime.")) - - # if given, use duration to calculate the endtime. - if duration!= None: - if endtime!=None: - raise (Exception( - "ERROR by *specification*: Cannot use both endtime and duration. Please choose one.")) - else: - endtime = calculate_endtime(atdb, starttime,duration) - - # for ARTS dataproducts, also add the taskID as extra subdirectory to the data_location - if ('ARTS_SC1' in observing_mode.upper()): - #data_dir = os.path.join(data_dir, taskid) - try: - data_dir = data_dir + '/' + taskid - except Exception as err: - atdb.report("ERROR by *specification* : " + taskid + " has wrong or missing 'data_dir'", "print,slack") - raise (Exception(str(err))) - - # for ARTS_SC4, check if science mode is given - if ('ARTS_SC4' in observing_mode.upper()): - if science_mode is None: - error = "ERROR by *specification* : " + taskid + " missing '--science_mode' (must be TAB or IAB) " - atdb.report(error, "print,slack") - raise (Exception(str(error))) - - # translate the values from process_type into flags for the database - science_observation, filler = check_process_type(observing_mode, process_type) - - # this is the precursor for the later 'atdb_resources' service - # nv: 1 oct 2019, temporarily disabled because ingest doesn't work with both datawriters active - data_dir = assign_resources(atdb, observing_mode, data_dir, science_observation, taskid) - - # if max_lifetime_on_disk is not provided then set defaults - if max_lifetime_on_disk==None: - if ('ARTS' in observing_mode.upper()): - # 1 minute - max_lifetime_on_disk = 60 - else: - # 90 days (in minutes) - # max_lifetime_on_disk = 129600 - # 1 weeks (in minutes) - max_lifetime_on_disk = 20160 - - # --- construct payload as json ---------------- - payload = "{" - payload += '"name" : "' + str(field_name) + '",' - payload += '"taskID" : "' + str(taskid) + '",' - payload += '"starttime" : "' + str(starttime) + '",' - payload += '"endtime" : "' + str(endtime) + '",' - payload += '"task_type" : "observation",' - payload += '"beamPattern" : "' + str(pattern) + '",' - payload += '"field_name" : "' + str(field_name) + '",' - - if field_ra!=None: - payload += '"field_ra" : "' + str(field_ra) + '",' - else: - # nv: 29 apr 2019. For now, while using the old parset_generator still, field_ra needs a value. - # so, for driftscans (which has field_ha filled in), still write that value to field_ra also - payload += '"field_ra" : "' + str(field_ha) + '",' - - if field_ha!=None: - # occasionally there are imaging_pointing observations, which are only technical observations to - # recalibrate the telescopes and do not create scientific output. They are not pointed at a ra,dec, - # but at a position relative to the horizon. (hour angle). - # This is specified as 'field_ha', but (lazily) stored in the same field_ra as normal observations - # (so, this is not a typo but on purpose). - #payload += "field_ra=" + str(field_ha) + ',' - - # But on 15 april 2019 this behaviour has changed, because the temporary situation has become permanent - # by calling it 'drift scans'. The backend has been changed to include a field_ha database field. - payload += '"field_ha" : "' + str(field_ha) + '",' - - payload += '"field_dec" : "' + str(field_dec) + '",' - payload += '"field_beam" : "' + str(field_beam) + '",' - payload += '"integration_factor" : "' + str(integration_factor) + '",' - payload += '"central_frequency" : "' + str(central_frequency) + '",' - payload += '"data_location" : "' + str(data_dir) + '",' - payload += '"irods_collection" : "' + irods_collection_str + '",' - payload += '"max_lifetime_on_disk" : "' + str(max_lifetime_on_disk) + '",' - payload += '"locality_policy" : "' + str(locality_policy) + '",' - payload += '"parset_location" : "' + str(parset_location) + '",' - payload += '"observing_mode" : "' + str(observing_mode) + '",' - payload += '"process_type" : "' + str(process_type) + '",' - payload += '"science_mode" : "' + str(science_mode) + '",' - payload += '"skip_auto_ingest" : "' + str(skip_auto_ingest) + '",' - payload += '"science_observation" : "' + str(science_observation) + '",' - payload += '"filler" : "' + str(filler) + '",' - payload += '"telescopes" : "' + str(telescopes) + '",' - payload += '"par_file_name" : "' + str(par_file_name) + '",' - payload += '"number_of_bins" : "' + str(number_of_bins) + '",' - payload += '"start_band" : "' + str(start_band) + '",' - payload += '"end_band" : "' + str(end_band) + '",' - payload += '"process_triggers" : "' + str(process_triggers) + '",' - if delay_center_offset!=None: - payload += '"delay_center_offset" : "' + str(delay_center_offset) + '",' - - payload += '"beams" : "' + str(beams) + '",' - payload += '"new_status" : "defined"' - payload += "}" - - - atdb.report('adding observation : ' + str(taskid)) - - try: - atdb.atdb_interface.do_POST_json(resource='observations', payload=payload) - - except Exception as err: - atdb.report("ERROR by *specification* : " + taskid + " has specification error...","print,slack") - raise (Exception(str(err))) - - - # add dataproducts - add_dataproducts(atdb, taskid, ndps, observing_mode, STATUS_DPS_END, field_name) - - - # optional parameter to create a parset during specification time instead of near execution time - # nv: 12 apr 2019, The 'create_parset_early' functionality will be removed when the RPC calls to generate the - # parset are in place. Because it is really undesirable behaviour to have the parset created this early. - if (parset_only or create_parset_early): - do_create_parset(atdb, parset_location, taskid) - - # everything is done for this new observation, put its status to 'scheduled' - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskid, value=STATUS_OBS_END) - atdb.report("*specification* :" + taskid + " " + STATUS_OBS_END, "print,slack") - - print(taskid) diff --git a/atdb_services_pip/atdb_services/service_start_ingest.py b/atdb_services_pip/atdb_services/service_start_ingest.py deleted file mode 100644 index 326db9d56e2aceb70dc4b2740955c4967e6c5e93..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/service_start_ingest.py +++ /dev/null @@ -1,268 +0,0 @@ -""" - File name: service_start_ingest.py - Author: Roy de Goei, Nico Vermaas - Astron - Date created: 2018-11-23 - Description: This service checks for valid Observations, gathers its valid Dataproducts and starts the - Ingest to ALTA. At first, the status is set to ingesting (otherwise multiple starts of - the ingest of the taskid will happen). -""" - -import os -import datetime -import time - -try: - import atdb_ingest - #import atdb_services.atdb_ingest as atdb_ingest - skip_ingest = False -except Exception as e: - skip_ingest_error_message = "WARNING: No atdb_ingest loaded due to import error ->" + str(e) + \ - "\nContinuing without atdb_ingest" - skip_ingest = True - -INGEST_FAILED_STATUS = "ingest error" -TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ" - -STATUS_START = 'complete,valid' # the statusses that trigger this service. -STATUS_END = 'ingesting' # this service will leave the observation and dataproducts in this state -STATUS_INCOMPLETE= 'incomplete' -STATUS_VALID_DPS = 'valid' - -STATUS_VALID = 'valid' -STATUS_VALID_PRIORITY = 'valid_priority' - -# Files the the next extensions are considered as inspection plots file and will be ingested as separate -# irods-collection <taskID>_INSP -INSPECTION_PLOTS_FILES_EXT = ['.png', '.jpg', '.pdf', '.ps'] -INSPECTION_PLOTS_COLL_ADDITION = "_INSP" - -def timeit(method): - def timed(*args, **kw): - ts = time.time() - result = method(*args, **kw) - te = time.time() - if 'log_time' in kw: - name = kw.get('log_name', method.__name__.upper()) - kw['log_time'][name] = int((te - ts) * 1000) - else: - print('execution time: %r %2.2f ms' % \ - (method.__name__, (te - ts) * 1000)) - return result - return timed - -def get_size_local(atdb, filepath): - """ - Get the size of a file (FITS) or directory (MS) - dataproduct is locally searched through the filesystem - :param atdb: instance of the atdb_interface - :param filepath: - :return: full path to search for (file or dir) - """ - # get the size of the file (FITS) or directory (MS) - if os.path.isfile(filepath): - size = os.path.getsize(filepath) - else: - size = atdb.get_dir_size(filepath) - return size - - -def get_size_remote(atdb, node, filepath): - """ - Get the size of a file (FITS) - dataproduct is remotely searched with a ssh command - :param atdb: instance of the atdb_interface - :param filepath: full path to search for (file or dir) - """ - size = atdb.get_filesize_remote(node,filepath) - return size - - -def get_next_ingest(atdb, search_status): - next_taskID, next_minutes_left = atdb.atdb_interface.do_GET_NextObservation(search_status, atdb.obs_mode_filter, atdb.host_filter) - return next_taskID - -# -------------------------------------------------------------------------------------------------------- -def do_start_ingest(atdb, status_filter): - - """ - Main function for starting the atdb_ingest service - :param atdb: - :return: - """ - list_of_irods_collections = [] - - #atdb.report('*start_ingest* checks for status_filter ' + str(status_filter)) - - if status_filter == None: - # first check for priority ingests - taskID = get_next_ingest(atdb, STATUS_VALID_PRIORITY) - - # then check for regular ingests - if taskID==None: - taskID = get_next_ingest(atdb, STATUS_VALID) - else: - # only check for that status with which this service was started. - # for example only 'valid' when the service was started with 'status_filter valid ' - # (there will the probably be another service started with 'status_filter valid_priority' - taskID = get_next_ingest(atdb, status_filter) - - # if a next ingest is found, then execute it - if taskID!=None: - - irods_collection_name = atdb.atdb_interface.do_GET(key='observations:irods_collection', id=None, - taskid=taskID) - atdb.report('*start_ingest* the irods collections of the observation is ' + irods_collection_name) - - ids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + taskID + '&my_status='+STATUS_VALID_DPS) - - # check if there is anything to ingest at all, if not set the observation status to 'incomplete' - if len(ids) == 0: - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_INCOMPLETE) - atdb.report("ERROR by *start_ingest* : " + taskID + " " + STATUS_INCOMPLETE,"print,slack") - else: - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, value=STATUS_END) - atdb.report("*start_ingest* service : " + taskID + " " + STATUS_END,"slack") - - # Check if a dataproduct is an inspection plot, in that case change the collection name - # (just add _INSP which is the ALTA name convention for inspection plots collection) - for id in ids: - filename = atdb.atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - irods_collection = atdb.atdb_interface.do_GET(key='dataproducts:irods_collection', id=id, taskid=None) - is_plot = False - if irods_collection == irods_collection_name: - for insp_ext in INSPECTION_PLOTS_FILES_EXT: - if insp_ext.lower() in filename: - is_plot = True - - # File is an inspection plot so modify collection name - if is_plot: - irods_collection += INSPECTION_PLOTS_COLL_ADDITION - atdb.atdb_interface.do_PUT(key='dataproducts:irods_collection', id=id, taskid=None, - value=irods_collection) - atdb.report('*start_ingest* inspection plot found, change collection for dataproduct with id=' - + str(id) + ' to ' + irods_collection) - - list_of_irods_collections.append(irods_collection) - - # All dataproducts are not set with the correct irods_collection - # remove duplicates from list and ingest the irods_collection list - list_of_irods_collections = sorted(set(list_of_irods_collections)) - - for irods_collection in list_of_irods_collections: - atdb.report('*start_ingest* ingest to irods collections ' + irods_collection) - - ids = atdb.atdb_interface.do_GET_LIST(key='dataproducts:id', query='irods_collection=' + irods_collection) - atdb.report('*start_ingest* found the following ' + STATUS_VALID_DPS + ' dataproducts to ingest : ' + str(ids)) - - # If a dataproduct has its 'node' value set then this boolean will go to true and - # a 'remote_dataproducts_to_ingest.txt' file is generated by the atdb_ingest. - files_are_remote = False - - list_of_valid_files = [] - total_size = 0 - - # Gather observation information - # For ARTS SC1 only we need to ingest the parset file as well. Do not add as dataproducts - # but just add to list of valid files - observing_mode = atdb.atdb_interface.do_GET(key='observations:observing_mode', id=None, taskid=taskID) - if 'ARTS_SC1' in observing_mode.upper() and INSPECTION_PLOTS_COLL_ADDITION not in irods_collection: - try: - parset_template = atdb.atdb_interface.do_GET(key='observations:parset_location', id=None, taskid=taskID) - parset_dir = os.path.split(parset_template)[0] - parset_full_name = "%s/%s.parset" % (parset_dir, taskID) - list_of_valid_files.append(parset_full_name) - total_size += os.path.getsize(parset_full_name) - # No error if parset file can not be ingested? - except Exception as err: - atdb.report("WARNING by *start_ingest* : " + taskID + " can not add parset file to ingest: reason = " + str(err), - "print,slack") - - for id in ids: - # Gather information for the alta_ingest - # data_location = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - - data_dir = atdb.atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - # split off the host from the location. - # host should now always be onboard... - try: - _, data_location = data_dir.split(':') - except: - # ... just in case the host is not onboard - # atdb.report("WARNING by *start_ingest* : " + taskID + " no hostname in data_location", "print,slack") - data_location = data_dir - - filename = atdb.atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - filepath = os.path.join(data_location, filename) - - # If a cluster or remote machine is used (like for ARTS SC4) then the 'node' field has the value of - # a remote machine. In that case the dataproducts on that remote machine are searched. - # Otherwise the dataproducts are searched on the local machine. - node = atdb.atdb_interface.do_GET(key='dataproducts:node', id=id, taskid=None) - size = int(atdb.atdb_interface.do_GET(key='dataproducts:size', id=id, taskid=None)) - - # atdb returns a string when a dataproducts is added (like an inspection plot) which is not remote !! - # so also check for string not None - if node is not None: - if node != "None": - # dataproducts are local - filepath = node+':'+filepath - files_are_remote=True - - list_of_valid_files.append(filepath) - total_size += size - - atdb.report('adding dataproduct ' + filepath + ' for ingest') - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, value=STATUS_END) - - # Ingest all valid dataproducts of a (valid) taskid which are located in data_dir - if not atdb.testmode and not skip_ingest: - # determine alta irods host from the alta_host parameter, eg - # https://alta-acc.astron.nl/altapi --> alta-acc-icat.astron.nl - # https://alta.astron.nl/altapi --> alta-icat.astron.nl - # http://alta-sys.astron.nl/altapi --> alta-sys-icat.astron.nl - irods_host = atdb.alta_host.split("://", 1)[1] - irods_host = irods_host.replace("/altapi", "").replace(".astron","-icat.astron") - - atdb.report('ATDB service start ingest-> To be ingested is ' + str(list_of_valid_files) + - ' with total size of ' + str(total_size) + ' bytes to ' + str(irods_host)) - timestamp = datetime.datetime.now().strftime(TIME_FORMAT) - atdb.report('ATDB service start ingest (taskID=' + str(taskID) + ') -> Start the ALTA ingest ' - + 'at ' + timestamp + ' ....(wait a moment) \n') - - # Synchronous call...this can take a while.....several hours.... - # retrieve 'quality' and 'max_lifetime_on_disk' from ATDB and feed it to alta_ingest - locality_policy = atdb.atdb_interface.do_GET(key='observations:locality_policy', id=None, taskid=taskID) - max_lifetime_on_disk = atdb.atdb_interface.do_GET(key='observations:max_lifetime_on_disk', id=None, taskid=taskID) - - ret_code, ret_string = atdb_ingest.execute_alta_ingest(taskID, list_of_valid_files, total_size, - irods_collection, irods_host, locality_policy, max_lifetime_on_disk, - files_are_remote) - if ret_code != 0: - res_str = "FAILED" - else: - res_str = "OK" - atdb.report('ATDB service start ingest (taskID=' + str(taskID) + ') -> Result of the ALTA ingest is ' - + res_str + ' with output: ---------->\n' - + str(ret_string) + '\n<----------EOF ALTA ingest output ') - - # If ingest failed set the status of the observation and all dataproducts to failed - if ret_code != 0: - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, - value=INGEST_FAILED_STATUS) - atdb.report("ERROR by *start_ingest* : " + taskID + " " + INGEST_FAILED_STATUS,"print,slack") - for id in ids: - atdb.atdb_interface.do_PUT(key='dataproducts:new_status', id=id, taskid=None, - value=INGEST_FAILED_STATUS) - # We have to leave the for irodscollections loop if the first one failed - break - - # testmode or skip ingest (same behaviour) just do a fake ingest - else: - if skip_ingest: - atdb.report(skip_ingest_error_message) - atdb.atdb_interface.do_PUT(key='observations:new_status', id=None, taskid=taskID, - value='ingesting') - atdb.report("*start_ingest* : " + taskID + " ingesting (fake) ", "slack") - atdb.report("*start_ingest* :simulate blocking ingest, sleep for 30 seconds)","print,slack") - time.sleep(int(30)) - # TODO: move the invalid dataproducts away? rename them so that the ingest doesn't recognize them? diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_aperops.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_aperops.ini deleted file mode 100644 index 1d04d1e947e7523ad8dd2d3eb52abfd41d9a405b..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_aperops.ini +++ /dev/null @@ -1,39 +0,0 @@ -[group:atdb_services_ingest] -programs=ingest_monitor - -[group:atdb_services_executors] -programs=executor, executor_arts - -[program:executor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o executor --obs_mode_filter imaging --interval 10 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/data/apertif/var/log/atdb_service_executor_imaging.log -redirect_stderr=true -stderr_logfile=NONE - -[program:executor_arts] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o executor --obs_mode_filter arts --interval 10 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/data/apertif/var/log/atdb_service_executor_arts.log -redirect_stderr=true -stderr_logfile=NONE - -[program:ingest_monitor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o ingest_monitor --interval 30 --atdb_host prod --alta_host prod --user atdb --password V5Q3ZPnxm3uj -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/data/apertif/var/log/atdb_service_ingest_monitor.log -redirect_stderr=true -stderr_logfile=NONE - - - - diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_arts0.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_arts0.ini deleted file mode 100644 index 364852e49ba0bb3e74b821f0cd3501eb90241641..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_arts0.ini +++ /dev/null @@ -1,36 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest - -[program:data_monitor] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o data_monitor --obs_mode_filter arts_sc1 --interval 30 --atdb_host prod -v' -environment=HOME=/home/arts -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o start_ingest --obs_mode_filter arts_sc1 --status_filter valid --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/arts,LD_LIBRARY_PATH="/home/arts/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o cleanup --obs_mode_filter arts_sc1 --interval 60 --atdb_host prod' -environment=HOME=/home/arts -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_arts_cluster.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_arts_cluster.ini deleted file mode 100644 index 5081db41359a682fb74ed668b5bb423c726d5860..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_arts_cluster.ini +++ /dev/null @@ -1,36 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest - -[program:data_monitor] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o data_monitor --obs_mode_filter arts_sc4 --interval 30 --atdb_host prod -v' -environment=HOME=/home/arts -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o start_ingest --obs_mode_filter arts_sc4 --status_filter valid --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/arts,LD_LIBRARY_PATH="/home/arts/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/arts/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; atdb_service -o cleanup --obs_mode_filter arts_sc4 --interval 60 --atdb_host prod' -environment=HOME=/home/arts -user=arts -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/arts/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging.ini deleted file mode 100644 index 609700760dc70d841d50312d3aea347cce603398..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging.ini +++ /dev/null @@ -1,58 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_small - -[program:data_monitor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o data_monitor --obs_mode_filter imaging --host_filter wcudata1 --interval 30 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid --interval 30 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid_small --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid_priority --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o cleanup --obs_mode_filter imaging --host_filter wcudata1 --interval 60 --atdb_host prod' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_obsolete.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_obsolete.ini deleted file mode 100644 index dd7527525a20a87458a5e7dc3d9c6c707d0fd2af..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_obsolete.ini +++ /dev/null @@ -1,58 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_small - -[program:data_monitor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o data_monitor --obs_mode_filter imaging --interval 30 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid --interval 30 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_small --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_priority --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o cleanup --obs_mode_filter imaging --interval 60 --atdb_host prod' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_test.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_test.ini deleted file mode 100644 index 784cb06c253ba02a1b01fe67e71c86f66f8d911f..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_test.ini +++ /dev/null @@ -1,94 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_arts, ingest_monitor - -[group:atdb_services_executors] -programs=executor - -[program:executor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o executor --interval 10 --atdb_host test --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -autostart=true -stopsignal=KILL -stopasgroup=true ; also kills the subprocessescd -stdout_logfile=~/atdb-client/atdb_service_executor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:data_monitor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o data_monitor --obs_mode_filter imaging --interval 30 --atdb_host test -v' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest_arts] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter arts --interval 30 --atdb_host test -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_arts.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - - -[program:start_ingest] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid --interval 30 --atdb_host test -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_small --interval 30 --atdb_host test -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_priority --interval 30 --atdb_host test -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:ingest_monitor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o ingest_monitor --obs_mode_filter imaging --testmode --interval 30 --atdb_host test --alta_host acc --user atdb --password V5Q3ZPnxm3uj -v' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_ingest_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:cleanup] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o cleanup --obs_mode_filter imaging --interval 60 --atdb_host test' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE \ No newline at end of file diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_vm.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_vm.ini deleted file mode 100644 index 9a9331c99d5c43899da96c6e56a7d6dd1c4ec0de..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_imaging_vm.ini +++ /dev/null @@ -1,94 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_arts, ingest_monitor - -[group:atdb_services_executors] -programs=executor - -[program:executor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o executor --interval 10 --atdb_host vm --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -autostart=true -stopsignal=KILL -stopasgroup=true ; also kills the subprocessescd -stdout_logfile=~/atdb-client/atdb_service_executor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:data_monitor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o data_monitor --obs_mode_filter imaging --host_filter wcudata1 --interval 30 --atdb_host vm -v' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest_arts] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter arts --interval 30 --atdb_host vm -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_arts.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid --host_filter wcudata1 --interval 30 --atdb_host vm -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_small --host_filter wcudata1 --interval 30 --atdb_host vm -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o start_ingest --obs_mode_filter imaging --status_filter valid_priority --host_filter wcudata1 --interval 30 --atdb_host vm -v --testmode' -environment=HOME=/home/vagrant,LD_LIBRARY_PATH="/home/vagrant/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:ingest_monitor] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o ingest_monitor --obs_mode_filter imaging --testmode --interval 30 --atdb_host vm --alta_host acc --user atdb --password V5Q3ZPnxm3uj -v' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_ingest_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:cleanup] -command=/bin/bash -c 'cd /home/vagrant/atdb-client; source /home/vagrant/env2/bin/activate; atdb_service -o cleanup --obs_mode_filter imaging --interval 30 --atdb_host vm' -environment=HOME=/home/vagrant -user=vagrant -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=~/atdb-client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE - diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata1.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata1.ini deleted file mode 100644 index 609700760dc70d841d50312d3aea347cce603398..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata1.ini +++ /dev/null @@ -1,58 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_small - -[program:data_monitor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o data_monitor --obs_mode_filter imaging --host_filter wcudata1 --interval 30 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid --interval 30 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid_small --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata1 --status_filter valid_priority --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o cleanup --obs_mode_filter imaging --host_filter wcudata1 --interval 60 --atdb_host prod' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata2.ini b/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata2.ini deleted file mode 100644 index ba036aef0364a314b95822c6612db8ecd999ea31..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_services/supervisor_atdb_services_wcudata2.ini +++ /dev/null @@ -1,58 +0,0 @@ -[group:atdb_services_data] -programs=data_monitor, cleanup - -[group:atdb_services_ingest] -programs=start_ingest, start_ingest_priority, start_ingest_small - -[program:data_monitor] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o data_monitor --obs_mode_filter imaging --host_filter wcudata2 --interval 30 --atdb_host prod -v' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_data_monitor.log -redirect_stderr=true -stderr_logfile=NONE - -[program:start_ingest] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata2 --status_filter valid --interval 30 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_small] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata2 --status_filter valid_small --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_small.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:start_ingest_priority] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o start_ingest --obs_mode_filter imaging --host_filter wcudata2 --status_filter valid_priority --interval 60 --atdb_host prod --alta_host prod -v' -environment=HOME=/home/apertif,LD_LIBRARY_PATH="/home/apertif/alta-client/.env/lib:$LD_LIBRARY_PATH" -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_start_ingest_priority.log -redirect_stderr=true -stderr_logfile=NONE -autostart=false - -[program:cleanup] -command=/bin/bash -c 'cd /home/apertif/atdb_client; source env2/bin/activate; source /opt/apertif/apertifinit.sh; source /opt/gcc-6.3.0/gcc.rc; atdb_service -o cleanup --obs_mode_filter imaging --host_filter wcudata2 --interval 60 --atdb_host prod' -environment=HOME=/home/apertif -user=apertif -stopsignal=KILL -stopasgroup=true ; also kills the subprocesses -stdout_logfile=/home/apertif/atdb_client/atdb_service_cleanup.log -redirect_stderr=true -stderr_logfile=NONE diff --git a/atdb_services_pip/atdb_utils/atdb_adjust_observation_one_beam.py b/atdb_services_pip/atdb_utils/atdb_adjust_observation_one_beam.py deleted file mode 100644 index 81a2a6350508e3c80b312076d9f96fa30d73fba9..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_utils/atdb_adjust_observation_one_beam.py +++ /dev/null @@ -1,130 +0,0 @@ -from __future__ import print_function - -import sys -import json -import argparse -import pkg_resources -import os -import shutil - -# Determine the transfer rate for all archived observation and do a pretty print -import time -from atdb_interface.atdb_interface import ATDB -atdb_interface = ATDB("http://atdb.astron.nl/atdb") - -#atdb_interface.do_PUT(key='observations:control_parameters', taskid=taskid_str, value=progress) - -LAST_UPDATE = "01 July 2019" - - - -def remove_from_atdb(first_taskid, last_taskid, real_mode=False): - """ - Remove unnecessary dataproducts from ATDB from first_taskid until last_taskid - Assume 40 beams. The name of the observation will determine which beam should stay, - all others will be removed - :param first_taskid: integer - :param last_taskid: integer - :param real_mode: Then remove from datawrite and delete/update ATDB - """ - mode_str = "" - if real_mode==False: - mode_str = "NON-REAL MODE (do nothing)" - - for taskid in range(first_taskid, last_taskid+1): - fieldname = atdb_interface.do_GET(key='observations:field_name', id=None, taskid=str(taskid)) - #print("TaskID %d has fieldname is %s" % (taskid, fieldname)) - beamid = int(fieldname.split('_')[1]) - keep_dataproduct = "WSRTA%d_B%03d.MS" % (taskid, beamid) - #print("ONLY KEEP ONLY %s (remove the rest)" % keep_dataproduct) - - # find the observation ID - id = atdb_interface.do_GET_ID(key='observations:taskID', value=str(taskid)) - print("\nTaskID %d (observation ID %d)" % (taskid, id)) - - # get the list of ids of all dataproducts - # Add file names to parset, retrieve all dataproducts for taskid - ids = atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + str(taskid)) - remove_ids = [] - size = 0 - for id in ids: - filename = atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - if filename == keep_dataproduct: - size = int(atdb_interface.do_GET(key='dataproducts:size', id=id, taskid=None)) - print("KEEP dataproduct '%s' (id=%d) with size %d" % (filename, id, size)) - else: - remove_ids.append(id) - print("The following dataproducts ids will be removed %s" % str(remove_ids) ) - - # Remove DPS from ATDB - for id in remove_ids: - data_location = atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - filename = atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - print("Remove dataproduct '%s' (id=%d) from ATDB %s" % (filename, id, mode_str)) - if real_mode: - atdb_interface.do_DELETE(resource='dataproducts', id=id) - - # The most dangerous part, remove from datawriter - filepath = os.path.join(data_location, filename) - print("Removing from datawriter '%s' %s" % (filepath, mode_str)) - if real_mode and ".MS" in filepath and "WSRTA" in filepath: - shutil.rmtree(filepath) - - # Update size of the observation which is equal to one dps - print("Update size of TaskID %s to %d %s" % (str(taskid), size, mode_str)) - if real_mode: - atdb_interface.do_PUT(key='dataproducts:size', id=id, taskid=None, value=size) - - -# ------------------------------------------------------------------------------# -# Main # -# ------------------------------------------------------------------------------# -def main(): - """ - The main module. - :return: - """ - parser = argparse.ArgumentParser() - parser.add_argument('--taskid', nargs='?', default='', type=str, - action="store", - help='Specify the first taskID (B000) of the B000 observation. (Assume 40 beams)') - parser.add_argument("--real_mode", default=False, - help="If enabled the ATDB will be adjusted and files removed.", - action="store_true") - parser.add_argument("--version", default=False, - help="Show current version of this program.", - action="store_true") - - args = parser.parse_args() - - if args.version: - print("--- alta_adjust_observation_one_beams.py (last updated " + LAST_UPDATE + ") ---") - return - - - try: - first_taskid = args.taskid - last_taskid = str(int(first_taskid) + 39) - print("The observations of taskID %s until %s will be changed in ATDB. " % (first_taskid, last_taskid)) - print("Only 1 beam per observation (depending on name). All other dataproducts will be removed") - if args.real_mode: - print("WATCH OUT IT IS REAL MODE!!!") - else: - print("Dry run, so do no real actions") - answer = raw_input("\nAre you sure you want to continue (Y/N)? \n") - if answer.upper() == "Y": - remove_from_atdb(int(first_taskid), int(last_taskid), args.real_mode) - print("Done") - else: - print("You did not confirm so exit with doing anything") - - - - except Exception as exp: - print("FATAL ERROR " + str(exp)) - - sys.exit(0) - - -if __name__ == "__main__": - main() diff --git a/atdb_services_pip/atdb_utils/atdb_remove_CB_from_observation.py b/atdb_services_pip/atdb_utils/atdb_remove_CB_from_observation.py deleted file mode 100644 index e474a116a72030d371f7b4f0c458662ecdc9c0ec..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_utils/atdb_remove_CB_from_observation.py +++ /dev/null @@ -1,165 +0,0 @@ -from __future__ import print_function - -import sys -import json -import argparse -import pkg_resources -import os -import shutil - -# Determine the transfer rate for all archived observation and do a pretty print -import time -from atdb_interface.atdb_interface import ATDB -atdb_interface = ATDB("http://atdb.astron.nl/atdb") - -#atdb_interface.do_PUT(key='observations:control_parameters', taskid=taskid_str, value=progress) - -LAST_UPDATE = "28 May 2020" - - - -def remove_from_atdb(taskid, cb_str, real_mode=False): - """ - Remove unnecessary dataproducts from ATDB. - Remove CB<id> from taskID - :param taskid: string - :param cb_str: Compound Beams ID String - :param real_mode: Then remove from datawriter and delete/update ATDB - """ - mode_str = "" - if not real_mode: - mode_str = "NON-REAL MODE (do nothing)" - - # find the observation ID - id = atdb_interface.do_GET_ID(key='observations:taskID', value=taskid) - print("\nTaskID %s (observation ID %d)" % (taskid, id)) - - # get the list of ids of all dataproducts - # Add file names to parset, retrieve all dataproducts for taskid - ids = atdb_interface.do_GET_LIST(key='dataproducts:id', query='taskID=' + taskid) - remove_ids = [] - remove_size = 0 - for id in ids: - filename = atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - if cb_str in filename and taskid in filename: - size = int(atdb_interface.do_GET(key='dataproducts:size', id=id, taskid=None)) - print("Add dataproduct '%s' (id=%d) with size %d to remove" % (filename, id, size)) - remove_ids.append(id) - remove_size += size - - print("The following dataproducts ids will be removed %s" % str(remove_ids) ) - - # Remove DPS from ATDB - for id in remove_ids: - data_location = atdb_interface.do_GET(key='dataproducts:data_location', id=id, taskid=None) - filename = atdb_interface.do_GET(key='dataproducts:filename', id=id, taskid=None) - print("REMOVE dataproduct '%s' (id=%d) from ATDB %s" % (filename, id, mode_str)) - if real_mode: - atdb_interface.do_DELETE(resource='dataproducts', id=id) - - # Update size of the observation - org_size = int(atdb_interface.do_GET(key='observations:size', id=None, taskid=taskid)) - size = org_size - remove_size - print("Update size of TaskID %s from %d to %d %s" % (str(taskid), org_size, size, mode_str)) - if real_mode: - atdb_interface.do_PUT(key='observations:size', id=None, taskid=taskid, value=size) - - -def process_single_taskid(args): - """ - Just a wrapper tp process single observation - :param args: - :return: - """ - - taskid = args.taskid - cb_str = "CB%02d" % int(args.cb) - print("The observations of taskID '%s' will be changed in ATDB. " % taskid) - print("The dataproducts of Compound Beam '%s' will be removed" % cb_str) - if args.real_mode: - print("WATCH OUT IT IS REAL MODE!!!") - else: - print("Dry run, so do no real actions") - if args.answer_yes: - answer = "Y" - else: - answer = raw_input("\nAre you sure you want to continue (Y/N)? \n") - if answer.upper() == "Y": - remove_from_atdb(taskid, cb_str, args.real_mode) - print("Done") - else: - print("You did not confirm so exit with doing nothing") - - - -# ------------------------------------------------------------------------------# -# Main # -# ------------------------------------------------------------------------------# -def main(): - """ - The main module. - :return: - """ - parser = argparse.ArgumentParser() - parser.add_argument('--taskid', nargs='?', default='', type=str, - action="store", - help='Specify the taskID of the ARTSC4 observation') - parser.add_argument('--cb', nargs='?', default='', type=str, - action="store", - help='Specify the CB id (00-39)') - parser.add_argument("--real_mode", default=False, - help="If enabled the ATDB will be adjusted.", - action="store_true") - parser.add_argument("--version", default=False, - help="Show current version of this program.", - action="store_true") - parser.add_argument("--answer_yes", "-Y", default=False, - help="Force Yes do not ask for confirmation.", - action="store_true") - parser.add_argument("--batch_mode", action='store', dest='batch_params', default=None, nargs=3, - help="Execute in batch modes from start to end taskid and with possible multiple cb.") - # Example batch mode (no confirmation per taskid): - # python alta_remove_CB_from_observation.py --batch_mode 200512001 200515099 "6, 10" --real_mode - args = parser.parse_args() - - if args.version: - print("--- alta_remove_CB_from_observation.py (last updated " + LAST_UPDATE + ") ---") - return - - try: - if args.batch_params: - first_taskid = args.batch_params[0] - last_taskid = args.batch_params[1] - list_cb = args.batch_params[2].split(",") - # Now get list of all taskid between first and last (should be SC4) with state valid and mode arts_sc4 - query = "taskID__gte=%s&taskID__lte=%s&my_status__icontains=valid&observing_mode__icontains=arts_sc4" % \ - (first_taskid, last_taskid) - lst_taskids = atdb_interface.do_GET_LIST(key='observations:taskID', query=query) - print("Found '%d' taskIDs to process" % len(lst_taskids)) - print(lst_taskids) - if args.real_mode: - print("WATCH OUT IT IS REAL MODE!!!") - else: - print("Dry run, so do no real actions") - answer = raw_input("\nAre you sure you want to continue (Y/N)? \n") - if answer.upper() != "Y": - print("OK ...we quit") - else: - for taskid in lst_taskids: - for cb in list_cb: - cb_str = "CB%02d" % int(cb) - print("The observations of taskID '%s' will be changed in ATDB. " - "The dataproducts of Compound Beam '%s' will be removed" % (taskid, cb_str)) - remove_from_atdb(taskid, cb_str, args.real_mode) - print("Done") - else: - process_single_taskid(args) - - except Exception as exp: - print("FATAL ERROR " + str(exp)) - - sys.exit(0) - - -if __name__ == "__main__": - main() diff --git a/atdb_services_pip/atdb_utils/atdb_set_quality.py b/atdb_services_pip/atdb_utils/atdb_set_quality.py deleted file mode 100644 index a8495c03fdb0b9d52fa51e37d80d5680727f12e1..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_utils/atdb_set_quality.py +++ /dev/null @@ -1,156 +0,0 @@ -"""" -Set a range of observations to bad. -If the the locality_policy is wrong (locality_policy) then set it to archive, otherwise it will not be deleted from ALTA - -""" - -from __future__ import print_function - - -import argparse -import sys -import traceback - -from atdb_interface.atdb_interface import ATDB -atdb_interface = ATDB("http://atdb.astron.nl/atdb") - -# The request header -ATDB_HEADER = { - 'content-type': "application/json", - 'cache-control': "no-cache", - 'authorization': "Basic YWRtaW46YWRtaW4=" -} - - -def update_observations_with_wrong_locality_policy_value(): - """ - Note ATDB only get max 100 thats OK - http://atdb.astron.nl/atdb/observations/?locality_policy=locality_policy&quality=bad - """ - ids = atdb_interface.do_GET_LIST(key='observations:id', query='&locality_policy=locality_policy&quality=bad') - print("The number of observations which are marked as bad BUT have wrong locality_policy is %d " % len(ids)) - for id in ids: - print("Update %d" % id) - atdb_interface.do_PUT(key='observations:locality_policy', id=id, taskid=None, value="archive") - - -def set_observation_quality(taskid_str, quality_str): - """ - Set for the observation given taskid, the quality - and if the locality_policy is 'wrong' set it to the default 'archive' - :param taskid_str: First taskID (string) - :param quality_str: Quality attribute (string) - - """ - print("The observation with taskID '%s' will be changed to '%s' quality" % (taskid_str, quality_str)) - try: - # atdb_interface.do_PUT(key='observations:quality', id=None, taskid=taskid_str, value="bad") - # simply PUT does not work, because the ATDB 'setquality' operation must be executed also. - # The 'atdb_interface.do_setquality' function can do that now - atdb_interface.do_setquality(key='observations:quality', id=None, taskid=taskid_str, value=quality_str) - - locality_policy = atdb_interface.do_GET(key='observations:locality_policy', id=None, taskid=taskid_str) - if locality_policy == "locality_policy": - print("Update locality_policy to archive") - atdb_interface.do_PUT(key='observations:locality_policy', id=None, taskid=taskid_str, value="archive") - except Exception as exp: - print("ERROR Can not set quality %s of %s" % (quality_str, taskid_str)) - print("exception" + str(exp)) - exc_type, exc_value, exc_traceback = sys.exc_info() - print(repr(traceback.format_exception(exc_type, exc_value, exc_traceback))) - - -def get_all_taskids_inrange(first_taskid, last_taskid): - """ - Get all taskIDS between the first and last given taskID - Use 'page' method to get more than 100 results if needed - :param first_taskid: First taskID (int) - :param last_taskid: Last taskID (int) - :return: lst_taskids: List of taskIDS (string) - """ - query = '&taskID__gte=%d&taskID__lte=%d' % (first_taskid, last_taskid) - # gather the list of taskIDs to check - count = 0 - page = 1 - lst_taskids = [] - while page > 0: - taskIDs, total_count, next_page = atdb_interface.do_GET_LIST_page(key='observations:taskID', - query=query, page=page) - lst_taskids += taskIDs - page = int(next_page) - lst_taskids.sort() - return lst_taskids - - -def get_total_size(quality_str): - """ - Get the total size of the given quality attribute - Use 'page' method to get more than 100 results if needed - :param quality_str: Quality attribute (string) - :return: total_size: Total size in bytes - """ - total_size = 0 - query = 'quality=%s' % quality_str - page = 1 - while page > 0: - size, total_count, next_page = atdb_interface.do_GET_LIST_page(key='observations:size', - query=query, page=page) - total_size += size - page = int(next_page) - return total_size - - -# ------------------------------------------------------------------------------# -# Main # -# ------------------------------------------------------------------------------# -def main(): - """ - The main module. - :return: - """ - parser = argparse.ArgumentParser() - parser.add_argument('--first_tid', type=int, - help='Specify the first taskID to set to quality', - action="store") - parser.add_argument('--last_tid', type=int, - help='Specify the last taskID to set to quality', - action="store") - parser.add_argument('--taskid', type=int, nargs="+", - help='Specify a list of taskID (spaces) to set to quality', - action="store") - parser.add_argument('--quality', type=str, default="data-is-bad", - help='Specify the quality attribute; data-is-bad (default), data-is-good or unknown', - action="store") - parser.add_argument('--update_observations', - help='Update all wrong locality_policy when quality is set', - action="store_true") - parser.add_argument('--show_total_size', - help='Show the total size of items of the the given quality', - action="store_true") - - args = parser.parse_args() - lst_taskids = [] - - try: - if args.update_observations: - update_observations_with_wrong_locality_policy_value() - - if args.first_tid and args.first_tid: - lst_taskids = get_all_taskids_inrange(int(args.first_tid), int(args.last_tid)) - print("Number of taskIDs found to set to quality is %d" % len(lst_taskids)) - - if args.taskid: - lst_taskids = args.taskid - - for taskid in lst_taskids: - set_observation_quality(str(taskid), str(args.quality)) - - if args.show_total_size: - total_size = get_total_size(str(args.quality)) - print("Total size is %f [GB]" % (total_size/1000000000)) - - except Exception as exp: - print("FATAL ERROR " + str(exp)) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/atdb_services_pip/atdb_utils/atdb_show_test_obs.py b/atdb_services_pip/atdb_utils/atdb_show_test_obs.py deleted file mode 100644 index 49240c6343e966337a8ede532002c7c29be89134..0000000000000000000000000000000000000000 --- a/atdb_services_pip/atdb_utils/atdb_show_test_obs.py +++ /dev/null @@ -1,111 +0,0 @@ -from __future__ import print_function - -import requests -import json -import argparse -import datetime -import time -import sys - -from atdb_interface.atdb_interface import ATDB -atdb_interface = ATDB("http://atdb.astron.nl/atdb") - -# The request header -ATDB_HEADER = { - 'content-type': "application/json", - 'cache-control': "no-cache", - 'authorization': "Basic YWRtaW46YWRtaW4=" -} - -def show_test_observations(): - """ - Note ATDB only get max 100 - """ - lst_taskid = [] - ids = my_GET_LIST() - # ids = atdb_interface.do_GET_LIST(key='observations:id', query='&my_status__in=archived,removed&observing_mode__in=imaging') - print("Max.number of 'imaging' observations NOT science retrieved from ATDB with status 'archived' or 'removed' (ingested to ALTA) is %d " % len(ids)) - for id in ids: - duration = atdb_interface.do_GET(key='observations:duration', id=id, taskid=None) - #print(duration) - if duration <= 60: - # Get TaskID - taskid = atdb_interface.do_GET(key='observations:taskID', id=id, taskid=None) - lst_taskid.append(taskid) - - # remove duplicates - lst_taskid.list(set(lst_taskid)) - lst_taskid.sort(reverse=True) # Latest TaskIDs first - print("Number of TaskIDs found with duration of 60 seconds is %d" % len(lst_taskid)) - for taskid in lst_taskid: - size = atdb_interface.do_GET(key='observations:size', id=None, taskid=taskid) - tasktype = atdb_interface.do_GET(key='observations:task_type', id=None, taskid=taskid) - science_obs = atdb_interface.do_GET(key='observations:science_observation', id=None, taskid=taskid) - size_inGB = int(size) / 1000000000 - print("taskID = %s size %d [GB] task_type =%s science_observation = %s" % - (taskid, size_inGB, tasktype, science_obs)) - -# python atdb_iterface.py -o GET_LIST --key observations:taskID --query status=valid -def my_GET_LIST(): - """ - Do a http GET request to the ATDB backend to find the value of one field of an object - :param key: contains the name of the resource and the name of the field separated by a dot. - :param id: the database id of the object. - :param taskid (optional): when the taskid (of an activity) is known it can be used instead of id. - """ - next_url = "http://atdb.astron.nl/atdb/observations?&my_status__in=archived,removed&observing_mode__in=imaging&science_observation__equals=false" - print("First url = %s" % next_url) - lst_all_id = [] - while next_url is not None: - lst_id, next_url = get_id(next_url) - lst_all_id += lst_id - return lst_all_id - -def get_id(url): - """ - Do a http GET request to the ATDB backend to find the value of one field of an object - :param key: contains the name of the resource and the name of the field separated by a dot. - :param id: the database id of the object. - :param taskid (optional): when the taskid (of an activity) is known it can be used instead of id. - :return result field and next url - """ - response = requests.request("GET", url, headers=ATDB_HEADER) - print("[GET " + response.url + "]") - print("Response: " + str(response.status_code) + ", " + str(response.reason)) - list_id = [] - next_url = None - try: - json_response = json.loads(response.text) - results = json_response["results"] - next_url = json_response["next"] - # results = json.loads(response.text) - # loop through the list of results and extract the requested field (probably taskID), - # and add it to the return list. - for res in results: - list_id.append(res["id"]) - except Exception as err: - print("ERROR: " + str(response.status_code) + ", " + str(response.reason) + ', ' + str(response.content)) - - print("Length of list %d with content %s " % (len(list_id), str(list_id))) - print("Next url = %s" % next_url) - - return list_id, next_url - - - - -# ------------------------------------------------------------------------------# -# Main # -# ------------------------------------------------------------------------------# -def main(): - """ - The main module. - :return: - """ - show_test_observations() - print("Done") - sys.exit(0) - - -if __name__ == "__main__": - main() diff --git a/atdb_services_pip/build.sh b/atdb_services_pip/build.sh deleted file mode 100644 index 1ae52e89921b983ca9f8d78f6ae664ff704a222c..0000000000000000000000000000000000000000 --- a/atdb_services_pip/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# This script make a source distribution for the pip installable package in the current folder -echo "Build a source distribution for ATDB services" -python --version -# Explicit give format otherwise a zip is created (Windows?) -python setup.py sdist --formats=gztar - -# Next command will not close the window, can be handy if something goes wrong -#exec $SHELL \ No newline at end of file diff --git a/atdb_services_pip/dist/atdb_services-1.0.1.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.1.tar.gz deleted file mode 100644 index b312037630f320223f82ae31e07a5201117ed827..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.1.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.2.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.2.tar.gz deleted file mode 100644 index 1c1e2b2d87e3940281bb8ec4ba4828df33fd81f5..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.2.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.3.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.3.tar.gz deleted file mode 100644 index cea013910707cf6029a16cf5ffb14e8a09fed1c8..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.3.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.4.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.4.tar.gz deleted file mode 100644 index 9145d34b53afa6599524aa3d9e960c509ece27b8..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.4.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.5.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.5.tar.gz deleted file mode 100644 index e832d4d949337ddc793378d3fc79ec7387186742..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.5.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.6.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.6.tar.gz deleted file mode 100644 index b819e6378e43d487b8aebc63ba2f022f7d8b67b1..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.6.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.7.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.7.tar.gz deleted file mode 100644 index f99d21d6e72ed164a80714222f36e4932befd4d2..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.7.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.8.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.8.tar.gz deleted file mode 100644 index 57dd4d0ef1576868fb7316986a4affc09e9965ae..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.8.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.0.tar.gz b/atdb_services_pip/dist/atdb_services-1.0.tar.gz deleted file mode 100644 index 7b58b63ea0459b462581d1c124e14050c7e3c799..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.0.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.0.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.0.tar.gz deleted file mode 100644 index 161be57667c2636095332794351435e9ace23c0e..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.0.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.1.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.1.tar.gz deleted file mode 100644 index cba53e15874e286b80fb971800587d9951b05fa0..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.1.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.10.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.10.tar.gz deleted file mode 100644 index 8ed69bc5fb300c220380b1b84b6f1c2e06184d20..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.10.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.11.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.11.tar.gz deleted file mode 100644 index 9757670a4e641796fd9a6680a8df0cf59e5dd5bf..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.11.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.12.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.12.tar.gz deleted file mode 100644 index 680a36c6c20e720377a88ee141e93be1c2b7ec36..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.12.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.13.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.13.tar.gz deleted file mode 100644 index cbdf9eaef09ab0fec6edbd05905a1d4329b2be45..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.13.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.14.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.14.tar.gz deleted file mode 100644 index 2f8dde5b312dc38c6d63fc5f96c613fb81f6202f..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.14.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.15.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.15.tar.gz deleted file mode 100644 index 71b0654fd1e47cb702675dc1fee743a0f4da29f5..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.15.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.16.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.16.tar.gz deleted file mode 100644 index 2c96c29174b32137b82ada1b2541a086f5e1e13d..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.16.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.17.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.17.tar.gz deleted file mode 100644 index 581bc69b21695df00b28a27e2eb99baffaf69c68..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.17.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.2.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.2.tar.gz deleted file mode 100644 index 7cecd8570dfb39d7b7e2e4a98dbaafe0a94c6566..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.2.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.3.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.3.tar.gz deleted file mode 100644 index 0201ae241e42ffaf7af235cb350787150eaa8c48..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.3.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.4.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.4.tar.gz deleted file mode 100644 index 8d2e243d9340b4f6522aaac62c6a91c6de074586..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.4.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.5.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.5.tar.gz deleted file mode 100644 index 8610b01badd3127a0b475b7a88e0a76467a5ae55..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.5.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.6.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.6.tar.gz deleted file mode 100644 index d3a236a633ff7e1e5a2bebeabbb0ef53353b9f04..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.6.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.7.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.7.tar.gz deleted file mode 100644 index f8a0148e0a56a37642cb5130facb587693f06ff4..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.7.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.8.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.8.tar.gz deleted file mode 100644 index 528d17b68fa407da8fb0858b703d5e9bfefe1ec9..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.8.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.1.9.tar.gz b/atdb_services_pip/dist/atdb_services-1.1.9.tar.gz deleted file mode 100644 index 26de3257a2056d2ee1f7ad2f146d285c89336d4d..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.1.9.tar.gz and /dev/null differ diff --git a/atdb_services_pip/dist/atdb_services-1.2.7.tar.gz b/atdb_services_pip/dist/atdb_services-1.2.7.tar.gz deleted file mode 100644 index 5a335177ec1212f32dff3e0ec6e4c11f282aee17..0000000000000000000000000000000000000000 Binary files a/atdb_services_pip/dist/atdb_services-1.2.7.tar.gz and /dev/null differ diff --git a/atdb_services_pip/setup.py b/atdb_services_pip/setup.py deleted file mode 100644 index 4be0d88aac2789ecb25abff58eafe46bbb2f5826..0000000000000000000000000000000000000000 --- a/atdb_services_pip/setup.py +++ /dev/null @@ -1,35 +0,0 @@ -from setuptools import setup, find_packages - -def readme(): - with open('README.rst') as f: - return f.read() - -setup(name='atdb_services', - version='1.2.11', - description='ATDB services', - url='https://www.astron.nl/wsrt/wiki/doku.php?id=atdb:atdb_services', - author='Nico Vermaas & Roy de Goei - Astron', - author_email='vermaas@astron.nl', - license='BSD', - install_requires=['requests'], - packages=find_packages(), - include_package_data=True, - entry_points={ - 'console_scripts': [ - 'atdb_service=atdb_services.atdb_service:main', - ], - }, - scripts=['atdb_scripts/atdb_start_all_services_all.sh', - 'atdb_scripts/atdb_start_all_services_imaging.sh', - 'atdb_scripts/atdb_start_all_services_arts.sh', - 'atdb_scripts/atdb_start_all_services_arts_sc1.sh', - 'atdb_scripts/atdb_start_all_services_arts_sc4.sh', - 'atdb_scripts/atdb_start_all_services_test_all.sh', - 'atdb_scripts/atdb_start_all_services_test_imaging.sh', - 'atdb_scripts/atdb_start_all_services_test_arts.sh', - 'atdb_scripts/atdb_kill_all_services.sh', - 'atdb_scripts/atdb_change_status.sh', - 'atdb_scripts/atdb_delete.sh', - 'atdb_scripts/atdb_scheduler.sh', - 'atdb_scripts/combine_obs_sc1_for_atdb.sh'], - ) \ No newline at end of file diff --git a/atdb_services_pip/upload_to_nexus.sh b/atdb_services_pip/upload_to_nexus.sh deleted file mode 100644 index 7bfcff041acdb86f2739933d63d9026beb002a5a..0000000000000000000000000000000000000000 --- a/atdb_services_pip/upload_to_nexus.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -##---------------------------------------------------------------------------------------------------------------------# -##! \brief Description: This script uploads the created atdb_services artifact to the Nexus repository -##! In: $1 [Optional] Additional Artifact version tag which can be anything -##! Out: None -##! Returns: None -##! Preconditions: -##! - build should be done /dist/atdb_services-[version].tar.gz is available -##! Postconditions: -##! - artifact uploaded to https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/ATDB_services-[version][additional version tag].tar.gz -##! Examples: .\upload_to_nexus -##! .\upload_to_nexus 20180913 -##! .\upload_to_nexus test -##---------------------------------------------------------------------------------------------------------------------# - -VERSION=$(python setup.py --version) -ARTIFACT_NAME="ATDB_services" -ARTIFACT_BUILD="/dist/atdb_services-${VERSION}.tar.gz" - -ARTIFACT_UPLOAD_BASE_PATH="https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/" -if [[ $# -eq 1 ]]; then - ARTIFACT_VERSION="-${VERSION}-${1}" -else - ARTIFACT_VERSION="-${VERSION}" -fi - -ARTIFACT_UPLOAD_PATH="${ARTIFACT_UPLOAD_BASE_PATH}${ARTIFACT_NAME}${ARTIFACT_VERSION}.tar.gz" -ARTIFACT_BUILD_PATH="$(pwd)${ARTIFACT_BUILD}" - -echo "Upload ${ARTIFACT_BUILD_PATH} to $ARTIFACT_UPLOAD_PATH" -curl --insecure --upload-file ${ARTIFACT_BUILD_PATH} -u upload:upload ${ARTIFACT_UPLOAD_PATH} - -# Next command will not close the window, can be handy if something goes wrong -#exec $SHELL \ No newline at end of file diff --git a/build_deploy_atdb/build_atdb_from_svn_jenkins.sh b/build_deploy_atdb/build_atdb_from_svn_jenkins.sh deleted file mode 100644 index 69255bae6b3f70258bd2f751e653da3ffaf20bb3..0000000000000000000000000000000000000000 --- a/build_deploy_atdb/build_atdb_from_svn_jenkins.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -##---------------------------------------------------------------------------------------------------------------------# -##! \brief build_atdb_from_svn.sh (version 21 mar 2019, Nico Vermaas) -##! Description: This script creates a tar artifact for upload to Nexus -##! In: $1 Version (1.1.16) -##---------------------------------------------------------------------------------------------------------------------# - -VERSION=$1 -if [ $# -lt 1 ] - then - VERSION=unknown -fi -echo "VERSION = $VERSION" - -#---------------------------------------------------------------------------------------------------------- -echo "Build a artifact for the ATDB backend " -cd .. - -#--- build ATDB artifact ---------------------------------------------------------------------------------- -echo "create ATDB artifact" -ARTIFACT_NAME="ATDB-"$VERSION".tar" -tar -cvf $ARTIFACT_NAME . --exclude="__pycache__" --exclude="*.log" --exclude="*.bat" --exclude=".env" --exclude=".svn" - -#-- upload ATDB artifcat to Nexus ------------------------------------------------------------------------- -ARTIFACT_UPLOAD_BASE_PATH="https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/" -ARTIFACT_UPLOAD_PATH="${ARTIFACT_UPLOAD_BASE_PATH}${ARTIFACT_NAME}" -ARTIFACT_BUILD_PATH="$(pwd)/${ARTIFACT_NAME}" - -echo "Upload ${ARTIFACT_NAME} to $ARTIFACT_UPLOAD_PATH" -curl --insecure --upload-file ${ARTIFACT_BUILD_PATH} -u upload:upload ${ARTIFACT_UPLOAD_PATH} - -mv $ARTIFACT_NAME .. - -echo "Finished script for: VERSION = $VERSION" diff --git a/build_deploy_atdb/build_atdb_from_svn_manual.sh b/build_deploy_atdb/build_atdb_from_svn_manual.sh deleted file mode 100644 index 904e199fd986d2e11ca71ee098a089422bfaad5c..0000000000000000000000000000000000000000 --- a/build_deploy_atdb/build_atdb_from_svn_manual.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -##---------------------------------------------------------------------------------------------------------------------# -##! \brief build_atdb_from_svn.sh (version 21 mar 2019, Nico Vermaas) -##! Description: This script checks out ATDB from svn and creates a tar artifact for upload to Nexus -##! In: $1 Version (1.1.16) -##! In: $2 Branch (branches/atdb-branch-sprint-109, trunk) -##! In: $3 User (vermaas, jenkins, ...) -##! Out: None -##! Returns: None -##! Example: ./build_atdb_from_svn.sh 1.1.16 branches/atdb-branch-sprint-109 vermaas -##---------------------------------------------------------------------------------------------------------------------# - -VERSION=$1 -if [ $# -lt 1 ] - then - VERSION=unknown-version -fi -echo "VERSION = $VERSION" - -BRANCH=$2 -if [ $# -lt 2 ] - then - BRANCH=trunk - #BRANCH=branches/atdb-branch-sprint-109 -fi -echo "BRANCH = $BRANCH" - -USER=$3 -if [ $# -lt 3 ] - then - USER=vermaas -fi -echo "USER = $USER" - - -#--- checkout from SVN - TODO: when Jenkins is used, omit this part. ------------------------------------- -echo "SVN Checkout ATDB from $BRANCH" -USER=vermaas -svn checkout https://svn.astron.nl/apertif/atdb/$BRANCH atdb --username $USER - -#---------------------------------------------------------------------------------------------------------- -echo "Build a distribution for ATDB backend and atdb_services" - -cd atdb -# omitting static files for now, because virtualenv/python3 is not installed on ALTA2 build host -#virtualenv -p python3 .env -#source .env/bin/activate -#python manage.py collectstatic --settings atdb.settings.dev - -#--- build ATDB artifact ---------------------------------------------------------------------------------- -echo "create ATDB artifact" -ARTIFACT_NAME="ATDB-"$VERSION".tar" -tar -cvf $ARTIFACT_NAME . --exclude="__pycache__" --exclude="*.log" --exclude="*.bat" --exclude=".env" - -#-- upload ATDB artifcat to Nexus ------------------------------------------------------------------------- -ARTIFACT_UPLOAD_BASE_PATH="https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/" -ARTIFACT_UPLOAD_PATH="${ARTIFACT_UPLOAD_BASE_PATH}${ARTIFACT_NAME}" -ARTIFACT_BUILD_PATH="$(pwd)/${ARTIFACT_NAME}" - -echo "Upload ${ARTIFACT_NAME} to $ARTIFACT_UPLOAD_PATH" -curl --insecure --upload-file ${ARTIFACT_BUILD_PATH} -u upload:upload ${ARTIFACT_UPLOAD_PATH} - -mv $ARTIFACT_NAME .. -#cd .. - -#---build and upload atdb_interface ------------------------------------------------------------------------ -echo "Build atdb_interface package and upload to Nexus" -cd atdb_interface_pip -chmod +x *.sh -./build.sh -./upload_to_nexus.sh -cd .. - -#---build and upload atdb_services ------------------------------------------------------------------------ -echo "Build atdb_services package and upload to Nexus" -cd atdb_services_pip -chmod +x *.sh -./build.sh -./upload_to_nexus.sh -cd ../.. - - -#rm -rf atdb - -echo "Finished script for: VERSION = $VERSION, BRANCH = $BRANCH, USER = $USER," diff --git a/build_deploy_atdb/build_atdb_pips_from_svn_jenkins.sh b/build_deploy_atdb/build_atdb_pips_from_svn_jenkins.sh deleted file mode 100644 index 1cea3e9a514f16d5ba3c0106da28dfe505ec7323..0000000000000000000000000000000000000000 --- a/build_deploy_atdb/build_atdb_pips_from_svn_jenkins.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -##---------------------------------------------------------------------------------------------------------------------# -##! \brief build_atdb_pips_from_svn.sh (version 21 mar 2019, Nico Vermaas) -##! Description: This script checks out the pip installable packages from svn and uploads them as -##! tar.gz artifacts to Nexus. -##---------------------------------------------------------------------------------------------------------------------# - -cd .. - -#---build and upload atdb_interface ------------------------------------------------------------------------ -echo "Build atdb_interface package and upload to Nexus" -cd atdb_interface_pip -chmod +x *.sh -./build.sh -./upload_to_nexus.sh -cd .. - -#---build and upload atdb_services ------------------------------------------------------------------------ -echo "Build atdb_services package and upload to Nexus" -cd atdb_services_pip -chmod +x *.sh -./build.sh -./upload_to_nexus.sh - -cd ../.. - -echo "Done" diff --git a/build_deploy_atdb/deploy_from_nexus.sh b/build_deploy_atdb/deploy_from_nexus.sh deleted file mode 100644 index bc93eb9acc58054521fe003e2dbfc689328cd767..0000000000000000000000000000000000000000 --- a/build_deploy_atdb/deploy_from_nexus.sh +++ /dev/null @@ -1,54 +0,0 @@ -# deploy script for ATDB -# Nico Vermaas - 18 march 2019 -##---------------------------------------------------------------------------------------------------------------------# -##! \brief Description: This script downloads an artifact from nexus and installs ATDB in the current directory -##! In: $1 Version (1.1.16) -##! Out: None -##! Returns: None -##! Preconditions: be user atdb in directory /var/www/atdb.astron.nl -##! Postconditions: None -##! Notes: -##---------------------------------------------------------------------------------------------------------------------# - -VERSION=$1 -if [ $# -eq 0 ] - then - VERSION=unknown-version -fi - -ARTIFACT_NAME="ATDB-"$VERSION".tar" - -export SOURCE_DIR=/vagrant/repository -export DEST_DIR=/var/www/atdb.astron.nl - -# download artifact from nexus -sudo chown atdb:webapps $DEST_DIR -cd $DEST_DIR -wget https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/$ARTIFACT_NAME - -# make a backup of the current system -rm ATDB-previous.tar -tar -cvf ATDB-previous.tar atdb --exclude="__pycache__" --exclude="*.log" --exclude="*.bat" - -# remove current version -rm -r $DEST_DIR/atdb/taskdatabase/ -rm -r $DEST_DIR/atdb/urls.py - -# untar and deploy ATDB *** -tar -xvf $ARTIFACT_NAME --exclude="__pycache__" --exclude="*.log" --exclude="*.bat" --exclude=base.py - -# remove the deployed archive -rm $ARTIFACT_NAME - -# run as user atdb in virtualenv -cd $DEST_DIR/atdb -source .env/bin/activate - -# migrate the database (no makemigrations, because the migration files should be up-to-date in the tar package -python manage.py makemigrations taskdatabase --settings atdb.settings.prod -python manage.py migrate --settings atdb.settings.prod - -# restart supervisor and ATDB -sudo supervisorctl restart atdb -cd .. -echo Congratulations! You may have just survived another ATDB deploy! diff --git a/build_deploy_atdb/upload_to_nexus.sh b/build_deploy_atdb/upload_to_nexus.sh deleted file mode 100644 index fe112739318c87598e700e7e202e7a8b4cc573bc..0000000000000000000000000000000000000000 --- a/build_deploy_atdb/upload_to_nexus.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -##---------------------------------------------------------------------------------------------------------------------# -##! \brief Description: This script uploads the created atdb artifact to the Nexus repository -##! In: $1 [Optional] Additional Artifact version tag which can be anything -##! Out: None -##! Returns: None -##! Preconditions: -##! - build should be done, atdb.tar is available -##! Postconditions: -##! - artifact uploaded to https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/atdb-VERSION].tar -##! Examples: .\upload_to_nexus -##! .\upload_to_nexus 20180913 -##! .\upload_to_nexus test -##---------------------------------------------------------------------------------------------------------------------# - -VERSION=$1 -if [ $# -eq 0 ] - then - VERSION=unknown-version -fi - -ARTIFACT_NAME="ATDB" -ARTIFACT_BUILD="ATDB-${VERSION}.tar" - -ARTIFACT_UPLOAD_BASE_PATH="https://support.astron.nl/nexus/content/repositories/snapshots/nl/astron/atdb/" -if [[ $# -eq 1 ]]; then - ARTIFACT_VERSION="-${VERSION}-${1}" -else - ARTIFACT_VERSION="-${VERSION}" -fi - -ARTIFACT_UPLOAD_PATH="${ARTIFACT_UPLOAD_BASE_PATH}${ARTIFACT_NAME}${ARTIFACT_VERSION}.tar" -ARTIFACT_BUILD_PATH="$(pwd)/${ARTIFACT_BUILD}" - -echo "Upload ${ARTIFACT_BUILD_PATH} to $ARTIFACT_UPLOAD_PATH" -curl --insecure --upload-file ${ARTIFACT_BUILD_PATH} -u upload:upload ${ARTIFACT_UPLOAD_PATH} - -# Next command will not close the window, can be handy if something goes wrong -#exec $SHELL \ No newline at end of file