Create a MOC from an astropy Table

[1]:
import matplotlib.pyplot as plt
from astropy import units as u
from astropy.coordinates import Angle, SkyCoord
from astropy.visualization.wcsaxes.frame import EllipticalFrame
from astroquery.vizier import Vizier
from mocpy import MOC, WCS

Let’s load a VizieR catalog

[2]:
viz = Vizier(columns=["*", "_RAJ2000", "_DEJ2000"])
viz.ROW_LIMIT = -1  # sets the limit to infinity
table = viz.get_catalogs("I/293/npm2cros")[0]

print(table)
 _RAJ2000   _DEJ2000    NPM2   KLA  RAJ2000   ...  IQ  IN r_Star  mag  tyc
   deg        deg                             ...                 mag
---------- ---------- -------- --- ---------- ... --- --- ------ ----- ---
339.638333  83.166667 +83.0016 HPM 22 38 33.2 ...   0   0    811 14.20
339.638333  83.166667 +83.0016 HPM 22 38 33.2 ...   0   0    813 14.20
349.530833  83.010556 +83.0022 VAR 23 18 07.4 ...   0   0    843    --   T
349.530833  83.010556 +83.0022 SRA 23 18 07.4 ...   0   0      1  9.60   T
323.854167  82.997222 +82.0030 UBV 21 35 25.0 ...   0   0      5 10.08   T
332.107917  82.747500 +82.0055  WD 22 08 25.9 ...   0   0   1012 16.00
332.933750  82.607778 +82.0059 HPM 22 11 44.1 ...   0   0    811 16.70
335.088750  82.970833 +82.0065 HPM 22 20 21.3 ...   0   0    811 11.00   T
337.119167  82.763889 +82.0074 UBV 22 28 28.6 ...   0   0      5 10.42   T
337.274583  82.662222 +82.0075 HPM 22 29 05.9 ...   1   0    811 17.40
338.337917  82.369167 +82.0079 HPM 22 33 21.1 ...   0   0    811 16.20
320.104167  81.590000 +81.0010 YPC 21 20 25.0 ...   0   0    809 10.30   T
328.960000  81.319167 +81.0032 HPM 21 55 50.4 ...   0   0    811 12.50   T
328.960000  81.319167 +81.0032 HPM 21 55 50.4 ...   0   0    813 12.40   T
330.534583  81.635556 +81.0040 HPM 22 02 08.3 ...   0   0    811 17.70
331.742917  81.140556 +81.0041 RED 22 06 58.3 ...   0   0    155 10.10   T
343.107083  81.618611 +81.0071 HPM 22 52 25.7 ...   0   0    811 14.80
343.396250  81.512500 +81.0073 HPM 22 53 35.1 ...   0   0    811 13.30   T
343.396250  81.512500 +81.0073 HPM 22 53 35.1 ...   0   0    813 13.70   T
343.396250  81.512500 +81.0073 CPM 22 53 35.1 ...   0   0      4 13.70   T
345.737083  81.855833 +81.0082 UNK 23 02 56.9 ...   0   0    816  8.00   T
351.081250  81.493889 +81.0098 HPM 23 24 19.5 ...   1   0    811 17.40
352.878333  81.411667 +81.0102 HPM 23 31 30.8 ...   0   0    811 11.00   T
352.878333  81.411667 +81.0102 HPM 23 31 30.8 ...   0   0    813 11.50   T
355.546250  81.093889 +81.0111 HPM 23 42 11.1 ...   0   0    811 16.00
324.736667  80.677778 +80.0020 HPM 21 38 56.8 ...   0   0    811  9.80   T
355.632917  80.638333 +80.0109 HPM 23 42 31.9 ...   0   0    811 11.90   T
356.260000  80.949722 +80.0112  WD 23 45 02.4 ...   0   0    141 14.00
356.260000  80.949722 +80.0112 PNB 23 45 02.4 ...   0   0   1011    --
321.720417  79.308889 +79.0005  BV 21 26 52.9 ...   0   0    608  9.46   T
322.253333  79.009167 +79.0008  BV 21 29 00.8 ...   0   0    608 10.24   T
322.254167  79.290278 +79.0009  BV 21 29 01.0 ...   0   0    608 12.17   T
326.260833  79.289167 +79.0028 HPM 21 45 02.6 ...   1   0    811 17.10
330.195833  79.823611 +79.0045 HPM 22 00 47.0 ...   0   0    811 15.90
332.768750  79.430833 +79.0055 HPM 22 11 04.5 ...   0   0    811 17.90
336.634583  79.814722 +79.0072 HPM 22 26 32.3 ...   0   0    811 10.30   T
       ...        ...      ... ...        ... ... ... ...    ...   ... ...
