-->

Etiquetas

El color de los objetos celestes: parte I

El color de los objetos celestes: parte I

En este post se inicia una serie de varios artículos dedicados al tema del color de los objetos celestes. Este primer post tendrá un carácter fundamentalmente teórico. En posteriores entradas abordaremos la realización de diagramas color-color basados en datos reales obtenidos en diferentes catálogos

Importaciones y referencias

Una interesante introducción (en inglés) puede consultarse en: Photometry y en Color-Magnitude and Color-Color plots

In [1]:
%matplotlib inline

from __future__ import division

import quantities as pq
import numpy as np
import matplotlib.pyplot as plt

# Generar un cuadro con versiones de las librerías utilizadas en este notebook
#https://github.com/jrjohansson/version_information
%load_ext version_information
%version_information numpy, matplotlib, quantities
Out[1]:
SoftwareVersion
Python2.7.9 64bit [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
IPython2.3.1
OSLinux 3.13.0 45 generic x86_64 with debian jessie sid
numpy1.9.1
matplotlib1.4.2
quantities0.10.1
Mon Feb 23 17:59:28 2015 CET

Magnitudes aparentes

Un objeto celeste de magnitud aparente 1 es por definición 100 veces más brillante que uno de magnitud 6.

Por lo tanto, asignando provisionalmente al objeto de magnitud 6 un brillo aparente unidad, y llamando \(k\) a la razón entre una magnitud aparente de valor m y una magnitud de valor m+1, podemos razonar como se indica en el cuadro siguiente:

\[ \begin{array}{l|c|c|c|c|c|c} \text{Magnitud} & 1 & 2 & 3 & 4 & 5 & 6 \\\\ \hline \\\\ \text{Brillo aparente} & k^5 = 100 & k^4 & k^3 & k^2& k & 1 \\\\ \end{array} \]

Por lo que el valor de \(k\) será:

\[k = 100^{\frac{1}{5}}\]

In [2]:
k = 100**(1./5)
print k
2.51188643151

En realidad, la magnitud que define rigurosamente el brillo de una estrella que es percibido por un observador es el flujo radiante, definido como la cantidad de energía en una banda de longitudes de onda determinada, que se recibe en un área unidad orientada perpendicularmente a la trayectoria de la luz por unidad de tiempo. Se mide en vatios por metro cuadrado.

Representemos por \(F\) el flujo radiante recibido de una estrella, y sea \(F_{Vega}\) el flujo radiante de la estrella Vega, el cual se toma como referencia de la magnitud \(0\) en todas las longitudes de onda, tendremos:

\[ \begin{array}{l|c|c|c|c|c} \text{Magnitud} & 0 & 1 & 2 & \cdots & m \\\\ \hline \\\\ \text{Flujo} & F_{Vega} & \frac{1}{k} F_{Vega} & \frac{1}{k^2} F_{Vega} & \cdots & F = \frac{1}{k^m} F_{Vega} \\\\ \end{array} \]

Si ahora consideramos dos estrellas de magnitudes relativas \(m_1\) y \(m_2\), y sus correspondientes flujos radiantes \(F_1\) y \(F_2\), expresando ambos en función de \(F_{Vega}\), dividiendo ambas expresiones y simplificando se obtiene la relación siguiente:

\[ \frac{F_2}{F_1} = k^{m_1 - m_2} \]

Y sustituyendo \(k\) por su valor, llegamos a la fórmula fundamental siguiente:

\[ \frac{F_2}{F_1} = 100^\frac{m_1 - m_2}{5} \]

Otra forma muy habitual de expresar la relación entre magnitudes aparentes y flujos radiantes es tomando logaritmos decimales en la expresión anterior, con lo que se llega a la expresión comunmente utilizada (observese que se ha invertido el cociente entre los flujos radiantes, lo que hace aparecer el signo -):

\[ \boxed{ m_1 - m_2 = -2.5 \: log_{10} \left( \frac{F_1}{F_2} \right) }\]

Magnitudes absolutas

Lógicamente, la magnitud aparente de un objeto dependerá, tanto de su luminosidad intrínseca como de la distancia a la que se encuentra de nosotros. Por lo tanto tiene interés definir una magnitud absoluta que nos de una idea de la cantidad de energía emitida por el objeto, independientemente de la distancia a la que este se encuentre.

Previamente debemos precisar el concepto de luminosidad \(L\) de un objeto, la cual se define como la cantidad de energía total emitida por el objeto en un segundo. Esta magnitud \(L\) tiene una relación con el flujo radiante \(F\), ya que si suponemos que el objeto se encuentra a una distancia \(d\) de nosotros, la energía total radiada por segundo se repartirá en una superficie esférica de área \(4 \pi d^2\), por lo que la energía que recibiremos por unidad de superficie en un segundo será:

\[F = \frac{L}{4 \pi d^2}\]

(En realidad la expresión anterior es solo una aproximación, ya que una parte de la energía luminosa radiada es absorbida o dispersada en mayor o menor medida por el polvo y gas existente en el medio interestelar).

Definamos ahora la magnitud absoluta \(M\) de un objeto como la magnitud relativa que tendría dicho objeto si se encontrara a una distancia de 10 parsec (10 pc).

Partiendo de las fórmulas anteriores, vamos a deducir una expresión para obtener la diferencia \(m-M\) entre la magnitud aparente y la magnitud absoluta de un objeto. Representemos por \(F\) el flujo radiante que realmente medimos, y por \(F_{10}\) el flujo radiante que mediríamos si el objeto se encontrara a 10 pc de nosotros.

Que suele escribirse como:

\[ \boxed{ m-M = 5 \: log_{10} \left( \frac{d}{10} \right) } \]

Donde la distancia \(d\) vendrá expresada en parsec.

Esta sencilla expresión permite en principio calcular la magnitud absoluta a partir de la magnitud aparente, o a la inversa, pero la distancia que nos separa del objeto forma como es natural parte de la ecuación. De hecho, si conocemos el valor de \(m-M\) nos será posible conocer también la distancia d. Por ello, la magnitud \(m-M\) puede ser vista como una forma de expresar la distancia que nos separa del astro en una escala logarítmica, y por esta razón se la conoce como módulo de distancia

Ejemplo: la estrella Vega se encuentra a una distancia de 8.1 pc. ¿Cual es su magnitud absoluta y módulo de distancia?

In [3]:
m = 0 # Vega es la referencia para la magnitud aparente 0

M = -5 * np.log10(8.1 / 10)
print "M(Vega) = %.2f" %M
print u"módulo de distancia de Vega: %.2f" %(0 - M)
M(Vega) = 0.46
módulo de distancia de Vega: -0.46

Magnitudes aparentes en un sistema de filtros de color

En la práctica, la magnitud aparente de un objeto se puede medir considerando la radiación recibida en todas las longitudes de onda, en cuyo caso recibe el nombre de magnitud bolométrica, o bien, haciendo pasar la luz por filtros de diferentes colores. Un sistema de filtros utilizado de forma habitual para este fin recibe el nombre de sistema fotométrico UBV, o sistema fotométrico de Johnson, el cual está formado por tres filtros con las siguientes características:

\[ \begin{array}{|l|c|c|} \text{Filtro} & \lambda \: \text{(Angstroms)} & \Delta \lambda \: \text{(Ancho de banda)}\\\\ \hline \\\\ \text{Ultraviolet (u)} & 3650 & 680 \\\\ \text{Blue (b)} & 4400 & 980 \\\\ \text{Visible (v)} & 5500 & 890 \\\\ \end{array} \]

El filtro u deja pasar la luz en la región del ultravioleta, el filtro b en la región del azul, y el filtro v en la región del color verde.

Las magnitudes aparentes medidas con estos filtros se representan mediante las iniciales \(U, B, V\) (adviertase que, aun tratandose de magnitudes aparentes, en este caso se emplean letras mayúsculas).

Índices de color

La magnitud aparente de un cuerpo, tomada aisladamente no es un buen indicador de las propiedades de dicho objeto. Imaginemos que queremos averiguar algo sobre el color de la luz emitida por una estrella y, haciendola pasar por un filtro azul medimos una magnitud aparente debil (es decir, un valor de m elevado). No podremos saber si esto es debido a que la estrella radia poca energía en ese rango de longitudes de onda o bien simplemente se trata de una estrella muy lejana. En definitiva, para saber el color de una estrella debemos comparar su magnitud aparente medida a través de al menos dos filtros.

Por este motivo se definen los índices de color, como la diferencia entre dos magnitudes aparentes con dos filtros diferentes. Así por ejemplo, en el sistema fotométrico UBV tendremos dos índices de color:

  • Índice de color \(U-B\) : Diferencia entre las magnitudes aparentes ultravioleta y azul
  • Índice de color \(B-V\) : Diferencia entre las magnitudes aparentes azul y visible

Téngase en cuenta que, de acuerdo con la definición anterior de módulo de distancia, la relación entre magnitudes aparentes y magnitudes absolutas sse puede escribir como:

\[ m = M + \mu \]

Siendo \(\mu\) el módulo de distancia del objeto. Por lo tanto:

índice de color = \(m_1 - m_2 = M_1 - M_2 \)

Es decir, ¡un índice de color es independiente de la distancia a la que se encuentre el objeto!

Relación entre índice de color y temperatura

Una razón por la que los índices de color de los objetos astronómicos tienen tanta importancia es por su estrecha relación con la temperatura superficial del objeto. Las estrellas radian siguiendo un espectro que en una primera aproximación se aproxima al espectro de radiación de un cuerpo negro, el cual depende exclusivamente de la temperatura. En un anterior post se mostraba como utilizar la función de Plank para calcular la radiación que en cada longitud de onda y para una temperatura dada emite un cuerpo negro. Vamos a volver a utilizar esta función:

In [4]:
def B(wl,T):
    '''wl es un array de longitudes de onda con unidades de longitud
    T es una temperatura expresada en Kelvin
    el resultado es un array de valores de la radiancia espectral
    con unidades W/(m**2 * nm * sr)
    '''
    I = 2 * pq.constants.h * (pq.c)**2 / wl**5 *  \
        1 / (np.exp((pq.constants.h*pq.c \
        / (wl*pq.constants.k*T)).simplified)-1)
    return I.rescale(pq.watt/(pq.m**2 * pq.nm *pq.sr))

Me propongo ahora mostrar, suponiendo que las estrellas fueran cuerpos negros perfectos, cual sería la variación del índice de color en función de la temperatura. Para ello voy a seguir la aproximación al cálculo de los índices de color a partir de la función de Plank que se expone en el libro An Introduction to Modern Astrophysics de Bradley W. Carroll y Dale A. Ostlie, sección 3.6. Consiste en utilizar las aproximaciones siguientes:

\[ U-B = -2.5 \: log_{10} \left( \frac{B(\lambda_u, T) \: \Delta \lambda_u}{B(\lambda_b, T) \: \Delta \lambda_b} \right) + C_{U-B} \]

\[ B-V = -2.5 \: log_{10} \left( \frac{B(\lambda_b, T) \: \Delta \lambda_b}{B(\lambda_v, T) \: \Delta \lambda_v} \right) + C_{B-V} \]

Es decir, en la expresión ya vista anteriormente entre magnitudes y flujos radiantes, se trata de sustituir cada flujo radiante por el producto de la radiancia espectral dada por la función de Plank para la longitud de onda central de cada filtro, multiplicado por el ancho de banda efectivo de dicho filtro, y sumando una constante de ajuste.

Las constantes de ajuste \(C_{U-B}\) y \(C_{B-V}\) se van a determinar utilizando unos ciertos valores de \(T\) y de los índices de color que se utilizan para calibrar los filtros. En este artículo de la wikipedia se incluye una tabla con estos valores. Vamos a utilizar en particular que para una temperatura \(T = 42000K\) debemos obtener valores de los índices de color U-B = -1.19, B-V = -0.33

In [5]:
# Definición de las constantes del sistema fotométrico UBV

lambda_u = 365 * pq.nm
delta_u = 68 * pq.nm
lambda_b = 440 * pq.nm
delta_b = 98 * pq.nm
lambda_v = 550 * pq.nm
delta_v = 89 * pq.nm
In [6]:
# Cálculo de Cu-b

T = 42000*pq.kelvin
F = B(lambda_u, T) * delta_u/(B(lambda_b, T)* delta_b)
Cub = -1.19 + 2.5 * np.log10(F)
print Cub
-0.874317278235 dimensionless

In [7]:
# Cálculo de Cb-v

F = B(lambda_b, T) * delta_b/(B(lambda_v, T)* delta_v)
Cbv = -0.33 + 2.5 * np.log10(F)
print Cbv
0.649368425063 dimensionless

Habiendo determinado las constantes en la fórmula que aproxima los índices de color a partir de la temperatura para un cuerpo negro, podemos definir sendas funciones que nos permitirán calcular dichos índices de color para diferentes temperaturas.

In [8]:
def get_UB(T):
    F = B(lambda_u, T) * delta_u/(B(lambda_b, T)* delta_b)
    return -2.5 * np.log10(F) + Cub

def get_BV(T):
    F = B(lambda_b, T) * delta_b/(B(lambda_v, T)* delta_v)
    return -2.5 * np.log10(F) + Cbv

Y finalmente vamos a representar en un gráfico la curva que relaciona la temperatura superficial del objeto con su índice de color, suponiendo, tengamoslo siempre presente, que dicho objeto fuera un cuerpo negro perfecto. Para los objetos astronómicos reales esta curva será solo una aproximación que nos permitirá una primera estimaciión de su temperatura superficial en función del índice de color.

Precisamente, para ilustrar este último hecho, representaré en el mismo gráfico tres estrellas representativas, con datos de sus temperaturas efectivas superficiales e índice de color

In [9]:
temp = np.arange(2500, 30000, 100)*pq.Kelvin
BmenosV = get_BV(temp)

fig, ax = plt.subplots(figsize=(10, 8))
ax.plot(BmenosV, temp, lw =2)
ax.grid()
ax.set_title(u"Relación Índice de color - Temperatura \n \
     para un cuerpo negro")
ax.title.set_fontsize(18)
ax.set_xlabel(u"Índice de color B-V")
ax.xaxis.label.set_fontsize(15)
ax.set_ylabel("Temperatura superficial en K")
ax.yaxis.label.set_fontsize(15)

# Dibuja tres estrellas representativas

T = np.array([3300, 5800, 22000])*pq.kelvin
BV = [1.85, 0.656, -0.21]
             
ax.scatter(BV[0],T[0], s=600, c='r', marker='*')
ax.scatter(BV[1],T[1], s=600, c='y', marker='*')
ax.scatter(BV[2],T[2], s=600, c='b', marker='*')

# Anotamos los nombres de las tres estrellas

ax.annotate("Betelgeuse", xy=(BV[0],T[0]+1000*pq.kelvin), size=14)
ax.annotate("Sol", xy=(BV[1],T[1]+1000*pq.kelvin), size=14)
ax.annotate("Bellatrix", xy=(BV[2],T[2]+1000*pq.kelvin), size=14);

En la figura anterior se observa que la curva teórica anterior puede proporcionar en muchos casos una aproximación razonable para obtener las temperaturas efectivas superficiales de las estrellas a partir de su índice de color.

Diagramas color-color

Otro tipo de diagramas que se emplean a menudo son los diagramas color-color en los que se representa en cada eje un índice de color diferente, por ejemplo: U-B sobre B-V. El hecho es que la mayoría de las estrellas se ubican en un gráfico color-color a lo largo de una banda bien definida conocida como "locus estelar" Estos diagramas son útiles para por ejemplo detectar objetos atípicos que en un diagrama color-color se situan fuera del locus

En otras entradas mas adelante generaremos diagramas color-color con datos reales, pero en este momento vamos a preguntarnos que aspecto tendría el diagrama color-color de un cuerpo negro ideal. La respuesta es, como vamos a ver, que se trataría de ¡una línea recta!. El locus estelar de los diagramas "color-color" de objetos reales se situará en alguna medida alrededor de esta recta.

Otra conclusión que podremos extraer del siguiente gráfico es que los objetos más calientes se situan en la esquina inferior izquierda del gráfico, y los más frios en el extremo opuesto.

In [10]:
fig, ax = plt.subplots(figsize=(10, 8))

temp = np.arange(2500,30000,100)*pq.kelvin
BmenosV = get_BV(temp)
UmenosB = get_UB(temp)

ax.scatter(BmenosV, UmenosB)
ax.grid()
ax.set_title(u'Gráfico color-color de los cuerpos negros')
ax.title.set_fontsize(20)
ax.set_xlabel('B-V')
ax.xaxis.label.set_fontsize(15)
ax.set_ylabel('U-B')
ax.yaxis.label.set_fontsize(15)

temp = np.array([3000, 4000, 5000, 7500, 10000, 20000, 30000])*pq.kelvin
BmenosV = get_BV(temp)
UmenosB = get_UB(temp)

ax.scatter(BmenosV, UmenosB, s=150., c='r')

for t in temp:
    ax.annotate("%d K" %t,xy=(get_BV(t)+0.1,get_UB(t)-0.05))

No hay comentarios:

Publicar un comentario