Changelog
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
UNRELEASED
27.4.0
Add
labelsdict to the ExecutionBlock, to allow key-value pairs to be captured during ad-hoc observingMigrated project to UV and Ruff.
27.3.0
Reduced warnings seen at runtime by fixing np.float64 serialization, and refactoring Quantity/VectorQuantity to use Pydantic’s
__get_pydantic_core_schema__pattern.Removed deprecated
scan_definitionsandscan_sequencefrom the root of SBDefinition.Added QA metric thresholds
27.2.2
[BUGFIX] Fixed issue where an exception was raised when deserialising
ScanDefinition.scan_duration.
27.2.1
Renamed LSTConstraint fields to start and end
27.2.0
Added PVTTable PointingPattern to Target class
Added reference_dishes parameter to SchedulingBlockDefinition’s DishAllocation class
SonarQube for static analysis of code quality
AstropyQuantity is bifurcated into two versions:
AstropyQuantitymaps to a single scalar AstropyQuantity, whileAstropyVectorQuantitymaps to an AstropyQuantitythat holds a vector of values.Added ObservingConstraints to SBDefinition
27.1.1
[BUGFIX] removes numpy version pin which caused issues with other SKA dependencies downstream.
27.1.0
Added flow-through, detected-filterbank and pulsar-timing PST processing modes to
PSTConfigurationofSBDefinition[BUGFIX] Changed MidCSPConfigurationBuilder default frequency_band to BAND_1 to match spw setup.
[BUGFIX] Fixed issue where PDM builders would retain state for child properties created via other builders.
list properties now default to an empty list rather than being mandatory in input JSON.
27.0.0
[BREAKING] Updates to
script_parametersfields inDataProductSDP
26.3.1
Fixes issue - ValidationArrayAssembly not pulled into root init
26.3.0
Regenerated the SVG for the project entity diagram
Updates hr to h for hours in ScanDurationUnits due to astropy constraints
Added validate-against parameter to state which capabilities are needed for an SBD to be validated against
Adds ob_ref to the SBDefinition
26.2.1
Fixes bug where
scan_duration_msis not correctly converted to a TimeDeltaMs object
26.2.0
Adds LIN_X and LIN_Y to Polarisation for data_product_sdp
26.1.0
Added: Added the purpose field to the project entity.
Adds Two-Line Element Set (TLE) coordinate support.
Adds ScanDefinition.scan_duration as an AstroPy quantity.
Deprecates ScanDefinition.scan_duration_ms in favour of ScanDefinition.scan_duration
26.0.3
Updates to polarisations from polarisation for PST
26.0.2
Updates the spectral image class
26.0.1
Updated the polarization options and taper from str to int in data products
26.0.0
Adds data_products_ref to results in proposal
Adds PST and Spectral products to the data product class
[BREAKING] Updates the polarisations to be a list and
observation_set_refto be a str.
25.0.0
[BREAKING] Adds
script_parametersfield toDataProductSDPclass inProposaland moves imaging script parameters fromDataProductSDPtoDataProductScriptParametersAdds
channels_outandfit_spectral_polas new parameters toDataProductScriptParametersAdds
calibration_strategiesto project model
24.0.0
[BREAKING] Updates
optionstoproductsin theDataProductSDP[BREAKING] Removes
investigator_refsfromproposalRemoves ska_oso_pdm.openapi module
Reinstates ‘make py2puml’ for automatic UML diagram generation
Adds calibration strategy to proposal model
[BREAKING] Updates pixel_size to image_cellsize
23.0.0
[BREAKING] Removes
InfofromProject[BREAKING] Updates to use
ProposalInfoandObservationInfoto replaceInfoinPropsoalAdds new status for
ProposalStatusAdds
is_activeinPanelReview
22.1.1
Updates on review and recommendation status
22.1.0
Adds new
SDPConfigurationclass for specifying SDP script, version and parameters in the SBDAdds support for defining the sub-band to be used with the Band 5b down-converter
22.0.0
[BREAKING] Removed deprecated
EquatorialCoordinates,HorizontalCoordinates,SolarSystemObjectandEquatorialCoordinatesPSTClasses[BREAKING] Removed deprecated
SDPConfigurationclass
21.0.0
[BREAKING] Separated science and technical reviewers.
Updates default
is_feasibletoNone
20.0.1
Fixed broken test
20.0.0 [DO NOT USE]
[BREAKING] Renamed
investigator_idinInvestigatorstouser_id
19.1.0
Adds proposal level access model
ProposalAccessand enumProposalRolefor the PPT.
19.0.0
Adds scan sequences to SB Definition SubarrayBeamConfiguration and DishAllocation to support observing more than one target per scan.
[BREAKING] Remove deprecated
cbffrom theCSPConfigurationand the deprecatednumber_of_channelsinside theMCCSAllocationDeprecate
sdp_configurationin theSBDefinition
18.5.0
Updated the panel reviews model to accommodate both technical and science reviews
Added score to the panel decision model
18.4.0
Add Proposal related fields to the Project model - specifically adding science programmes into the observing blocks and a prsl_ref to the Project
18.3.0
Changed status in proposal management from lower-case to title-case
18.2.0
Added decision_id to class
PanelDecisionfor the PMTMetadata for Proposal Management no longer optional
18.1.0
Replace older usage of
typing.Optionalwith modern| Nonesyntax.Added initial proposal management classes for the PMT:
PanelDecision,PanelReviewandPanel
18.0.0
[Breaking] Proposal.prsl_id can now be None
DishAllocation.dish_ids serialise to a sorted set in JSON.
Added
PstSPWConfigurationto allow definition of spectral windows for Mid PST
17.2.0
Adds PointedMosaicParameters to SBDefinition
__init__.pyto allow importing at SBDefinition levelAdds Low ITF as an array option
17.1.1
Renames
target_idinBeamtobeam_namefor consistency
17.1.0
Adds PointedMosaicParameters pointing pattern for mosaics consisting of individual pointings.
Adds ‘epoch’ field to EquatorialCoordinates and EquatorialCoordinatesPST for compatibility with ADR-63.
Adds
AltAzCoordinates,SpecialCoordinatesandAltAzCoordinatesto align with ADR-63.Deprecates
HorizontalCoordinates,EquatorialCoordinates,EquatorialCoordinatesPSTandSolarSystemObject.Adds
target_idfield toBeamclass in preparation for future removal ofEquatorialCoordinatesPSTRefactored the Coordinates to have a
to_sky_coordmethod rather than storing a_coordobject. Not technically breaking as it is a private field.Changed the input type of coordinate units to accept only a Tuple and not a list or string.
Added GalacticCoordinates object
Deprecate number_of_channels in the MCCS part of the SBDefiniton, as this information can be derived from the CSP set up.
17.0.1
Added default dish ids to MID imaging SB builder
17.0.0
Added ‘name’ to targets and csp_configurations, to be used as a user-friendly way to identify the entity. The existing id fields can now be set to a uid in the UI
[Breaking]: In the SBDefinition, remove dish configuration and refactor
dish_allocationto containdish_ids,dish_allocation_idandselected_subarray_definition[Breaking]: In the SBDefinition, refactor
mccs_allocationto containmccs_allocation_idinstead ofmccs_config_idandselected_subarray_definitioninstead ofconfiguration[Breaking]: Remove telescope from Project
16.2.1
Changed
midcbf.subbandkwargfrequency_slice_offsetto be mandatory and defaulting to zero
16.2.0
Added
buildersmodule providing high-level functions for generating Mid and Low SBDefinitions.
16.1.0
Added :
robustandspectral_averagingto observation details level
Removed:
spectral_averagingremoed from low array details
16.0.1
Changed typo “suppied_type” to “supplied_type” in “Proposal.ObservationSets.Supplied”
16.0.0
Changed
sub_typetoattributesas this reflects better the Science terminologyChanged default of
subarrayfromAA1toaa1Removed
SpiralParametersfromPointingKindenum within the ProposalUpdated descriptions for various Proposal fields to aid in clarity
Changed
beam_sizeAdded
uploaded_pdfto proposals documentsRemoved
ProposalTypeENUMas will be provided by another system, replaced field to be a stringRemoved
ProposalSubTypeas will be provided by another system, replaced field to be a stringRemoved
ScienceCategoryas will be provided by another system, replaced field to be a stringRemoved
ObservationTypeas will be provided by another system, replaced field to be a stringRemoved
ObservingBandas will be provided by another system, replaced field to be a stringUpdated
resultstoresult_detailswithin the ProposalAdded
statusto the Proposal InvestigatorRemoved a number of fields from the Proposals as they are no longer required
Added
Sensitivityclass for use in the ProposalAdded
SynthesizedBeamSizeclass for use with thesynthesized_beam_sizeUpdated
image_sizeto use AstropyQuantityUpdated
pixel_sizeto use AstropyQuantity
15.4.0
Added PDM version number to entity metadata
Added
do_pstboolean toLowCBFConfigurationto indicate that the standard correlation set-up will be used for PST observingChanged
SubarrayBeamConfigurationfieldnumber_of_channelsto optional
15.3.0
Introduced entity reference version into the status entity schemas.
Added
PointingKind.SpiralandSpiralParameterspointing pattern to support holography observations.Added
EquatorialCoordinatesPSTcoordinate model to support tied array beam observations
15.2.0
Make a uniform style for enums in the PDM for the names and values of status entities.
15.1.0
Added
midcbfinCSPConfiguration
15.0.0
[Breaking] Updated mccs_allocation to support changes in MCCS Schema
[Breaking] Updated lowcbf within csp_configuration
[Breaking] Pulled SubArrayLOW and SubArrayMID into _shared
[Breaking] Renamed scan_duration to scan_duration_ms in ScanDefinition to reflect the dump value units
[Breaking] Removed obsolete subarray_beam_configurations and target_beam_configurations from SBDefinition
Dependency updates:
Astropy >=5.0.3,<7
Black >22.10.0
14.3.0
Moved Elevation to top level of observation
Changed integration to integration_time for the observation_set in proposal
Added support for non-sidereal targets known to KatPoint using reference frame ‘special’
14.2.0
DO NOT USE
14.1.0
Added support for Project status entity.
14.0.1
Override pipeline runner images in CI lint/test jobs.
Remove explicit Pydantic dependencies.
Minor dependency updates.
14.0.0
Various changes to the Proposal model, including:
[BREAKING] Renames
Proposal.proposal_idtoprsl_id[BREAKING] Renames
Investigators.proposal_investigator_idtoinvestigator_id[BREAKING] Renames
Proposal.proposal_infotoinformation[BREAKING] Changes the shape of
observation_set.Suppliedto contain a nestedquantityfield.[POSSIBLE BREAKING] A number of fields that were optional are now mandatory. Default values (e.g.
[]) should make this safe, but your code may break if it expects aNoneStandardisation of all fields that have value and unit components to use the standard ‘quantity’ object
Implementation of standard types where applicable
Addition of ENUM’s to further improve the quality of the information stored
Additional sample test files and tests added to work with the updated structure, including both Draft & Submitted status variations Union’s added so that information can be stored as applicable with reduced wasted content
Simple descriptions added to fields with a view that these will be extended, which will add in future updates
ID fields now use type aliases from
_shared.idsStructure extended so that results from sensitivity calculations are stored for later referencing
Adds static type checking (enforced by Pyright) to our code linting.
13.0.1
Remove classmethod property (deprecated in Py3.11) ‘kind’ from base classes PythonProcedure and PointingPatternParameters to silence warnings.
13.0.0
[BREAKING] Renames
EBStatustoOSOEBStatus[BREAKING] Changes status history reference fields from *_id to *_ref for consistency.
StatusHistory entities now default to a
Metadata(version=1)
12.0.1
fix: RequestResponse.response_received_at was mandatory rather than optional.
12.0.0
Adopts Pydantic for all PDM objects.
Unifies formerly auto-generated models and hand-written models.
Unifies models and serialisation schemas, removing all Marshmallow schemas.
New ‘source of truth’: OpenAPI schema yaml is generated from Python code.
sb_definition.ScanDefinition.pointing_correctionis non-nullable, with a default value ofMAINTAIN.EquatorialCoordinates.unitandHorizontalCoordinates.unitare now always a two-element tuple (array in JSON) - previously it could be a single string if both axes of the reference frame had the same units.Added
RadialVelocitytoTargetobject representation shared byProposalInfoandSBDefinition.[BREAKING] Pydantic models do not accept positional arguments. Previously, many objects required keyword arguments, but some allowed positional.
[BREAKING]
ResponseResponseandResponseErrorrenamed toResponseWrapperandErrorWrapper.[BREAKING] Pydantic models enforce runtime correctness. Attempting to instantiate an object with invalid data will raise a
ValidationError[BREAKING]
schemas,generatedandentitiesremoved: Import directly fromska_oso_pdmor from an entity-specific subpackage e.g.ska_oso_pdm.proposal[BREAKING]
proposal.ProposalInfo.targetsis now a list ofTargetobjects:proposal.Targetandsb_definition.Targetare now a single, unified representation.[BREAKING] Many field names changed to add
_refsuffix to distinguish between inline objects and references to IDs of other objects.[POSSIBLE BREAKING] Datetime strings in JSON use
Z(Zulu time) instead of+00:00to indicate UTC. These are equivalent under ISO 8601.