292.892917 -22.538056 -22.2084 CMC 19 31 34.3 ...   0   0    817 11.12   T
293.529583 -22.156389 -22.2101 CMC 19 34 07.1 ...   1   0    817 12.69
293.727083 -22.121667 -22.2108 CMC 19 34 54.5 ...   0   0    817 13.35
294.078333 -22.048333 -22.2118 CMC 19 36 18.8 ...   0   0    817 12.63
294.845417 -22.401667 -22.2128 CMC 19 39 22.9 ...   0   0    817 12.32
295.010833 -22.548333 -22.2133 HPM 19 40 02.6 ...   0   0    811 14.10
297.006250 -22.252500 -22.2166 CMC 19 48 01.5 ...   0   0    817 10.95   T
297.245417 -22.472778 -22.2169 HPM 19 48 58.9 ...   2   0    811 15.60
103.248333 -23.107500 -23.0010 HPM 06 52 59.6 ...   0   0    811 10.00   T
103.248333 -23.107500 -23.0010 RED 06 52 59.6 ...   0   0    258  9.10   T
103.553750 -23.105833 -23.0011  AP 06 54 12.9 ...   0   0    299  9.60   T
111.447500 -23.123611 -23.0032 UBV 07 25 47.4 ...   0   0    786 10.58   T
111.478333 -23.149722 -23.0033 UBV 07 25 54.8 ...   0   0    786 10.47   T
111.487917 -23.165833 -23.0034 UBV 07 25 57.1 ...   0   0    786 10.76   T
111.492917 -23.121389 -23.0035 UBV 07 25 58.3 ...   0   0    786 11.72   T
111.513333 -23.103889 -23.0036 UBV 07 26 03.2 ...   0   0    786 10.80   T
111.575833 -23.038611 -23.0037 UBV 07 26 18.2 ...   0   0    786 10.62   T
111.610000 -23.031111 -23.0038 UBV 07 26 26.4 ...   0   0    786 10.56   T
114.080417 -23.059444 -23.0047  OB 07 36 19.3 ...   0   0    393 11.20   T
114.796250 -23.153333 -23.0050  OB 07 39 11.1 ...   0   0    393 11.30   T
118.169583 -23.048333 -23.0064  OB 07 52 40.7 ...   0   0    393 11.30   T
119.790417 -23.114444 -23.0071  OB 07 59 09.7 ...   0   0    393 12.20   T
243.440833 -23.007778 -23.0109 INS 16 13 45.8 ...   0   0    971 12.50
244.380417 -23.060000 -23.0117 UNK 16 17 31.3 ...   0   0   1100 10.09   T
244.380417 -23.060000 -23.0117 RED 16 17 31.3 ...   0   0   1027 10.09   T
245.782500 -23.016667 -23.0123 ELS 16 23 07.8 ...   1   0    520 13.00
257.227500 -23.094167 -23.0151 ELS 17 08 54.6 ...   0   0    511 13.50
267.989583 -23.012222 -23.0162 CMC 17 51 57.5 ...   0   0    817 11.13   T
267.989583 -23.012222 -23.0162 ELS 17 51 57.5 ...   0   0    252    --   T
270.244583 -23.032222 -23.0164 CMC 18 00 58.7 ...   0   0    817 10.52   T
270.244583 -23.032222 -23.0164  EA 18 00 58.7 ...   0   0      1 10.20   T
270.337500 -23.000556 -23.0165 COM 18 01 21.0 ...   0   0    819 11.20   T
270.442917 -23.020000 -23.0166 UNK 18 01 46.3 ...   0   0    816 14.00
270.474167 -23.028889 -23.0167 COM 18 01 53.8 ...   1   0    819 11.60   T
271.357083 -23.005556 -23.0168 ELS 18 05 25.7 ...   0   0    252    --   T
271.357083 -23.005556 -23.0168  OB 18 05 25.7 ...   0   0    393  9.70   T
Length = 46887 rows

Let’s create a MOC from the coordinates of this table

[3]:
moc = MOC.from_lonlat(
    table["_RAJ2000"].T * u.deg,
    table["_DEJ2000"].T * u.deg,
    max_norder=6,
)
[4]:
fig = plt.figure(dpi=400, figsize=(10, 5))

with WCS(
    fig,
    fov=160 * u.deg,
    center=SkyCoord(0, 0, unit="deg", frame="galactic"),
    coordsys="galactic",
    rotation=Angle(0, u.degree),
    projection="AIT",
) as wcs:
    ax = fig.add_subplot(1, 1, 1, projection=wcs, frame_class=EllipticalFrame)

    moc.fill(
        ax=ax,
        wcs=wcs,
        edgecolor="teal",
        facecolor="orange",
        linewidth=1.0,
        fill=True,
        alpha=0.8,
    )
    moc.border(ax=ax, wcs=wcs, color="k")

ax.grid(True)

plt.tight_layout()
../../_images/_collections_notebooks_from_astropy_table_6_0.png