Sky Grid (dorado.scheduling.skygrid)#
Methods for tesselating the sky into survey tiles.
The functions in this module provide a variety of different methods of
selecting points on the unit sphere with approximately uniform density per unit
area. All of thee functions take one required argument, area
, which is the
average area per tile. Some (like geodesic()
) take additional optional
keyword arguments.
Note that in the case of geodesic()
and healpix()
, the number of
tiles that may be returned is constrained to certain values. For these methods,
the number of tiles will be the smallest possible number that is greater than
or equal to 4 pi / area.
|
Generate a geodesic polyhedron with the fewest vertices >= n. |
|
Generate a tile grid from a spiral employing the golden angle. |
|
Generate a grid in HEALPix coordinates. |
|
Generate a uniform grid on a sinusoidal equal area projection. |
Example
>>> from astropy import units as u
>>> from dorado.scheduling import skygrid
>>> points = skygrid.sinusoidal(100 * u.deg**2)
Gallery#
- dorado.scheduling.skygrid.geodesic(area, base='icosahedron', class_='I')#
Generate a geodesic polyhedron with the fewest vertices >= n.
- Parameters:
area (
astropy.units.Quantity
) – The average area per tile in any Astropy solid angle units: for example,10 * astropy.units.deg**2
or0.1 * astropy.units.steradian
.base ({
'icosahedron'
,'octahedron'
,'tetrahedron'
}) – The base polyhedron of the tesselation.class ({
'I'
,'II'
,'III'
}) – The class of the geodesic polyhedron, which constrains the allowed values of the number of points. Class III permits the most freedom.
- Returns:
coords – The coordinates of the vertices of the geodesic polyhedron.
- Return type:
Example
from astropy import units as u from matplotlib import pyplot as plt import ligo.skymap.plot import numpy as np from dorado.scheduling import skygrid n_vertices_target = 1024 vertices = skygrid.geodesic(4 * np.pi * u.sr / n_vertices_target) n_vertices = len(vertices) ax = plt.axes(projection='astro globe', center='0d 25d') plt.suptitle('Class I') ax.set_title(f'{n_vertices} vertices (goal was {n_vertices_target})') ax.plot_coord(vertices, '.') ax.grid()
vertices = skygrid.geodesic(4 * np.pi * u.sr / n_vertices_target, class_='II') n_vertices = len(vertices) ax = plt.axes(projection='astro globe', center='0d 25d') plt.suptitle('Class II') ax.set_title(f'{n_vertices} vertices (goal was {n_vertices_target})') ax.plot_coord(vertices, '.') ax.grid()
vertices = skygrid.geodesic(4 * np.pi * u.sr / n_vertices_target, class_='III') n_vertices = len(vertices) ax = plt.axes(projection='astro globe', center='0d 25d') plt.suptitle('Class III') ax.set_title(f'{n_vertices} vertices (goal was {n_vertices_target})') ax.plot_coord(vertices, '.') ax.grid()
- dorado.scheduling.skygrid.golden_angle_spiral(area)#
Generate a tile grid from a spiral employing the golden angle.
This is a spiral-based spherical packing scheme that was used by GRANDMA during LIGO/Virgo O3 (see doi:10.1093/mnras/staa1846).
- Parameters:
area (
astropy.units.Quantity
) – The average area per tile in any Astropy solid angle units: for example,10 * astropy.units.deg**2
or0.1 * astropy.units.steradian
.- Returns:
coords – The coordinates of the tiles.
- Return type:
See also
- dorado.scheduling.skygrid.healpix(area)#
Generate a grid in HEALPix coordinates.
- Parameters:
area (
astropy.units.Quantity
) – The average area per tile in any Astropy solid angle units: for example,10 * astropy.units.deg**2
or0.1 * astropy.units.steradian
.- Returns:
coords – The coordinates of the tiles.
- Return type:
- dorado.scheduling.skygrid.sinusoidal(area)#
Generate a uniform grid on a sinusoidal equal area projection.
This is similar to what was used for GRANDMA follow-up in LIGO/Virgo Observing Run 3 (O3), but is more efficient at tiling the poles. See doi:10.3847/2041-8213/ab3399.
- Parameters:
area (
astropy.units.Quantity
) – The average area per tile in any Astropy solid angle units: for example,10 * astropy.units.deg**2
or0.1 * astropy.units.steradian
.- Returns:
coords – The coordinates of the tiles.
- Return type: