py21cmsense.observatory.Observatory

class py21cmsense.observatory.Observatory(*, antpos: ~typing.Annotated[~astropy.units.quantity.Quantity, PhysicalType('length')], beam: ~py21cmsense.beam.PrimaryBeam, latitude: Unit("rad") = <Quantity 0. rad>, Trcv: ~typing.Annotated[~astropy.units.quantity.Quantity, PhysicalType('temperature')] | ~collections.abc.Callable = <Quantity 100. K>, max_antpos: ~typing.Annotated[~astropy.units.quantity.Quantity, PhysicalType('length')] = <Quantity inf m>, min_antpos: ~typing.Annotated[~astropy.units.quantity.Quantity, PhysicalType('length')] = <Quantity 0. m>, beam_crossing_time_incl_latitude=True, world: str = 'earth', baseline_filters=(), redundancy_tol=1)[source]

A class defining an interferometric Observatory and its properties.

Parameters:
  • antpos (array) – An array with shape (Nants, 3) specifying the positions of the antennas. These should be in the ENU (East-North-Up) frame, relative to a central location given by latitude. If not a Quantity, units are assumed to be meters.

  • beam (PrimaryBeam instance) – A beam, assumed to be homogeneous across antennas.

  • latitude (float or Quantity, optional) – Latitude of the array center. If a float, assumed to be in radians. Note that longitude is not required, as we assume an isotropic sky.

  • Trcv (astropy.units.quantity.Quantity | collections.abc.Callable) – Receiver temperature, either a temperature Quantity, or a callable that takes a single frequency Quantity and returns a temperature Quantity.

  • min_antpos, max_antpos – The minimum/maximum radial distance to include antennas (from the origin of the array). Assumed to be in units of meters if no units are supplied. Can be used to limit antennas in arrays like HERA and SKA that have a “core” and “outriggers”. The minimum is inclusive, and maximum exclusive.

  • beam_crossing_time_incl_latitude (bool) – Whether the beam-crossing time is dependent on the latitude of the telescope. By default it is, so that the beam-crossing time is tday * FWHM / (2pi cos(lat)). This affects both the thermal and sample variance calculations.

  • world (string) – A string specifying whether the telescope is on the Earth or the moon.

Methods

__init__(*, antpos, PhysicalType], beam, ...)

Method generated by attrs for class Observatory.

clone(**kwargs)

Return a clone of this instance, but change kwargs.

from_profile(profile, **kwargs)

Instantiate the Observatory from a builtin profile.

from_ska(subarray_template, Trcv, ...)

Instantiate an SKA-Low or SKA-Mid subarray.

from_uvdata(uvdata, beam, **kwargs)

Instantiate an Observatory from a pyuvdata.UVData object.

from_yaml(yaml_file)

Instantiate an Observatory from a compatible YAML config file.

get_redundant_baselines()

Determine all baseline groups.

grid_baselines(coherent, frequency, ...)

Grid baselines onto a pre-determined uvgrid, accounting for earth rotation.

projected_baselines(baselines, ...)

Compute projected baseline vectors.

time_offsets_from_obs_int_time(...)

Compute a list of time offsets within an LST-bin.

ugrid(frequency)

Get a uv grid out to the maximum used baseline smaller than given bl_max.

ugrid_edges(frequency)

Get a uv grid out to the maximum used baseline smaller than given bl_max.

vgrid(frequency)

Return grid centers in the v direction (i.e. north-south).

vgrid_edges(frequency)

TReturn grid edges in the v direction (i.e. north-south).

Attributes

antpos

The positions of antennas in the array in units of metres.

baseline_group_lengths

The displacement magnitude of the baseline groups.

baseline_lengths

Lengths of baselines in units of meters, shape (Nbls,).

baselines

Baseline vectors in metres for every pair of antennas, after applying filters.

baselines_metres

Baseline vectors in metres for every pair of antennas, after applying filters.

bl_max

Longest included baseline.

bl_min

Shortest included baseline.

n_antennas

Number of antennas in the array.

redundant_baseline_groups

A list of lists of redundant baseline groups as indices into baselines.

redundant_baseline_vectors

Get the baseline vectors for each redundant baseline group.

redundant_baseline_weights

Get the weights for each redundant baseline group.

unfiltered_baselines

Raw baseline distances in metres for every pair of antennas.

xgrid

Get a grid of bl length to the max used baseline smaller than given bl_max.

xgrid_edges

Get a grid of bl length to the max used baseline smaller than given bl_max.

beam

latitude

Trcv

max_antpos

min_antpos

beam_crossing_time_incl_latitude

world

baseline_filters

redundancy_tol