diff --git a/docker-compose/calibration-tables/Dockerfile b/docker-compose/calibration-tables/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e7ce3d858a362c221401627b722ffef2e5fd9abe --- /dev/null +++ b/docker-compose/calibration-tables/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx +COPY caltables /usr/share/nginx/html diff --git a/docker-compose/calibration-tables/README.md b/docker-compose/calibration-tables/README.md new file mode 100644 index 0000000000000000000000000000000000000000..10261e80cbacf9081284a2ca4e950d3300a8b639 --- /dev/null +++ b/docker-compose/calibration-tables/README.md @@ -0,0 +1,3 @@ +# Calibration Tables + +Service to serve HDF5 calibration table files over HTTP. Used by antennafield device. diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-150MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-150MHz.h5 similarity index 100% rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-150MHz.h5 rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-150MHz.h5 diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-200MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-200MHz.h5 similarity index 100% rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-200MHz.h5 rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-200MHz.h5 diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-250MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-250MHz.h5 similarity index 100% rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-250MHz.h5 rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-250MHz.h5 diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-LBA-50MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-LBA-50MHz.h5 similarity index 100% rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-LBA-50MHz.h5 rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-LBA-50MHz.h5 diff --git a/docker-compose/device-antennafield.yml b/docker-compose/device-antennafield.yml index dd564967687f652132e44cc940d58d2c470dcc53..f2ac0746cd91e62f7eb8bf40c1a36fb9870d213d 100644 --- a/docker-compose/device-antennafield.yml +++ b/docker-compose/device-antennafield.yml @@ -41,6 +41,9 @@ services: - "host.docker.internal:host-gateway" volumes: - ..:/opt/lofar/tango:rw + - type: bind + source: ./calibration-tables/caltables + target: /opt/calibration-tables environment: - TANGO_HOST=${TANGO_HOST} - TANGO_ZMQ_EVENT_PORT=5815 diff --git a/docker-compose/lofar-device-base/Dockerfile b/docker-compose/lofar-device-base/Dockerfile index 7b49a6cfcd2db4b786d7f5698267a672c6790a01..42254ec6f31dfc7e4844826e208556a45edba233 100644 --- a/docker-compose/lofar-device-base/Dockerfile +++ b/docker-compose/lofar-device-base/Dockerfile @@ -27,3 +27,4 @@ COPY lofar-device-base/casarc /home/tango/.casarc ENV TANGO_LOG_PATH=/var/log/tango RUN sudo mkdir -p /var/log/tango && sudo chmod a+rwx /var/log/tango +RUN sudo mkdir -p /opt/calibration-tables && sudo chmod a+rwx /opt/calibration-tables diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py index c6cde673ee2cba4933ccd070ea6f96a3ee9a16e0..d2a2baa771839b71e47710891357a224274ed718 100644 --- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py +++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py @@ -8,7 +8,6 @@ import logging from enum import IntEnum from math import pi from typing import List -from pathlib import Path import numpy @@ -62,10 +61,7 @@ from tangostationcontrol.devices.sdp.common import ( from tangostationcontrol.devices.sdp.sdp import SDP logger = logging.getLogger() -ABS_PATH = str(Path().absolute()).replace("\\", "/") -CALIBRATION_PATH = ( - f"{ABS_PATH}/tangostationcontrol/tangostationcontrol/devices/calibrations" -) +CALIBRATION_ROOT_DIR = "/opt/calibration-tables" __all__ = ["AntennaField", "AntennaToRecvMapper", "AntennaToSdpMapper", "main"] @@ -848,7 +844,10 @@ class AntennaField(LOFARDevice): def _create_calibration_table_filename(self, reference_frequency: str) -> str: """Create a valid calibration table filename given a mode""" antennafield_name = self.get_name().split("/")[2] - return f"{CALIBRATION_PATH}/CalTable-{self.station}-{antennafield_name}-{reference_frequency}MHz.h5" + return ( + f"{CALIBRATION_ROOT_DIR}/" + + f"CalTable-{self.station}-{antennafield_name}-{reference_frequency}MHz.h5" + ) def _get_calibration_table(self, reference_frequency: str) -> numpy.ndarray: """Returns a calibration table of shape