¿Por qué las características en la ttwig secundaria proyectada de WCS están en el lugar equivocado en matplotlib?

Tengo un archivo de ajustes sobre un objeto astronómico. Puedo trazarlo así:

from astropy.io import fits from astropy.wcs import WCS hdul = fits.open(fitsfilename)[0] wcs = WCS(hdul.header) fig = plt.figure(figsize=(12,12)) fig.add_subplot(111, projection=wcs) plt.imshow(hdul.data) 

Esto funciona, y produce una bonita foto:

introduzca la descripción de la imagen aquí

Me gustaría agregar algunas características adicionales a esta ttwig, que no funciona. Por ejemplo, intentemos agregar un círculo a 119 °, -67 ° 30 ‘. Amplio el código por:

 plt.scatter([119],[-67.5],c='r',s=500) 

Lo que obtengo es:

introduzca la descripción de la imagen aquí

Lo que realmente no es lo que queríamos, el círculo está alrededor de 118 ° 5 ‘, -67 ° 5’, no donde se supone que debe estar (119 °, -67 ° 30 ‘).

¿En qué me estoy equivocando o qué es una buena solución para este problema?


Nota: cuando ejecuto wcs = WCS(hdul.header) , recibo una advertencia:

ADVERTENCIA: Verificación Advertencia: La verificación reportó errores: [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘A_2_0’ no es estándar FITS (cadena de valor no válida: ‘3.29341755408e-05’). Se corrigió la tarjeta ‘A_2_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: Nota: astropy.io.fits usa indexación de base cero. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘A_1_1’ no es estándar FITS (cadena de valor no válido: ‘1.51709339878e-05’). Se corrigió la tarjeta ‘A_1_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘A_0_2’ no es estándar FITS (cadena de valor no válida: ‘5.17973753556e-06’). Se corrigió la tarjeta ‘A_0_2’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘B_2_0’ no es estándar FITS (cadena de valor no válida: ‘2.97627426087e-06’). Se corrigió la tarjeta ‘B_2_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘B_1_1’ no es estándar FITS (cadena de valor no válida: ‘2.71948126373e-05’). Se corrigió la tarjeta ‘B_1_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘B_0_2’ no es estándar FITS (cadena de valor no válida: ‘1.66848449653e-05’). Se corrigió la tarjeta ‘B_0_2’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘AP_1_0’ no es estándar FITS (cadena de valor no válida: ‘1.79541533196e-06’). Se corrigió la tarjeta ‘AP_1_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘AP_0_1’ no es estándar FITS (cadena de valor no válida: ‘9.20624843151e-07’). Se corrigió la tarjeta ‘AP_0_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘AP_2_0’ no es estándar de FITS (cadena de valor no válida: ‘-3.29292923201e-05’). Se corrigió la tarjeta ‘AP_2_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘AP_1_1’ no es estándar FITS (cadena de valor no válido: ‘-1.51738446887e-05’). Se corrigió la tarjeta ‘AP_1_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘AP_0_2’ no es estándar FITS (cadena de valor no válida: ‘-5.18321445978e-06’). Se corrigió la tarjeta ‘AP_0_2’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘BP_1_0’ no es estándar FITS (cadena de valor no válida: ‘8.99029048217e-07’). Se corrigió la tarjeta ‘BP_1_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘BP_0_1’ no es estándar FITS (cadena de valor no válida: ‘1.15967736014e-06’). Se corrigió la tarjeta ‘BP_0_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: la tarjeta ‘BP_2_0’ no es estándar FITS (cadena de valor no válida: ‘-2.97837492348e-06’). Se corrigió la tarjeta ‘BP_2_0’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘BP_1_1’ no es estándar FITS (cadena de valor no válido: ‘-2.71998518336e-05’). Se corrigió la tarjeta ‘BP_1_1’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘BP_0_2’ no es estándar FITS (cadena de valor no válida: ‘-1.66872388359e-05’). Se corrigió la tarjeta ‘BP_0_2’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘WCSR_PRJ’ no es estándar de FITS (cadena de valor no válida: ‘3.6679e-07’). Se corrigió la tarjeta ‘WCSR_PRJ’ para cumplir con el estándar FITS. [astropy.io.fits.verify] ADVERTENCIA: Verificación Advertencia: La tarjeta ‘WCSR_PIX’ no es estándar de FITS (cadena de valor no válida: ‘8.2565e-05’). Se corrigió la tarjeta ‘WCSR_PIX’ para cumplir con el estándar FITS. [astropy.io.fits.verify]

Así que esto podría ser relevante; Cuestión de cómo solucionarlo aún se mantiene.

Para trazar coordenadas mundiales , debe especificar la transform , por ejemplo:

 ax = fig.gca() ax.scatter([34], [3.2], transform=ax.get_transform('world')) 

En general, puede ignorar esas advertencias de encabezado FITS, ya que ninguna de las tarjetas de encabezado FITS están relacionadas con el WCS (afaik).