Station Meta-Data

Station-Level Data

Module that contains information about the LWA station sites. This information includes:

  • latitude,
  • longitude,
  • elevation, and
  • stand list.

The information for each site is stored as a LWAStation object. This object has a variety of attributes for dealing with station-related parameters, such as creating an ephem.Observer object for the station, getting the station’s geocentric location, and creating a geocentric coordinate transformation matrix for the station’s baselines.

Currently, data exists for the following LWA stations:
  • lwa1 - LWA 1 near the VLA center.
lsl.common.stations.geo2ecef(lat, lon, elev)
Convert latitude (rad), longitude (rad), elevation (m) to earth- centered, earth-fixed coordinates.
class lsl.common.stations.LWAStation(name, lat, long, elev)

Object to hold information about the a LWA station. This object can create a ephem.Observer representation of itself and identify which stands were in use at a given time.

getAIPYLocation()
Return a tuple that can be used by AIPY for specifying a array location.
getECEFTransform()
Return a 3x3 tranformation matrix that converts a baseline in [east, north, elevation] to earh-centered, earth-fixed coordinates for that baseline [x, y, z]. Based off the ‘local_to_eci’ function in the lwda_fits-dev library.
getGeocentricLocation()
Return a tuple with earth-centered, earth-fixed coordinates for the station.
getObserver(date=None, JD=False)
Return a ephem.Observer object for this site.
class lsl.common.stations.lwa1

Object to hold information about the first LWA station. This object can create a ephem.Observer representation of itself and identify which stands were in use at a given time.

getStands(date=None, JD=False)
Return a numpy array that contains the stands used at a given point in time.

Stand-Level Data

This module stores various functions that are needed for computing UV coverage and time delays. The functions in the module:

  • return the x, y, and z coordinates of a stand or array of stands
  • return the relative x, y, and z offsets between two stands
  • return the cable delays as a function of frequency for a stand
  • compute the u, v, and w coordinates of all baselines defined by an array of stands
  • compute the track through the uv-plane of a collection of baselines as the Earth rotates.
lsl.correlator.uvUtils.validateStand(stand, max=258)
Make sure that the provided stand number is valid. If it is not between 1 and max (default of 258 for LWA-1), raise an error.

Stand Positions

lsl.correlator.uvUtils.getXYZ(stands)

Function to return a numpy array of the stand’s x, y, and z coordinates (in meters) from the center pole. If the coordinates of more than one stand are needed, getXYZ can be called with a numpy array of stand numbers.

Changed in version 0.3: Changed the numbering of the outlier from -1 to a more consistent 258

lsl.correlator.uvUtils.getRelativeXYZ(stand1, stand2)
Function to return the relative coordinate difference between two stands. The output is a three-element numpy array.
class lsl.correlator.uvUtils.PositionCache

PositionCache is a safe alternative to calling uvUtils.getXYZ or uvUtils.getRealtiveXYZ over and over again. PositionCache loads the stand positions from the included CSV file once and then uses that stored information for all subsequent calls.

Warning

This assumes LWA-1 as the stations. This will need to be changed some day.

getRelativeXYZ(stand1, stand2)
Function to return the relative coordinate difference between two stands. The output is a three-element numpy array.
getXYZ(stands)
Function to return a numpy array of the stand’s x, y, and z coordinates (in meters) from the center pole. If the coordinates of more than one stand are needed, getXYZ can be called with a numpy array of stand numbers.
getZenithDelay(stand1, stand2)
Return the geometrical delay in seconds for zenith as viewed by a baseline between stand1 and stand2.

Cable Model and Delays

lsl.correlator.uvUtils.cableDelay(stand, freq)
For a given stands, return a numpy array of the cable delay in seconds for a specific frequency (in Hz). If delays for more than one frequency are needed, the frequencies can be passed in as a numpy array.
lsl.correlator.uvUtils.cableAttenuation(stand, freq)

For a given stand, return the multiplicative factor needed to correct for cable losses for a specific frequency (in Hz). If attenuations for more than one frequency are needed, the frequencies can be passed in as a numpy array.

Changed in version 0.3.4: Switched over the the cable attenuation model in SLC 0014, version 3 and added in frequency support.

lsl.correlator.uvUtils.cableGain(stand, freq)

For a given stand, return the cable gain (“inverse loss”) for a specific frequency (in Hz). If gains for more than one frequency are needed, the frequencies can be passed in as a numpy array.

This function wraps cableAttenuation and return the multiplicative inverse of that function.

New in version 0.3.4.

class lsl.correlator.uvUtils.CableCache(freq, applyDispersion=True)

CableCache is a safe alternative to calling uvUtils.cableDelay over and over again. CableCache loads the cable length file once and then uses that stored information for all subsequent calls.

Warning

This assumes LWA-1 as the stations. This will need to be changed some day.

cableAttenuation(stand, freq=None)
For a given stand, return the multiplicative factor needed to correct for cable losses.
cableDelay(stand, freq=None)
For a given stands, return a numpy array of the cable delay in seconds for a specific frequency (in Hz). If delays for more than one frequency are needed, the frequencies can be passed in as a numpy array.
cableGain(stand, freq=None)

For a given stand, return the cable gain as a function of frequency.

This function wraps self.cableAttenuation and returns the multiplicative inverse of that function.

updateApplyDispersion(applyDispersion)
Update the applyDispersion attribute of the cache to turn the cable dispersion on and off.
updateFreq(freq)
Update the freq attribute of the cache to change which frequencies the delays are calculated for.
lsl.correlator.uvUtils.signalDelay(stand, freq, cache=None)

Experimental function that wraps the cable delay for a stand along with any other delays determined by phase fitting. The list of stands that can be corrected is incomplete. Similar to cableDelay, a numpy array is returned.

Note

Currently all additional delays are set to 0.

Warning

This assumes LWA-1 as the stations. This will need to be changed some day.

class lsl.correlator.uvUtils.SignalCache(freq, applyDispersion=True)

Bases: lsl.correlator.uvUtils.CableCache

Subclass of CableCache that does for signalDelay what CableCache did for cableDelay.

signalDelay(stand)
Experimental function that wraps the cable delay for a stand along with any other delays determined by phase fitting. The list of stands that can be corrected is incomplete. Similar to cableDelay, a numpy array is returned.

Exceptions

exception lsl.correlator.uvUtils.uvUtilsError(strerror)
Base exception class for this module

Table Of Contents

Previous topic

Module and Data Paths

Next topic

Data Readers

This Page