Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self):
"""Create a new UVData object."""
# add the UVParameters to the class
# standard angle tolerance: 10 mas in radians.
# Should perhaps be decreased to 1 mas in the future
radian_tol = 10 * 2 * np.pi * 1e-3 / (60.0 * 60.0 * 360.0)
self._Ntimes = uvp.UVParameter('Ntimes', description='Number of times',
expected_type=int)
self._Nbls = uvp.UVParameter('Nbls', description='Number of baselines',
expected_type=int)
self._Nblts = uvp.UVParameter('Nblts', description='Number of baseline-times '
'(i.e. number of spectra). Not necessarily '
'equal to Nbls * Ntimes', expected_type=int)
self._Nfreqs = uvp.UVParameter('Nfreqs', description='Number of frequency channels',
expected_type=int)
self._Npols = uvp.UVParameter('Npols', description='Number of polarizations',
expected_type=int)
desc = ('Array of the visibility data, shape: (Nblts, Nspws, Nfreqs, '
'Npols), type = complex float, in units of self.vis_units')
self._data_array = uvp.UVParameter('data_array', description=desc,
form=('Nblts', 'Nspws',
'Nfreqs', 'Npols'),
desc = (
"telescope location: xyz in ITRF (earth-centered frame). "
"Can also be set using telescope_location_lat_lon_alt or "
"telescope_location_lat_lon_alt_degrees properties"
)
self._telescope_location = uvp.LocationParameter(
"telescope_location",
description=desc,
acceptable_range=(6.35e6, 6.39e6),
tols=1e-3,
)
desc = (
"Antenna diameters in meters. Used by CASA to "
"construct a default beam if no beam is supplied."
)
self._antenna_diameters = uvp.UVParameter(
"antenna_diameters",
required=False,
description=desc,
expected_type=np.float,
tols=1e-3, # 1 mm
)
# possibly add in future versions:
# Antenna positions (but what about reconfigurable/growing telescopes?)
super(Telescope, self).__init__()
self._phase_type = uvp.UVParameter('phase_type', form='str', expected_type=str,
description=desc, value='unknown',
acceptable_vals=['drift', 'phased', 'unknown'])
desc = ('Required if phase_type = "drift". Right ascension of zenith. '
'units: radians, shape (Nblts). Can also be accessed using zenith_ra_degrees.')
self._zenith_ra = uvp.AngleParameter('zenith_ra', required=False,
description=desc,
expected_type=np.float,
form=('Nblts',),
tols=radian_tol)
desc = ('Required if phase_type = "drift". Declination of zenith. '
'units: radians, shape (Nblts). Can also be accessed using zenith_dec_degrees.')
# in practice, dec of zenith will never change; does not need to be shape Nblts
self._zenith_dec = uvp.AngleParameter('zenith_dec', required=False,
description=desc,
expected_type=np.float,
form=('Nblts',),
tols=radian_tol)
desc = ('Required if phase_type = "phased". Epoch year of the phase '
'applied to the data (eg 2000.)')
self._phase_center_epoch = uvp.UVParameter('phase_center_epoch',
required=False,
description=desc,
expected_type=np.float)
desc = ('Required if phase_type = "phased". Right ascension of phase '
'center (see uvw_array), units radians. Can also be accessed using phase_center_ra_degrees.')
self._phase_center_ra = uvp.AngleParameter('phase_center_ra',
required=False,
"Nblts",
description="Number of baseline-times "
"(i.e. number of spectra). Not necessarily "
"equal to Nbls * Ntimes",
expected_type=int,
)
self._Nspws = uvp.UVParameter(
"Nspws",
description="Number of spectral windows "
"(ie non-contiguous spectral chunks). "
"More than one spectral window is not "
"currently supported.",
expected_type=int,
required=False,
)
self._Nfreqs = uvp.UVParameter(
"Nfreqs", description="Number of frequency channels", expected_type=int
)
self._Npols = uvp.UVParameter(
"Npols", description="Number of polarizations", expected_type=int
)
desc = (
"Floating point metric information, only availble in metric mode. "
"shape (Nblts, Nspws, Nfreq, Npols)."
)
self._metric_array = uvp.UVParameter(
"metric_array",
description=desc,
form=("Nblts", "Nspws", "Nfreqs", "Npols"),
expected_type=np.float,
required=False,
def __init__(self):
"""Create a new UVBeam object."""
# add the UVParameters to the class
self._Nfreqs = uvp.UVParameter('Nfreqs', description='Number of frequency channels',
expected_type=int)
self._Nspws = uvp.UVParameter('Nspws', description='Number of spectral windows '
'(ie non-contiguous spectral chunks). '
'More than one spectral window is not '
'currently supported.', expected_type=int)
desc = ('Number of basis vectors specified at each pixel, options '
'are 2 or 3 (or 1 if beam_type is "power")')
self._Naxes_vec = uvp.UVParameter('Naxes_vec', description=desc,
expected_type=int, acceptable_vals=[2, 3])
desc = ('Number of basis vectors components specified at each pixel, options '
'are 2 or 3. Only required for E-field beams.')
self._Ncomponents_vec = uvp.UVParameter('Ncomponents_vec', description=desc,
expected_type=int, acceptable_vals=[2, 3], required=False)
# set any UVParameter attributes to be properties
for p in self:
this_param = getattr(self, p)
attr_name = this_param.name
setattr(
self.__class__,
attr_name,
property(self.prop_fget(p), self.prop_fset(p)),
)
if isinstance(this_param, uvp.AngleParameter):
setattr(
self.__class__,
attr_name + "_degrees",
property(self.degree_prop_fget(p), self.degree_prop_fset(p)),
)
elif isinstance(this_param, uvp.LocationParameter):
setattr(
self.__class__,
attr_name + "_lat_lon_alt",
property(
self.lat_lon_alt_prop_fget(p), self.lat_lon_alt_prop_fset(p)
),
)
setattr(
self.__class__,
attr_name + "_lat_lon_alt_degrees",
property(
self.lat_lon_alt_degrees_prop_fget(p),
self.lat_lon_alt_degrees_prop_fset(p),
),
)
expected_type=np.float,
required=False, form=('Naxes1',))
desc = ('Number of elements along the second pixel axis. '
'Not required if pixel_coordinate_system is "healpix".')
self._Naxes2 = uvp.UVParameter('Naxes2', description=desc, expected_type=int,
required=False)
desc = ('Coordinates along second pixel axis. '
'Not required if pixel_coordinate_system is "healpix".')
self._axis2_array = uvp.UVParameter('axis2_array', description=desc,
expected_type=np.float,
required=False, form=('Naxes2',))
desc = ('Healpix nside parameter. Only required if pixel_coordinate_system is "healpix".')
self._nside = uvp.UVParameter('nside', description=desc, expected_type=int,
required=False)
desc = ('Healpix ordering parameter, allowed values are "ring" and "nested". '
'Only required if pixel_coordinate_system is "healpix".')
self._ordering = uvp.UVParameter('ordering', description=desc, expected_type=str,
required=False, acceptable_vals=['ring', 'nested'])
desc = ('Number of healpix pixels. Only required if pixel_coordinate_system is "healpix".')
self._Npixels = uvp.UVParameter('Npixels', description=desc, expected_type=int,
required=False)
desc = ('Healpix pixel numbers. Only required if pixel_coordinate_system is "healpix".')
self._pixel_array = uvp.UVParameter('pixel_array', description=desc, expected_type=int,
required=False, form=('Npixels',))
desc = 'String indicating beam type. Allowed values are "efield", and "power".'
)
desc = (
"Array of input flags, True is flagged. shape: (Nants_data, Nspws, "
"Nfreqs, Ntimes, Njones), type = bool."
)
self._input_flag_array = uvp.UVParameter(
"input_flag_array",
description=desc,
required=False,
form=("Nants_data", "Nspws", "Nfreqs", "Ntimes", "Njones"),
expected_type=np.bool,
)
desc = "Origin (on github for e.g) of calibration software. Url and branch."
self._git_origin_cal = uvp.UVParameter(
"git_origin_cal",
form="str",
expected_type=str,
description=desc,
required=False,
)
desc = (
"Commit hash of calibration software (from git_origin_cal) used "
"to generate solutions."
)
self._git_hash_cal = uvp.UVParameter(
"git_hash_cal",
form="str",
expected_type=str,
description=desc,
def __init__(self):
"""Create a new Telescope object."""
# add the UVParameters to the class
# use the same names as in UVData so they can be automatically set
self.citation = None
self._telescope_name = uvp.UVParameter(
"telescope_name", description="name of telescope " "(string)", form="str"
)
desc = (
"telescope location: xyz in ITRF (earth-centered frame). "
"Can also be set using telescope_location_lat_lon_alt or "
"telescope_location_lat_lon_alt_degrees properties"
)
self._telescope_location = uvp.LocationParameter(
"telescope_location",
description=desc,
acceptable_range=(6.35e6, 6.39e6),
tols=1e-3,
)
desc = (
"Antenna diameters in meters. Used by CASA to "
"construct a default beam if no beam is supplied."
label="",
run_check=True,
check_extra=True,
run_check_acceptability=True,
):
"""Initialize the object."""
# standard angle tolerance: 10 mas in radians.
# Should perhaps be decreased to 1 mas in the future
radian_tol = 10 * 2 * np.pi * 1e-3 / (60.0 * 60.0 * 360.0)
desc = (
"The mode determines whether the object has a "
"floating point metric_array or a boolean flag_array. "
'Options: {"metric", "flag"}. Default is "metric".'
)
self._mode = uvp.UVParameter(
"mode",
description=desc,
form="str",
expected_type=str,
acceptable_vals=["metric", "flag"],
)
desc = (
"String used for labeling the object (e.g. 'FM'). "
"Default is empty string."
)
self._label = uvp.UVParameter(
"label", description=desc, form="str", expected_type=str
)
desc = (