Skip to content

Commit 3538b4f

Browse files
authored
Merge pull request #370 from casangi/332-visibilityxds_xradio_version
VisibilityXds, SpectrumXds: xradio_version => creator
2 parents 34154ff + e48b2ef commit 3538b4f

File tree

4 files changed

+37
-16
lines changed

4 files changed

+37
-16
lines changed

docs/source/measurement_set/schema_and_api/measurement_set_schema.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ Data Group dictionary
115115

116116
.. xradio_dict_schema_table:: xradio.measurement_set.schema.DataGroupDict
117117

118+
Creator dictionary
119+
~~~~~~~~~~~~~~~~~~
120+
.. autoclass:: xradio.measurement_set.schema.CreatorDict()
121+
122+
.. xradio_dict_schema_table:: xradio.measurement_set.schema.CreatorDict
123+
118124
.. _correlated data arrays:
119125

120126
Data Arrays

src/xradio/measurement_set/_utils/_msv2/conversion.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111

1212
import toolviper.utils.logger as logger
1313
from casacore import tables
14+
1415
from xradio.measurement_set._utils._msv2.msv4_sub_xdss import (
1516
create_pointing_xds,
1617
create_system_calibration_xds,
1718
create_weather_xds,
1819
)
1920
from .msv4_info_dicts import create_info_dicts
21+
from xradio.measurement_set.schema import MSV4_SCHEMA_VERSION
2022
from xradio.measurement_set._utils._msv2.create_antenna_xds import (
2123
create_antenna_xds,
2224
create_gain_curve_xds,
@@ -1025,11 +1027,14 @@ def get_observation_info(in_file, observation_id, intents):
10251027
start = time.time()
10261028
xds = xr.Dataset(
10271029
attrs={
1030+
"schema_version": MSV4_SCHEMA_VERSION,
1031+
"creator": {
1032+
"software_name": "xradio",
1033+
"version": importlib.metadata.version("xradio"),
1034+
},
10281035
"creation_date": datetime.datetime.now(
10291036
datetime.timezone.utc
10301037
).isoformat(),
1031-
"xradio_version": importlib.metadata.version("xradio"),
1032-
"schema_version": "4.0.-9989",
10331038
"type": "visibility",
10341039
}
10351040
)
@@ -1283,8 +1288,8 @@ def get_observation_info(in_file, observation_id, intents):
12831288
xds = xds.drop_vars(["UVW"])
12841289
del xds["uvw_label"]
12851290
else:
1286-
if any("WVR" in s for s in intents):
1287-
xds.attrs["type"] = "wvr"
1291+
if xds.attrs["processor_info"]["type"] == "RADIOMETER":
1292+
xds.attrs["type"] = "radiometer"
12881293
else:
12891294
xds.attrs["type"] = "visibility"
12901295

src/xradio/measurement_set/schema.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from xradio.schema.typing import Attr, Coord, Coordof, Data, Dataof, Name
1010
import numpy
1111

12+
MSV4_SCHEMA_VERSION = "4.0.-9988"
13+
1214
# Dimensions
1315
Time = Literal["time"]
1416
""" Observation time dimension """
@@ -1342,9 +1344,19 @@ class DataGroupDict:
13421344

13431345
@dict_schema
13441346
class DataGroupsDict:
1347+
"""Dictionary of data group dictionaries."""
1348+
13451349
base: DataGroupDict
13461350

13471351

1352+
@dict_schema
1353+
class CreatorDict:
1354+
software_name: str
1355+
""" Software that created the Measurement Set (XRadio, etc.). """
1356+
version: str
1357+
""" Version of the software. """
1358+
1359+
13481360
# Data Sets
13491361

13501362

@@ -1959,11 +1971,13 @@ class VisibilityXds:
19591971
""" Defines groups of correlated data + flag + weight + uvw variables. """
19601972

19611973
schema_version: Attr[str]
1962-
"""Semantic version of xradio data format"""
1974+
"""Semantic version of MSv4 data format."""
1975+
creator: Attr[CreatorDict]
1976+
"""Creator information (software, version)."""
19631977
creation_date: Attr[str]
1964-
"""Date visibility dataset was created . Format: YYYY-MM-DDTHH:mm:ss.SSS (ISO 8601)"""
1978+
"""Date visibility dataset was created. Format: YYYY-MM-DDTHH:mm:ss.SSS (ISO 8601)"""
19651979

1966-
type: Attr[Literal["visibility"]] = "visibility"
1980+
type: Attr[Literal["visibility", "radiometer"]] = "visibility"
19671981
"""
19681982
Dataset type
19691983
"""
@@ -2024,9 +2038,6 @@ class VisibilityXds:
20242038
weather_xds: Optional[Attr[WeatherXds]] = None
20252039
phased_array_xds: Optional[Attr[PhasedArrayXds]] = None
20262040

2027-
xradio_version: Optional[Attr[str]] = None
2028-
""" Version of XRADIO used if converted from MSv2. """
2029-
20302041

20312042
@xarray_dataset_schema
20322043
class SpectrumXds:
@@ -2061,9 +2072,11 @@ class SpectrumXds:
20612072
""" Defines groups of correlated data + flag + weight variables. """
20622073

20632074
schema_version: Attr[str]
2064-
"""Semantic version of xradio data format"""
2075+
"""Semantic version of MSv4 data format."""
2076+
creator: Attr[CreatorDict]
2077+
"""Creator information (software, version)."""
20652078
creation_date: Attr[str]
2066-
"""Date MSv4 was created . Format: YYYY-MM-DDTHH:mm:ss.SSS (ISO 8601)"""
2079+
"""Date spectrum dataset was created . Format: YYYY-MM-DDTHH:mm:ss.SSS (ISO 8601)"""
20672080

20682081
type: Attr[Literal["spectrum"]] = "spectrum"
20692082
"""
@@ -2121,6 +2134,3 @@ class SpectrumXds:
21212134
phase_calibration_xds: Optional[Attr[PhaseCalibrationXds]] = None
21222135
weather_xds: Optional[Attr[WeatherXds]] = None
21232136
phased_array_xds: Optional[Attr[PhasedArrayXds]] = None
2124-
2125-
xradio_version: Optional[Attr[str]] = None
2126-
""" Version of XRADIO used if converted from MSv2. """

tests/stakeholder/test_measure_set_stakeholder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def base_test(
171171
if do_schema_check:
172172
start_check = time.time()
173173
for xds_name in ps.keys():
174-
if ps[xds_name].attrs["type"] == "visibility":
174+
if ps[xds_name].attrs["type"] in ["visibility", "radiometer"]:
175175
check_dataset(ps[xds_name], VisibilityXds).expect()
176176
elif ps[xds_name].attrs["type"] == "spectrum":
177177
check_dataset(ps[xds_name], SpectrumXds).expect()

0 commit comments

Comments
 (0)