Changelog
Development
BREAKING updated launch parameters for
RCal.ddal.
9.0.0
This is the changelog for the vis-receive script, which highlights only changes to the script itself, and important changes for each internal component.
See the individual release notes for
receive-core 7.8.0/7.9.0,
receive-modules 9.0.0/9.0.1/9.0.2,
receive-processors 6.0.0/6.0.1 and
realtime-calibration 5.0.0
for more details on changes within specific components.
Added
Receivers now implement ADR-111, accepting data for scan 0. Data for such scans is not written into a Measurement Set.
Added
phaseandexpires_atparameter options toMSWriter.Added
DataProductPersistflow per outputDataProduct.Added multi-beam reception support. Individual receiver processes within a single node are setup to receive the same amount of frequency channels for each scan type.
rcalnow creates flows for sending gains solution QA metrics. Two flows (one to Kafka, one forwarding to Tango) and corresponding Kafka topic are created per vis beam; configured to send two metrics (bandpassConvergedandvisibilityChisq)Logs related to vis-receive deployment IP assignment are marked with
redact:falseso Kibana does not redact their content, allowing debugging of ongoing IP clashing issues.New
rcal.sky_modelparameter for users to point to a pre-existing sky model on disk forRCalto use.If
rcal.sky_modelis not given, a request for a local sky model for RCal is created for the fields used by all visibility beam ID. The resulting Flows are added as a source of the corresponding RCal’s gains flows.Added QA bandpass calibration flow registration. The vis-receive script now creates a flow and Kafka topic for the RCal processor to publish direction-independent bandpass solutions to the QA display infrastructure (YAB-380).
Fixed
A number of metadata variables are now correct in the output Measurement Set, and the in-memory Visibility data model. This includes:
timeis now at the centre of the interval (used to be at the end of the interval, similar to how CBF sends timestamps).intervalwas hardcoded to1, now is provided externally to SDP viaAssignResources.exposurewas previously missing in memory, and set to== timein the Measurement Set. It is now set tointerval * (FD / 255)^2.time_centroidwas previously missing in memory, and set to== timein the Measurement Set. It is now calculated from theTCIvalues sent by CBF.weightwas previously directly set to theFDvalues sent by CBF. It is now set toexposure * bandwidth_in_khz.
Fixed invocation of QA display processors to use
--num-receiverscommand line parameter instead of--num-subbands.Corrected vis/PST beam pairing to use the
calibration_beamfield from AssignResources v2.0 schema (YAB-363).Invalid visibility data (Nan or Inf) is automatically flagged. This addresses SKB-1252.
The
uvwdata variable of the Visibility datasets now always has 3 dimensions. This addresses SKB-1265.H5Parm files written by RCal are flushed to disk after every write, making them usable even in situations when RCal doesn’t exit cleanly and therefore doesn’t close them as expected. This addresses SKB-1315.
The average weight value for each time/baseline is written to the
WEIGHTcolumn when per-frequency weights are written toWEIGHT_SPECTRUM(previously the column stored0s). This addresses SKB-1358.
Removed
BREAKING Removed
max_ports_per_nodeparameter. Usenum_nodesto deploy multi-node vis-receive.
Changed
BREAKING Receivers associate incoming data with scans by matching timestamps inside each payload against the scan schedule published by SDP LMC.
BREAKING The
rcal.flux_limitandrcal.uv_minparameters now default toNoneinstead of0.0and100.0, respectively. This allows the underlying RCal defaults to be used, whatever they might be, without having to match those defaults in thevis-receivescript.Bumped versions of:
ska-sdp-realtime-receive-modulesOCI image to ``9.0.2`.ska-sdp-realtime-receive-processorsOCI image to6.0.1.ska-sdp-realtime-calibrationOCI image to5.0.0.ska-sdp-scriptingto^3.0.1.ska-sdp-configto^1.6.1
Removed dependency on
ska-telmodeland replaced withska-telmodel-clientat^1.30.1The buffer request calculation for
mswriternow uses calculates visibility counts on a perscan_typebasis, including using the new per-scan typeintegration_timeandmax_length(if available), for a more accurate estimate.
9.0.0-alpha1
BREAKING Alpha release of several additions for early testing in SDP integration test suite.
8.1.1
Changed
Bumped version of
ska-sdp-realtime-calibrationOCI image to4.0.1.Default receive and plasma containers
imagePullPolicytoIfNotPresent. The Helm Chart defaults toAlwaysfollowing advice given in YAN-1275 (see recording @ 34:00), but this introduces slowness to the startup of the script (see SKB-771), as well as pressure on the Kubernetes cluster (see STS-2647 and related Slack thread). In particular this message indicatesIfNotPresentis an appropriate default. This partly addresses SKB-771.
Fixed
RCalprocessor works correctly when running as non-root users. Previous versions did not have a home directory for the defaultreceiveuser shipped with the OCI image, resulting in permission errors, in particular whenska-telmodelattempted to create and populate its cache.
8.1.0
Added
Added
RCalconfiguration support using vis-receive scriptrcalparameter.Added RCal configuration for Kafka-based gains solution publishing. Flows are written to the SDP Config DB, topics are created in Kafka, and published in the SDP receive addresses for external consumption under the
jones_calkey.Added default
Statsconfiguration settings to vis-receive deployment.Added support for populating the
obscoresection ofska-data-product.yamlfiles produced bymswriter.
Changed
RCalprocessors are launched per visibility beam instead of a single instance. Visibility data is first accumulated by frequency, then by time, before given toRCal.Bumped versions of:
ska-sdp-realtime-receive-modulesOCI image to8.0.0.ska-sdp-realtime-receive-processorsOCI image to5.0.0.ska-sdp-realtime-calibrationOCI image to4.0.0.ska-sdp-helmdeploy-vis-receiveHelm Chart to1.3.0.
Bumped Docker base images to
ska-build-python0.3.3 andska-python0.2.5.
8.0.0 (Alpha)
Note
It was believed at the time of releasing that scripts did not support pre-release versioning.
Changed
Dataproduct flows created by
mswriternow include aFlowSourcewith abeam_idparameter to make them more easily searchableBumped versions of:
ska-sdp-realtime-receive-modulesto8.0.0-rc1.ska-sdp-realtime-receive-processorsto5.0.0-rc1.ska-sdp-realtime-calibrationto3.0.0-dev.cba0ea060.
BREAKING Measurement Sets written by the
mswriterprocessor are now output intobeam-<beam_id>/scan-<scan_id>/<output_basename>.<scan_type_id>.<subband>.<output_extension>.
Fixed
Fixed
mswriterflow lookup logic to match flows created by thevis-receivescript. Data product flows are correctly updated and contain the paths and statuses of the Measurement Sets as they are closed. This was broken in version7.0.0.
7.0.4
Changed
Bumped
ska-sdp-realtime-receive-modulesto7.0.2.
Fixed
Fixed regression introduced in
vis-receive7.0.3 where ITF station names (e.g.,itf1) were not accepted as valid anymore by the receiver code. This addresses SKB-1189.
7.0.3
Changed
Bumped
ska-sdp-scriptingto^2.1.0.Bumped
ska-sdp-realtime-receive-processorsto4.2.0.
Fixed
Fixed parsing of scan types from
AssignResourcesexecution blocks in the vis-receive script itself after clarifications made to ADR-54. This addresses SKB-1147.PHASED_ARRAYtable written by the mswriter processor is now correctly filled and compatible with the Everybeam software. This addresses SKB-1060.
7.0.2
Fixed
Fixed schema for telstate TRL dictionary values.
7.0.1
Fixed
Fixed telstate BeamID validation to support any string. This matches ska-sdp-assignres 1.1.
Updated
Updated dependency on
realtime-receive-modulesto^7.0.1. This version fixes the parsing of scan types fromAssignResourcesexecution blocks after clarifications made to ADR-54. This addresses SKB-1147.
7.0.0
Added
BREAKING Added schema for
telstatescript parameter.Added new
telescope_modelscript parameter for configuring the location of the telescope model and the path in the telescope model where individual station documents can be loaded from.Added a
SKA_TELMODEL_SOURCESenvironment variable to all containers in the resultingvis-receivedeployment. The variable is set to thetelescope_model.sourcesscript parameter value to provide a consistent reference to Telescope Model data.Added new
rcal.enabledscript parameter to indicate whether to launch RCal in the vis-receive pipeline.
Changed
BREAKING Changed pointing fields in
telstatescript parameter to a 2-layer mapping of beam ID, receptor name, and TRL.mswriternow creates one Data Product flow per (visibiltiies) beam, instead of a single flow.Changed arguments provided to
mswriterto include an explicit telescope name.
Removed
BREAKING Removed deprecated parameter
use_network_definition.
6.3.0
Added
Add buffer request for Measurement Set data product. Its size is calculated as a worst-case scenario in the frequency, polarisation and time dimensions, and is based on the information in the Execution Block.
mswriterperforms shutdown sequence whenEndcommand is sent to the SDP Subarray and transitions the Measurement Set data product flow toCOMPLETEDat the end of said sequence.mswriterwrites CBFFDvalues as weights into output Measurement Set. This addresses SKB-1042 fully and SKB-1081 partially.
Changed
Bumped Docker SKA python base images to
ska-build-python0.3.2 andska-python0.2.4.Bumped
ska-sdp-realtime-receive-processorsto4.1.0.Bumped
ska-sdp-realtime-receive-modulesto7.0.0.Restructured source files into a python package structure.
The runtime capabilities
NET_ADMINandNET_RAWnow correctly enable permissions for theip,netstat,ping,tcpdump,ifconfig, andarpexecutables in the receiver containers.Use ska-sdp-helmdeploy-vis-receive chart version 1.2.0. Notably this new version includes new environment variables so pods and receivers know their intra- and inter-node rank, and also shortens the readinessProbe period of containers to one second for faster startup times.
Fixed
6.2.0
Changed
Revamped script parameter schema descriptions and documentation.
Default QA metric list changed from ‘stats’ to ‘all’.
Organisation of QA metric generation per container updated.
Bumped
ska-sdp-realtime-receive-processorsto4.0.2.
Fixed
mswritercorrectly counts the number of receivers, correctly closing Measurement Sets atEndScantime. This addresses SKB-1099.OBSERVATION/TELESCOPE_NAMEcolumn in Measurement Set containsSKA-Low/SKA-Midinstead ofUnknown, depending on the telescope data is being received for. This addresses SKB-1062.Fixed validation of the
reception_networkvis-receive parameter, which could not be successfully provided by users.
6.1.2
Fixed
Bumped
ska-sdp-realtime-receive-modulesto7.0.0-alpha.5, which fixes an issue where receptors were not sorted according to the CBF SDP ICDs. This addresses SKB-986.
6.1.1
Changed
Bumped
ska-sdp-realtime-receive-modulesto7.0.0-alpha.4to fix a problem where the Beam ID sent by Low CBF was ignored.
6.1.0
Changed
Added new QA Display metrics:
averagedamplitude,amplitudeandphasevariance.QA Display metrics are now beam aware.
6.0.0
Changed
BREAKING
vis-receivedefaults to always publishing IPs into the SDP receive addresses. This is to better align with SDP interface definitions, since other subsystems rely on IPs, and not hostnames, being published. Note that this affects mostly software-only environments; in platforms wherevis-receivebinds to the host’s NIC SDP already publishes IPs. Whendry_runis set, IP addresses in the127.0.0.0/8link-local network are used. This addresses SKB-532.
Added
New
allow_hostnames_in_receive_addressesparameter allows users to continue publishing Kubernetes hostnames into the SDP receive addresses whenvis-receiveis bound to the Kubernetes network.
5.5.0
Added
Added additional terms for pointing FQDN templates:
"dish_name","station_name","beam_id".
Changed
Bumped
ska-sdp-realtime-receive-processorsto3.5.3to handle station names with hyphens. This addresses SKB-675.
Fixed
Corrected default beam ID for Low observations from 0 to 1. This addresses SKB-675.
5.4.4
Fixed
Bumped
ska-sdp-realtime-receive-modulesto6.1.2. This addresses SKB-944.
Changed
Bumped
ska-sdp-realtime-receive-processrsto3.5.2for themswriterprocessor, reducing the amount of images required by avis-receivedeployment.
5.4.3
Fixed
5.4.2
Changed
Bumped
ska-sdp-realtime-receive-processorsto3.5.1Include the ability to change the max message size for QA Metrics through Kafka, and set the default to 10MiB.
Fixed
Corrected scaling of x-axis for lag plot metrics. This addresses SKB-910.
5.4.1
Changed
Bumped
ska-sdp-scriptingto^1.2.0.
Fixed
Receive addresses are published only once regardless of whether they contain IPs or hostnames. This addresses SKB-840.
5.4.0
Changed
Update Signal Display Metrics topics to be processing block aware. As well as made the receiver stats have (unused) parameters, so that it looks the same as the other metrics.
Updated Signal Display Receiver Metrics flow to include configuration, for uniformality with the other metrics
5.3.2
Fixed
Bump receive-modules and receive-processors to 6.1.1 and 3.4.0 respectively. These new component versions detect if the Plasma Store crashes, automatically reconnecting as needed. This addresses SKB-856.
5.3.1
Fixed
Put the
--metrics ...arguments of the signal display metrics generator processors so they appear at the end of the command line. This is currently required by the Signal Displays UI.
5.3.0
Added
Added Low specific pointings flow definitions for target and tracking from MCCS station beam devices.
Changed
Bump receive-processors image to 3.3.1. This new version includes fixes in the frequency accumulation processor logic, and changes the
mswriterto continuously flush data to disk. This addresses SKB-895.Changed the
processes_per_nodePB parameter defaults from1toNone. WhenNone, the script calculates an appropriate number of processes per node, setting it to a value that allows full bandwidth observations to be carried out correctly. The plasma store is automatically sized accordingly. This addresses SKB-787.Receivers generate Visibility datasets of fixed size in the time axis. This ensures that in multi-receive deployments, the different Visibilities are aligned in time.
Fixed
Signal Display processors work correctly against multiple receiver instances by first combining data for different frequency slices. This addresses SKB-787.
5.2.1
Changed
Plasma container uses the same OCI image than the receiver, reducing the deployment cost of the vis-receive pipeline to help address SKB-771.
5.2.0
Added
New
mswriter.upper_triangular_baselinesoption (defaults toFalse) to ensure MSs have baselines written in upper-triangular order as expected by most 3rd-party software.
Changed
Update receive-modules and receive-processors image to 6.1.0 and 3.1.1 respectively. These new versions includes fixes for the receiver, the processor infrastructure, and to the mswriter processor. Addresses SKB-695, SKB-814 and many parts of SKB-787 (but not fully).
Default UVW engine is
measures(it was implicitlykatpoint). The latter is an order of magnitude slower. They are compatible to within 1mm and 40 arcsec.
5.1.1
Fixed
Internal validation of receive addresses correctly accepts 3-tuples in the
portarray.Data queue topic creation works regardless of how many partitions an existing topic already has.
5.1.0
Added
reception_networksetting added to indicate the network the receiver should bind to. Default behaviour is to automatically determine if hardware support is available (i.e., there is a network definition found in the config DB).
Changed
use_network_definitionis deprecated in favour ofreception_network, If both are given,reception_networktakes precedence.
Fixed
dry_runparameter has been brought back, it was accidentally removed in 5.0.0.
5.0.0
Bumped
ska-sdp-scriptingto^1.0.0to support SDP v1.Bumped default image versions for receiver, processors, integration and rcal to
6.0.0,3.0.0,1.0.0and3.0.0respectively, all of which support SDP v1.Added pod settings custom IP reading unit tests.
Added writing
SharedMemflow configuration for receiver.Added writing
DataProductflow configuration for mswriter processor.Changed vis-receive to validate script inputs and chart value outputs using pydantic models.
Sub-networks assigned to vis-receive deployments are now allocated starting from the sub-network that comes after the last allocated one. This reduces the chances of a
vis-receivedeployment that takes a long time to terminate (or gets stuck in error) from clashing with newly-minted deployments.Removed custom SDP Config DB operations code, replaced with operations classes from
ska-sdp-config.Update Dockerfile to use SKA python base image.
BREAKING
processorsparameter doesn’t accept a list of strings anymore (this had been deprecated since vis-receive 2.2.0).
4.5.0
Signal Metrics will now create the topics if needed, and update the amount of partitions as needed.
Signal Metrics adds new parameters: +
window_count: The amount of extra windows to allow. +rounding_sensitivity: The precision to round to.Upgrade Signal Metrics Generator to latest version (0.24.0)
Updated to using flows to configure the queue connector device for pointings and signal display.
4.4.1
Updated the patch version of the averagetime-mswriter image to 0.3.1 This picks up a minor change in how the data is accumulated and averaged.
4.4.0
Signal Display Metrics now configures down-scaled processing by default.
Signal Display Metrics configuration is now validated using a pydantic model.
Signal Display Metrics processor is updated to the latest version. It is now defaulted to 0.23.0
Added a new processor that integrates the visibilities in time before writing out the Measurement Sets. This processor is called
averagetime-mswriter.
4.3.0
Use poetry for managing dependencies
Add new Signal Metrics Display configuration
BREAKING the previous Signal Metrics processors should no longer be used, only use the new configuration.
Bumped the default version of the mswriter processor to 2.3.0
Bumped the default version of the receiver to 5.2.2
Use ska-sdp-scripting 0.9.0, which uses ska-sdp-config 0.9.0 with new pydantic-based interface.
Bumped the default version of the RCAL processor to 2.0.1. Also to pick up changes to the configuration database.
4.2.1
Use ska-sdp-scripting 0.7.1, which removes cancelled deployments.
4.2.0
Moved receive_addresses code to scripting library (part of ska-sdp-scripting 0.7.0)
Use ska-sdp-scripting 0.7.0, which uses ska-sdp-config 0.6.0 with new pydantic-based interface. It also addresses a bug in pb.receive_addresses.
BREAKING This and newer versions are not compatible with SDP version < 0.21.0
4.1.0
mswriter-processor version updated to 2.0.2
New function added to configure queue connector for dish pointing in case vis-receive is deployed together with pointing-offset script
Upgraded the QA Metrics Processor to
0.20.0
4.0.0
New Signal Display Metrics processors added, using prefix
signal-display-metrics-*Four have been added-all,-basic,-phase, and-amplitude. The first can be used for small datasets/testing, but the other 3 should be used in almost all other cases.BREAKING the QA Metrics processor (
qa-metric-generator) has been removed and replaced withsignal-display-metrics-*processors.
3.0.0
BREAKING Bump latest version of
mswriterprocessor to2.0.0,rcalprocessor to2.0.0, andreceive-modulesto5.0.0. This new combination of components implements the required logic to close the output Measurement Sets at EndScan time, as well as updating the SDP Config DB with the list of Measurement Sets that have been written. This change is breaking because this new version of the receiver will not work against processors based on versions of thereceive-processorspackage lower than2.0.0.
2.3.0
Bump latest version of
rcalprocessor to1.0.0. This version of thercalprocessor can deal with the latest versions of the receiver that implement data aggregation across time and frequency.
2.2.1
Use ska-sdp-scripting 0.6.3, which implements configuring the QueueConnector device in Phase enter and exit methods
2.2.0
The
processorsPB parameter can now be a dictionary instead of a list, allowing for partial built-in overrides to be given. Passing a list is still supported, but deprecated.Bump default
mswriterprocessor version to1.1.1.Add initial
qa-metrics-generatorandrcalprocessor definitions.
2.1.0
Updated to new LMC Queue Connector 3.0.1 configuration database layout and schema.
Added waiting for LMC Queue Connector to reach ON state before transitioning PB to ready.
Updated to scripting library
~= 0.6.2.
2.0.0
Changed how the network configuration is read from the SDP configuration database. Instead of reading it from
/network-definition, it is now read from/resource/<resource_type>:<resource_name>.Changed how networks are allocated within SDP. Instead of updating a central
/network-definintionvalue in the SDP configuration database, we now append/remove entries of the form<pb_id>:<resource_type>:<resource_name>for each allocation under the/allocationprefix, and leave the/network-definitionvalue unedited.BREAKING Extra PB parameters are not forwarded anymore as Helm values for the vis-receive Helm Chart. Use the new
extra_helm_valuesPB parameter instead.Added top-level
extra_helm_valuesPB parameter (defaults to{}) where users can specify any arbitrary extra set of Helm values that should be directly forwarded to the vis-receive Helm Chart.Added top-level
port_startPB parameter (defaults to21000), which was previously hidden within the implicit set of Helm values that the vis-receive chart received.Added convenience top-level
transport_protocolPB parameter (defaults to"udp"), which previously had to be given via the extra Helm values forwarded to the vis-receive Chart.
1.5.0
Updated default major versions of the receiver and mswriter processor images to
4and1respectively.The
SDP_KAFKA_HOSTenvironment variable pointing to the SDP Kafka instance is now exposed to all pods.
1.4.0
Added
use_network_definitionas a PB parameter. WhenTruethis will use the/network-definitionstored in SDP etcd to override theextraMetadatafield ofpod_settingsto use the host network port defined via a “network attachment definition” in Kubernetes along with an allocated IP address with its cidr. The used subnet range will be added to the allocted-subnets of the/network-definitionand update the SDP etcd entry. On completion the allocated subnet will be released.Update to scripting library
~= 0.6.0.Stop forcing a backend for the ska-sdp-config library in the pods launched by this script.
1.3.0
Added writing to LMC Queue Connector database configuration.
1.2.0
Update version of built-in
mswriterprocessor to0.5.1and of the receiver to3.10.1.
1.1.1
Update to latest scripting library (0.5.2)
1.1.0
Update to latest scripting library (0.5.0). This required the update of how phase.wait_loop is used in the script.
1.0.1
Fix issue with custom IPs causing the script to crash due to a wrong variable name being referenced while updating the PB’s receive addresses.
1.0.0
Complete rewrite to use the new
vis-receiveHelm Chart, which is itself an almost complete rewrite of thereceiveHelm Chart.
0.8.1
Update to latest scripting library (0.4.2)
0.8.0
Read name of PVC to be used by the receiver from the
SDP_DATA_PVC_NAMEenvironment variable as communicated by the SDP Processing Controller.Communicate more environment variables to extra containers. This is required to use the new SDP metadata package.
0.7.0
Update to latest receiver image (3.6.0).
Add verbosity PB parameter.
Add PB parameters to map a native network device, assign an IP to it, and indicate a node selector for the receiver pod.
0.6.0
Update to latest receiver image (3.3.0).
Update to latest scripting library (0.4.1)
Point the receiver to the correct SDP Configuration Database and Execution Block so it can read Scan metadata associated to each incoming payload and the list of antennas making up the subarray.
Made Docker image slimmer by removing unnecessary software installations.
0.5.1
Update to latest receiver image (2.1.0).
Use new readinessProbe available on the receiver chart.
Removed
transmission.*option handling as they are not needed anymore and added confusion.
0.5.0
Port to use SDP scripting library (formerly known as the workflow library).
0.4.0
Removed reception.num_ports configuration value, replaced it with reception.channels_per_stream, which is what the receiver program uses.
Improved default values used to launch receiver chart.
0.3.8
Refactored code and added workflow pytest code
0.3.7
Updated to add flexibility for the command parameter and updated default parameters
0.3.6
Ported to work with the correct version of the workflow library (0.2.6)
0.3.5
Capable to deploy a receive process, plasma store, and a number of other processes to consume the data from the plasma store.
0.3.4
Use dependencies from the central artefact repository and publish the workflow image there.
0.3.3
Ported to use the latest version of workflow library (0.2.4). Capable to deploy multiple receive processes. Ports published in the receive addresses match with the actual ports of the receive process(es)
0.3.2
use python:3.9-slim as the base docker image