Astronomía

¿Cómo convertir coordenadas celestes con un radio, a coordenadas celestes máxima y mínima?

¿Cómo convertir coordenadas celestes con un radio, a coordenadas celestes máxima y mínima?

Estoy escribiendo un fragmento de código Python para convertir la ascensión recta y la declinación con un radio dado en ascensión y declinación rectas mínima y máxima. En primer lugar, no puedo entender por qué el mínimo y el máximo no siempre son solo las coordenadas dadas + - el radio, y en segundo lugar, cómo escribiría un fragmento de código para realizar esta conversión. Salud.


Si estuviera trabajando con un sistema de coordenadas rectangulares como se muestra en la figura siguiente (que tampoco tenía límites), entonces es correcto que la ascensión recta sería $ RA = RA_p pm d $ (puntos 1 y 3) y la declinación sería $ Dic = dic_p pm d $ (puntos 2 y 4) donde d es el radio del círculo.

El cielo es esférico, por lo que las líneas de RA no son una separación constante. (También tiene límites como la declinación menor que $ pm 90 $.) Por lo tanto, debe utilizar una ecuación para trigonometría esférica. El ángulo d entre dos puntos i y j es

$$ cos (d) = sin (Dec_i) sin (Dec_j) + cos (Dec_i) cos (Dec_j) cos (RA_i - RA_j) $$

Para los puntos 1 y 3 del círculo, $ Dec_i = Dec_j = Dec_p $ en la ecuación anterior, y puede resolver la diferencia en ascensión recta $ RA_i - RA_j $ para ser sumado o restado de $ RA_p $. Para los puntos 2 y 4, $ RA_i = RA_j = RA_p $ y la ecuación anterior se simplifica a $ Dic = dic_p pm d $. Por supuesto, tenga en cuenta que la declinación está entre -90 y +90. Para cualquier otro punto del círculo, puede asumir un RA o Dec (dentro de los límites de los 4 puntos anteriores) y resolver el otro desconocido.


Imagina que estás a 80 grados norte y 0 grados este (en el primer meridiano).

Hay solo 10 grados de latitud desde usted hasta el polo norte.

Observe que la distancia entre usted y el meridiano 45 (que se muestra en verde) es de aproximadamente 7 grados de latitud ($ sin { pi / 4} cdot 10 $) porque si caminara hasta el punto más cercano en el meridiano 45, el polo norte estaría directamente a su izquierda y los tres puntos 1) el punto más cercano en el meridiano 45, 2) el polo norte, y 3) 80 grados norte en el primer meridiano casi forma un triángulo isósceles 45-45-90.

Si dibuja un círculo alrededor de la posición (80 norte, 0 este) con un radio de 7 grados de latitud, la latitud máxima sería 87, la latitud mínima sería 73, la longitud máxima sería aproximadamente 45 grados este y la longitud mínima sería de unos -45 grados (45 grados oeste).

Además, el punto en el meridiano 45 más cercano a su posición inicial (80N 0E) tendría una latitud de aproximadamente 83 grados, no 80 grados.

El ejemplo anterior ilustra que el espacio entre las líneas de longitud se acerca más a los polos.

En general, si está en el puesto ($ delta $ norte, $ alpha $ este) y dibuja un círculo a su alrededor con "radio" $ rho $, entonces la latitud / longitud mínima / máxima de los puntos encerrados sería $ delta- rho $, $ delta + rho $, $ alpha - gamma $, $ alpha + gamma $ dónde $$ gamma = mathrm {arcsin} left ( frac { sin rho} { cos delta} right). $$ (dónde $ rho $ es el ángulo entre usted y el borde del círculo visto desde el centro de la Tierra). Darse cuenta de

  • Si $ delta = 0 $, luego $ gamma = rho $,
  • $ gamma geq rho $,
  • Si $ pi / 2- | delta | = rho $, luego $ sin rho = cos delta $ y $ gamma = mathrm {arcsin} (1) = pi / 2 $, y
  • Si $ pi / 2- | delta | < rho $, entonces no hay solución para $ gamma $ porque un polo está encerrado por el círculo.

La fórmula se puede derivar de los productos escalares entre su vector de posición y el vector perpendicular al meridiano extremo. Necesito hacer mucha visualización y corregir varios comienzos en falso para hacerlo bien.

Para el ejemplo original de un círculo alrededor de 80N 0E con un radio de 7 grados, la fórmula da como resultado $$ gamma = mathrm {arcsin} ( sin (7 pi / 180) / cos (80 pi / 180)) cdot180 / pi = 44.573 mathrm { grados} $$ que está cerca de los 45 grados estimados.


Mapas celestiales

Mientras recorríamos la Isla Sur de Nueva Zelanda con amigos en enero de 2019, una de nuestras paradas fue el Observatorio Mt John de la Universidad de Canterbury. Dado que esta área es una reserva de cielo oscuro, con una noche clara y una luna nueva, el cielo de medianoche se iluminó con estrellas y la vía láctea.

Inspirado por nuestro entusiasta guía astrofísico, Daniel, pensé que sería relativamente fácil replicar la carta del cielo nocturno en R y, posteriormente, busqué paquetes R.

Mis búsquedas iniciales ("trazar las rstats del cielo nocturno") no arrojaron resultados obvios, así que me di cuenta de que tenía que aprender algo de terminología astronómica.

es una esfera imaginaria de radio arbitrariamente grande, concéntrica con el observador. Todos los objetos en el cielo del observador pueden considerarse proyectados sobre la superficie interior de la esfera celeste, como si fuera la parte inferior de una cúpula o una pantalla hemisférica.

Este concepto permite visualizar objetos sin información de distancias reales, pero los objetos parecen estar en la esfera donde el observador parece estar todavía en el centro.

Así que en el monte John éramos observadores mirando el cielo nocturno donde la Tierra

está en el centro de la esfera celeste, una superficie imaginaria en la que parecen estar impresos los planetas, las estrellas y las nebulosas. En la esfera celeste, las líneas de ascensión y declinación rectas son similares a las líneas de longitud y latitud de la Tierra.

Similar pero diferente. La declinación también está en grados, pero la ascensión recta es sin embargo una medida de tiempo en horas.

Luego cambié mi búsqueda a "mapa celestial" y encontré un mapa celestial con D3.js. Este sitio web tiene algunas demostraciones geniales y conjuntos de datos GeoJSON donde

Para GeoJSON, todas las coordenadas deben darse en grados, la longitud como [-180… 180] grados, la latitud como [-90… 90] grados.

Uf. En este punto me di cuenta de que podía permanecer en el nivel de astronomía = curiosidad y no tener que estudiar el espacio-tiempo para producir un mapa.

Decidí intentar crear mapas celestes en R usando el paquete sf R, ya que este paquete puede leer y trazar datos espaciales con el ggplot.


2. Configurar coordenadas de astrometría¶

Por el encabezado, sabemos que los ejes xey están en centímetros. Sin embargo, en una observación usualmente tenemos RA y Dec. Para convertir unidades físicas en coordenadas del cielo, necesitaremos hacer algunas suposiciones acerca de dónde está ubicado el objeto, es decir, la distancia al objeto y el RA central y Dec.

Aquí convertimos la escala de píxeles de cm a grados dividiendo la distancia al objeto.

Utilice astropy.wcs.WCS para preparar un encabezado FITS.

Ahora podemos convertir la coordenada WCS en un encabezado y actualizar el hdu.

Echemos un vistazo al encabezado. CDELT1, CDELT2, CUNIT1, CUNIT2, CRVAL1 y CRVAL2 ahora están en coordenadas del cielo.

¡Ahora tenemos las coordenadas del cielo para la imagen!


¿Cómo convertir coordenadas celestes con un radio, a coordenadas celestes máxima y mínima? - Astronomía

La clase WCS gestiona las coordenadas mundiales de los ejes espaciales de las imágenes MPDAF, utilizando el paquete pywcs.

