Me gustaría calcular la distancia (en segundos de arco) desde el objeto más cercano a ra='08h55m10s' dec='-7d14m42s' hasta ese punto de la esfera celeste.
De hecho, tengo problemas para identificar el objeto. Tengo código Python para ejecutar una búsqueda de cono:
from astropy.coordinates import SkyCoord
from astroquery.irsa import Irsa
import astropy.units as u
loc = SkyCoord('08h55m10s',' -7d14m42s','icrs')
table = Irsa.query_region(coordinates=loc,catalog="wise_allsky_4band_p3as_psd", radius= 1 * u.arcminute)
print(table)
Esto imprime:
designation ra dec ... angle id
deg deg ... deg
------------------- ------- ------- ... ------------------ ---
J085507.72-071428.4 133.782 -7.241 ... 291.84348499999999 0
J085511.22-071522.2 133.797 -7.256 ... 155.64652000000001 1
J085508.65-071354.0 133.786 -7.232 ... 337.39116000000001 2
J085509.94-071534.8 133.791 -7.260 ... 180.87171799999999 3
J085511.28-071528.1 133.797 -7.258 ... 157.48249000000001 4
J085509.47-071502.9 133.789 -7.251 ... 200.548395 5
J085513.60-071440.0 133.807 -7.244 ... 87.949470000000005 6
J085510.83-071442.5 133.795 -7.245 ... 92.439341999999996 7
J085511.39-071427.5 133.797 -7.241 ... 55.110833 8
J085513.30-071420.4 133.805 -7.239 ... 66.332006000000007 9
Y aquí es donde estoy perplejo. ¿Cuál de estos objetos está más cerca del punto? (Supongo que debe ser el objeto en el índice cero). ¿Y por qué? ¿Y cómo puedo calcular la distancia del objeto a ese punto en la esfera celeste?
La distancia angular más corta entre dos puntos de la esfera celeste se mide a lo largo de un gran círculo que pasa por ambos.
La ecuación que usa su programa es
En términos de salida de su programa, es más difícil ayudar, especialmente porque no ha dado la salida completa. Las primeras tres columnas deben explicarse por sí mismas: las columnas 2 y 3 son solo las coordenadas expresadas en grados. Supongo que la tercera columna desde la última, que no ha mostrado, da la separación entre su objeto y los objetos del catálogo y que la penúltima columna es el ángulo que forma el gran círculo entre los puntos en el cielo. Eso parece correcto porque el cuarto objeto en la lista tiene casi el mismo RA que su objeto de entrada pero está a 67 segundos de arco hacia el sur (es decir, a 180 grados).
Puede utilizar SkyCoord.separation
para calcular la separación entre coordenadas:
c1 = SkyCoord('08h55m10s',' -7d14m42s', frame='icrs') # your coords
c2 = SkyCoord(133.782, -7.241, unit='deg', frame='icrs') # first object in table
sep = c1.separation(c2)
print c1
<SkyCoord (ICRS): ra=133.791666667 deg, dec=-7.245 deg>
print c2
<SkyCoord (ICRS): ra=133.782208333 deg, dec=-7.24123611111 deg>
print sep
0d00m36.3947s
La tabla que imprimió está truncada en el medio. Si amplía su emulador de terminal, podrá ver una columna llamada dist
, que es la distancia entre sus coordenadas de entrada y el objeto correspondiente en segundos de arco:
print table['dist']
dist
------------------
36.420772999999997
44.138542000000001
51.987606999999997
52.838003
49.937266999999999
22.372699000000001
53.621690000000001
12.375482
25.27176
53.707365000000003
Entonces el objeto más cercano es aquel cuya separación es:
print table['dist'].min()
12.375482
O equivalentemente, aquel cuyo índice es:
print table['dist'].argmin()
7
La separación se calcula usando la ecuación que señaló @Rob Jeffries.
david hamen
usuario5341
david hamen
usuario5341
david hamen