xradio 0.0.51__py3-none-any.whl → 0.0.53__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- xradio/_utils/dict_helpers.py +24 -0
- xradio/image/_util/_casacore/xds_from_casacore.py +116 -69
- xradio/image/_util/_casacore/xds_to_casacore.py +53 -32
- xradio/image/_util/_fits/xds_from_fits.py +60 -78
- xradio/image/_util/_zarr/common.py +1 -1
- xradio/image/_util/_zarr/xds_from_zarr.py +37 -20
- xradio/image/_util/_zarr/xds_to_zarr.py +37 -21
- xradio/image/_util/casacore.py +6 -3
- xradio/image/image.py +20 -8
- xradio/measurement_set/_utils/_msv2/conversion.py +12 -0
- xradio/measurement_set/_utils/_msv2/create_field_and_source_xds.py +9 -2
- xradio/measurement_set/_utils/_msv2/msv4_sub_xdss.py +116 -1
- xradio/measurement_set/schema.py +104 -1
- xradio/schema/check.py +3 -2
- {xradio-0.0.51.dist-info → xradio-0.0.53.dist-info}/METADATA +4 -4
- {xradio-0.0.51.dist-info → xradio-0.0.53.dist-info}/RECORD +19 -19
- {xradio-0.0.51.dist-info → xradio-0.0.53.dist-info}/WHEEL +1 -1
- {xradio-0.0.51.dist-info → xradio-0.0.53.dist-info}/licenses/LICENSE.txt +0 -0
- {xradio-0.0.51.dist-info → xradio-0.0.53.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import toolviper.utils.logger as logger
|
|
2
2
|
import os
|
|
3
3
|
import time
|
|
4
|
-
from typing import Tuple, Union
|
|
4
|
+
from typing import Optional, Tuple, Union
|
|
5
5
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
import xarray as xr
|
|
8
|
+
from numpy.typing import ArrayLike
|
|
8
9
|
|
|
9
10
|
from xradio._utils.coord_math import convert_to_si_units
|
|
10
11
|
from xradio._utils.schema import (
|
|
@@ -741,3 +742,117 @@ def create_system_calibration_xds(
|
|
|
741
742
|
sys_cal_xds[data_var] = sys_cal_xds[data_var].astype(np.float64)
|
|
742
743
|
|
|
743
744
|
return sys_cal_xds
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
def create_phased_array_xds(
|
|
748
|
+
in_file: str,
|
|
749
|
+
antenna_names: list[str],
|
|
750
|
+
receptor_label: list[str],
|
|
751
|
+
polarization_type: ArrayLike,
|
|
752
|
+
) -> Optional[xr.Dataset]:
|
|
753
|
+
"""
|
|
754
|
+
Create an Xarray Dataset containing phased array information.
|
|
755
|
+
|
|
756
|
+
Parameters
|
|
757
|
+
----------
|
|
758
|
+
in_file : str
|
|
759
|
+
Path to the input MSv2.
|
|
760
|
+
antenna_names: DataArray or Sequence[str]
|
|
761
|
+
Content of the antenna_name coordinate of the antenna_xds.
|
|
762
|
+
receptor_label: DataArray or Sequence[str]
|
|
763
|
+
Content of the receptor_label coordinate of the antenna_xds. Used to
|
|
764
|
+
label the corresponding axis of ELEMENT_FLAG.
|
|
765
|
+
polarization_type: DataArray or ArrayLike
|
|
766
|
+
Contents of the polarization_type coordinate of the antenna_xds.
|
|
767
|
+
Array-like of shape (num_antennas, 2) containing the polarization
|
|
768
|
+
hands for each antenna.
|
|
769
|
+
|
|
770
|
+
Returns
|
|
771
|
+
----------
|
|
772
|
+
xr.Dataset or None: If the input MS contains a PHASED_ARRAY table,
|
|
773
|
+
returns the Xarray Dataset containing the phased array information.
|
|
774
|
+
Otherwise, return None.
|
|
775
|
+
"""
|
|
776
|
+
|
|
777
|
+
def extract_data(dataarray_or_sequence):
|
|
778
|
+
if hasattr(dataarray_or_sequence, "data"):
|
|
779
|
+
return dataarray_or_sequence.data.tolist()
|
|
780
|
+
return dataarray_or_sequence
|
|
781
|
+
|
|
782
|
+
antenna_names = extract_data(antenna_names)
|
|
783
|
+
receptor_label = extract_data(receptor_label)
|
|
784
|
+
polarization_type = extract_data(polarization_type)
|
|
785
|
+
|
|
786
|
+
# NOTE: We cannot use the dimension renaming option of `load_generic_table`
|
|
787
|
+
# here, because it leads to a dimension name collision. This is caused by
|
|
788
|
+
# the presence of two dimensions of size 3 in multiple arrays.
|
|
789
|
+
# Instead, we do the renaming manually below.
|
|
790
|
+
try:
|
|
791
|
+
raw_xds = load_generic_table(
|
|
792
|
+
in_file,
|
|
793
|
+
"PHASED_ARRAY",
|
|
794
|
+
# Some MSes carry COORDINATE_SYSTEM as a copy of COORDINATE_AXES
|
|
795
|
+
# due to a past ambiguity on the PHASED_ARRAY schema
|
|
796
|
+
ignore=["COORDINATE_SYSTEM", "ANTENNA_ID"],
|
|
797
|
+
)
|
|
798
|
+
except ValueError:
|
|
799
|
+
return None
|
|
800
|
+
|
|
801
|
+
# Defend against empty PHASED_ARRAY table.
|
|
802
|
+
# The test MS "AA2-Mid-sim_00000.ms" has that problem.
|
|
803
|
+
required_keys = {"COORDINATE_AXES", "ELEMENT_OFFSET", "ELEMENT_FLAG"}
|
|
804
|
+
if not all(k in raw_xds for k in required_keys):
|
|
805
|
+
return None
|
|
806
|
+
|
|
807
|
+
def msv4_measure(raw_name: str) -> dict:
|
|
808
|
+
coldesc = raw_xds.attrs["other"]["msv2"]["ctds_attrs"]["column_descriptions"]
|
|
809
|
+
return column_description_casacore_to_msv4_measure(coldesc[raw_name])
|
|
810
|
+
|
|
811
|
+
def make_data_variable(raw_name: str, dim_names: list[str]) -> xr.DataArray:
|
|
812
|
+
da = raw_xds[raw_name]
|
|
813
|
+
da = xr.DataArray(da.data, dims=tuple(dim_names))
|
|
814
|
+
return da.assign_attrs(msv4_measure(raw_name))
|
|
815
|
+
|
|
816
|
+
raw_datavar_names_and_dims = [
|
|
817
|
+
(
|
|
818
|
+
"COORDINATE_AXES",
|
|
819
|
+
("antenna_name", "cartesian_pos_label_local", "cartesian_pos_label"),
|
|
820
|
+
),
|
|
821
|
+
("ELEMENT_OFFSET", ("antenna_name", "cartesian_pos_label_local", "element_id")),
|
|
822
|
+
("ELEMENT_FLAG", ("antenna_name", "receptor_label", "element_id")),
|
|
823
|
+
]
|
|
824
|
+
|
|
825
|
+
data_vars = {
|
|
826
|
+
name: make_data_variable(name, dims)
|
|
827
|
+
for name, dims in raw_datavar_names_and_dims
|
|
828
|
+
}
|
|
829
|
+
data_vars["COORDINATE_AXES"].attrs = {
|
|
830
|
+
"type": "rotation_matrix",
|
|
831
|
+
"units": ["undimensioned", "undimensioned", "undimensioned"],
|
|
832
|
+
}
|
|
833
|
+
# Remove the "frame" attribute if it exists, because ELEMENT_OFFSET is
|
|
834
|
+
# defined in a station-local frame for which no standard name exists
|
|
835
|
+
data_vars["ELEMENT_OFFSET"].attrs.pop("frame", None)
|
|
836
|
+
data_vars["ELEMENT_OFFSET"].attrs.update(
|
|
837
|
+
{
|
|
838
|
+
"coordinate_system": "topocentric",
|
|
839
|
+
"origin": "ANTENNA_POSITION",
|
|
840
|
+
}
|
|
841
|
+
)
|
|
842
|
+
|
|
843
|
+
num_elements = data_vars["ELEMENT_OFFSET"].sizes["element_id"]
|
|
844
|
+
|
|
845
|
+
data_vars = {"PHASED_ARRAY_" + key: val for key, val in data_vars.items()}
|
|
846
|
+
coords = {
|
|
847
|
+
"antenna_name": antenna_names,
|
|
848
|
+
"element_id": np.arange(num_elements),
|
|
849
|
+
"receptor_label": receptor_label,
|
|
850
|
+
"polarization_type": (
|
|
851
|
+
("antenna_name", "receptor_label"),
|
|
852
|
+
polarization_type,
|
|
853
|
+
),
|
|
854
|
+
"cartesian_pos_label": ["x", "y", "z"],
|
|
855
|
+
"cartesian_pos_label_local": ["p", "q", "r"],
|
|
856
|
+
}
|
|
857
|
+
attrs = {"type": "phased_array"}
|
|
858
|
+
return xr.Dataset(data_vars, coords, attrs)
|
xradio/measurement_set/schema.py
CHANGED
|
@@ -26,6 +26,8 @@ TimeWeather = Literal["time_weather"]
|
|
|
26
26
|
""" time dimension of weather dataset (when not interpolated to main time) """
|
|
27
27
|
AntennaName = Literal["antenna_name"]
|
|
28
28
|
""" Antenna name dimension """
|
|
29
|
+
ElementId = Literal["element_id"]
|
|
30
|
+
""" Element Id dimension of phased_array_xds"""
|
|
29
31
|
StationName = Literal["station_name"]
|
|
30
32
|
""" Station name dimension """
|
|
31
33
|
ReceptorLabel = Literal["receptor_label"]
|
|
@@ -56,6 +58,8 @@ EllipsoidPosLabel = Literal["ellipsoid_pos_label"]
|
|
|
56
58
|
""" Coordinate labels of geodetic earth location data (typically shape 3 and 'lon', 'lat', 'height')"""
|
|
57
59
|
CartesianPosLabel = Literal["cartesian_pos_label"]
|
|
58
60
|
""" Coordinate labels of geocentric earth location data (typically shape 3 and 'x', 'y', 'z')"""
|
|
61
|
+
CartesianPosLabelLocal = Literal["cartesian_pos_label_local"]
|
|
62
|
+
""" Coordinate labels for phased array elements positions relative to their parent station position; defined in a station-local frame (typically shape 3 and 'p', 'q', 'r')"""
|
|
59
63
|
nPolynomial = Literal["n_polynomial"]
|
|
60
64
|
""" For data that is represented as variable in time using Taylor expansion """
|
|
61
65
|
PolyTerm = Literal["poly_term"]
|
|
@@ -76,9 +80,12 @@ SkyCoord = Literal["sky_coord"]
|
|
|
76
80
|
SpectralCoord = Literal["spectral_coord"]
|
|
77
81
|
Location = Literal["location"]
|
|
78
82
|
Doppler = Literal["doppler"]
|
|
79
|
-
|
|
83
|
+
RotationMatrix = Literal["rotation_matrix"]
|
|
80
84
|
|
|
81
85
|
# Units of quantities and measures
|
|
86
|
+
UnitsUndimensioned = list[
|
|
87
|
+
Literal["undimensioned"]
|
|
88
|
+
] # name consistent with casacore measures
|
|
82
89
|
UnitsSeconds = list[Literal["s"]]
|
|
83
90
|
UnitsHertz = list[Literal["Hz"]]
|
|
84
91
|
UnitsMeters = list[Literal["m"]]
|
|
@@ -562,6 +569,7 @@ AllowedLocationCoordinateSystems = Literal[
|
|
|
562
569
|
"geodetic",
|
|
563
570
|
"planetodetic",
|
|
564
571
|
"orbital",
|
|
572
|
+
"topocentric",
|
|
565
573
|
]
|
|
566
574
|
|
|
567
575
|
|
|
@@ -2217,3 +2225,98 @@ class SpectrumXds:
|
|
|
2217
2225
|
"""The channel bandwidth that includes the effects of missing data."""
|
|
2218
2226
|
FREQUENCY_CENTROID: Optional[Dataof[FrequencyCentroidArray]] = None
|
|
2219
2227
|
"""Includes the effects of missing data unlike ``frequency``."""
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
@xarray_dataarray_schema
|
|
2231
|
+
class PhasedArrayElementOffsetArray:
|
|
2232
|
+
"""
|
|
2233
|
+
Schema for PHASED_ARRAY_ELEMENT_OFFSET.
|
|
2234
|
+
"""
|
|
2235
|
+
|
|
2236
|
+
data: Data[
|
|
2237
|
+
tuple[AntennaName, CartesianPosLabelLocal, ElementId],
|
|
2238
|
+
float,
|
|
2239
|
+
]
|
|
2240
|
+
|
|
2241
|
+
units: Attr[list[Literal["m"]]]
|
|
2242
|
+
|
|
2243
|
+
type: Attr[Location]
|
|
2244
|
+
""" Measure type. Should be ``"location"``."""
|
|
2245
|
+
|
|
2246
|
+
coordinate_system: Attr[Literal["topocentric"]]
|
|
2247
|
+
"""
|
|
2248
|
+
Coordinate system in which the element offsets are expressed.
|
|
2249
|
+
Should be ``"topocentric"``.
|
|
2250
|
+
"""
|
|
2251
|
+
|
|
2252
|
+
origin: Attr[Literal["ANTENNA_POSITION"]]
|
|
2253
|
+
""" Origin of the coordinate system. Should be ``"ANTENNA_POSITION"``."""
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
@xarray_dataarray_schema
|
|
2257
|
+
class PhasedArrayCoordinateAxesArray:
|
|
2258
|
+
"""
|
|
2259
|
+
Schema for PHASED_ARRAY_COORDINATE_AXES
|
|
2260
|
+
"""
|
|
2261
|
+
|
|
2262
|
+
data: Data[tuple[AntennaName, CartesianPosLabelLocal, CartesianPosLabel], float]
|
|
2263
|
+
|
|
2264
|
+
units: Attr[UnitsUndimensioned]
|
|
2265
|
+
|
|
2266
|
+
type: Attr[RotationMatrix]
|
|
2267
|
+
""" Measure type. Should be ``"rotation_matrix"``."""
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
@xarray_dataset_schema
|
|
2271
|
+
class PhasedArrayXds:
|
|
2272
|
+
"""
|
|
2273
|
+
Phased array dataset: define stations made of multiple receiver elements.
|
|
2274
|
+
"""
|
|
2275
|
+
|
|
2276
|
+
# Coordinates
|
|
2277
|
+
antenna_name: Coordof[AntennaNameArray]
|
|
2278
|
+
""" Antenna name """
|
|
2279
|
+
|
|
2280
|
+
element_id: Coord[ElementId, Union[numpy.int64, numpy.int32]]
|
|
2281
|
+
""" Element Id within a station/antenna """
|
|
2282
|
+
|
|
2283
|
+
receptor_label: Coord[ReceptorLabel, str]
|
|
2284
|
+
""" Names of receptors, i.e. polarization hands. """
|
|
2285
|
+
|
|
2286
|
+
polarization_type: Coord[tuple[AntennaName, ReceptorLabel], str]
|
|
2287
|
+
""" Polarization type to which each receptor responds (e.g. ”R”,”L”,”X” or ”Y”).
|
|
2288
|
+
This is the receptor polarization type as recorded in the final correlated data (e.g. ”RR”); i.e.
|
|
2289
|
+
as measured after all polarization combiners. ['X','Y'], ['R','L'] """
|
|
2290
|
+
|
|
2291
|
+
cartesian_pos_label: Coord[CartesianPosLabel, str]
|
|
2292
|
+
""" (x,y,z) - either cartesian or ellipsoid """
|
|
2293
|
+
|
|
2294
|
+
cartesian_pos_label_local: Coord[CartesianPosLabelLocal, str]
|
|
2295
|
+
""" (p,q,r) - cartesian station-local frame of reference """
|
|
2296
|
+
|
|
2297
|
+
# Data variables
|
|
2298
|
+
PHASED_ARRAY_COORDINATE_AXES: Dataof[PhasedArrayCoordinateAxesArray]
|
|
2299
|
+
"""
|
|
2300
|
+
3x3 Rotation M such that X_geo = M X_local.
|
|
2301
|
+
Used to convert PHASED_ARRAY_ELEMENT_OFFSET coordinates from a station-local
|
|
2302
|
+
frame to a geocentric frame.
|
|
2303
|
+
"""
|
|
2304
|
+
|
|
2305
|
+
PHASED_ARRAY_ELEMENT_OFFSET: Dataof[PhasedArrayElementOffsetArray]
|
|
2306
|
+
"""
|
|
2307
|
+
Offsets of each array element from its parent station position, expressed
|
|
2308
|
+
in a station-local frame. Station positions are stored in
|
|
2309
|
+
antenna_xds.ANTENNA_POSITION.
|
|
2310
|
+
"""
|
|
2311
|
+
|
|
2312
|
+
PHASED_ARRAY_ELEMENT_FLAG: Data[tuple[AntennaName, ReceptorLabel, ElementId], bool]
|
|
2313
|
+
"""
|
|
2314
|
+
Boolean flag set to True if the data from a given polarisation receptor of a station element
|
|
2315
|
+
should be ignored.
|
|
2316
|
+
"""
|
|
2317
|
+
|
|
2318
|
+
# Attributes
|
|
2319
|
+
type: Attr[Literal["phased_array"]]
|
|
2320
|
+
"""
|
|
2321
|
+
Type of dataset. Expected to be ``phased_array``
|
|
2322
|
+
"""
|
xradio/schema/check.py
CHANGED
|
@@ -628,14 +628,15 @@ def check_datatree(
|
|
|
628
628
|
continue
|
|
629
629
|
|
|
630
630
|
# Look up schema
|
|
631
|
-
|
|
631
|
+
typ = node.attrs.get("type")
|
|
632
|
+
schema = _DATASET_TYPES.get(typ)
|
|
632
633
|
if schema is None:
|
|
633
634
|
issues.add(
|
|
634
635
|
SchemaIssue(
|
|
635
636
|
[("", xds_name)],
|
|
636
637
|
message="Unknown dataset type!",
|
|
637
638
|
found=typ,
|
|
638
|
-
expected=
|
|
639
|
+
expected=None,
|
|
639
640
|
)
|
|
640
641
|
)
|
|
641
642
|
continue
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xradio
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.53
|
|
4
4
|
Summary: Xarray Radio Astronomy Data IO
|
|
5
5
|
Author-email: Jan-Willem Steeb <jsteeb@nrao.edu>, Federico Montesino Pouzols <pouzols@eso.edu>, Dave Mehringer <dmehring@nrao.edu>, Peter Wortmann <peter.wortmann@skao.int>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -80,9 +80,9 @@ Dynamic: license-file
|
|
|
80
80
|
Xarray Radio Astronomy Data IO is still in development.
|
|
81
81
|
|
|
82
82
|
[](https://www.python.org/downloads/release/python-3130/)
|
|
83
|
-

|
|
84
|
-

|
|
85
|
-

|
|
83
|
+
[](https://github.com/casangi/xradio/actions/workflows/python-testing-linux.yml?query=branch%3Amain)
|
|
84
|
+
[](https://github.com/casangi/xradio/actions/workflows/python-testing-macos.yml?query=branch%3Amain)
|
|
85
|
+
[](https://github.com/casangi/xradio/actions/workflows/run-ipynb.yml?query=branch%3Amain)
|
|
86
86
|
[](https://codecov.io/gh/casangi/xradio/branch/main/xradio)
|
|
87
87
|
[](https://xradio.readthedocs.io)
|
|
88
88
|
[](https://pypi.python.org/pypi/xradio/)
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
xradio/__init__.py,sha256=82picDsKDBYZRlIpp5JjWsBEf_daXgiLVM7zq6rY_6Q,383
|
|
2
2
|
xradio/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
xradio/_utils/coord_math.py,sha256=n4Td6jcEX4vM49Xseuwrg6USylTGsySS6CND93DEG_8,3587
|
|
4
|
-
xradio/_utils/dict_helpers.py,sha256
|
|
4
|
+
xradio/_utils/dict_helpers.py,sha256=-g2ZvRufOYACzD7d_8BBFpFwhDFxIm4Psm_TRaVJZ38,2690
|
|
5
5
|
xradio/_utils/list_and_array.py,sha256=fW0LDSXlPrSQguSUcZM5oy2Zw-KQVqq9vmmLS8jhc70,4340
|
|
6
6
|
xradio/_utils/schema.py,sha256=iF4cU9nmBvYvmG5HxkN3fJN4BFEMmIWiBY15HI7mbbw,7472
|
|
7
7
|
xradio/_utils/_casacore/tables.py,sha256=aq6E_4RRAHdTBCwMKrVil1cWhFU2O980DNH9IlRKXLw,1280
|
|
8
8
|
xradio/_utils/zarr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
xradio/_utils/zarr/common.py,sha256=egj3Zma0BUK0msOBDozMa-62rHrcxrjCNE5XkkZUq70,5332
|
|
10
10
|
xradio/image/__init__.py,sha256=HAD0GfopIbhdxOYckyW6S9US_dSWmZrwIl3FHUzZwrE,435
|
|
11
|
-
xradio/image/image.py,sha256=
|
|
11
|
+
xradio/image/image.py,sha256=Zk1OE-ixqE2epKmKtlyERG8byB41K5sOZLi0JD0bJis,14572
|
|
12
12
|
xradio/image/_util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
xradio/image/_util/casacore.py,sha256=
|
|
13
|
+
xradio/image/_util/casacore.py,sha256=eaiMcr546p7k9SU2s3pQDgpFyS94xW3Z1ZR3yXxVEfc,4375
|
|
14
14
|
xradio/image/_util/common.py,sha256=y2QJXTHowvjqwNPG5a-cOzl0WneH7c8c9jAVSKQeK2w,8429
|
|
15
15
|
xradio/image/_util/fits.py,sha256=gyGm06fuCKqVGK7uv-ObvQNfFawUDsIOa_nQyklM3Aw,329
|
|
16
16
|
xradio/image/_util/image_factory.py,sha256=Mm0ZDraD0WoNpGqy98EneFr1PxgfyNZNQwquIH2t0nc,8610
|
|
17
17
|
xradio/image/_util/zarr.py,sha256=lhQqVRC1GEWClG3zRbuDr2IlQBfXeDqaLUJIN-MVMxA,1652
|
|
18
18
|
xradio/image/_util/_casacore/__init__.py,sha256=OlsiRE40o1jSbBI4khgQQzgfDYbAlOMKIhO4UFlbGhg,41
|
|
19
19
|
xradio/image/_util/_casacore/common.py,sha256=Z7Jl3AU7jVcgjNtCnvL7CCXJQAxXeEtowXBmSShuAv4,1329
|
|
20
|
-
xradio/image/_util/_casacore/xds_from_casacore.py,sha256
|
|
21
|
-
xradio/image/_util/_casacore/xds_to_casacore.py,sha256=
|
|
22
|
-
xradio/image/_util/_fits/xds_from_fits.py,sha256=
|
|
23
|
-
xradio/image/_util/_zarr/common.py,sha256=
|
|
24
|
-
xradio/image/_util/_zarr/xds_from_zarr.py,sha256=
|
|
25
|
-
xradio/image/_util/_zarr/xds_to_zarr.py,sha256=
|
|
20
|
+
xradio/image/_util/_casacore/xds_from_casacore.py,sha256=KOtXG7fwHyTTRyHprlbQOVcu1ZnrSv47zcP8Mu4SGSc,44036
|
|
21
|
+
xradio/image/_util/_casacore/xds_to_casacore.py,sha256=0tSmRHZxUcoSBWD3IMH5ymBEK2RDVPQ1-My42LF9bxw,16922
|
|
22
|
+
xradio/image/_util/_fits/xds_from_fits.py,sha256=kx5CNkzPn7t2wDkEK60O2VwrrUre3P9QchvsapudDHo,29189
|
|
23
|
+
xradio/image/_util/_zarr/common.py,sha256=ltlj3uFa-uv8lXlDtV79QnfNmfm0tyhXN5FDAjZtjzg,308
|
|
24
|
+
xradio/image/_util/_zarr/xds_from_zarr.py,sha256=KMsfaSSm9kyVoztS6pUzGNxMZzQnCxkk0kDv2GxW5Kw,4451
|
|
25
|
+
xradio/image/_util/_zarr/xds_to_zarr.py,sha256=nsDvDD-kuMuMF2dDlj0jTxSW4mdR-jjIsvXHi5uIERU,2373
|
|
26
26
|
xradio/image/_util/_zarr/zarr_low_level.py,sha256=xnYm6EmVbmLxMlOSXH32SABfQBLHfr2H9ch9gYwFNXs,13338
|
|
27
27
|
xradio/measurement_set/__init__.py,sha256=Vrr1Py50TvbzeZ_VMCswYNz0Wcccbf-iJDj4ArlfcJ0,870
|
|
28
28
|
xradio/measurement_set/convert_msv2_to_processing_set.py,sha256=uLZjXplVPXa0XnNa-Fty85k_-fsw6ZC98Hfiwd1WF-U,9704
|
|
@@ -30,19 +30,19 @@ xradio/measurement_set/load_processing_set.py,sha256=8EPApyGy0Tmzu6Seeby7dKxvtxt
|
|
|
30
30
|
xradio/measurement_set/measurement_set_xdt.py,sha256=kN337gyn7Q8nF4ENy292PYsmBJJLu5ozhJ3FyT5BcVo,11986
|
|
31
31
|
xradio/measurement_set/open_processing_set.py,sha256=kMODJmXT2KU12L6Y2NdTV8shvLGb5PgLIOqJgMCzlHI,5308
|
|
32
32
|
xradio/measurement_set/processing_set_xdt.py,sha256=CkwBbilEPh3Sy6qTdtfV2bjZ2MhTCGy3A3fYWk7JstA,64413
|
|
33
|
-
xradio/measurement_set/schema.py,sha256=
|
|
33
|
+
xradio/measurement_set/schema.py,sha256=XJpL914dy-Fu0IszRvM7nt1jvkED__lM9r-XF7c8TCE,89867
|
|
34
34
|
xradio/measurement_set/_utils/__init__.py,sha256=XE-h1yMfr6tVD6gdUwXO1CVq5SQ6kD_oj-e5TFwslds,97
|
|
35
35
|
xradio/measurement_set/_utils/msv2.py,sha256=7hnZMFoQ-s1g0ATjEupLvtdqQCdroPv-Rl5OwjqXjh8,4430
|
|
36
36
|
xradio/measurement_set/_utils/zarr.py,sha256=ehXlu0Xh_UZ5Xm2RnHCxESsRZ26c3DQAO5rqMK5MwTk,3947
|
|
37
37
|
xradio/measurement_set/_utils/_msv2/chunks.py,sha256=JTPk3il6fk570BjWZMoOAtsbvnLmqPcBv9EPY6A2yOs,2964
|
|
38
|
-
xradio/measurement_set/_utils/_msv2/conversion.py,sha256=
|
|
38
|
+
xradio/measurement_set/_utils/_msv2/conversion.py,sha256=6JRYsWQfjTBG_1q_v4navZA-wTqHCkIvLTEBVa9NUXQ,53358
|
|
39
39
|
xradio/measurement_set/_utils/_msv2/create_antenna_xds.py,sha256=MhNg-tf1B0OYpLWIq9W9RFKihzsfKw0PGfBxFFgwCj4,17798
|
|
40
|
-
xradio/measurement_set/_utils/_msv2/create_field_and_source_xds.py,sha256=
|
|
40
|
+
xradio/measurement_set/_utils/_msv2/create_field_and_source_xds.py,sha256=UWimMYDf4ZgF8XJpSpnZjt0Jq14kON115PY81qSf01A,37299
|
|
41
41
|
xradio/measurement_set/_utils/_msv2/descr.py,sha256=PGY39PYQj0K4th5RUv0jOWszcHlZDt6VQRTOuntCeYI,5213
|
|
42
42
|
xradio/measurement_set/_utils/_msv2/msv2_msv3.py,sha256=9AKs2HWly7Ivv_Cjr11dIPGmm33_rtSBoGF9wN5ZwEQ,116
|
|
43
43
|
xradio/measurement_set/_utils/_msv2/msv2_to_msv4_meta.py,sha256=gk9gU7g2Lk7dmaiLW8qecOEt574pRtGsCHnUnHXM3D0,1614
|
|
44
44
|
xradio/measurement_set/_utils/_msv2/msv4_info_dicts.py,sha256=5-T-C5wPAPHIUY1eQXvfdLQxPPuTy6UJIZhLlMyfMqA,7213
|
|
45
|
-
xradio/measurement_set/_utils/_msv2/msv4_sub_xdss.py,sha256=
|
|
45
|
+
xradio/measurement_set/_utils/_msv2/msv4_sub_xdss.py,sha256=ykfNCPoJj7-jYeUcqqxIVKqK8t6vs-GlgMKkYIh7Cl0,31785
|
|
46
46
|
xradio/measurement_set/_utils/_msv2/optimised_functions.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
47
|
xradio/measurement_set/_utils/_msv2/partition_queries.py,sha256=6toOYRE6lay78r24kgUgQHOngQLuIGqQKcBTZcCk4lE,14709
|
|
48
48
|
xradio/measurement_set/_utils/_msv2/partitions.py,sha256=_KhRq8bSx2QxuWp9K57fLoLxcU6kvJ35e6wvJ-THbwc,12979
|
|
@@ -64,14 +64,14 @@ xradio/measurement_set/_utils/_zarr/read.py,sha256=O9DiwD2Gn8WiatQ-Q6WGGSwjsXwFk
|
|
|
64
64
|
xradio/measurement_set/_utils/_zarr/write.py,sha256=k5IfqtI44Dm4KBDiKFGhL5hN7kwNOulvVHmeP5Mi7N4,10043
|
|
65
65
|
xradio/schema/__init__.py,sha256=EzEMnOtN8G_wdjo8QBRKfq5MrYgfr_nt1pfunlI6i6Q,733
|
|
66
66
|
xradio/schema/bases.py,sha256=dk24pFhugCe5RjaR41xxP38FxVVsIC9bdmBdsarwFvk,17162
|
|
67
|
-
xradio/schema/check.py,sha256=
|
|
67
|
+
xradio/schema/check.py,sha256=1DAOeW46TC8htQSnMWOy1HkrgeZfhQJ8y9qApzKXkFo,21859
|
|
68
68
|
xradio/schema/dataclass.py,sha256=w6FbFtmGnAX4SYwYar7v8-YFf6j40G7g_jvIfVCuxjc,14087
|
|
69
69
|
xradio/schema/metamodel.py,sha256=WjtW7pAVzcjLRWifRH3sQoOiN6TV810hARpOIz1M_gw,3845
|
|
70
70
|
xradio/schema/typing.py,sha256=8-o6fZd99kJ4FVdgBYRTIRJ-wDqpcUNXzCTfJvl3TIw,10439
|
|
71
71
|
xradio/sphinx/__init__.py,sha256=VGY-7Ty3q67qpnBee0-znbiJ-Iy0F93UO--IpjEdHXc,380
|
|
72
72
|
xradio/sphinx/schema_table.py,sha256=uq33habbAbReqnEG6ASKSd4UOMZGUzA3qoTX45rq84U,12373
|
|
73
|
-
xradio-0.0.
|
|
74
|
-
xradio-0.0.
|
|
75
|
-
xradio-0.0.
|
|
76
|
-
xradio-0.0.
|
|
77
|
-
xradio-0.0.
|
|
73
|
+
xradio-0.0.53.dist-info/licenses/LICENSE.txt,sha256=9CYIJt7riOXo9AD0eXBZviLxo_HebD-2JJI8oiWtzfg,1807
|
|
74
|
+
xradio-0.0.53.dist-info/METADATA,sha256=kKmHQUumboRASOFp-1VamR5TW9NRXzOsLlAPJX4fNxQ,5574
|
|
75
|
+
xradio-0.0.53.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
|
|
76
|
+
xradio-0.0.53.dist-info/top_level.txt,sha256=dQu27fGBZJ2Yk-gW5XeD-dZ76Xa4Xcvk60Vz-dwXp7k,7
|
|
77
|
+
xradio-0.0.53.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|