Tenga en cuenta que las imágenes MPDAF se almacenan en matrices de Python que están indexadas en el orden del eje [y, x]. En general, los ejes de estas matrices no se encuentran a lo largo de ejes celestes como la ascensión recta y la declinación. Son ejes cartesianos de una proyección de mapa plano del cielo alrededor del centro de observación, y pueden rotarse alejándose de los ejes celestes. Cuando su ángulo de rotación es cero, el eje Y es paralelo al eje de declinación. Sin embargo, el eje X está solo a lo largo del eje de ascensión recta para observaciones en declinación cero.

Los píxeles de las imágenes MPDAF generalmente no son cuadrados en el cielo. Para escalar los desplazamientos de índice en la imagen a distancias angulares en la proyección del mapa, los desplazamientos de índice del eje Y y del eje X se deben escalar con números diferentes. Estos números se pueden obtener llamando al método get_axis_increments (), que devuelve el incremento angular por incremento de píxel a lo largo de los ejes Y y X de la matriz. El incremento del eje Y es siempre positivo, pero el incremento del eje X es negativo si el este está en sentido contrario a las agujas del reloj del norte cuando los píxeles del eje X se trazan de izquierda a derecha.

El ángulo de rotación de la proyección del mapa, en relación con el cielo, se puede obtener llamando al método get_rot (). Esto devuelve el ángulo entre el norte celeste y el eje Y de la imagen, en el sentido de una rotación hacia el este del norte celeste desde el eje Y.

Cuando las coordenadas linealizadas de la proyección del mapa son insuficientes, se pueden consultar las coordenadas celestes de uno o más píxeles llamando al método pix2sky (), que devuelve coordenadas en el orden del eje [dec, ​​ra]. En la otra dirección, los índices [y, x] del píxel de una determinada coordenada celeste se pueden obtener llamando al método sky2pix ().

Parámetros hdr astropy.fits.CardList

Un encabezado FITS. Si el parámetro hdr no es Ninguno, el objeto WCS se crea a partir del encabezado de datos y los parámetros restantes se ignoran.

crpix flotar o (flotar, flotar)

Los índices de la matriz FITS del píxel de referencia de la imagen, dados en el orden (y, x). Tenga en cuenta que el primer píxel de la imagen FITS es [1,1], mientras que en la matriz de imágenes de Python es [0,0]. Por lo tanto, colocar el píxel de referencia en [ry, rx] en la matriz de imágenes de Python requeriría crpix = (ry + 1, rx + 1).

Si tanto crpix como shape son None, entonces crpix recibe el valor (1.0,1.0) y la posición de referencia está en el índice [0,0] en la matriz de python de la imagen.

Si crpix es None y shape no es None, entonces crpix se establece en (shape + 1.0) /2.0, lo que coloca el punto de referencia en el centro de la imagen.

crval flotar o (flotar, flotar)

Las coordenadas celestes del píxel de referencia (ref_dec, ref_ra). Si no se proporciona este parámetro, se sustituye (0.0,0.0).

cdelt flotar o (flotar, flotar)

Si los parámetros hdr y cd son Ninguno, este argumento se puede utilizar para especificar los incrementos de píxeles a lo largo de los ejes Y y X de la imagen, respectivamente. Si no se proporciona este parámetro, se sustituye (1.0,1.0). Tenga en cuenta que es convencional que cdelt [1] sea negativo, de modo que el este se traza hacia la izquierda cuando el ángulo de rotación de la imagen es cero.

Si es True, entonces cdelt y crval están en grados decimales (CTYPE1 = ’RA — TAN’, CTYPE2 = ’DEC – TAN’, CUNIT1 = CUNIT2 = ’deg’). Si es False (el valor predeterminado), las coordenadas celestes son lineales (CTYPE1 = CTYPE2 = "LINEAR").

Si los parámetros hdr y cd son Ninguno, este argumento se puede usar para especificar un valor para el ángulo de rotación de la imagen. Este es el ángulo entre el norte celeste y el eje Y de la imagen, en el sentido de una rotación hacia el este del norte celeste desde el eje Y.

Junto con el parámetro cdelt, el parámetro rot se utiliza para construir una matriz de rotación FITS CD. Esto se hace como se describe en la ecuación 189 de Calabretta, M. R. y Greisen, E. W, Astronomy & amp Astrophysics, 395, 1077-1122, 2002, donde sirve como valor del término CROTA.

forma entero o (entero, entero)

Las dimensiones de los ejes de la imagen (opcional). Las dimensiones se dan en orden python (ny, nx).

Este parámetro se puede utilizar opcionalmente para especificar la matriz de rotación FITS CD. De forma predeterminada, este parámetro es Ninguno. Sin embargo, si se proporciona una matriz y hdr es None, entonces se usa en lugar de cdelt y rot, que luego se ignoran. La matriz debe ordenarse como

cd = numpy.array ([[CD1_1, CD1_2],

[CD2_1, CD2_2]]),

donde CDj_i son los nombres de las palabras clave correspondientes de FITS.

Atributos WC astropy.wcs.WCS

El objeto subyacente que realiza la mayoría de las conversiones de coordenadas del mundo.

Devuelve la unidad angular predeterminada utilizada para las coordenadas del cielo.

coord ([espaxel, relativo, centro, polar,…])

Devuelve la matriz de coordenadas completa de la imagen

Devuelve una copia de un objeto WCS.

Devuelve los desplazamientos en el cielo que resultan de incrementar los índices de matriz de la imagen en uno a lo largo de los ejes Y y X, respectivamente.

Devuelve la matriz de conversión de coordenadas (CD).

Devuelve el centro (dec, ra) de la matriz de imágenes.

Devuelve el valor del parámetro FITS CRPIX1.

Devuelve el valor del parámetro FITS CRPIX2.

Devuelve el valor del parámetro FITS CRVAL1.

Devuelve el valor del parámetro FITS CRVAL2.

Devuelve las coordenadas [dec, ​​ra] del píxel (-1, -1).

Devuelve las declinaciones y ascensiones rectas mínimas y máximas en la matriz de imágenes.

Devuelve el ángulo de rotación de la imagen.

Devuelve las coordenadas [dec, ​​ra] del píxel (0,0).

Devuelve la altura angular y el ancho de un píxel a lo largo de los ejes Y y X de la matriz de imágenes.

Imprime información sobre un objeto WCS.

isEqual (otro [, start_atol, rot_atol])

Devuelve Verdadero si el otro y el yo tienen los mismos atributos.

Devuelve Verdadero si las coordenadas mundiales están en grados decimales.

Convierta los índices de píxeles de la imagen (y, x) en coordenadas mundiales (dec, ra).

Rebin a un nuevo sistema de coordenadas.

Gire las coordenadas WCS a la nueva orientación dada por theta.

Devuelve True si otro y yo tienen los mismos tamaños de píxeles.

Establezca los desplazamientos en el cielo que resultan de incrementar los índices de matriz de la imagen en uno a lo largo de los ejes Y y X, respectivamente.

Instale una nueva matriz de transformación de coordenadas.

Establezca el valor del parámetro FITS CRPIX1.

Establezca el valor del parámetro FITS CRPIX2.

Establezca el valor de la palabra clave CRVAL1.

Establezca el valor de la palabra clave CRVAL2.

Establece la altura y el ancho de los píxeles en el cielo.

Convierta las coordenadas mundiales (dec, ra) en índices de píxeles de imagen (y, x).

Genere un objeto de encabezado astropy.fits con información de WCS e información de longitud de onda.

Genere un objeto de encabezado astropy.fits que contenga la información de WCS.

Devuelve la unidad angular predeterminada utilizada para las coordenadas del cielo.

Devoluciones fuera astropy.units.Unit

La unidad que se utilizará para los ángulos coordenados.

