Ogle et al. (2016) mined the NASA/IPAC Extragalactic Database (NED) to identify a new type of galaxy: Superluminous Spiral Galaxies.
Here's the paper: https://ui.adsabs.harvard.edu//#abs/2016ApJ...817..109O/abstract
Table 1 lists the positions of these Super Spirals. Based on those positions, let's create multiwavelength cutouts for each super spiral to see what is unique about this new class of objects.
# Suppress unimportant warnings.
import warnings
warnings.filterwarnings("ignore", module="astropy.io.votable.*")
warnings.filterwarnings("ignore", module="pyvo.utils.xml.*")
warnings.filterwarnings('ignore', '.*RADECSYS=*', append=True)
import matplotlib.pyplot as plt
import numpy as np
# For downloading files
from astropy.utils.data import download_file
from astropy.coordinates import SkyCoord
from astropy.io import fits
from astropy.nddata import Cutout2D
import astropy.visualization as vis
from astropy.wcs import WCS
from astroquery.ned import Ned
import pyvo as vo
The next cell prepares the notebook to display our visualizations.
%matplotlib inline
Insert a Code Cell below by clicking on the "Insert" Menu and choosing "Insert Cell Below". Then consult QuickReference.md to figure out how to use astroquery to search NED for all objects in a paper, based on the refcode of the paper. Inspect the resulting astropy table.
objects_in_paper = Ned.query_refcode('2016ApJ...817..109O')
objects_in_paper.show_in_notebook()
idx | No. | Object Name | RA | DEC | Type | Velocity | Redshift | Redshift Flag | Magnitude and Filter | Separation | References | Notes | Photometry Points | Positions | Redshift Points | Diameter Points | Associations |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
degrees | degrees | km / s | arcmin | ||||||||||||||
0 | 1 | WISEA J001550.14-100242.3 | 3.95892 | -10.04511 | G | 52788.0 | 0.176083 | 17.5g | -- | 13 | 0 | 63 | 8 | 7 | 10 | 0 | |
1 | 2 | WISEA J003807.80-010936.7 | 9.53252 | -1.16024 | G | 62565.0 | 0.208695 | 18.0g | -- | 14 | 0 | 71 | 12 | 9 | 10 | 0 | |
2 | 3 | WISEA J040422.92-054134.8 | 61.09548 | -5.69303 | G | 75138.0 | 0.250635 | 18.6g | -- | 6 | 0 | 61 | 10 | 7 | 8 | 0 | |
3 | 4 | WISEA J073806.16+282359.6 | 114.52568 | 28.39995 | G | 69255.0 | 0.23101 | 18.0g | -- | 9 | 0 | 66 | 7 | 4 | 10 | 0 | |
4 | 5 | 2MASX J07550424+1353261 | 118.76776 | 13.89065 | G | 66754.0 | 0.222669 | 18.5g | -- | 8 | 0 | 38 | 7 | 6 | 6 | 0 | |
5 | 6 | WISEA J082655.11+181147.7 | 126.72969 | 18.19665 | G | 79608.0 | 0.265543 | 18.4g | -- | 6 | 0 | 46 | 7 | 6 | 6 | 0 | |
6 | 7 | 2MASX J08542169+0449308 | 133.59033 | 4.82511 | G | 47018.0 | 0.156835 | 16.7g | -- | 16 | 0 | 58 | 8 | 6 | 10 | 0 | |
7 | 8 | WHL J090944.8+222607 | 137.4367 | 22.43539 | GClstr | 90837.0 | 0.303 | PHOT | -- | 7 | 0 | 0 | 4 | 5 | 0 | 0 | |
8 | 9 | 2MASX J09094480+2226078 | 137.4367 | 22.43538 | G | 85557.0 | 0.285386 | 19.0g | -- | 8 | 0 | 30 | 5 | 6 | 6 | 0 | |
9 | 10 | 2MASX J09260805+2405242 | 141.53357 | 24.09004 | G | 66689.0 | 0.222451 | 17.8g | -- | 14 | 0 | 32 | 7 | 9 | 6 | 0 | |
10 | 11 | WHL J092608.1+240524 | 141.53357 | 24.09004 | GClstr | 53363.0 | 0.178 | PHOT | -- | 6 | 0 | 0 | 4 | 5 | 0 | 0 | |
11 | 12 | WISEA J093347.77+211436.7 | 143.44901 | 21.24346 | G | 51626.0 | 0.172206 | 16.9g | -- | 42 | 0 | 51 | 17 | 13 | 6 | 1 | |
12 | 13 | WISEA J093622.14+390628.9 | 144.09222 | 39.10801 | G | 84847.0 | 0.283019 | 18.5g | -- | 5 | 0 | 66 | 7 | 3 | 10 | 0 | |
13 | 14 | MSPM 05544 | 146.2235 | 22.8851 | GClstr | 26738.0 | 0.08919 | -- | 3 | 0 | 0 | 1 | 1 | 0 | 0 | ||
14 | 15 | CGCG 122-067 | 146.22351 | 22.88512 | G | 26684.0 | 0.089008 | 15.3g | -- | 27 | 0 | 48 | 9 | 9 | 8 | 0 | |
15 | 16 | WISEA J094700.08+254045.8 | 146.75035 | 25.67938 | G | 32710.0 | 0.10911 | 15.8g | -- | 19 | 0 | 46 | 7 | 7 | 6 | 0 | |
16 | 17 | SDSS J095727.02+083501.7 | 149.36259 | 8.58383 | G | 76917.0 | 0.256568 | 18.3g | -- | 7 | 0 | 39 | 5 | 3 | 8 | 0 | |
17 | 18 | WISEA J100356.88+382902.1 | 150.98703 | 38.48391 | G | 77544.0 | 0.258658 | 17.8g | -- | 7 | 0 | 57 | 7 | 4 | 8 | 0 | |
18 | 19 | WISEA J100416.04+295844.1 | 151.06683 | 29.97899 | G | 89469.0 | 0.298435 | 18.7g | -- | 6 | 0 | 66 | 7 | 4 | 10 | 0 | |
19 | 20 | WISEA J100956.35+261132.0 | 152.48475 | 26.19223 | G | 72232.0 | 0.240939 | 18.1g | -- | 11 | 0 | 46 | 7 | 4 | 6 | 0 | |
20 | 21 | GMBCG J152.52936+32.89139 | 152.52936 | 32.89139 | GClstr | 95634.0 | 0.319 | PHOT | -- | 3 | 0 | 0 | 1 | 1 | 0 | 0 | |
21 | 22 | WISEA J101007.05+325329.0 | 152.52936 | 32.89141 | G | 86914.0 | 0.289913 | 18.7g | -- | 9 | 0 | 66 | 7 | 4 | 10 | 0 | |
22 | 23 | 2MASS J10160396+3037481 | 154.01655 | 30.62998 | G | 75553.0 | 0.252016 | 18.7g | -- | 6 | 0 | 49 | 7 | 4 | 8 | 0 | |
23 | 24 | WISEA J102154.85+072415.5 | 155.47856 | 7.40432 | G | 87111.0 | 0.29057 | 18.4g | -- | 5 | 0 | 55 | 7 | 3 | 8 | 0 | |
24 | 25 | WISEA J103015.74-010607.0 | 157.56561 | -1.10198 | G | 84617.0 | 0.282251 | 18.3g | -- | 10 | 0 | 62 | 9 | 6 | 10 | 0 | |
25 | 26 | 2MASX J10304263+0418219 | 157.67753 | 4.30602 | G | 48300.0 | 0.16111 | 16.8g | -- | 21 | 0 | 59 | 8 | 6 | 10 | 0 | |
26 | 27 | SDSS CE J160.241898-01.069106 | 160.235 | -1.06611 | GClstr | 76153.0 | 0.254019 | EST | -- | 6 | 0 | 0 | 3 | 5 | 0 | 0 | |
27 | 28 | 2MASX J10405643-0103584 | 160.23509 | -1.06632 | G | 75039.0 | 0.250303 | 18.2g | -- | 15 | 0 | 51 | 9 | 9 | 10 | 0 | |
28 | 29 | WISEA J104724.97+230917.4 | 161.85435 | 23.15474 | G | 54754.0 | 0.182639 | 18.46 | -- | 17 | 0 | 46 | 8 | 6 | 6 | 0 | |
29 | 30 | WISEA J111917.41+141946.5 | 169.8226 | 14.3296 | G | 43104.0 | 0.143781 | 16.6g | -- | 18 | 0 | 66 | 8 | 6 | 10 | 0 | |
30 | 31 | 2MASS J11292875+0255498 | 172.36978 | 2.93055 | G | 71860.0 | 0.239698 | 17.5g | -- | 8 | 0 | 49 | 7 | 5 | 8 | 0 | |
31 | 32 | WISEA J113800.86+521303.8 | 174.50367 | 52.21775 | G | 88744.0 | 0.296018 | 19.0g | -- | 8 | 0 | 57 | 7 | 3 | 8 | 0 | |
32 | 33 | WISEA J114100.04+384807.4 | 175.25022 | 38.80207 | G | 80215.0 | 0.267567 | 18.5g | -- | 6 | 0 | 66 | 8 | 6 | 10 | 0 | |
33 | 34 | WISEA J115052.96+460448.1 | 177.72076 | 46.08006 | G | 86801.0 | 0.289538 | 18.5g | -- | 10 | 0 | 53 | 9 | 7 | 8 | 0 | |
34 | 35 | WISEA J115356.21+492355.4 | 178.48416 | 49.39881 | G | 50033.0 | 0.166892 | 17.1g | -- | 16 | 0 | 66 | 9 | 6 | 10 | 0 | |
35 | 36 | 2MASX J11593546+1257080 | 179.89761 | 12.95205 | G | 79017.0 | 0.263572 | 18.3g | -- | 6 | 0 | 54 | 6 | 4 | 10 | 0 | |
36 | 37 | WISEA J120053.92+480007.8 | 180.22477 | 48.00213 | G | 83527.0 | 0.278617 | 18.4g | -- | 7 | 0 | 66 | 7 | 5 | 10 | 0 | |
37 | 38 | GMBCG J180.22479+48.00211 | 180.22479 | 48.00211 | GClstr | 75548.0 | 0.252 | PHOT | -- | 5 | 0 | 0 | 2 | 3 | 0 | 0 | |
38 | 39 | WISEA J121644.33+122450.5 | 184.18477 | 12.41404 | G | 77090.0 | 0.257144 | 18.3g | -- | 5 | 0 | 55 | 7 | 3 | 8 | 0 | |
39 | 40 | WISEA J122100.50+482729.1 | 185.25209 | 48.45807 | G | 89874.0 | 0.299787 | 18.7g | -- | 8 | 0 | 61 | 8 | 3 | 8 | 0 | |
40 | 41 | WISEA J123215.19+102119.1 | 188.06311 | 10.35535 | G | 49742.0 | 0.16592 | 17.2g | -- | 17 | 0 | 66 | 9 | 6 | 10 | 0 | |
41 | 42 | WISEA J123431.08+515629.7 | 188.62952 | 51.94146 | G | 88733.0 | 0.295982 | 18.1g | -- | 28 | 0 | 63 | 10 | 11 | 10 | 0 | |
42 | 43 | WISEA J123746.63+481227.5 | 189.44448 | 48.20767 | G | 81721.0 | 0.272592 | 18.2g | -- | 7 | 0 | 64 | 8 | 4 | 10 | 0 | |
43 | 44 | WISEA J131039.32+223502.8 | 197.66385 | 22.58407 | G | 69341.0 | 0.231295 | 18.1g | -- | 10 | 0 | 48 | 8 | 5 | 6 | 1 | |
44 | 45 | WISEA J132757.52+334529.3 | 201.98969 | 33.75806 | G | 74633.0 | 0.248949 | 17.7g | -- | 14 | 0 | 88 | 12 | 4 | 10 | 0 | |
45 | 46 | WISEA J134228.33+115734.5 | 205.61806 | 11.95954 | G | 83682.0 | 0.279133 | 19.0g | -- | 7 | 0 | 66 | 7 | 4 | 10 | 0 | |
46 | 47 | WISEA J134355.49+244048.1 | 205.98124 | 24.68001 | G | 41149.0 | 0.137258 | 17.81 | -- | 17 | 0 | 46 | 8 | 6 | 6 | 0 | |
47 | 48 | SDSSCGB 16827 | 206.99833 | 32.44039 | GGroup | -- | -- | 18.44 | -- | 3 | 0 | 0 | 1 | 0 | 0 | 0 | |
48 | 49 | 2MASX J13475962+3227100 | 206.99841 | 32.45286 | G | 66888.0 | 0.223113 | 18.1g | -- | 10 | 0 | 54 | 6 | 4 | 10 | 0 | |
49 | 50 | WISEA J135546.08+025456.0 | 208.942 | 2.91553 | G | 71617.0 | 0.23889 | 18.7g | -- | 10 | 0 | 51 | 7 | 5 | 8 | 0 | |
50 | 51 | WISEA J140138.37+263527.6 | 210.40991 | 26.591 | G | 85152.0 | 0.284036 | 18.7g | -- | 7 | 0 | 30 | 5 | 4 | 4 | 0 | |
51 | 52 | 2MASS J14175497+2704341 | 214.47905 | 27.07624 | G | 47238.0 | 0.157569 | 16.9g | -- | 16 | 0 | 25 | 6 | 6 | 4 | 0 | |
52 | 53 | WISEA J143447.88+020228.8 | 218.69942 | 2.04129 | G | 83976.0 | 0.280115 | 18.6g | -- | 8 | 0 | 62 | 9 | 5 | 8 | 0 | |
53 | 54 | WISEA J144728.35+590831.9 | 221.86807 | 59.14209 | G | 73609.0 | 0.245534 | 18.3g | -- | 14 | 0 | 69 | 11 | 8 | 10 | 0 | |
54 | 55 | WISEA J153619.01+452247.7 | 234.07909 | 45.37968 | G | 70813.0 | 0.236206 | 18.1g | -- | 8 | 0 | 57 | 7 | 3 | 8 | 0 | |
55 | 56 | WISEA J154307.78+193751.7 | 235.78241 | 19.63104 | G | 68625.0 | 0.228909 | 17.0g | -- | 34 | 1 | 50 | 16 | 14 | 6 | 0 | |
56 | 57 | WISEA J154950.90+234444.0 | 237.46216 | 23.7456 | G | 78611.0 | 0.262217 | 18.5g | -- | 6 | 0 | 31 | 5 | 4 | 4 | 0 | |
57 | 58 | GMBCG J240.41924+27.30444 | 240.41924 | 27.30444 | GClstr | 57860.0 | 0.193 | PHOT | -- | 3 | 0 | 0 | 1 | 1 | 0 | 0 | |
58 | 59 | 2MASX J16014061+2718161 | 240.41924 | 27.30443 | G | 49332.0 | 0.164554 | 16.7g | -- | 19 | 0 | 54 | 7 | 7 | 10 | 1 | |
59 | 60 | WISEA J163945.96+460905.8 | 249.94148 | 46.1517 | G | 74151.0 | 0.247342 | 18.3g | -- | 10 | 0 | 70 | 8 | 4 | 10 | 0 | |
60 | 61 | WISEA J173406.17+602919.1 | 263.52577 | 60.48859 | G | 82685.0 | 0.275807 | 18.5g | -- | 8 | 0 | 66 | 7 | 4 | 10 | 0 | |
61 | 62 | SDSSCGB 59704 | 263.53292 | 60.48197 | GGroup | 82743.0 | 0.276 | 17.20 | -- | 3 | 0 | 0 | 1 | 1 | 0 | 0 |
The results from NED will include galaxies, but also other kinds of objects. Print the 'Type' column to see the full range of classifications. Next, print the 'Type' of just the first source in the table, in order to determine its data type (since Python 3 distinguishes between strings and byte strings). Finally, use the data type information to filter the results so that we only keep the galaxies in the list.
objects_in_paper['Type']
G |
G |
G |
G |
G |
G |
G |
GClstr |
G |
G |
GClstr |
G |
... |
G |
G |
G |
G |
G |
G |
G |
GClstr |
G |
G |
G |
GGroup |
# Let's see whether we are dealing with strings or byte strings
objects_in_paper[0]['Type']
'G'
# Recast the Type column as strings, to avoid any issues with byte strings
galaxies = objects_in_paper[np.array(objects_in_paper['Type'], dtype='str') == 'G']
galaxies.show_in_notebook()
idx | No. | Object Name | RA | DEC | Type | Velocity | Redshift | Redshift Flag | Magnitude and Filter | Separation | References | Notes | Photometry Points | Positions | Redshift Points | Diameter Points | Associations |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
degrees | degrees | km / s | arcmin | ||||||||||||||
0 | 1 | WISEA J001550.14-100242.3 | 3.95892 | -10.04511 | G | 52788.0 | 0.176083 | 17.5g | -- | 13 | 0 | 63 | 8 | 7 | 10 | 0 | |
1 | 2 | WISEA J003807.80-010936.7 | 9.53252 | -1.16024 | G | 62565.0 | 0.208695 | 18.0g | -- | 14 | 0 | 71 | 12 | 9 | 10 | 0 | |
2 | 3 | WISEA J040422.92-054134.8 | 61.09548 | -5.69303 | G | 75138.0 | 0.250635 | 18.6g | -- | 6 | 0 | 61 | 10 | 7 | 8 | 0 | |
3 | 4 | WISEA J073806.16+282359.6 | 114.52568 | 28.39995 | G | 69255.0 | 0.23101 | 18.0g | -- | 9 | 0 | 66 | 7 | 4 | 10 | 0 | |
4 | 5 | 2MASX J07550424+1353261 | 118.76776 | 13.89065 | G | 66754.0 | 0.222669 | 18.5g | -- | 8 | 0 | 38 | 7 | 6 | 6 | 0 | |
5 | 6 | WISEA J082655.11+181147.7 | 126.72969 | 18.19665 | G | 79608.0 | 0.265543 | 18.4g | -- | 6 | 0 | 46 | 7 | 6 | 6 | 0 | |
6 | 7 | 2MASX J08542169+0449308 | 133.59033 | 4.82511 | G | 47018.0 | 0.156835 | 16.7g | -- | 16 | 0 | 58 | 8 | 6 | 10 | 0 | |
7 | 9 | 2MASX J09094480+2226078 | 137.4367 | 22.43538 | G | 85557.0 | 0.285386 | 19.0g | -- | 8 | 0 | 30 | 5 | 6 | 6 | 0 | |
8 | 10 | 2MASX J09260805+2405242 | 141.53357 | 24.09004 | G | 66689.0 | 0.222451 | 17.8g | -- | 14 | 0 | 32 | 7 | 9 | 6 | 0 | |
9 | 12 | WISEA J093347.77+211436.7 | 143.44901 | 21.24346 | G | 51626.0 | 0.172206 | 16.9g | -- | 42 | 0 | 51 | 17 | 13 | 6 | 1 | |
10 | 13 | WISEA J093622.14+390628.9 | 144.09222 | 39.10801 | G | 84847.0 | 0.283019 | 18.5g | -- | 5 | 0 | 66 | 7 | 3 | 10 | 0 | |
11 | 15 | CGCG 122-067 | 146.22351 | 22.88512 | G | 26684.0 | 0.089008 | 15.3g | -- | 27 | 0 | 48 | 9 | 9 | 8 | 0 | |
12 | 16 | WISEA J094700.08+254045.8 | 146.75035 | 25.67938 | G | 32710.0 | 0.10911 | 15.8g | -- | 19 | 0 | 46 | 7 | 7 | 6 | 0 | |
13 | 17 | SDSS J095727.02+083501.7 | 149.36259 | 8.58383 | G | 76917.0 | 0.256568 | 18.3g | -- | 7 | 0 | 39 | 5 | 3 | 8 | 0 | |
14 | 18 | WISEA J100356.88+382902.1 | 150.98703 | 38.48391 | G | 77544.0 | 0.258658 | 17.8g | -- | 7 | 0 | 57 | 7 | 4 | 8 | 0 | |
15 | 19 | WISEA J100416.04+295844.1 | 151.06683 | 29.97899 | G | 89469.0 | 0.298435 | 18.7g | -- | 6 | 0 | 66 | 7 | 4 | 10 | 0 | |
16 | 20 | WISEA J100956.35+261132.0 | 152.48475 | 26.19223 | G | 72232.0 | 0.240939 | 18.1g | -- | 11 | 0 | 46 | 7 | 4 | 6 | 0 | |
17 | 22 | WISEA J101007.05+325329.0 | 152.52936 | 32.89141 | G | 86914.0 | 0.289913 | 18.7g | -- | 9 | 0 | 66 | 7 | 4 | 10 | 0 | |
18 | 23 | 2MASS J10160396+3037481 | 154.01655 | 30.62998 | G | 75553.0 | 0.252016 | 18.7g | -- | 6 | 0 | 49 | 7 | 4 | 8 | 0 | |
19 | 24 | WISEA J102154.85+072415.5 | 155.47856 | 7.40432 | G | 87111.0 | 0.29057 | 18.4g | -- | 5 | 0 | 55 | 7 | 3 | 8 | 0 | |
20 | 25 | WISEA J103015.74-010607.0 | 157.56561 | -1.10198 | G | 84617.0 | 0.282251 | 18.3g | -- | 10 | 0 | 62 | 9 | 6 | 10 | 0 | |
21 | 26 | 2MASX J10304263+0418219 | 157.67753 | 4.30602 | G | 48300.0 | 0.16111 | 16.8g | -- | 21 | 0 | 59 | 8 | 6 | 10 | 0 | |
22 | 28 | 2MASX J10405643-0103584 | 160.23509 | -1.06632 | G | 75039.0 | 0.250303 | 18.2g | -- | 15 | 0 | 51 | 9 | 9 | 10 | 0 | |
23 | 29 | WISEA J104724.97+230917.4 | 161.85435 | 23.15474 | G | 54754.0 | 0.182639 | 18.46 | -- | 17 | 0 | 46 | 8 | 6 | 6 | 0 | |
24 | 30 | WISEA J111917.41+141946.5 | 169.8226 | 14.3296 | G | 43104.0 | 0.143781 | 16.6g | -- | 18 | 0 | 66 | 8 | 6 | 10 | 0 | |
25 | 31 | 2MASS J11292875+0255498 | 172.36978 | 2.93055 | G | 71860.0 | 0.239698 | 17.5g | -- | 8 | 0 | 49 | 7 | 5 | 8 | 0 | |
26 | 32 | WISEA J113800.86+521303.8 | 174.50367 | 52.21775 | G | 88744.0 | 0.296018 | 19.0g | -- | 8 | 0 | 57 | 7 | 3 | 8 | 0 | |
27 | 33 | WISEA J114100.04+384807.4 | 175.25022 | 38.80207 | G | 80215.0 | 0.267567 | 18.5g | -- | 6 | 0 | 66 | 8 | 6 | 10 | 0 | |
28 | 34 | WISEA J115052.96+460448.1 | 177.72076 | 46.08006 | G | 86801.0 | 0.289538 | 18.5g | -- | 10 | 0 | 53 | 9 | 7 | 8 | 0 | |
29 | 35 | WISEA J115356.21+492355.4 | 178.48416 | 49.39881 | G | 50033.0 | 0.166892 | 17.1g | -- | 16 | 0 | 66 | 9 | 6 | 10 | 0 | |
30 | 36 | 2MASX J11593546+1257080 | 179.89761 | 12.95205 | G | 79017.0 | 0.263572 | 18.3g | -- | 6 | 0 | 54 | 6 | 4 | 10 | 0 | |
31 | 37 | WISEA J120053.92+480007.8 | 180.22477 | 48.00213 | G | 83527.0 | 0.278617 | 18.4g | -- | 7 | 0 | 66 | 7 | 5 | 10 | 0 | |
32 | 39 | WISEA J121644.33+122450.5 | 184.18477 | 12.41404 | G | 77090.0 | 0.257144 | 18.3g | -- | 5 | 0 | 55 | 7 | 3 | 8 | 0 | |
33 | 40 | WISEA J122100.50+482729.1 | 185.25209 | 48.45807 | G | 89874.0 | 0.299787 | 18.7g | -- | 8 | 0 | 61 | 8 | 3 | 8 | 0 | |
34 | 41 | WISEA J123215.19+102119.1 | 188.06311 | 10.35535 | G | 49742.0 | 0.16592 | 17.2g | -- | 17 | 0 | 66 | 9 | 6 | 10 | 0 | |
35 | 42 | WISEA J123431.08+515629.7 | 188.62952 | 51.94146 | G | 88733.0 | 0.295982 | 18.1g | -- | 28 | 0 | 63 | 10 | 11 | 10 | 0 | |
36 | 43 | WISEA J123746.63+481227.5 | 189.44448 | 48.20767 | G | 81721.0 | 0.272592 | 18.2g | -- | 7 | 0 | 64 | 8 | 4 | 10 | 0 | |
37 | 44 | WISEA J131039.32+223502.8 | 197.66385 | 22.58407 | G | 69341.0 | 0.231295 | 18.1g | -- | 10 | 0 | 48 | 8 | 5 | 6 | 1 | |
38 | 45 | WISEA J132757.52+334529.3 | 201.98969 | 33.75806 | G | 74633.0 | 0.248949 | 17.7g | -- | 14 | 0 | 88 | 12 | 4 | 10 | 0 | |
39 | 46 | WISEA J134228.33+115734.5 | 205.61806 | 11.95954 | G | 83682.0 | 0.279133 | 19.0g | -- | 7 | 0 | 66 | 7 | 4 | 10 | 0 | |
40 | 47 | WISEA J134355.49+244048.1 | 205.98124 | 24.68001 | G | 41149.0 | 0.137258 | 17.81 | -- | 17 | 0 | 46 | 8 | 6 | 6 | 0 | |
41 | 49 | 2MASX J13475962+3227100 | 206.99841 | 32.45286 | G | 66888.0 | 0.223113 | 18.1g | -- | 10 | 0 | 54 | 6 | 4 | 10 | 0 | |
42 | 50 | WISEA J135546.08+025456.0 | 208.942 | 2.91553 | G | 71617.0 | 0.23889 | 18.7g | -- | 10 | 0 | 51 | 7 | 5 | 8 | 0 | |
43 | 51 | WISEA J140138.37+263527.6 | 210.40991 | 26.591 | G | 85152.0 | 0.284036 | 18.7g | -- | 7 | 0 | 30 | 5 | 4 | 4 | 0 | |
44 | 52 | 2MASS J14175497+2704341 | 214.47905 | 27.07624 | G | 47238.0 | 0.157569 | 16.9g | -- | 16 | 0 | 25 | 6 | 6 | 4 | 0 | |
45 | 53 | WISEA J143447.88+020228.8 | 218.69942 | 2.04129 | G | 83976.0 | 0.280115 | 18.6g | -- | 8 | 0 | 62 | 9 | 5 | 8 | 0 | |
46 | 54 | WISEA J144728.35+590831.9 | 221.86807 | 59.14209 | G | 73609.0 | 0.245534 | 18.3g | -- | 14 | 0 | 69 | 11 | 8 | 10 | 0 | |
47 | 55 | WISEA J153619.01+452247.7 | 234.07909 | 45.37968 | G | 70813.0 | 0.236206 | 18.1g | -- | 8 | 0 | 57 | 7 | 3 | 8 | 0 | |
48 | 56 | WISEA J154307.78+193751.7 | 235.78241 | 19.63104 | G | 68625.0 | 0.228909 | 17.0g | -- | 34 | 1 | 50 | 16 | 14 | 6 | 0 | |
49 | 57 | WISEA J154950.90+234444.0 | 237.46216 | 23.7456 | G | 78611.0 | 0.262217 | 18.5g | -- | 6 | 0 | 31 | 5 | 4 | 4 | 0 | |
50 | 59 | 2MASX J16014061+2718161 | 240.41924 | 27.30443 | G | 49332.0 | 0.164554 | 16.7g | -- | 19 | 0 | 54 | 7 | 7 | 10 | 1 | |
51 | 60 | WISEA J163945.96+460905.8 | 249.94148 | 46.1517 | G | 74151.0 | 0.247342 | 18.3g | -- | 10 | 0 | 70 | 8 | 4 | 10 | 0 | |
52 | 61 | WISEA J173406.17+602919.1 | 263.52577 | 60.48859 | G | 82685.0 | 0.275807 | 18.5g | -- | 8 | 0 | 66 | 7 | 4 | 10 | 0 |
The paper selected super spirals using WISE, SDSS, and GALEX images. Search the NAVO registry for all image resources, using the 'service_type' search parameter. How many image resources are currently available?
image_services = vo.regsearch(servicetype='image')
print(f'{len(image_services)} result(s) found.')
image_services.to_table()['ivoid', 'short_name', 'res_title']
328 result(s) found.
ivoid | short_name | res_title |
---|---|---|
object | object | object |
ivo://3crsnapshots/sia | 3CRSnap.sia | 3CRSnapshots Simple Image Access Service |
ivo://3crsnapshots/sia | 3CRSnap.sia | 3CRSnapshots Simple Image Access Service |
ivo://archive.stsci.edu/borg | BoRG | Brightest of Reionizing Galaxies (BoRG) |
ivo://archive.stsci.edu/ghosts | GHOSTS | Galaxy Halos, Outer disks, Substructure, Thick disks and Star clusters (GHOSTS) |
ivo://archive.stsci.edu/sia/galex | GALEX | Galaxy Evolution Explorer |
ivo://archive.stsci.edu/siap/hla | HLA | Hubble Legacy Archive |
ivo://arvo/siap | ArVO SIAP | Armenian Virtual Observatory SIAP |
ivo://astron.nl/apertif_dr1/q/apertif_dr1_continuum_images | Continuum images | M) Apertif DR1 - Continuum images |
ivo://astron.nl/apertif_dr1/q/apertif_dr1_polarization_cubes | Pol. cubes | M) Apertif DR1 - Polarization images and cubes |
ivo://astron.nl/apertif_dr1/q/apertif_dr1_spectral_cubes | Spectral cubes | M) Apertif DR1 - HI spectral cubes |
... | ... | ... |
ivo://wfau.roe.ac.uk/ukidssdr3-siap | UKIDSS DR3 SIAP | UKIDSS DR3 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr4-siap | UKIDSS DR4 SIAP | UKIDSS DR4 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr5-siap | UKIDSS DR5 SIAP | UKIDSS DR5 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr6-siap | UKIDSS DR6 SIAP | UKIDSS DR6 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr7-siap | UKIDSS DR7 SIAP | UKIDSS DR7 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr8-siap | UKIDSS DR8 SIAP | UKIDSS DR8 SIAP Service |
ivo://wfau.roe.ac.uk/ukidssdr9-siap | UKIDSS DR9 SIAP | UKIDSS DR9 SIAP Service |
ivo://wfau.roe.ac.uk/vhsdr1-siap | VHS DR1 SIAP | VHS DR1 SIAP Service |
ivo://wfau.roe.ac.uk/vista-siap | VISTA SIAP | VISTA SIAP Service |
ivo://xcatdb/3xmmdr7/epicsia | 3XMM-DR7-SIA | Epic Image SIAP of the SSC Interface for the 3XMM-DR7 Catalogue |
There are hundreds of image resources...too many to quickly read through. Try adding the 'keywords' search parameter to your registry search, and find the image resource you would need to search the AllWISE images. Remember from the Known Issues that 'keywords' must be a list.
allwise_image_services = vo.regsearch(servicetype='image', keywords=['allwise'])
print(f'{len(allwise_image_services)} result(s) found.')
allwise_image_services.to_table()['ivoid', 'short_name', 'res_title']
1 result(s) found.
ivoid | short_name | res_title |
---|---|---|
object | object | object |
ivo://irsa.ipac/wise/images/allwise/l3a | AllWISE L3a | AllWISE Atlas (L3a) Coadd Images |
allwise_image_service = allwise_image_services[0]
allwise_image_service.service
<pyvo.dal.sia.SIAService at 0x7fe819eac450>
ra = galaxies['RA'][0]
dec = galaxies['DEC'][0]
pos = SkyCoord(ra, dec, unit = 'deg')
ra,dec
(3.95892, -10.04511)
How many images are returned? Which are you most interested in?
allwise_image_table = allwise_image_service.search(pos=pos, size=0)
allwise_image_table
<Table length=4> sia_title ... coadd_id ... object ... object ---------------------- ... ------------- W1 Coadd 0046m107_ac51 ... 0046m107_ac51 W3 Coadd 0046m107_ac51 ... 0046m107_ac51 W4 Coadd 0046m107_ac51 ... 0046m107_ac51 W2 Coadd 0046m107_ac51 ... 0046m107_ac51
allwise_images = allwise_image_table.to_table()
allwise_images
sia_title | sia_url | sia_naxes | sia_fmt | sia_ra | sia_dec | sia_naxis | sia_crpix | sia_crval | sia_proj | sia_scale | sia_cd | sia_bp_id | sia_bp_ref | sia_bp_hi | sia_bp_lo | magzp | magzpunc | unc_url | cov_url | coadd_id |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
deg | deg | pix | deg | deg / pix | deg / pix | |||||||||||||||
object | object | int32 | object | float64 | float64 | object | object | object | object | object | object | object | float64 | float64 | float64 | float64 | float64 | object | object | object |
W1 Coadd 0046m107_ac51 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w1-int-3.fits | 2 | image/fits | 4.61538 | -10.601111 | [4095 4095] | [2048.0 2048.0] | [4.61538 -10.601111] | SIN | [-0.0003819444391411 0.0003819444391411] | [-0.0003819444391411 -0.0 -0.0 0.0003819444391411] | W1 | 3.35e-06 | 3.78e-06 | 3.13e-06 | 20.5 | 0.006 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w1-unc-3.fits.gz | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w1-cov-3.fits.gz | 0046m107_ac51 |
W3 Coadd 0046m107_ac51 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w3-int-3.fits | 2 | image/fits | 4.61538 | -10.601111 | [4095 4095] | [2048.0 2048.0] | [4.61538 -10.601111] | SIN | [-0.0003819444391411 0.0003819444391411] | [-0.0003819444391411 -0.0 -0.0 0.0003819444391411] | W3 | 1.156e-05 | 1.627e-05 | 7.6e-06 | 18.0 | 0.012 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w3-unc-3.fits.gz | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w3-cov-3.fits.gz | 0046m107_ac51 |
W4 Coadd 0046m107_ac51 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w4-int-3.fits | 2 | image/fits | 4.61538 | -10.601111 | [4095 4095] | [2048.0 2048.0] | [4.61538 -10.601111] | SIN | [-0.0003819444391411 0.0003819444391411] | [-0.0003819444391411 -0.0 -0.0 0.0003819444391411] | W4 | 2.209e-05 | 2.336e-05 | 1.984e-05 | 13.0 | 0.012 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w4-unc-3.fits.gz | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w4-cov-3.fits.gz | 0046m107_ac51 |
W2 Coadd 0046m107_ac51 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w2-int-3.fits | 2 | image/fits | 4.61538 | -10.601111 | [4095 4095] | [2048.0 2048.0] | [4.61538 -10.601111] | SIN | [-0.0003819444391411 0.0003819444391411] | [-0.0003819444391411 -0.0 -0.0 0.0003819444391411] | W2 | 4.6e-06 | 5.19e-06 | 4.02e-06 | 19.5 | 0.007 | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w2-unc-3.fits.gz | https://irsa.ipac.caltech.edu/ibe/data/wise/allwise/p3am_cdd/00/0046/0046m107_ac51/0046m107_ac51-w2-cov-3.fits.gz | 0046m107_ac51 |
Hints:
.bandpass_id
attribute of each record.title
and .bandpass_id
of the record you find, to verify it is the right one.for allwise_image_record in allwise_image_table:
if 'W1' in allwise_image_record.bandpass_id:
break
print(allwise_image_record.title, allwise_image_record.bandpass_id)
W1 Coadd 0046m107_ac51 W1
## If you only run this once, you can do it in memory in one line:
## This fetches the FITS as an astropy.io.fits object in memory
#allwise_w1_image = allwise_image_record.getdataobj()
## But if you might run this notebook repeatedly with limited bandwidth,
## download it once and cache it.
file_name = download_file(allwise_image_record.getdataurl(), cache=True)
allwise_w1_image = fits.open(file_name)
fig = plt.figure()
wcs = WCS(allwise_w1_image[0].header)
ax = fig.add_subplot(1, 1, 1, projection=wcs)
ax.imshow(allwise_w1_image[0].data, cmap='gray_r', origin='lower', vmax = 10)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe819f93d90>
Try a 60 arcsecond cutout.
size = 60
cutout = Cutout2D(allwise_w1_image[0].data, pos, (size, size), wcs=wcs)
wcs = cutout.wcs
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=wcs)
ax.imshow(cutout.data, cmap='gray_r', origin='lower', vmax = 10)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe8200d9b90>
Repeat steps 4, 5, 6, 8 through 12 for GALEX.
galex_image_services = vo.regsearch(keywords=['galex'], servicetype='image')
print(f'{len(galex_image_services)} result(s) found.')
galex_image_services.to_table()['ivoid', 'short_name', 'res_title']
5 result(s) found.
ivoid | short_name | res_title |
---|---|---|
object | object | object |
ivo://archive.stsci.edu/sia/galex | GALEX | Galaxy Evolution Explorer |
ivo://irsa.ipac/spitzer/images/lvl | LVL | Spitzer Local Volume Legacy Survey |
ivo://irsa.ipac/wise/images/z0mgs | z0MGS | The z=0 Multiwavelength Galaxy Synthesis |
ivo://mast.stsci/siap/galex_atlas | GALEX_Atlas | GALEX Atlas of Nearby Galaxies |
ivo://nasa.heasarc/skyview/galex | GALEX | Galaxy Explorer All Sky Survey: Near UV |
galex_image_service = galex_image_services[0]
galex_image_table = galex_image_service.search(pos=pos, size=0.0, intersect='covers')
for i in range(len(galex_image_table)):
if (('image/fits' in galex_image_table[i].format) and
(galex_image_table['enrValue'][i]==2.35e-07)):
break
galex_image_record = galex_image_table[i]
print(galex_image_record.title, galex_image_record.bandpass_id)
ais_270_sg14-nd-int.fits.gz UV
## See above regarding two ways to do this:
#galex_nuv_image = fits.open(galex_image_record.getdataurl())
file_name = download_file(galex_image_record.getdataurl(), cache=True)
galex_nuv_image=fits.open(file_name)
image_data = galex_nuv_image[0].data
print('Min:', np.min(image_data))
print('Max:', np.max(image_data))
print('Mean:', np.mean(image_data))
print('Stdev:', np.std(image_data))
Min: 0.0 Max: 7.1870303 Mean: 0.0014934327 Stdev: 0.012639926
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=WCS(galex_nuv_image[0].header))
ax.imshow(galex_nuv_image[0].data, cmap='gray_r', origin='lower', vmin=0.0, vmax=0.01)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe82018ba90>
cutout = Cutout2D(galex_nuv_image[0].data, pos, size, wcs=WCS(galex_nuv_image[0].header))
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=cutout.wcs)
ax.imshow(cutout.data, cmap='gray_r', origin='lower', vmin = 0.0, vmax = 0.01)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe81a28b690>
Hints:
short_name
of 'SDSS SIAP'
format
parameter dues to a bug in the service..title
attribute of the records that are returned, since .bandpass_id
is not populated.sdss_image_services = vo.regsearch(keywords=['sloan'], servicetype='image')
sdss_image_services.to_table()['ivoid', 'short_name', 'res_title', 'source_value']
ivoid | short_name | res_title | source_value |
---|---|---|---|
object | object | object | object |
ivo://irsa.ipac/spitzer/images/shela | SHELA | Spitzer/HETDEX Exploratory Large-Area Survey | |
ivo://mast.stsci/siap/al218 | VLA.AL218 | VLA-A Array AL218 Texas Survey Source Snapshots (AL218) | |
ivo://mast.stsci/siap/vla-first | VLA-FIRST | VLA Faint Images of the Radio Sky at Twenty Centimeters (FIRST) | |
ivo://nasa.heasarc/skyview/sdss | SDSS | Sloan Digital Sky Survey g-band | |
ivo://nasa.heasarc/skyview/sdssdr7 | SDSSDR7 | Sloan Digital Sky Survey g-band DR7 | |
ivo://nasa.heasarc/skyview/stripe82vla | Stripe82VLA | VLA Survey of SDSS Stripe 82 | |
ivo://org.gavo.dc/bgds/q/sia | bgds sia | Bochum Galactic Disk Survey (BGDS) SIAP service | 2015AN....336..590H |
ivo://sdss.jhu/services/siap-images | SDSS SIAP | Sloan Digital Sky Survey Images (Latest Release) | |
ivo://sdss.jhu/services/siapdr1-images | SDSSDR1 | Sloan Digital Sky Survey DR1 - Images | |
ivo://sdss.jhu/services/siapdr2-images | SDSSDR2 | Sloan Digital Sky Survey DR2 - Images | |
ivo://sdss.jhu/services/siapdr3-color | SDSSDR3-Color | Sloan Digital Sky Survey DR3 | |
ivo://sdss.jhu/services/siapdr3-g | SDSSDR3-G | Sloan Digital Sky Survey DR3 - Filter g | |
ivo://sdss.jhu/services/siapdr3-i | SDSSDR3-I | Sloan Digital Sky Survey DR3 - Filter i | |
ivo://sdss.jhu/services/siapdr3-r | SDSSDR3-R | Sloan Digital Sky Survey DR3 - Filter r | |
ivo://sdss.jhu/services/siapdr3-u | SDSSDR3-U | Sloan Digital Sky Survey DR3 - Filter u | |
ivo://sdss.jhu/services/siapdr3-z | SDSSDR3-Z | Sloan Digital Sky Survey DR3 - Filter z | |
ivo://sdss.jhu/services/siapdr4-color | SDSSDR4-Color | Sloan Digital Sky Survey DR4 | |
ivo://sdss.jhu/services/siapdr4-images | SDSSDR4 | Sloan Digital Sky Survey DR4 - Images | |
ivo://sdss.jhu/services/siapdr5-images | SDSSDR5 | Sloan Digital Sky Survey DR5 - Images | |
ivo://sdss.jhu/services/siapdr7-images | SDSSDR7 | Sloan Digital Sky Survey DR7 - Images | |
ivo://sdss.jhu/services/siapdr8-images | SDSSDR8 | Sloan Digital Sky Survey DR8 - Images | |
ivo://sdss.jhu/services/siapdr9-images | SDSSDR9 | Sloan Digital Sky Survey DR9 - Images |
# Use list comprehension to check each service's short_name attribute.
# Given the above, we know the first match is the right one.
sdss_image_service = [s for s in sdss_image_services if 'SDSS SIAP' in s.short_name ][0]
sdss_image_service.short_name
'SDSS SIAP'
As a workaround to a bug in the SDSS service, pass format=''
when searching.
sdss_image_table = sdss_image_service.search(pos=pos, size=0.0, format='', intersect='covers')
len(sdss_image_table['Title'])
60
for sdss_rband_record in sdss_image_table:
if 'Sloan Digital Sky Survey - Filter r' in sdss_rband_record.title:
break
print(sdss_rband_record.title, sdss_rband_record.bandpass_id)
Sloan Digital Sky Survey - Filter r None
## See above regarding two ways to do this
# sdss_rband_image = fits.open(sdss_rband_record.getdataurl())
file_name = download_file(sdss_rband_record.getdataurl(), cache=True)
sdss_rband_image=fits.open(file_name)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=WCS(sdss_rband_image[0].header))
interval = vis.PercentileInterval(99.9)
vmin,vmax = interval.get_limits(sdss_rband_image[0].data)
norm = vis.ImageNormalize(vmin=vmin, vmax=vmax, stretch=vis.LogStretch(1000))
ax.imshow(sdss_rband_image[0].data, cmap = 'gray_r', norm = norm, origin = 'lower')
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe81a6e5e10>
cutout = Cutout2D(sdss_rband_image[0].data, pos, size, wcs=WCS(sdss_rband_image[0].header))
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=cutout.wcs)
vmin,vmax = interval.get_limits(sdss_rband_image[0].data)
norm = vis.ImageNormalize(vmin=vmin, vmax=vmax, stretch=vis.LogStretch(1000))
ax.imshow(cutout.data, cmap = 'gray_r', norm = norm, origin = 'lower')
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
<matplotlib.collections.PathCollection at 0x7fe82017e350>
Warning: this cell takes a long time to run! We limit it to the first three galaxies only.
# Pick the first 3 galaxies.
galaxy_subset = galaxies[0:3]
# For each galaxy,
for galaxy in galaxy_subset:
# Establish the position.
ra = galaxy['RA']
dec = galaxy['DEC']
pos = SkyCoord(ra, dec, unit = 'deg')
# Set up the plot for this position.
fig = plt.figure(figsize=(20,6))
plt.suptitle('POSITION = ' + str(ra) + ', ' + str(dec), fontsize=16)
# GALEX
# Find the GALEX images that overlap the position.
galex_image_table = galex_image_service.search(pos=pos, size=0.25)
# Find the GALEX All-Sky Image Survey (AIS) Near-UV FITS coadd.
for i in range(len(galex_image_table)):
if (('image/fits' in galex_image_table[i].format) and
(galex_image_table['enrValue'][0]==2.35e-07)):
break
galex_image_record = galex_image_table[i]
# Create a cutout.
file_name = download_file(galex_image_record.getdataurl(), cache=True)
gimage=fits.open(file_name)
galex_cutout = Cutout2D(gimage[0].data, pos, size, wcs=WCS(gimage[0].header))
# Plot the cutout in the first position of a 1x3 (rowsxcols) grid.
ax = fig.add_subplot(1, 3, 1, projection=galex_cutout.wcs)
ax.set_title(galex_image_record.title)
ax.imshow(galex_cutout.data, cmap='gray_r', origin='lower', vmin = 0.0, vmax = 0.01)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
# SDSS
# Find the SDSS images that overlap the position.
sdss_image_table = sdss_image_service.search(pos=pos, size=0, format='')
# Find the first SDSS r-band image.
for sdss_rband_record in sdss_image_table:
if 'Sloan Digital Sky Survey - Filter r' in sdss_rband_record.title:
break
file_name = download_file(sdss_rband_record.getdataurl(), cache=True)
sdss_rband_image=fits.open(file_name)
# Create a cutout.
sdss_cutout = Cutout2D(sdss_rband_image[0].data, pos, size,
wcs=WCS(sdss_rband_image[0].header))
# Plot the cutout in the second position of a 1x3 grid.
vmin,vmax = interval.get_limits(sdss_cutout.data)
norm = vis.ImageNormalize(vmin=vmin, vmax=vmax, stretch=vis.LogStretch(1000))
ax = fig.add_subplot(1, 3, 2, projection=sdss_cutout.wcs)
ax.imshow(sdss_cutout.data, cmap = 'gray_r', norm = norm, origin = 'lower')
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
ax.set_title(sdss_rband_record.title)
# AllWISE
# Find the AllWISE images that overlap the position.
allwise_image_table = allwise_image_service.search(pos=pos, size=0)
# Find the AllWISE W1 channel images.
for allwise_image_record in allwise_image_table:
if 'W1' in allwise_image_record.bandpass_id:
break
file_name = download_file(allwise_image_record.getdataurl(), cache=True)
allwise_w1_image=fits.open(file_name)
# Create a cutout.
allwise_cutout = Cutout2D(allwise_w1_image[0].data, pos, (size, size),
wcs=WCS(allwise_w1_image[0].header))
# Plot the cutout in the third position of a 1x3 grid.
ax = fig.add_subplot(1, 3, 3, projection=allwise_cutout.wcs)
ax.imshow(allwise_cutout.data, cmap='gray_r', origin='lower', vmax = 10)
ax.scatter(ra, dec, transform=ax.get_transform('fk5'), s=500, edgecolor='red', facecolor='none')
ax.set_title(allwise_image_record.title)