Changelog#
X.Y.Z (DD-MM-YYYY)#
Bump the minimum
arcaeversion to 0.5.8 (PR196).Expose the
SIGMA_SPECTRUMvariable on the correlated dataset, read fromMAIN::SIGMA_SPECTRUMor, if it is missing, broadcast fromMAIN::SIGMAover frequency, asWEIGHTis. Fix integer selections, e.g.isel(baseline_id=1), on broadcast variables (PR195).Re-introduce the simulator’s
phased_arrayoption, so that thePHASED_ARRAYsub-table is only simulated on request and no longer clutters the documentation (PR194).Re-enable the documentation’s navigation sidebar, listing every page, and narrow both sidebars to give more space to the page content (GH20, PR193).
Fix
IndexErrorwhen selecting correlated data with arrays along bothtimeandbaseline_id, e.g.isel(time=[0, 2], baseline_id=[0, 1])(PR191).List each antenna once in
antenna_xds, using its first FEED row, when the FEED table has multiple rows per antenna, e.g. one per feed or time. Emit aHeterogeneousFeedWarningifRECEPTOR_ANGLE,POLARIZATION_TYPEorFOCUS_LENGTHdiffer between these rows. Prefer FEED rows matching the partition’sSPECTRAL_WINDOW_IDover global (-1) rows (GH186, PR187).Check that secondary columns have a single row shape in linear time, instead of sorting all row shapes with
np.unique, and only read the first row’s shape of fixed shape columns. This reduces the time to open a 4.6 million row MeerKAT Measurement Set with three secondary columns by about 14 seconds.Reduce CI minutes: test multiple python versions per runner with uv and pytest-xdist, test a reduced matrix on PRs, cancel superseded PR runs and fix the matrix OS being ignored. Make MSv4 test corpus downloads atomic (PR181).
Add
pointing_xdssupport, from thePOINTINGsub-table. POINTING rows overlapping each partition’s time span are presented on their nativetime_pointingaxis, or on the correlatedtimeaxis wheninterpolate="pointing"is passed toopen_datatree. Only the indexing columns ofPOINTINGare read in full and POINTING data is read lazily. POINTING rows sharing a(TIME, ANTENNA_ID)key cannot be gridded: aDuplicateSubtableRowWarningis emitted and thepointing_xdsis omitted, rather than failing to open (PR185).Add
system_calibration_xdsandweather_xdssupport, from theSYSCALandWEATHERsub-tables, also acceptinginterpolate="sys_cal"andinterpolate="weather". Weather stations are identified byNS_WX_STATION_ID, where present and populated, and otherwise byANTENNA_ID. Only stations with rows relevant to the partition are included. Sub-table rows with intervals less than a tenth of their antenna’s sampling cadence are considered instantaneous samples, valid until the next sample (PR190).
0.5.12 (02-10-2026)#
0.5.11 (22-09-2026)#
0.5.9 (14-09-2026)#
Fix
arcae.Tablefile descriptor leaks (PR172).
0.5.8 (23-07-2026)#
Upgrade to arcae 0.5.4, which bounds the previously unbounded tiled storage-manager caches (PR169)
Add
driveranddriver_kwargsarguments toopen_datasetandopen_datatree.driver_kwargsdefaults to{"cache_size": 256}, bounding the caches of the main table and all subtables (including large subtables such asPOINTING), with per-table overrides under the reserved"table_overrides"key (PR169)Deprecate the
ninstancesargument in favour ofdriver_kwargs={"table_overrides": {"MAIN": {"ninstances": N}}}. It is still respected for now but will not be in a future release (PR169)
0.5.7 (21-07-2026)#
Default epoch to “” to avoid re-initialisation of MSv2Structures on every xarray.open_datatree call (PR167)
0.5.6 (26-06-2026)#
0.5.5 (12-06-2026)#
Upgrade to arcae 0.5.2 (PR161)
Documentation fixes (PR160)
Replace
xarray_ms.multiton.Multitonwithrarg-python-patterns.multiton.Multiton(PR159)Move development dependencies in dependency groups (PR158)
Remove
*kwargsfromMSv2EntryPointmethods (PR156)Revert: Allow unsupported arguments in entrypoint methods (#154) (PR155)
0.5.4 (20-05-2026)#
Allow unsupported arguments in entrypoint methods (PR154)
0.5.3 (11-05-2026)#
0.5.1 (06-03-2026)#
0.5.0 (02-03-2026)#
Fix
VisibilityCodertypo (PR145)Raise an exception if no MSv4 Frame Type is available in
EpochCoder.decode(PR145)Replace an assert with an
InvalidMeasurementSetexception if the number ofTabRefTypesdoesn’t match theTabRefCodes(PR145)Guard frame inference in a dictionary with a KeyError (PR145)
0.3.9 (18-02-2026)#
0.3.8 (17-10-2025)#
Synchronise with v4.0.0 schema version (PR139)
Remove
correlated_xds.scan_numbercoordinate (PR139)Remove
correlated_xds.sub_scan_numbercoordinate (PR139)Add
correlated_xds.scan_namecoordinate (PR139)Add
correlated_xds.frequency.spectral_window_intentscoordinate attribute (PR139)Remove
correlated_xds.observation_info["intents"](PR139)Rename
correlated_xds.observation_info["project"]to"project_UID"(PR139)Fix construction of
field_and_source_xdsto use unique partition field id values (PR138)Formalise measures handling (PR138)
Remove xarray version restriction (PR137)
0.3.7 (03-10-2025)#
Documentation updates (PR134)
Add
MsV2EntryPoint.supports_groups=True(PR136)Temporarily restrict xarray to < 2025.9.1 (PR136) until xarray#10808 is resolved.
Restrict arcae to < 0.4.0 to prevent API-breaking write support changes (PR136)
Provide a physically realistic SPECTRAL_WINDOW::REF_FREQUENCY in simulated data (PR133)
0.3.6 (22-09-2025)#
0.3.5 (17-09-2025)#
Remove deploy to test-pypi (PR130)
0.3.4 (17-09-2025)#
Add user-agent headers to urlib.request.urlopen (PR129)
0.3.3 (17-09-2025)#
Support non-standard columns (PR126)
Test on macos-15 (PR127)
Correct MSv4 schema issues (PR125)
Support TAI Measure encoding in time data (PR124)
Distinguish between time, baseline and channel irregularity (PR123)
Test xarray-ms against the full MSv4 Test Corpus (PR120)
Handle negative SOURCE_IDs in the FIELD subtable (PR122)
Cleanup Dataset Factories (PR118)
Fix integer selection (PR117)
Correct clamp of the slice stop to be min(shape[d], s.stop) (PR115)
Rename deprecated
repository_urltorepository-url(PR112)Use trusted publishing when publishing to pypi (PR111)
Update pre-commit hooks (PR110)
Implement PEP 621 in pyproject.toml (PR109)
0.3.2 (21-06-2025)#
0.3.1 (11-06-2025)#
Fix low-resolution broadcasting (PR106)
0.3.0 (10-06-2025)#
Upgrade to arcae 0.2.9 to elide selection checks on ignored rows (PR105)
0.2.9 (02-06-2025)#
0.2.8 (01-04-2025)#
Update copyright to reflect NRF and RATT in both the BSD3 license and documentation (PR96)
0.2.7 (01-04-2025)#
0.2.6 (31-03-2025)#
0.2.5 (24-03-2025)#
0.2.4 (19-03-2025)#
Fix no-autocorrelation case when constructing partition row maps (PR85)
Default auto correlations to False (PR85)
Refactor dataset factories into factories subpackage (PR83, PR86)
Use a
CommonStoreArgsclass to default initialise common store arguments (PR83)Release resources when datasets or datatrees are closed (PR81)
Use creator attribute to record xarray-ms version (PR80)
Generalise the TableFactory class into a Multiton class (PR79)
Refactor partitioning logic to be more robust (PR78)
The set of antennas related to a partition in the
FEEDtable is used to create the antenna dataset for that partition (PR78)Metadata extraction moved to dataset factories (PR78)
Extend the antenna dataset implementation (PR77)
Fix MSv2Store._partition_key typing (PR76)
Add observation_info attribute (PR74)
Add
ANTENNA_DISH_DIAMETERvariable to antenna dataset (PR73)Add cartesian_pos_label labels to antenna dataset (PR72)
Allow fallback to string values in partition keys (PR71)
Report irregular channel widths with an IrregularGridWarning (PR70)
Tighten
SOURCE_IDpartitioning checks (PR69)Check that each partition has a unique feed index pair (PR68)
Remove unused and commented out test cases (PR67)
0.2.3 (28-02-2025)#
Remove superfluous hollow DataTree node containing the Measurement Set name. Visibility partition structure changes to
msname_partition_000. (PR66)
0.2.2 (27-02-2025)#
Add u, v and w labels to the uvw_label coordinate (PR65)
Remove ellipsoid_pos_label from ANTENNA_POSITION component coordinate (PR64)
Move README content into the Documentation (PR62)
Allow varying intervals in the last timestep of a partition (PR61)
Rename ANTENNA dataset to antenna_xds (PR60)
Depend on arcae ^0.2.7 (PR59)
Fix test cases that succeeded after attributes changed (PR57)
Make MSv2Array transform a property (PR56)
Further partitioning improvement and alignment with MSv4 (PR55)
Use epoch to distinguish multiple instances of the same dataset (PR54)
Use np.logical_or.reduce for generating diffs over more than 2 partitioning arrays (PR53)
Improve Missing Column error (PR52)
Fix
open_datatreeinstructions in the README (PR51)Skip test case that segfaults on numpy 2.2.2 (PR50)
Upgrade to xarray 2025.1.1 (PR49)
Add documentation link to MSv2EntryPoint class (PR47)
Change visibility partition structure to
msname/partition-001(PR46)Rename
baselinedimension tobaseline_id(PR44)Loosen xarray version requirement to >= 2024.9.0 (PR44)
Change
partition_chunkstopreferred_chunks(PR44)Allow arcae to vary in the 0.2.x range (PR42)
Pin xarray to 2024.9.0 (PR42)
Rename MSv2PartitionEntryPoint to MSv2EntryPoint (PR38)
Move
chunkskwarg functionality in MSv2PartitionEntryPoint.open_datatree topartition_chunks(PR37)Set MSv4 version to 4.0.0 (PR34)
Fix changelog highlighting in install instructions (PR33)
Add basic read tests (PR32)
Fix Dataset and DataTree equivalence checks in test cases (PR31)
0.2.1 (04-10-2024)#
Upgrade to arcae 0.2.5 (PR29)
Rename antenna{1,2}_name to baseline_antenna{1,2}_name (PR26)
Use datatree as the primary representation (PR24)
Remove unnecessary coordinate attributes (PR23)
Disable navigation sidebars (PR19)
Add Github Issue and PR templates (PR17)
Improve key resolution (PR15)
Add a basic tutorial (PR13)
0.2.0 (11-09-2024)#
Initial release