VLBA conversion guide
[1]:
from importlib.metadata import version
import os
try:
import xradio
print("XRADIO version", version("xradio"), "already installed.")
except ImportError as e:
print(e)
print("Installing XRADIO")
os.system("pip install xradio")
import xradio
print("xradio version", version("xradio"), " installed.")
XRADIO version 1.1.3 already installed.
Download dataset
Original VLBA dataset gotten from https://casaguides.nrao.edu/index.php?title=VLBA_Basic_Phase-referencing_Calibration_and_Imaging.
Reduced the data using:
mstransform(vis='VLBA_TL016B.ms/',outputvis='VLBA_TL016B_split_lsrk.ms',spw='0:0~5,1:0~5',field='0,1', timerange='2022/02/21/06:14:00~2022/02/21/07:55:45.00', regridms=True,outframe='lsrk',datacolumn='all')
[2]:
import toolviper
toolviper.utils.data.download(file="VLBA_TL016B_split.ms")
[2026-04-20 15:20:58,776] INFO toolviper: Initializing download...
[2026-04-20 15:20:58,777] INFO toolviper: File already exists: /Users/vdesouza/work/xradio/docs/source/measurement_set/guides/VLBA_TL016B_split.ms
Convert to Processing Set
[3]:
from xradio.measurement_set import convert_msv2_to_processing_set
ms_file = "VLBA_TL016B_split.ms"
main_chunksize = {"frequency": 1, "time": 20} # baseline, polarization
outfile = "VLBA_TL016B_split_lsrk.ps.zarr"
convert_msv2_to_processing_set(
in_file=ms_file,
out_file=outfile,
parallel_mode="none",
partition_scheme=["FIELD_ID"],
persistence_mode='w',
main_chunksize=main_chunksize,
)
[2026-04-20 15:20:59,172] INFO toolviper: Updated partition scheme used: ['DATA_DESC_ID', 'OBSERVATION_ID', 'FIELD_ID']
[2026-04-20 15:20:59,173] INFO toolviper: Number of partitions: 4
[2026-04-20 15:20:59,173] INFO toolviper: OBSERVATION_ID [0], DDI [0], STATE [None], FIELD [0], SCAN [0], EPHEMERIS [None]
[2026-04-20 15:20:59,313] WARNING toolviper: Source_id is -1. No source information will be included in the field_and_source_xds.
[2026-04-20 15:20:59,425] INFO toolviper: OBSERVATION_ID [0], DDI [1], STATE [None], FIELD [0], SCAN [0], EPHEMERIS [None]
[2026-04-20 15:20:59,556] WARNING toolviper: Source_id is -1. No source information will be included in the field_and_source_xds.
[2026-04-20 15:20:59,652] INFO toolviper: OBSERVATION_ID [0], DDI [0], STATE [None], FIELD [1], SCAN [0], EPHEMERIS [None]
[2026-04-20 15:20:59,789] WARNING toolviper: Source_id is -1. No source information will be included in the field_and_source_xds.
[2026-04-20 15:20:59,959] INFO toolviper: OBSERVATION_ID [0], DDI [1], STATE [None], FIELD [1], SCAN [0], EPHEMERIS [None]
[2026-04-20 15:21:00,095] WARNING toolviper: Source_id is -1. No source information will be included in the field_and_source_xds.
Processing Set
[4]:
from xradio.measurement_set import open_processing_set
ps_xdt = open_processing_set(ps_store=outfile)
ps_xdt.xr_ps.summary()
[4]:
| name | scan_intents | shape | execution_block_UID | polarization | scan_name | spw_name | spw_intents | field_name | source_name | line_name | field_coords | session_reference_UID | scheduling_block_UID | project_UID | start_frequency | end_frequency | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | VLBA_TL016B_split_0 | [None] | (200, 55, 6, 2) | --- | [RR, LL] | [0] | spw_0 | [UNSPECIFIED] | [4C39.25_0] | [Unknown] | [] | [fk5, 9h27m03.01s, 39d02m20.85s] | --- | --- | TL016B | 5.004000e+09 | 5.006500e+09 |
| 1 | VLBA_TL016B_split_1 | [None] | (200, 55, 6, 2) | --- | [RR, LL] | [0] | spw_1 | [UNSPECIFIED] | [4C39.25_0] | [Unknown] | [] | [fk5, 9h27m03.01s, 39d02m20.85s] | --- | --- | TL016B | 5.068000e+09 | 5.070500e+09 |
| 2 | VLBA_TL016B_split_2 | [None] | (540, 55, 6, 2) | --- | [RR, LL] | [0] | spw_0 | [UNSPECIFIED] | [J1154+6022_1] | [Unknown] | [] | [fk5, 11h54m04.54s, 60d22m20.82s] | --- | --- | TL016B | 5.004000e+09 | 5.006500e+09 |
| 3 | VLBA_TL016B_split_3 | [None] | (540, 55, 6, 2) | --- | [RR, LL] | [0] | spw_1 | [UNSPECIFIED] | [J1154+6022_1] | [Unknown] | [] | [fk5, 11h54m04.54s, 60d22m20.82s] | --- | --- | TL016B | 5.068000e+09 | 5.070500e+09 |
[5]:
ms_xdt = ps_xdt["VLBA_TL016B_split_3"]
ms_xdt
[5]:
<xarray.DataTree 'VLBA_TL016B_split_3'>
Group: /VLBA_TL016B_split_3
│ Dimensions: (time: 540, baseline_id: 55, frequency: 6,
│ polarization: 2, uvw_label: 3)
│ Coordinates:
│ * time (time) float64 4kB 1.645e+09 ... 1.645e+09
│ field_name (time) <U32 69kB dask.array<chunksize=(540,), meta=np.ndarray>
│ scan_name (time) <U21 45kB dask.array<chunksize=(540,), meta=np.ndarray>
│ * baseline_id (baseline_id) int64 440B 0 1 2 3 ... 51 52 53 54
│ baseline_antenna1_name (baseline_id) <U2 440B dask.array<chunksize=(55,), meta=np.ndarray>
│ baseline_antenna2_name (baseline_id) <U2 440B dask.array<chunksize=(55,), meta=np.ndarray>
│ * frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
│ * polarization (polarization) <U2 16B 'RR' 'LL'
│ * uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
│ Data variables:
│ EFFECTIVE_INTEGRATION_TIME (time, baseline_id) float64 238kB dask.array<chunksize=(20, 55), meta=np.ndarray>
│ FLAG (time, baseline_id, frequency, polarization) bool 356kB dask.array<chunksize=(20, 55, 1, 2), meta=np.ndarray>
│ TIME_CENTROID (time, baseline_id) float64 238kB dask.array<chunksize=(20, 55), meta=np.ndarray>
│ UVW (time, baseline_id, uvw_label) float64 713kB dask.array<chunksize=(20, 55, 3), meta=np.ndarray>
│ VISIBILITY (time, baseline_id, frequency, polarization) complex64 3MB dask.array<chunksize=(20, 55, 1, 2), meta=np.ndarray>
│ WEIGHT (time, baseline_id, frequency, polarization) float32 1MB dask.array<chunksize=(20, 55, 1, 2), meta=np.ndarray>
│ Attributes:
│ creation_date: 2026-04-20T21:20:59.970221+00:00
│ creator: {'software_name': 'xradio', 'version': '1.1.3'}
│ data_groups: {'base': {'correlated_data': 'VISIBILITY', 'date': '20...
│ observation_info: {'observer': ['PLUTO'], 'observing_log': '[]', 'projec...
│ processor_info: {'sub_type': '', 'type': ''}
│ schema_version: 4.0.0
│ type: visibility
├── Group: /VLBA_TL016B_split_3/antenna_xds
│ Dimensions: (antenna_name: 10, cartesian_pos_label: 3,
│ receptor_label: 2)
│ Coordinates:
│ * antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
│ mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
│ station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
│ * cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
│ * receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
│ polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ Data variables:
│ ANTENNA_DISH_DIAMETER (antenna_name) float64 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ ANTENNA_POSITION (antenna_name, cartesian_pos_label) float64 240B dask.array<chunksize=(10, 3), meta=np.ndarray>
│ ANTENNA_RECEPTOR_ANGLE (antenna_name, receptor_label) float64 160B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ Attributes:
│ overall_telescope_name: VLBA
│ relocatable_antennas: False
│ type: antenna
├── Group: /VLBA_TL016B_split_3/field_and_source_base_xds
│ Dimensions: (field_name: 1, sky_dir_label: 2)
│ Coordinates:
│ * field_name (field_name) <U32 128B 'J1154+6022_1'
│ source_name (field_name) <U7 28B dask.array<chunksize=(1,), meta=np.ndarray>
│ * sky_dir_label (sky_dir_label) <U3 24B 'ra' 'dec'
│ Data variables:
│ FIELD_PHASE_CENTER_DIRECTION (field_name, sky_dir_label) float64 16B dask.array<chunksize=(1, 2), meta=np.ndarray>
│ Attributes:
│ type: field_and_source
├── Group: /VLBA_TL016B_split_3/gain_curve_xds
│ Dimensions: (antenna_name: 10, poly_term: 1, receptor_label: 2)
│ Coordinates:
│ * antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
│ antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
│ gain_curve_type (antenna_name) <U9 360B dask.array<chunksize=(10,), meta=np.ndarray>
│ mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
│ station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
│ * receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
│ polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ Dimensions without coordinates: poly_term
│ Data variables:
│ GAIN_CURVE (antenna_name, poly_term, receptor_label) float64 160B dask.array<chunksize=(10, 1, 2), meta=np.ndarray>
│ GAIN_CURVE_INTERVAL (antenna_name) float64 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ GAIN_CURVE_SENSITIVITY (antenna_name, receptor_label) float64 160B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ Attributes:
│ measured_date: 2022-02-21T09:50:25
│ type: gain_curve
├── Group: /VLBA_TL016B_split_3/phase_calibration_xds
│ Dimensions: (antenna_name: 10, time_phase_cal: 141,
│ receptor_label: 2, tone_label: 2)
│ Coordinates:
│ * antenna_name (antenna_name) <U2 80B 'BR' 'FD' ... 'PT' 'SC'
│ antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
│ mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
│ station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
│ * time_phase_cal (time_phase_cal) float64 1kB 1.645e+09 ... 1.64...
│ * receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
│ polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ * tone_label (tone_label) <U6 48B 'freq_0' 'freq_1'
│ Data variables:
│ PHASE_CAL (antenna_name, time_phase_cal, receptor_label, tone_label) complex64 45kB dask.array<chunksize=(10, 141, 2, 2), meta=np.ndarray>
│ PHASE_CAL_CABLE_CAL (antenna_name, time_phase_cal) float64 11kB dask.array<chunksize=(10, 141), meta=np.ndarray>
│ PHASE_CAL_INTERVAL (antenna_name, time_phase_cal) float64 11kB dask.array<chunksize=(10, 141), meta=np.ndarray>
│ PHASE_CAL_TONE_FREQUENCY (antenna_name, time_phase_cal, receptor_label, tone_label) float64 45kB dask.array<chunksize=(10, 141, 2, 2), meta=np.ndarray>
│ Attributes:
│ type: phase_calibration
├── Group: /VLBA_TL016B_split_3/system_calibration_xds
│ Dimensions: (antenna_name: 10, time_system_cal: 1192,
│ receptor_label: 2)
│ Coordinates:
│ * antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'OV' 'PT' 'SC'
│ antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
│ mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
│ station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
│ telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
│ * time_system_cal (time_system_cal) float64 10kB 1.645e+09 ... 1.645e+09
│ * receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
│ polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
│ Data variables:
│ TSYS (antenna_name, time_system_cal, receptor_label) float64 191kB dask.array<chunksize=(10, 1192, 2), meta=np.ndarray>
│ Attributes:
│ type: system_calibration
└── Group: /VLBA_TL016B_split_3/weather_xds
Dimensions: (station_name: 10, time_weather: 856,
cartesian_pos_label: 3)
Coordinates:
* station_name (station_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
* time_weather (time_weather) float64 7kB 1.645e+09 ... 1.645e+09
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
Data variables:
DEW_POINT (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
H2O (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
IONOS_ELECTRON (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
PRESSURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
STATION_POSITION (station_name, cartesian_pos_label) float64 240B dask.array<chunksize=(10, 3), meta=np.ndarray>
TEMPERATURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_DIRECTION (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_SPEED (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
Attributes:
type: weather[6]:
ant_xds = ms_xdt.antenna_xds.ds
ant_xds
[6]:
<xarray.DatasetView> Size: 6kB
Dimensions: (antenna_name: 10, cartesian_pos_label: 3,
receptor_label: 2, baseline_id: 55, frequency: 6,
polarization: 2, time: 540, uvw_label: 3)
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
* receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 ... 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
ANTENNA_DISH_DIAMETER (antenna_name) float64 80B dask.array<chunksize=(10,), meta=np.ndarray>
ANTENNA_POSITION (antenna_name, cartesian_pos_label) float64 240B dask.array<chunksize=(10, 3), meta=np.ndarray>
ANTENNA_RECEPTOR_ANGLE (antenna_name, receptor_label) float64 160B dask.array<chunksize=(10, 2), meta=np.ndarray>
Attributes:
overall_telescope_name: VLBA
relocatable_antennas: False
type: antenna[7]:
ant_xds.ANTENNA_POSITION
[7]:
<xarray.DataArray 'ANTENNA_POSITION' (antenna_name: 10, cartesian_pos_label: 3)> Size: 240B
dask.array<open_dataset-ANTENNA_POSITION, shape=(10, 3), dtype=float64, chunksize=(10, 3), chunktype=numpy.ndarray>
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
Attributes:
coordinate_system: geocentric
frame: ITRS
origin_object_name: earth
type: location
units: m[8]:
ant_xds.ANTENNA_POSITION.load()
[8]:
<xarray.DataArray 'ANTENNA_POSITION' (antenna_name: 10, cartesian_pos_label: 3)> Size: 240B
array([[-2112065.339753, -3705356.513964, 4726813.595927],
[-1324009.438905, -5332181.956657, 3231962.338382],
[ 1446374.723555, -4447939.69817 , 4322306.215011],
[-1995678.95979 , -5037317.696765, 3357327.949827],
[-1449752.711882, -4975298.576836, 3709123.785811],
[-5464075.303632, -2495247.54864 , 2148297.629883],
[ -130872.637324, -4762317.087915, 4226850.972202],
[-2409150.566965, -4478573.065876, 3838617.29146 ],
[-1640954.066439, -5014816.028293, 3575411.724719],
[ 2607848.714994, -5488069.460221, 1932739.843634]])
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
mount (antenna_name) <U6 240B 'ALT-AZ' 'ALT-AZ' ... 'ALT-AZ'
station_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
telescope_name (antenna_name) <U4 160B 'VLBA' 'VLBA' ... 'VLBA' 'VLBA'
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
Attributes:
coordinate_system: geocentric
frame: ITRS
origin_object_name: earth
type: location
units: m[9]:
ant_xds.ANTENNA_RECEPTOR_ANGLE
[9]:
<xarray.DataArray 'ANTENNA_RECEPTOR_ANGLE' (antenna_name: 10, receptor_label: 2)> Size: 160B
dask.array<open_dataset-ANTENNA_RECEPTOR_ANGLE, shape=(10, 2), dtype=float64, chunksize=(10, 2), chunktype=numpy.ndarray>
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'OV' 'PT' 'SC'
mount (antenna_name) <U6 240B 'ALT-AZ' 'ALT-AZ' ... 'ALT-AZ'
station_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'OV' 'PT' 'SC'
telescope_name (antenna_name) <U4 160B 'VLBA' 'VLBA' ... 'VLBA' 'VLBA'
* receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
Attributes:
type: quantity
units: rad[10]:
ms_xdt.xr_ms.get_field_and_source_xds()
[10]:
<xarray.DatasetView> Size: 5kB
Dimensions: (field_name: 1, sky_dir_label: 2,
baseline_id: 55, frequency: 6,
polarization: 2, time: 540, uvw_label: 3)
Coordinates:
* field_name (field_name) <U32 128B 'J1154+6022_1'
source_name (field_name) <U7 28B dask.array<chunksize=(1,), meta=np.ndarray>
* sky_dir_label (sky_dir_label) <U3 24B 'ra' 'dec'
* baseline_id (baseline_id) int64 440B 0 1 2 3 ... 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
FIELD_PHASE_CENTER_DIRECTION (field_name, sky_dir_label) float64 16B dask.array<chunksize=(1, 2), meta=np.ndarray>
Attributes:
type: field_and_source[11]:
ms_xdt.weather_xds
[11]:
<xarray.DataTree 'weather_xds'>
Group: /VLBA_TL016B_split_3/weather_xds
Dimensions: (time: 540, baseline_id: 55, frequency: 6,
polarization: 2, uvw_label: 3, station_name: 10,
time_weather: 856, cartesian_pos_label: 3)
Coordinates:
* station_name (station_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
* time_weather (time_weather) float64 7kB 1.645e+09 ... 1.645e+09
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
Inherited coordinates:
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 5 ... 50 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
DEW_POINT (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
H2O (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
IONOS_ELECTRON (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
PRESSURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
STATION_POSITION (station_name, cartesian_pos_label) float64 240B dask.array<chunksize=(10, 3), meta=np.ndarray>
TEMPERATURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_DIRECTION (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_SPEED (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
Attributes:
type: weather[12]:
weather_xds = ms_xdt.weather_xds.ds
weather_xds
[12]:
<xarray.DatasetView> Size: 491kB
Dimensions: (station_name: 10, time_weather: 856,
cartesian_pos_label: 3, baseline_id: 55,
frequency: 6, polarization: 2, time: 540, uvw_label: 3)
Coordinates:
* station_name (station_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
* time_weather (time_weather) float64 7kB 1.645e+09 ... 1.645e+09
* cartesian_pos_label (cartesian_pos_label) <U1 12B 'x' 'y' 'z'
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 5 ... 50 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
DEW_POINT (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
H2O (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
IONOS_ELECTRON (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
PRESSURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
STATION_POSITION (station_name, cartesian_pos_label) float64 240B dask.array<chunksize=(10, 3), meta=np.ndarray>
TEMPERATURE (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_DIRECTION (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
WIND_SPEED (station_name, time_weather) float64 68kB dask.array<chunksize=(10, 856), meta=np.ndarray>
Attributes:
type: weather[13]:
gain_curve_xdt = ms_xdt.gain_curve_xds
gain_curve_xdt.ds
[13]:
<xarray.DatasetView> Size: 6kB
Dimensions: (antenna_name: 10, poly_term: 1, receptor_label: 2,
baseline_id: 55, frequency: 6, polarization: 2,
time: 540, uvw_label: 3)
Coordinates: (12/13)
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'PT' 'SC'
antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
gain_curve_type (antenna_name) <U9 360B dask.array<chunksize=(10,), meta=np.ndarray>
mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
... ...
polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 ... 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Dimensions without coordinates: poly_term
Data variables:
GAIN_CURVE (antenna_name, poly_term, receptor_label) float64 160B dask.array<chunksize=(10, 1, 2), meta=np.ndarray>
GAIN_CURVE_INTERVAL (antenna_name) float64 80B dask.array<chunksize=(10,), meta=np.ndarray>
GAIN_CURVE_SENSITIVITY (antenna_name, receptor_label) float64 160B dask.array<chunksize=(10, 2), meta=np.ndarray>
Attributes:
measured_date: 2022-02-21T09:50:25
type: gain_curve[14]:
phase_calibration_xdt = ms_xdt.phase_calibration_xds
phase_calibration_xdt
[14]:
<xarray.DataTree 'phase_calibration_xds'>
Group: /VLBA_TL016B_split_3/phase_calibration_xds
Dimensions: (time: 540, baseline_id: 55, frequency: 6,
polarization: 2, uvw_label: 3, antenna_name: 10,
time_phase_cal: 141, receptor_label: 2,
tone_label: 2)
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' ... 'PT' 'SC'
antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
* time_phase_cal (time_phase_cal) float64 1kB 1.645e+09 ... 1.64...
* receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
* tone_label (tone_label) <U6 48B 'freq_0' 'freq_1'
Inherited coordinates:
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 ... 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
PHASE_CAL (antenna_name, time_phase_cal, receptor_label, tone_label) complex64 45kB dask.array<chunksize=(10, 141, 2, 2), meta=np.ndarray>
PHASE_CAL_CABLE_CAL (antenna_name, time_phase_cal) float64 11kB dask.array<chunksize=(10, 141), meta=np.ndarray>
PHASE_CAL_INTERVAL (antenna_name, time_phase_cal) float64 11kB dask.array<chunksize=(10, 141), meta=np.ndarray>
PHASE_CAL_TONE_FREQUENCY (antenna_name, time_phase_cal, receptor_label, tone_label) float64 45kB dask.array<chunksize=(10, 141, 2, 2), meta=np.ndarray>
Attributes:
type: phase_calibration[15]:
system_calibration_xds = ms_xdt.system_calibration_xds
system_calibration_xds
[15]:
<xarray.DataTree 'system_calibration_xds'>
Group: /VLBA_TL016B_split_3/system_calibration_xds
Dimensions: (time: 540, baseline_id: 55, frequency: 6,
polarization: 2, uvw_label: 3, antenna_name: 10,
time_system_cal: 1192, receptor_label: 2)
Coordinates:
* antenna_name (antenna_name) <U2 80B 'BR' 'FD' 'HN' ... 'OV' 'PT' 'SC'
antenna_id (antenna_name) int32 40B dask.array<chunksize=(10,), meta=np.ndarray>
mount (antenna_name) <U6 240B dask.array<chunksize=(10,), meta=np.ndarray>
station_name (antenna_name) <U2 80B dask.array<chunksize=(10,), meta=np.ndarray>
telescope_name (antenna_name) <U4 160B dask.array<chunksize=(10,), meta=np.ndarray>
* time_system_cal (time_system_cal) float64 10kB 1.645e+09 ... 1.645e+09
* receptor_label (receptor_label) <U5 40B 'pol_0' 'pol_1'
polarization_type (antenna_name, receptor_label) <U1 80B dask.array<chunksize=(10, 2), meta=np.ndarray>
Inherited coordinates:
* baseline_id (baseline_id) int64 440B 0 1 2 3 4 5 ... 50 51 52 53 54
* frequency (frequency) float64 48B 5.068e+09 5.068e+09 ... 5.07e+09
* polarization (polarization) <U2 16B 'RR' 'LL'
* time (time) float64 4kB 1.645e+09 1.645e+09 ... 1.645e+09
* uvw_label (uvw_label) <U1 12B 'u' 'v' 'w'
Data variables:
TSYS (antenna_name, time_system_cal, receptor_label) float64 191kB dask.array<chunksize=(10, 1192, 2), meta=np.ndarray>
Attributes:
type: system_calibration[16]:
ps_xdt.xr_ps.plot_phase_centers()
[17]:
ps_xdt.xr_ps.plot_antenna_positions_2d()