edges.sim.sky_models

A module defining various sky models that can be used to generate beam corrections.

The models here are preferably not interpolated over frequency, as that gives more control to us to interpolate how we wish.

class edges.sim.sky_models.ConstantIndex(index=2.5)[source]

A spectral index model with constant spectral-index.

get_index(lat: ndarray | None = None, lon: ndarray | None = None, sky_model: SkyModel | None = None) ndarray[source]

Generate the spectral index at a given sky location.

class edges.sim.sky_models.GaussianIndex(index_pole=2.65, index_center=2.4, sigma_deg=8.5)[source]

Spectral index model that continuously changes from pole to center.

get_index(lat: ndarray | None = None, lon: ndarray | None = None, sky_model: SkyModel | None = None) ndarray[source]

Generate the index at a given sky location.

edges.sim.sky_models.Guzman45(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return the Guzman 45 MHz all-sky map.

Guzmán et al. (2011) produced an all-sky map of 45 MHz emission by combining data from the 45 MHz survey of Alvarez et al (1997) between declinations -90° and +19.1° with data from the 46.5 MHz survey of Maeda et al. (1999) between declinations +5° and +65°. The southern survey was made with the Maipu Radio Astronomy Observatory 45-MHz array with a beam of 4.6° (RA)x 2.4° (dec) FWHM. The northern survey was made with the Japanese Middle and Upper atmosphere (MU) radar array with a beam of 3.6° x 3.6°.

edges.sim.sky_models.HI4PI(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return an HI4PI all-sky map.

The HI 4-PI Survey (HI4PI) is a 21-cm all-sky survey of neutral atomic hydrogen. It is constructed from the Effelsberg Bonn HI Survey (EBHIS), made with the 100-m radio telescope at Effelsberg/Germany, and the Galactic All-Sky Survey (GASS), observed with the Parkes 64-m dish in Australia. HI4PI comprises HI line emission from the Milky Way. This dataset is the atomic neutral hydrogen (HI) column density map derived from HI4PI (\(|vLSR|< 600\) km/s).

edges.sim.sky_models.Haslam408(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return he Haslam 408 MHz all-sky map.

408MHz radio continuum all-sky map of Haslam etal combines data from 4 different surveys. The destriped/desourced (dsds) version was constructed from survey data obtained from the archives of the NCSA ADIL in galactic coordinates. The data were then transformed to a celestial coordinate grid and subsequently processed further in both the Fourier and spatial domains to mitigate baseline striping and strong point sources. These data were then interpolated onto a HEALPix projection.

edges.sim.sky_models.Haslam408AllNoh()[source]

Return the original raw Haslam 408 MHz all-sky map.

This is the file in Alan’s repo.

It probably came from here: https://www3.mpifr-bonn.mpg.de/cgi-bin/survey ?

Note that by default, the pixel resolution for each pixel is set to be equivalent to what Alan uses in his C-Code (for the Nature Paper). This is a little inaccurate, as it gives exactly zero weight to pixels on the poles, instead of acknowledging that those pixels have a non-zero size.

class edges.sim.sky_models.IndexModel[source]

Base model for spectral index variation across the sky.

abstractmethod get_index(lat=None, lon=None, sky_model=None)[source]

Overloadable method to compute the index at a specific sky location.

edges.sim.sky_models.LW150(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return the Landecker & Wielebinski 150 MHz all-sky map.

Patra et al. 2015, provided a recalibration of the 150 MHz map based on comparison with absolutely calibrated sky brightness measurements between 110 and 175 MHz made with the SARAS spectrometer, and Monsalve et al. 2021, provided a recalibration based on comparison with absolutely calibrated measurements from the EDGES. The correction factors that were obtained are SARAS: scale 1.048 +- 0.008, offset -22.4 +- 8.0 K EDGES: scale 1.112 +- 0.023, offset 0.7 +- 6.0 K Monsalve et al. note that the differences may be because EDGES is a southern hemisphere instrument, SARAS is a northern hemisphere instrument, and the all-sky 150 MHz map was constructed from separate southern, northern, and intermediate declination surveys

edges.sim.sky_models.PlanckCO(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return the Planck CO all-sky map.

Planck All Sky Maps are in HEALPix format, with Nside 2048, in Galactic coordinates and nested ordering. The signal is given in units of Kcmb for 30-353 GHz. Unpolarized maps contain 3 planes, labeled I_Stokes (intensity), Hits (hit count), and II_cov (variance of I_Stokes). Polarized maps contain 10 planes, labeled I_Stokes (intensity), Q_Stokes and U_Stokes (linear polarization), Hits (hit count), II_cov, QQ_cov, and UU_cov (variance of each of the Stokes parameters), and IQ_cov, IU_cov, and QU_cov (covariances between the Stokes parameters).

edges.sim.sky_models.Remazeilles408(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return the Remazeilles 408 MHz all-sky map.

Remazeilles et al. 2014 have re-evaluated and re-processed the rawest Haslam 408 MHz data, available from the Max Planck Institute for Radioastronomy Survey Sampler website, to produce an improved source-subtracted and destriped 408 MHz all sky map. Large-scale striations associated with correlated low-frequency noise in the scan direction are reduced using a Fourier-based filtering technique. The most important improvement results from the removal of extra-galactic sources. An iterative combination of two techniques–two-dimensional Gaussian fitting and minimum curvature spline surface inpainting–are used to remove the brightest sources (with flux density larger than 2 Jy). Four products are made publicly available. They are described below. The sky maps are generated using the HEALPix sky pixelization scheme.

class edges.sim.sky_models.SkyModel(*, frequency, temperature, coords: SkyCoord, name: str = 'SkyModel', healpix: HEALPix | None = None, pixel_res: float | ndarray = NOTHING)[source]

A simple diffuse unpolarized sky model at a single frequency.

This is simpler than pyradiosky’s SkyModel class in that it doesn’t deal with polarizations, assumes a single frequency, and doesn’t know intrinsically about the time of observation etc.

Parameters:
  • frequency (float) – The frequency of the sky model in Hz.

  • temperature (numpy.ndarray) – The temperature of the sky model in K, shape (Nsky,).

  • coords (astropy.coordinates.sky_coordinate.SkyCoord) – The coordinates of the sky model, shape (Nsky,).

  • name (str) – The name of the sky model.

  • healpix (astropy_healpix.high_level.HEALPix | None) – An astropy-healpix HEALPix object describing the pixelization of the sky model, if applicable.

  • pixel_res (float | numpy.ndarray) – The solid angle of each pixel in the sky model, in steradians. If a float, this is assumed to be the same for all pixels. If an array, it must have the same shape as temperature. The mean temperature of the sky is assumed to be the sum of the temperature array multiplied by the pixel_res array, divided by the sum of the pixel_res array.

at_freq(freq: float | ndarray, index_model: IndexModel = ConstantIndex(index=2.5)) ndarray[source]

Generate the sky model at a new set of frequencies.

Parameters:
  • freq – The frequencies at which to evaluate the model (can be a single float or an array of floats).

  • index_model – A spectral index model to shift to the new frequencies.

Returns:

temperature – The sky maps as numpy arrays at the new frequencies, shape (Nsky, Nfreq).

classmethod from_lambda(url: str, frequency: float, max_nside: int = 1267650600228229401496703205376, min_nside: int = 1, header_hdu: int = 1, data_name='TEMPERATURE', name: str = 'SkyModel') Self[source]

Load a sky model from the LAMBDA website.

classmethod from_latlon_grid_file(fname: str | ~pathlib.Path, frequency: float, axes=('lat', 'lon'), frame=<Galactic Frame>, name: str | None = None) Self[source]

Load a sky model from a lat-lon grid file.

classmethod uniform_healpix(frequency: float, temperature: float = 1000.0, nside: int = 32)[source]

Create a uniform sky model.

class edges.sim.sky_models.StepIndex(index_inband=2.5, index_outband=2.6, band_deg=10)[source]

Spectral index model with two index regions – one around the pole.

get_index(lat: ndarray | None = None, lon: ndarray | None = None, sky_model: SkyModel | None = None) ndarray[source]

Generate the spectral index at a given sky location.

edges.sim.sky_models.WhamHAlpha(min_nside=1, max_nside=1267650600228229401496703205376)[source]

Return the WHAM H-alpha all-sky map.

The Wisconsin H-Alpha Mapper (WHAM) made a survey of H alpha intensity over the full sky with a 1 degree beam and velocity resolution of 12 km/s. The WHAM public data release DR1 includes a data product containing H alpha intensity integrated between -80 and +80 km/s LSR velocity for each observed sky position. The Centre d’Analyse de Données Etendues group used these data to form an all-sky HEALPix format map following method described in Appendix A of Paradis etal 2012 Their HEALPix map is provided here. LAMBDA made a new version of their FITS file with minor changes to the headers to make them compliant with FITS standards.