coord ( spaxel = Falso , relativo = Falso , centro = Ninguno , polar = Falso , unidad = Ninguno , reshape = Falso , mask = Ninguno ) [fuente] ¶

Devuelve la matriz de coordenadas completa de la imagen

Parámetros unidad astropy.units.Unit

Unidad de las coordenadas espaciales si Ninguna devuelve píxeles

Si es verdadero, las coordenadas se dan en relación con el centro.

uso de coordenadas centrales para el modo relativo y radial si no hay ninguno, el centro de la imagen que se usa debe expresarse en unidades

si es verdadero, devuelve la coordenada polar (r, theta)

Las unidades de las coordenadas mundiales

máscara Matriz 2D de bool

Si no es None, devuelva solo spaxels no enmascarados

si es True, devuelve dos matrices 1D, si es False, devuelve dos matrices 2D (meshgrid)

Devoluciones fuera matriz de matriz de flotador

matriz de [dec, ​​ra], [p, q], [delta_dec, delta_ra], [delta_p, delta_q], [r, theta]

Devuelve una copia de un objeto WCS.

get_axis_increments ( unidad = Ninguno ) [fuente] ¶

Devuelve los desplazamientos en el cielo que resultan de incrementar los índices de matriz de la imagen en uno a lo largo de los ejes Y y X, respectivamente.

En MPDAF, las imágenes se muestrean en una cuadrícula regular de píxeles cuadrados que representan una proyección plana de la esfera celeste. El método get_axis_increments () devuelve el ancho y la altura angulares de estos píxeles en el cielo, con signos que indican si el ángulo aumenta o disminuye a medida que se incrementan los índices de la matriz. Para mantener la coherencia de los gráficos, independientemente del ángulo de rotación de la imagen en el cielo, la altura devuelta es siempre positiva, pero el ancho devuelto es negativo si un gráfico de la imagen con el píxel 0,0 en la parte inferior izquierda colocaría al este en sentido antihorario de norte, y positivo en caso contrario.

Parámetros unidad astropy.units.Unit

Las unidades angulares de los valores devueltos.

Devoluciones fuera numpy.ndarray

(dy, dx). Estos son los incrementos angulares de píxeles a lo largo de los ejes Y y X de la imagen. Los valores devueltos están en la unidad especificada por el parámetro de entrada "unidad" o en la unidad especificada por la propiedad self.unit.

Devuelve la matriz de conversión de coordenadas (CD).

Esta es una matriz de 2x2 que se puede usar para convertir de los índices de columna y fila de un píxel en la matriz de imágenes a una coordenada dentro de una proyección de mapa plana de la esfera celeste. Por ejemplo, si las coordenadas celestes de la observación son ascensión recta y declinación, y ryd denotan su proyección TAN gnonómica en un plano plano, entonces un píxel en la fila y columna [col, fila] tiene coordenadas [r, d] dada por:

Una matriz 2D que contiene la matriz de transformación de coordenadas, organizada de tal manera que los elementos descritos en el estándar FITS están organizados de la siguiente manera:

Devuelve el centro (dec, ra) de la matriz de imágenes.

Parámetros unidad astropy.units.Unit

Las unidades de los ángulos devueltos.

Devoluciones centrar numpy.ndarray

El centro, organizado como [dec, ​​ra]. Los valores devueltos están en las unidades especificadas en el parámetro de entrada "unidad" o en las unidades almacenadas en la propiedad self.unit.

Devuelve el valor del parámetro FITS CRPIX1.

CRPIX1 contiene el índice de la posición de referencia de la imagen a lo largo del eje X de la imagen. Tenga en cuenta que este es un índice de matriz FITS, que es 1 mayor que el índice de matriz de Python correspondiente. Por ejemplo, un valor de crpix de 1 denota un índice de matriz de Python de 0. El índice de píxel de referencia es un valor de punto flotante que puede indicar una posición entre dos píxeles. También puede indicar un índice que está fuera de los límites de la matriz.

Devoluciones fuera flotador

El valor del parámetro FITS CRPIX1.

Devuelve el valor del parámetro FITS CRPIX2.

CRPIX2 contiene el índice de la posición de referencia de la imagen a lo largo del eje Y de la imagen. Tenga en cuenta que este es un índice de matriz FITS, que es 1 mayor que el índice de matriz de Python correspondiente. Por ejemplo, un valor de crpix de 1 denota un índice de matriz de Python de 0. El índice de píxel de referencia es un valor de punto flotante que puede indicar una posición entre dos píxeles. También puede indicar un índice que está fuera de los límites de la matriz.

Devoluciones fuera flotador

El valor del parámetro FITS CRPIX2.

Devuelve el valor del parámetro FITS CRVAL1.

CRVAL1 contiene el valor de referencia de coordenadas del primer eje de la imagen (p. Ej., Ascensión recta).

Parámetros unidad astropy.units.Unit

Las unidades angulares para dar el valor de retorno.

Devoluciones fuera flotador

El valor de CRVAL1 en las unidades angulares especificadas. Si no se dan las unidades, se utiliza la unidad de la propiedad self.unit.

Devuelve el valor del parámetro FITS CRVAL2.

CRVAL2 contiene el valor de referencia de coordenadas del segundo eje de la imagen (por ejemplo, declinación).

Parámetros unidad astropy.units.Unit

Las unidades angulares para dar el valor de retorno.

Devoluciones fuera flotador

El valor de CRVAL2 en las unidades angulares especificadas. Si no se dan las unidades, se utiliza la unidad de la propiedad self.unit.

Devuelve las coordenadas [dec, ​​ra] del píxel (-1, -1).

Parámetros unidad astropy.units.Unit

Las unidades angulares de las coordenadas devueltas.

Devoluciones fuera numpy.ndarray

La coordenada ecuatorial del píxel [-1, -1], ordenada como, [dec, ​​ra]. Si se le dio un valor al argumento "unidad" opcional, la unidad angular especificada allí se utilizará para el valor de retorno. De lo contrario, se utilizará la unidad almacenada en la propiedad self.unit.

Devuelve las declinaciones y ascensiones rectas mínimas y máximas en la matriz de imágenes.

Específicamente, se devuelve una lista con el siguiente contenido:

Tenga en cuenta que si el eje Y de la imagen no es paralelo al eje de declinación, los 4 valores devueltos vendrán todos de diferentes esquinas de la imagen. En particular, tenga en cuenta que esto significa que las coordenadas [dec_min, ra_min] y [dec_max, ra_max] solo coincidirán con los píxeles de la imagen si el eje Y está alineado con el eje de declinación. De lo contrario, estarán fuera de los límites de la imagen.

Parámetros unidad astropy.units.Unit

Las unidades de los ángulos devueltos.

Devoluciones fuera numpy.ndarray

El rango de ascensiones y declinaciones rectas, organizado como [dec_min, ra_min, dec_max, ra_max]. Los valores devueltos están en las unidades especificadas en el parámetro de entrada "unidad" o en las unidades almacenadas en la propiedad self.unit.

Devuelve el ángulo de rotación de la imagen.

El ángulo se define de manera que un ángulo de rotación de cero se alinea hacia el norte a lo largo del eje Y positivo, y un ángulo de rotación positivo gira hacia el norte alejándose del eje Y, en el sentido de una rotación de norte a este.

Tenga en cuenta que el ángulo de rotación se define en una proyección de mapa plana del cielo. Es lo que se vería si los píxeles de la imagen se dibujaran con sus anchos de píxeles escalados por los incrementos de píxeles angulares devueltos por el método get_axis_increments ().

Parámetros unidad astropy.units.Unit

La unidad para dar el ángulo devuelto (grados por defecto).

Devoluciones fuera flotador

El ángulo entre el norte celeste y el eje Y de la imagen, en el sentido de una rotación hacia el este del norte celeste desde el eje Y.

Devuelve las coordenadas [dec, ​​ra] del píxel (0,0).

Parámetros unidad astropy.units.Unit

Las unidades angulares de las coordenadas devueltas.

Devoluciones fuera numpy.ndarray

La coordenada ecuatorial del píxel [0,0], ordenada como: [dec, ​​ra]. Si se le dio un valor al argumento "unidad" opcional, la unidad angular especificada allí se utilizará para el valor de retorno. De lo contrario, se utilizará la unidad almacenada en la propiedad self.unit.

Devuelve la altura angular y el ancho de un píxel a lo largo de los ejes Y y X de la matriz de imágenes.

En MPDAF, las imágenes se muestrean en una cuadrícula regular de píxeles cuadrados que representan una proyección plana de la esfera celeste. El método get_step () devuelve el ancho y la altura angulares de estos píxeles en el cielo.

Consulte también get_axis_increments ().

Parámetros unidad astropy.units.Unit

Las unidades angulares de los valores devueltos.

Devoluciones fuera numpy.ndarray

(dy, dx). Estos son la altura angular y el ancho de los píxeles a lo largo de los ejes Y y X de la imagen. Los valores devueltos están en la unidad especificada por el parámetro de entrada "unidad" o en la unidad especificada por la propiedad self.unit.

Imprime información sobre un objeto WCS.

es igual ( otro , start_atol = 1e-06 , rot_atol = 1e-06 ) [fuente] ¶

Devuelve Verdadero si el otro y el yo tienen los mismos atributos.

Tenga en cuenta que si los dos objetos wcs tienen las mismas características de coordenadas mundiales, pero provienen de imágenes de diferentes dimensiones, los objetos se considerarán diferentes.

Parámetros otro WCS

El objeto wcs que se va a comparar con self.

Tolerancia absoluta para la prueba con WCS.get_start, en grados.

Tolerancia absoluta para la prueba con WCS.get_rot, en grados.

Devoluciones fuera bool

Verdadero si los dos objetos WCS tienen los mismos atributos.

Devuelve Verdadero si las coordenadas mundiales están en grados decimales.

Convierta los índices de píxeles de la imagen (y, x) en coordenadas mundiales (dec, ra).

Parámetros X formación

Una matriz (n, 2) de índices de píxeles de imagen. Estos deben ser índices de matriz de Python, ordenados como (y, x) y con 0,0 denotando el píxel inferior izquierdo de la imagen.

Las unidades de las coordenadas mundiales.

Devoluciones fuera (n, 2) matriz de coordenadas mundiales dec y ra. rebin factor ) [fuente] ¶

Rebin a un nuevo sistema de coordenadas.

Esta es una función auxiliar para los métodos Image y Cube rebin ().

Parámetros factor (entero, entero)

Devoluciones fuera WCS rotar ( theta ) [fuente] ¶

Gire las coordenadas WCS a la nueva orientación dada por theta.

Análogo a astropy.wcs.WCS.rotateCD, que está obsoleto desde la versión 1.3 (consulte https://github.com/astropy/astropy/issues/5175).

Parámetros theta flotador

Devuelve True si otro y yo tienen los mismos tamaños de píxeles.

Parámetros otro WCS

El objeto wcs se compara con uno mismo.

Devoluciones fuera bool

Verdadero si las dos matrices de incrementos de pasos del eje son iguales.

set_axis_increments ( incrementos , unidad = Ninguno ) [fuente] ¶

Establezca los desplazamientos en el cielo que resultan de incrementar los índices de matriz de la imagen en uno a lo largo de los ejes Y y X, respectivamente.

En MPDAF, las imágenes se muestrean en una cuadrícula regular de píxeles cuadrados que representan una proyección plana de la esfera celeste. El método set_axis_increments () cambia el ancho y la altura angular de estos píxeles en el cielo, con signos que indican si el ángulo aumenta o disminuye a medida que se incrementan los índices de la matriz. Para mantener la coherencia de los gráficos, independientemente del ángulo de rotación de la imagen en el cielo, la altura siempre debe ser positiva y el ancho debe ser negativo si un gráfico de la imagen con el píxel 0,0 en la parte inferior izquierda se colocaría al este en sentido contrario a las agujas del reloj de norte, y positivo en caso contrario.

Parámetros incrementos numpy.ndarray

(dy, dx). Estos son los incrementos angulares deseados de píxeles a lo largo de los ejes Y y X de la imagen. Estos deben estar en la unidad especificada por el parámetro de entrada "unidad" o, si unidad = Ninguno, en la unidad especificada por la propiedad self.unit.

Las unidades angulares de los incrementos especificados.

Instale una nueva matriz de transformación de coordenadas.

Esta es una matriz de 2x2 que se utiliza para convertir de los índices de fila y columna de un píxel en la matriz de imágenes a una coordenada dentro de una proyección de mapa plana de la esfera celeste. Anteriormente se describía en el estándar FITS. La matriz debe ordenarse como:

donde CDj_i son los nombres de las palabras clave correspondientes de FITS.

Parámetros CD numpy.ndarray

La matriz de conversión de coordenadas 2x2, con sus elementos ordenados para multiplicar un vector de columna en el orden de los ejes FITS (x, y).

Establezca el valor del parámetro FITS CRPIX1.

Esto establece el índice de píxeles de referencia a lo largo del eje X de la imagen.

Este es un valor de punto flotante que puede indicar una posición entre píxeles. Se especifica con la convención de indexación FITS, donde el píxel 1 de FITS es equivalente al píxel 0 en las matrices de Python. En general, reste 1 de x para obtener el índice de píxeles de punto flotante correspondiente a lo largo del eje 1 de la matriz de imágenes. En los casos en que x es un número entero, la fila correspondiente en la matriz de datos de Python que contiene la imagen es data [:, x-1].

Parámetros X flotador

El índice del píxel de referencia a lo largo del eje X.

Establezca el valor del parámetro FITS CRPIX2.

Esto establece el índice de píxeles de referencia a lo largo del eje Y de la imagen.

Este es un valor de punto flotante que puede indicar una posición entre píxeles. Se especifica con la convención de indexación FITS, donde el píxel 1 de FITS es equivalente al píxel 0 en las matrices de Python. En general, reste 1 de y para obtener el índice de píxeles de punto flotante correspondiente a lo largo del eje 0 de la matriz de imágenes. En los casos en que y es un número entero, la columna correspondiente en la matriz de datos de Python que contiene la imagen es data [y-1,:].

Parámetros y flotador

El índice del píxel de referencia a lo largo del eje Y.

Establezca el valor de la palabra clave CRVAL1.

Indica el valor de referencia de las coordenadas a lo largo del primer eje de la imagen (por ejemplo, ascensión recta).

Parámetros X flotador

El valor del píxel de referencia en el primer eje.

Las unidades angulares de las coordenadas mundiales.

Establezca el valor de la palabra clave CRVAL2.

Indica el valor de referencia de las coordenadas a lo largo del segundo eje de la imagen (por ejemplo, declinación).

Parámetros X flotador

El valor del píxel de referencia en el segundo eje.

Las unidades angulares de las coordenadas mundiales.

Establece la altura y el ancho de los píxeles en el cielo.

En MPDAF, las imágenes se muestrean en una cuadrícula regular de píxeles cuadrados que representan una proyección plana de la esfera celeste. El método set_step () cambia el ancho y la altura angular de estos píxeles en el cielo.

Parámetros paso array_like

(alto, ancho). Estos son la altura angular deseada y el ancho de píxeles a lo largo de los ejes Y y X de la imagen. Estos deben estar en la unidad especificada por el parámetro de entrada "unidad" o, si unidad = Ninguno, en la unidad especificada por la propiedad self.unit.

Las unidades angulares de los incrementos especificados.

Convierta las coordenadas mundiales (dec, ra) en índices de píxeles de imagen (y, x).

Si el más cercano = Verdadero devuelve el píxel entero más cercano.

Parámetros X formación

Una matriz (n, 2) de coordenadas mundiales dec y ra.

Si el más cercano es Verdadero, devuelve el píxel entero más cercano en lugar del píxel decimal.

Las unidades de las coordenadas mundiales

Devoluciones fuera (n, 2) matriz de índices de píxeles de imagen. Estos son

índices de matriz de python, ordenados como (y, x) y con 0,0 denotando el píxel inferior izquierdo de la imagen.

Genere un objeto de encabezado astropy.fits con información de WCS e información de longitud de onda.

Genere un objeto de encabezado astropy.fits que contenga la información de WCS.

& # 169 Copyright 2010-2019, CRAL. Revisión 2c1b066c. Última actualización el 11 de mayo de 2021.


Ejemplos de

Ejemplo 1

Aquí la herramienta dmstat recibe solo aquellas filas del archivo evt2.fits que pasan el filtro, en este caso un círculo centrado en (4000,4000) y con un radio de 20 usando los valores de SKY. Dado que "cielo" es el nombre de una columna de vector en el archivo y se traduce como "(x, y)", el comando podría haberse escrito como

donde también hemos aprovechado el hecho de que el nombre de la región no tiene que estar completamente escrito.

Tenga en cuenta que el comportamiento predeterminado de los filtros de región es excluir todo el campo y luego comenzar a agregarle.

Ejemplo 2

La región utilizada para filtrar la imagen "img.fits" consiste en la imagen completa (como lo indica la forma "campo ()") con una región circular eliminada de ella. Dado que no se proporcionó un sistema de coordenadas en la expresión de filtro, se usa el sistema lógico, por lo que lo anterior es una forma corta de

Para utilizar otros sistemas de coordenadas para el filtro, incluya el nombre de los ejes en la expresión, por ejemplo

Ejemplo 3

Filtre el archivo en las columnas pha y pi con la región almacenada en el archivo ds9.reg. Aunque el par pha, pi no forma una columna vectorial, puede definir una columna emparejada como esta sobre la marcha siempre que sus tipos de datos sean los mismos.

Ejemplo 4

Aquí filtramos un archivo de eventos para que contenga solo eventos de ccd_id 7. El filtro region () se usa para asegurar que se registre un filtro espacial en el subespacio de datos, de modo que los filtros espaciales futuros reconozcan los bordes de este chip . Aquí fov1.fits es el campo de archivo proporcionado como parte de la distribución de datos de Chandra, este archivo también puede ser creado por la herramienta skfov si es necesario. Dado que estos archivos contienen varias regiones, una por chip, se utiliza un filtro ccd_id para seleccionar el chip correcto.

Ejemplo 5

Cree un espectro a partir de la segunda fuente en el archivo de región FITS (src.fits), agrupando la columna PI en un factor de 5.

Ejemplo 6

En este ejemplo más complejo, el sector solo se excluye del círculo. Los datos dentro del cuadro, que se superponen al sector excluido, todavía se incluyen en la expresión de filtro general. incluido

Problemas con las regiones CIAO

Hay varias sutilezas con las regiones CIAO que vale la pena señalar. Estos surgen particularmente cuando se utilizan archivos de región creados por lectores de imágenes como DS9.

Regiones de coordenadas celestes

Para que una herramienta CIAO utilice una región en coordenadas mundiales, p. Ej.

debe conocer el mapeo entre las coordenadas físicas y mundiales para el conjunto de datos en cuestión. No todas las herramientas CIAO tienen esta capacidad todavía. Si tiene problemas con las coordenadas celestes, intente utilizar una región en coordenadas de píxeles físicos en su lugar.

Los archivos de región DS9 guardados en coordenadas celestes en grados no se admiten actualmente en las coordenadas celestes CIAO solo se reconocen en formato sexagesimal.

Pilas de regiones frente a regiones con muchas formas

Es importante comprender la diferencia entre dos conceptos: REGION STACK y REGION FILE.

Un archivo de región define una sola "región" que puede tener varias formas. Por ejemplo, un archivo de región con

es una sola región que consta de dos círculos. La aplicación de un archivo de región a algunos datos le permite a CIAO decidir si los puntos están en la región, pero no se devuelve ningún conocimiento sobre cuál de las formas tiene un punto.

Una pila de regiones contiene varias regiones. CIAO determinará cada una de las regiones por separado. El uso más común de las pilas de regiones es en dmextract, donde la agrupación en una pila de regiones crea un histograma donde cada agrupación corresponde a una región.

para operar en una pila de regiones y hacer un histograma de conteos versus región. A diferencia de,

especifica una sola región (aunque complicada), que generará una única bandeja de salida.

Los usuarios pueden encontrar que los distintos tokens de grid () en la interfaz de la pila son útiles cuando necesitan realizar el mismo análisis en una grilla de regiones. Por ejemplo, usando "pgrid" podemos extraer los recuentos en diferentes cuadrantes de imagen como se muestra aquí:

Not every tool accepts stacks so users should check each tools help file to determine if it can accept this kind of syntax.

Includes and excludes

The CIAO syntax requires excluded regions to follow included regions. If you draw four circles on DS9, two includes and two excludes, and then save the region, the resulting file depends on the order the regions were drawn. If the order is -circle+circle-circle+circle, CIAO will not understand because of the leading -circle.

will have the inner 50-radius circle included, and the 50-250 radius annulus excluded, but

will include everything, as it's interpreted as "(R50 minus R250) OR R1000", and the R1000 includes everything. Therefore, you must be careful about order when generating region files in DS9.

Region areas (BACKSCAL)

For simple regions, the area can be calculated using analytical methods. For complicated regions where shapes overlap, or are close enough that it's not obvious they don't overlap, we must use a different method CIAO divides up the area into bins (which may be smaller than a single pixel) and counts the number of bins which pass the test 'am I inside the region?'. This approach using discrete bins has a finite error, which is usually of order one percent of the area.

Region areas are most commonly used in the BACKSCAL keyword added to PHA/PI spectral files generated by dmextract. The error in the area is almost always small compared to other calibration uncertainties.

Be particularly careful when making regions comparable in size to the pixel size. When applying such a region to a table which contains fractional pixel positions, filtering does occur in exactly the area specified, although the user should be careful about interpretation - for instance, the true radial profile of a source may be blurred by aspect, PSF and instrument pixelization. When applying the region to an image file, filtering will accept all the counts in a pixel if the pixel center is within the region, and none of them if the pixel center is outside the region therefore, the effective area sampled is not quite the same as the area calculated.

DS9 regions

CIAO understands most of the simple, atomic regions that DS9 can draw including circle, ellipse, point, box, polygons, and annulus. The regions that are purely for annotations such as text, line, vector, ruler, projection, and compass are simply ignored. Note: all 'point' shapes are treated the same when filtering (as a 2D delta-function).

CIAO cannot directly use some of the more exotic ds9 regions. This includes elliptical and box annuli, the panda shape, and format used for writing grids of annuli.

Users need to translate the ds9 regions into CIAO syntax, which while more verbose, is also more flexible. Below are the translations needed to go from ds9 region format to CIAO syntax.

Annulus

Where "in" refers to the inner radius and "out" specifies the outer radius. The simple, single annulus is supported in CIAO. If the annulus contain multiple annuli, ds9 will save the region in CIAO format with multiple single annuli.

The dmextract tool also recognizes a special "annulus" shape as part of the binning syntax which supports multiple annulii.

Elliptical Annulus

As above and where "major" and "minor" are the ellipse axes.

Box Annulus

Panda (pie and annulus)

ds9 will translate panda shapes into pie shape for a single set of radii and angles. For multiple annuli and/or multiple radii users need to use stacks (if applicable), see pgrid syntax

Elliptical Panda

Box Panda

Multiple regions

The shapes listed above may also contain multiple regions, ie multiple radii or multiple angles. The CIAO equivalent of these is the stack syntax. In particular, the "pgrid" (polar grid) and "rgrid" (rectangular grid) stack syntax can be used to make a grid of regions to input as a stack to those tools that support it.

See the region library bugs page on the CIAO website for an up-to-date listing of known bugs.


Finding coordinates of brightest pixel in an image and entering them into an array

I have been asked to write a program to find 'stars' in an image by converting the image file to a numpy array and generating an array of the coordinates of the brightest pixels in the image above a specified threshold (representing background interference). Once I have located the brightest pixel in the image I must record its x,y coordinates, and set the value of that pixel and surrounding 10X10 pixel area to zero, effectively removing the star from the image. I already have a helper code which converts the image to an array, and have attempted to tackle the problem as follows

I have defined a variable

however I want this to loop over the whole array for all of the coordinates,not just find the first maximum, and also remove each maximum when found and setting the surrounding 10X10 area to zero. I have thought about using a for loop to do this but am unsure how I should use it since I am new to Python.


How to convert celestial Coordinates with a radius, to max and min celestial coordinates? - Astronomía

Author’s word

These math lessons has been written especially to meet the requirements of higher grade students. I’ve tried my best to present the work in a clear, simple and easy style so that students may not face any difficulty. Each lesson has solved examples and practice problems with answers.

While adding new topics is an ongoing process, efforts has been made to put the concepts in a logical sequence. In spite of my best efforts to make these lessons error free, some typing errors might have gone unnoticed. I shall be grateful to generous fellows if same are brought to my notice.

Worthy suggestions for improvement of these math lessons are always welcome.

  • All Basic Trigonometric functions
  • All Trigonometric Identities and Formulas
  • Applications of Right triangle Trigonometry
  • Co-terminal Angles
  • De Moivre’s Theorem and nth Roots
  • Degree, Radians and their Conversions
  • Evaluating Trigonometric functions
  • Ferris Wheel problems (applications of trigonometric functions)
  • Graphing Sine and Cosine functions(stretching & shrinking)
  • Graphing Sine and Cosine functions ( vertical & Horizontal Translation)
  • Graphs of other Trigonometric functions (tanx , cotx, secx, cscx)
  • Law of Cosines and its Applications
  • Law of Sines and its Applications
  • Reference Angle
  • SOHCAHTOA rule and word problems.
  • Solving Trigonometric equations
  • Verify Trigonometric Identities
  • Applications of exponential functions (Compound interest)
  • Applications of exponential and logarithmic functions (Population and bacteria growth)
  • Applications of exponential functions (Intensity of earthquakes and sound loudness)
  • Domain and Range of log function
  • Exponential and Logarithmic functions
  • Log Functions and their Inverse
  • Logistic Functions and their graphs
  • Simplify Exponential expressions
  • Simplify logarithmic expressions
  • Solving Exponential Equations
  • Solving Logarithmic equations
  • Transforming and Graphing logarithmic functions

Ferris Wheel problems (applications of trigonometric functions)

Ferris Wheel (applications of trigonometric functions)

One of the most common applications of trigonometric functions is, Ferris wheel, since the up and down motion of a rider follows the shape of sine or cosine graph.

Equations used :

Y = aSin(bx-c)+d or

Y = aCos(bx-c)+d

Formula used :

vertical shift d=(max+min)/2

Example1. A Ferris wheel has a diameter of 30 m with its center 18 m above the ground. It makes one complete rotation every 60 seconds. Assuming rider starts at the lowest point, find the trigonometric function for this situation and graph the function.

Amplitude – radius of the wheel makes the amplitude so amplitude(a) = 30/2 =15.

Período– Wheel complete one rotation in 60 seconds so period is 60 sec. Using period we can find b value as,

Phase shift– There is no phase shift for this cosine function so no c value.

Vertical shift– Centre of wheel is 18m above the ground which makes the mid line, so d= 18.

Lowest point would be 18-15=3m and highest point would be 18+15= 33m above the ground. So the rider will start from 3m and reach to a height of 33 m in half the period (30 sec) and come back to lowest point (3m) again in 60 secs. So its graph would look like this.

As the graph start from lowest point and the pattern is upside down so we put a negative sign in front of cos. Summing up all the parameters above we get trigonometric function as,

Example2. A water wheel on a paddle boat has a radius of 2 m. The wheel rotates every 30 secs and bottom 0.6m of wheel is submerged in water.

  1. Considering the water surface as x axis , determine the cosine equation of the graph starting from a point at the top of wheel.
  2. Graph the height of a point on the wheel relative to the surface of water, starting from highest point.
  3. How long is the point on wheel under water.

Radius of wheel gives the amplitude so a= 2

Since radius is 2 and bottom point is -0.6, mid line will be at 2-0.6 =1.4m

Combining all the above parameters and considering top point as starting point , we get the cosine equation as,

c) To find the time for wheel under water we need to find x intercepts , intersection of cosine function with y=0(water surface) using graphic calculator. We get the intersection points as x=11.2s and x=18.8s So the total time for wheel underwater is 18.8-11.2 = 6 seconds.

Example3. The earliest sunset occurs at 5:34 PM on Dec. 21 and latest at 11:45 PM on June 21.

  1. Write cosine equation of the graph.
  2. Draw the graph approximating the sunrise time during the year.
  3. What is the sunset time on April 6.
  4. The sunset time is earlier than 8PM for what percentage of the year.

First of all we need to convert time from hour/min to decimal hour form. 5PM is equal to 17 hours and 34 min. are equal to 34/60=0.57 so we get 5:34PM equal to 17.57 hrs.

Same way we get 11:45PM equal to 23.75 hrs. because 11PM is equal to 12+11=23hrs and 45 min = 45/60 =0.75hrs.

Using these maximum and minimum values we get amplitude

For these type of problems, period is taken as 365 days. so,


Starting the graph on Jan1, max. value occurs on 21 June so

c = 31+28+31+30+31+21=172 days

d = (23.75+17.57)/2 = 20.66

Combining all above parameters , we get cosine function as,

This equation can also be written as,

considering 21 Dec. as lowest point.

3) To find sunset time on April6, we find what day of year it is.

So we plug in x as 96 into the equation found in part a.

Converting back 21.46 into decimal hour form we get,

So sunset time on April 6 is 9:28PM.

4) Sunset is earlier than 8PM for days 0 to 68 and then again days 276 to 365. So that total number of days are 157 which are 43 % of the year.

Example 4: The following table gives the average recorded monthly temperature throughout the year.

Write the cosine equation for the graph corresponding to the table given above.

Amplitude, a = [22-(-17)]/2 =39/2 = 19.5

Period = 12 months, here months are used instead of days.

Since the maximum temp. occur in the month of July which is the 7 th month so there is a phase shift of 7.

Vertical shift d =[22+(-17)]/2 = 5/2 =2.5

Combining all the parameters above, we get the final equation as,

Where x represents number of months and y represents approximate temperature.

Practice problems:

1) A Ferris wheel with radius 40 ft complete one revolution every 60 seconds. The lowest point of wheel is 5 m above the ground.

  • Draw the graph of the situation, starting with a person getting on the bottom of the wheel at t=0 seconds.
  • Determine an equation representing the path of the person on Ferris wheel.
  • Determine how high the person will be after riding for 40 seconds.
  • When the person first reach 50 ft.

2) The bottom of a windmill is 8m above the ground, and the top is 22m above the ground. The wheel rotates once every 5 seconds.

3)The average temp. for Regina is hottest at 27 on July 28, and coolest at -16 on January 10.

  • Draw the graph and write the cosine equation for the graph.
  • The average temp. is higher than 23 for how many days.

4)The latest sunrise occurs at 9:10 AM on Dec 21. The earliest occurs at 3:43 AM on June 21. Write the cosine equation for the graph.


3. Binned analysis with XSPEC (prompt emission)

We will now perform a spectral analysis on the prompt emission using XSPEC. (A basic knowledge of the use of XSPEC is assumed.) This requires a PHA (spectral) file and a RSP (response) file. It should be noted that as an alternative to XSPEC, the RMFIT software (available as a user contribution) can be used for spectral modeling however, it is not distributed as part of the Fermitools.

A) Generating PHA and RSP files

We use gtbin to create the PHA1 file (the choice of PHA1 for 'Type of output file' indicates that you want to create a PHA file &mdash the standard FITS file containing a single binned spectrum &mdash spanning the entire time range):

prompt> gtbin
Type of output file (CCUBE|CMAP|LC|PHA1|PHA2) [LC] PHA1
Event data file name[filtered_zmax100.fits] prompt_select.fits
Output file name[lc_zmax100.fits] 080916C_LAT.pha
Spacecraft data file name[FT2.fits]
Algorithm for defining energy bins (FILE|LIN|LOG) [LOG]
Start value for first energy bin in MeV[30] 100
Stop value for last energy bin in MeV[200000] 300000
Number of logarithmically uniform energy bins[20] 30

La gtrspgen tool is then run to generate an XSPEC-compatible response matrix from the LAT IRFs.

prompt> gtrspgen
Response calculation method (GRB|PS) [GRB] PS
Spectrum file name[] 080916C_LAT.pha
Spacecraft data file name[] FT2.fits
Output file name[] 080916C_LAT.rsp
Cutoff angle for binning SC pointings (degrees)[60.] 90
Size of bins for binning SC pointings (cos(theta))[.05]
Response function to use, CALDB or irf name [CALDB] CALDB
Algorithm for defining true energy bins (FILE|LIN|LOG) [LOG]
Start value for first energy bin in MeV[30.] 100
Stop value for last energy bin in MeV[200000.] 300000
Number of logarithmically uniform energy bins[100]

  • One should always use the "PS" response calculation method, despite the option of using "GRB". The latter was a method used in the early stages of the software creation but was later never fully developed. Ultimately, the "PS" method should always be more accurate, in particular for longer bursts. For short bursts, the difference in results and execution time between "PS" and "GRB" is negligible.
  • En gtrspgen you choose the incident photon energy bins i.e., the energy bins over which the incident photon model is computed. gtrspgen reads the output photon channel energy grid from the PHA file. The RSP created by gtrspgen is the mapping from the incident photon energy bins into the output photon channels. These incident photon energy bins need not be the same as the output channels and they should generally over-sample them:
    • If there are only a few channels then the calculation of the expected number of photons in each channel will be more accurate if there are more incident photon energy bins.
    • You might want to include some incident photon energy bins above and below the range of channels to account for the LAT's finite energy resolution. Incident energy bins above the highest channel energy is particularly important if some for the photon's energy leaks out of the detector.

    B) Backgrounds

    For the prompt emission of GRB 080916C (and most LAT bursts), there is minimal background contamination. For analyses of longer integrations, one can estimate the background using off-source regions as for more traditional X-ray analyses.

    C) Running XSPEC

    You now have the two files necessary to analyze the burst spectrum with XSPEC:

    Note that there is no background file. All non-burst sources are expected to produce less than 1 photon in the extraction region during the burst! Here we provide the simplest example of fitting a spectrum with XSPEC for further details you should consult the XSPEC manual.

    1. Start XSPEC

    Note: The default version is now release 12 (XSPEC12).

    2. Load in the data:

    XSPEC12> data 080916C_LAT.pha
    ***Warning: No TLMIN keyword value for response matrix FCHAN column.
    Will assume TLMIN = 1.

    Spectral Data File: 080916C_LAT.pha Spectrum 1
    Net count rate (cts/s) for Spectrum:1 4.919e+00 +/- 3.815e-01
    Assigned to Data Group 1 and Plot Group 1
    Noticed Channels: 1-30
    Telescope: GLAST Instrument: LAT Channel Type: PI
    Exposure Time: 37 sec
    Using fit statistic: chi
    Using Response (RMF) File 080916C_LAT.rsp for Source 1

    When you specify a data file, XSPEC will try to load the response file in the PHA file's header. Alternatively, you can specify the response file separately with the command "response 080916C_LAT.rsp".

    We now load in a power law model for fitting the data. For more information on available models, see this example.

    3. Load the model:

    Input parameter value, delta, min, bot, top, and max values for .
    1 0.01 -3 -2 9 10
    1:powerlaw:PhoIndex>
    1 0.01 0 0 1e+24 1e+24
    2:powerlaw:norm>

    ========================================================================
    Model powerlaw Source No.: 1 Active/On
    Model Model Component Parameter Unit Value
    par comp
    1 1 powerlaw PhoIndex 1.00000 +/- 0.0
    2 1 powerlaw norm 1.00000 +/- 0.0
    ________________________________________________________________________

    Chi-Squared = 8.440734e+10 using 30 PHA bins.
    Reduced chi-squared = 3.014548e+09 for 28 degrees of freedom
    Null hypothesis probability = 0.000000e+00
    Current data and model not fit yet.

    4. Set XSPEC to plot the data and to select the statistical methood for fitting:

    XSPEC12> cpd /xs
    XSPEC12> setplot energy
    XSPEC12> plot ldata chi
    ***Warning: Fit is not current.
    XSPEC12> statistic cstat
    Warning: Cstat statistic is only valid for Poisson data.
    cstat statistic: variance weighted using standard weighting

    C-statistic = 3.369254e+06 using 30 PHA bins and 28 degrees of freedom.

    Warning: Cstat statistic is only valid for Poisson data.

    Current data and model not fit yet.

    The "cpd" command sets the current plotting device, which in this case is the "xserve" option (an xwindow that persists after XSPEC has been closed). The next two commands tell XSPEC to create a logarithmic (the "l" of "ldata") plot of the energy (along the x-axis), using the data file specified before, with the fit statistic. (Consult the manual for another example.)

    It is important to note that, for LAT GRB analysis, we generally want to use the C-statistic instead of chi-squared due to the small number of counts. (However, the command for plotting is still "chi" or "chisq" regardless of the statistic used.) We have set this in the last step.

    5. Perform a fit, and plot the results:

    ========================================================================
    Model powerlaw Source No.: 1 Active/On
    Model Model Component Parameter Unit Value
    par comp
    1 1 powerlaw PhoIndex 2.30022 +/- 7.70503E-02
    2 1 powerlaw norm 5715.50 +/- 5583.06
    ________________________________________________________________________

    C-statistic = 26.57 using 30 PHA bins and 28 degrees of freedom.

    Warning: Cstat statistic is only valid for Poisson data.
    Source file is not Poisson


    Coords.ephems – ephemerides and proper motions¶

    This module contains tools and utilities for computing ephemerides and physical locations of solar system objects, as well as proper motion calculations for extrasolar objects.

    Pyephem A Pythonic implementation of the xephem ephemerides algorithms. Meeus, Jean H. “Astronomical Algorithms” ISBN 0943396352 An authoritative reference on coordinates, ephemerides, and related transforms in astronomy. JPL Solar System Dynamics Group The standard source for solar system dynamics and ephemerides. Source of DE200 and DE405 solar system models, and HORIZON ephemerides service.

    Classes and Inheritance Structure¶

    Module API¶

    Earth position (and velocity) relative to solar system barycenter. Adapted from SOFA fits generated from DE405 solar system model. Outputs astropysics.coords.coordsys.RectangularICRSCoordinates objects.

    Computes and returns the velociy of the Earth relative to the solar system barycenter.

    Params jd:The julian date at which to compute the velocity, or None to use the jd attribute.
    Params bool kms:
    If True, velocities are returned in km/s, otherwise AU/yr.
    Returns:vx,vy,vz in km/s if kms is True, otherwise AU/yr.
    exception astropysics.coords.ephems.EphemerisAccuracyWarning

    Class for warnings due to Ephemeris accuracy issues

    This class is the superclass of objects that change sky coordinates over time.

    Subclassing

    • Subclasses should implement the _getCoordObj() abstract method. This should return a astropysics.coords.coordsys.CoordinateSystem object of the coordinates for the current value of jd.
    • Subclasses may implement a _jdhook() method to perform an action whenever the jd is changed. It must have a signature f(oldjd,newjd).
    • Subclasses may implement the getVelocity() method to return instantaneous velocities for the coordinate at the current value of jd. If this is not implemented, calling it will raise a NotImplementedError .

    Computes and returns the instantaneous velocity for this object at the time given by the jd attribute’s value.

    Returns:The current velocity of this object. The exact type is not specified, but it should be something that can be added to the coordinates that are returned when the object is called.
    Raises NotImplementedError:
    If velocities are not implemented for this class.
    jd

    Julian Date at which to calculate the orbital elements. Can be set either as a scalar JD, ‘now’, datetime.datetime object or a compatible tuple.

    The range of jds over which these ephemerides are valid. Returns a 2-tuple (minjd,maxjd), either of which can be None to indicate no bound.

    An object with Keplerian orbital elements.

    The following orbital elements are available for the current value of jd as read-only properties:

    Additional read only properties derived from the orbital elements include:

    Keywords should be the names of orbital elements. Orbital elements can be a callable f(T) that returns the orbital element, where T is the Julian century from J2000. Otherwise, it must be a sequence giving polynomial coefficients of T, specified in increasing power (i.e. constant term first).

    The orbital elements a ,:attr: e , I , y Lan must be specified, as must either L y Lp o ap y METRO

    Three additional keywords can be supplied:

    Params outcoords:
    The coordinate class that should be used as the output. Should be a astropysics.coords.coordsys.CartesianCoordinates subclass, and the origin will be taken as the center of the Keplerian orbit. Defaults to astropysics.coords.coordsys.RectangularCoordinates .
    Params outtransfunc:
    A function that maps the coordinates from the standard coordinate system (where the x-y plane is the plane of reference) to a system matching the type specified by outcoords . The function should have the signature f(x,y,z,jd) and return (xp,yp,zp). It can also be None to perform no trasnformation. Defaults to None.
    Params Etol:Tolerance for eccentric anomaly (see Etol ). Defaults to None.

    Any other keywords will be passed into the constructor for EphemerisObject .

    Raises TypeError:
    If necessary orbital elements are missing.
    mi

    Eccentric anamoly in degrees - calculated from mean anamoly with accuracy given by Etol .

    Desired accuracy for iterative calculation of eccentric anamoly (or true anomaly) from mean anomaly. If None, default tolerance is used (1.5e-8), or if 0, an analytic approximation will be used (). This approximation can be 10x faster to compute but fails for e close to 1.

    The mean longitude in degrees.

    The longitude of the ascending node in degrees.

    The longitude of the pericenter in degrees.

    The mean anomaly in degrees.

    Orbital period (if gravitational parameter GM=1).

    The argument of the pericenter in degrees.

    Current distance from focus of attraction to object.

    Distance from focus of attraction at apocenter.

    Distance from focus of attraction at pericenter.

    The eccentricity in radians.

    Computes the phase of this object. The phase is computed as viwed from viewobj if illuminated by illumobj

    • viewobj – The object viewing this object. Either a string with the name of a solar system object (from the list in list_solar_system_objects()), or a EphemerisObject objeto. If None, it is taken to be the coordinate origin.
    • viewobj – The object illuminating this object. Either a string with the name of a solar system object (from the list in list_solar_system_objects()), or a EphemerisObject objeto. If None, it is taken to be the coordinate origin.

    The phase of the object as a float where 0 is new and 1 is full.

    The orbital inclination in degrees.

    True anamoly in degrees () - calculated from eccentric anamoly with accuracy given by Etol .

    A KeplerianObject for Earth’s moon based on the model of Simon et al. 1994. The osculating elements for the � values” are used to compute the location. The output coordinates are astropysics.coords.coordsys.RectangularGCRSCoordinates .

    Computes the phase of the Moon. This is computed as viewed from the Earth and illuminated by the Sun if viewobj and illumobj are None - otherwise, see KeplerianObject.getPhase() for the meaning of the parameters.

    Returns:A float where 1 is full and 0 is new.
    class astropysics.coords.ephems.ProperMotionObject(name, ra0, dec0, dra=0, ddec=0, epoch0=2000, distpc0=None, rv=0, coordclass=None)

    An object with linear proper motion relative to a specified epoch.

    • name (str) – Name of the object.
    • ra0 (float) – RA in degrees at the starting epoch.
    • dec0 (float) – Dec in degrees at the starting epoch.
    • dra (float) – Change in RA, arcsec/yr.
    • ddec (float) – Proper motion in Dec, arcsec/yr.
    • epoch0 – Epoch for which ra0 ,`dec0`,and`distpc0` are valid.
    • distpc0 – Distance in pc at the starting epoch.
    • rv (float) – Radial velocity in km/s
    • coordclass (astropysics.coords.coordsys.EpochalLatLongCoordinates) – The type of output coordinates. If None, defaults to ICRSCoordinates.

    Declination at the current jd in degrees.

    Distance at the current jd in parsecs.

    Proper motion in right ascention in arcseconds. This is distinguished from dra in that it is multiplied by cos(dec0) to produce a true proper motion component.

    RA at the current jd in degrees.

    Computes the earth’s position and velocity at a given julian date.

    Output coordinates are aligned to GCRS/ICRS so that +z is along the spherical GCRS pole and +x points down the spherical GCRS origin.

    Adapted from SOFA function epv00.c from fits to DE405, valid from

    • jd – The julian date for the positions and velocities.
    • barycentric (bool) – If True, the output positions and velocities are relative to the solar system barycenter. Otherwise, positions and velocities are heliocentric.
    • kms (bool) – If True, velocity outputs are in km/s, otherwise AU/yr.

    2 3-tuples (x,y,z),(vx,vy,vz) where x,y, and z are GCRS-aligned positions in AU, and vx,vy, and vz are velocities in km/s if kms is True, or AU/yr.

    Retrieves an EphemerisObject object or computes the coordinates for a solar system object.

    • objname (str) – The (case-sensitive) name of the object (see list_solar_system_objects() for valid names)
    • jds – The jds at which to compute the coordinates or None to return EphemerisObject instances.
    • coordsys – Specifies the coordinate system class of the returned ephemerides. Ver EphemerisObject.__call__() for the details. Ignored if jds is None.

    A subclass of EphemerisObject if jds is None, or the appropriate coordinate object (or objects) as detailed in EphemerisObject.__call__() if jds is not None.

    Returns a list of objects that can be returned by get_solar_system_object() .

    Sets the type of ephemerides to use. Must be ‘keplerian’ for now.


    What is the calculation useful for?

    In the pre-GPS and computer days, the haversine formula was a vital aspect of finding the most efficient distance between two points. Today, this calculation is still important, and it plays a major role in several industries.

    For logistics, where distance and time can be the difference between profits and losses, finding the shortest possible point between two locations can greatly improve travel times and reduce wasted resources. More importantly, it can help calculations that feature several moving parts. For instance, an airline that has to fly between two locations with a layover can find the most efficient path to fly, reducing jet fuel use, time that a single airplane is occupied, and increase the number of flights possible in a day. Even for delivery services, it can assist companies with planning the best possible routes for their teams to travel while reducing overall transit times, improving delivery speeds, and generating revenues.

    While pen and paper calculations are time-consuming—and not entirely necessary—understanding how to calculate distances using latitude and longitude can help any company identify better routes to cut down the distances their planes, ships, cars, and teams must travel.

    Improve your operations, distribution, and fleet management with data and analytics: