Schemas ======= Definitions not specific to a particular dataset schema. .. \_quantities: Quantities ---------- Quantity `DataArrays `__ encode general-purpose data that relates to certain physical quantities. They are typically associated with an SI unit. .. autoclass:: xradio.measurement_set.schema.QuantityInSecondsArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInSecondsArray .. autoclass:: xradio.measurement_set.schema.QuantityInHertzArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInHertzArray .. autoclass:: xradio.measurement_set.schema.QuantityInMetersArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInMetersArray .. autoclass:: xradio.measurement_set.schema.QuantityInMetersPerSecondArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInMetersPerSecondArray .. autoclass:: xradio.measurement_set.schema.QuantityInRadiansArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInRadiansArray .. autoclass:: xradio.measurement_set.schema.QuantityInKelvinArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInKelvinArray .. autoclass:: xradio.measurement_set.schema.QuantityInKelvinPerJanskyArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInKelvinPerJanskyArray .. autoclass:: xradio.measurement_set.schema.QuantityInPascalArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInPascalArray .. autoclass:: xradio.measurement_set.schema.QuantityInPerSquareMetersArray() :members: :show-inheritance: .. xradio_array_schema_table:: xradio.measurement_set.schema.QuantityInPerSquareMetersArray .. _measures: Measures -------- As with `python-casacore measures `__, measures are quantities that are interpreted in relation to a specified reference frame (such as UTC for `TimeArray `__ or FK5 for `SkyCoordArray `__). Measure definitions are aligned with `astropy coordinate `__ naming conventions as much as possible. The table below outlines the different types of XRADIO measures: .. autoclass:: xradio.measurement_set.schema.TimeArray() .. xradio_array_schema_table:: xradio.measurement_set.schema.TimeArray .. autoclass:: xradio.measurement_set.schema.SpectralCoordArray() .. xradio_array_schema_table:: xradio.measurement_set.schema.SpectralCoordArray .. autoclass:: xradio.measurement_set.schema.SkyCoordArray() .. xradio_array_schema_table:: xradio.measurement_set.schema.SkyCoordArray .. autoclass:: xradio.measurement_set.schema.LocationArray() .. xradio_array_schema_table:: xradio.measurement_set.schema.LocationArray .. autoclass:: xradio.measurement_set.schema.DopplerArray() .. xradio_array_schema_table:: xradio.measurement_set.schema.DopplerArray .. raw:: html Coordinate Labels ----------------- For some types of measures, the data consists of values that are labeled using coordinate labels. These labels provide context for interpreting the data: ========================= ============== ===================== Coordinate Label Name Values Related Measures Type ========================= ============== ===================== ellipsoid_dir_label lon, lat location ellipsoid_dis_label height location cartesian_pos_label x, y, z location cartesian_local_pos_label p, q, r location galactic_sky_dir_label lon, lat sky_coord local_sky_dir_label az, alt sky_coord local_sky_dis_label dist sky_coord sky_dir_label ra, dec sky_coord sky_dist_label dist sky_coord uvw_label u, v, w uvw receptor_label pol_0, pol_1 quantity tone_label tone_0, tone_1 spectral_coord ========================= ============== ===================== Measures Example ---------------- The following example illustrates how measures information is included in both a data variable (``FIELD_PHASE_CENTER``) and a coordinate (``time``). The ``FIELD_PHASE_CENTER`` data variable has the dimensions ``time`` and ``sky_dir_label``. Note that the ``sky_coord`` measure requires only the ``sky_dir_label`` dimension, not the ``time`` dimension. .. code:: ipython3 import xarray as xr phase_center = xr.DataArray() import numpy as np import xarray as xr import pandas as pd # Create an empty Xarray Dataset. xds = xr.Dataset() # Create the time coordinate with time measures attributes. time = xr.DataArray(pd.date_range('2000-01-01', periods=3).astype('datetime64[s]').astype(int), dims='time', attrs={'type': 'time', 'units': 's', 'format':'unix', 'scale':'utc'}) # Create FIELD_PHASE_CENTER data variable with coordinates time x sky_dir_label. coords = {'time': time, 'sky_dir_label': ['ra', 'dec']} data = np.array([[-2.10546176, -0.29611873], [-2.10521098, -0.29617315], [-2.1050196, -0.2961987]]) xds['FIELD_PHASE_CENTER'] = xr.DataArray(data, coords=coords, dims=['time', 'sky_dir_label']) # Add sky_coord measures attributes to FIELD_PHASE_CENTER. xds['FIELD_PHASE_CENTER'].attrs = { "type": "sky_coord", "units": "rad", "frame": "icrs", } xds .. raw:: html
<xarray.Dataset> Size: 96B
    Dimensions:             (time: 3, sky_dir_label: 2)
    Coordinates:
      * time                (time) int64 24B 946684800 946771200 946857600
      * sky_dir_label       (sky_dir_label) <U3 24B 'ra' 'dec'
    Data variables:
        FIELD_PHASE_CENTER  (time, sky_dir_label) float64 48B -2.105 ... -0.2962
.. code:: ipython3 # Example of creating an Astropy SkyCoord object from the FIELD_PHASE_CENTER data variable. from astropy.coordinates import SkyCoord astropy_skycoord = SkyCoord(ra=xds.FIELD_PHASE_CENTER.sel(sky_dir_label='ra').values,dec=xds.FIELD_PHASE_CENTER.sel(sky_dir_label='dec').values,unit='rad',frame=xds.FIELD_PHASE_CENTER.attrs['frame']) astropy_skycoord .. parsed-literal::