In [1]:
%matplotlib inline
In [2]:
import warnings
warnings.filterwarnings('ignore')
from mocpy import MOC
import astropy.units as u
from astropy.coordinates import Angle, SkyCoord
In [3]:
from astroquery.vizier import Vizier
viz = Vizier(columns=['*', '_RAJ2000', '_DEJ2000'])
viz.ROW_LIMIT = -1
table = viz.get_catalogs('I/293/npm2cros')[0]
In [4]:
galex = MOC.from_fits('../resources/P-GALEXGR6-AIS-FUV.fits')
In [5]:
# A function creating all the matplotlib context for plotting a MOC with its perimeter
def plot(moc, title=''):
from matplotlib import path, patches
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(15, 10))
from mocpy import WCS
with WCS(fig,
fov=330 * 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)
moc.fill(ax=ax, wcs=wcs, edgecolor='r', facecolor='r', linewidth=1.0, fill=True, alpha=0.5)
moc.border(ax=ax, wcs=wcs, color="black", alpha=0.5)
plt.xlabel('ra')
plt.ylabel('dec')
if title:
plt.title(title)
plt.grid(color="black", linestyle="dotted")
plt.show()
plt.close()
plot(moc=galex, title='P-GALEXGR6-AIS-FUV')
In [6]:
print(table)
In [7]:
indexes = galex.contains(table['_RAJ2000'].T * u.deg, table['_DEJ2000'].T * u.deg)
filtered_table = table[indexes]
print(filtered_table)
In [8]:
m1 = MOC.from_lonlat(table['_RAJ2000'].T * u.deg, table['_DEJ2000'].T * u.deg, 6)
m1.write("ttt.fits", format="fits")
m2 = MOC.from_lonlat(filtered_table['_RAJ2000'].T * u.deg, filtered_table['_DEJ2000'].T * u.deg, 6)
plot(moc=m1, title="MOC from table")
plot(moc=m2, title="MOC from filtered table")
In [ ]:
In [ ]: