Bug in Pixtable.extract_from_mask
In the meantime, source of the bug identified in extract_from_mask for a PixTable
extract_from_mask returns a PixTable but it has the wrong EXTNAME and may be missing an extension: 1- the standard xpos, ypos, ... are all transformed in upper characters which means that they are not properly read later on by MUSE recipes 2- if a PIXTABLE_FLAT_FIELD extension is present, it is not copied over.
============================== My initial email to Laure Piqueras regarding this bug.
a propos de mpdaf: je te forward un mail que j'avais envoye a Simon a propos du masking que je voulais faire sur des PixTable. En gros: je veux masquer les regions du ciel qui correspondent au passage d'un satellite ("trail"). J'ai fais une classe dans mon package MUSE en utilisant les conseils de Simon (avec pixtable.extract_from_mask). Malheureusement la routine mpdaf ne recopie pas la totalite de la PixTable et du coup elle devient inutilisable. Je vais faire un patch dans ma routine pour faire le transfert de l'extension manquante mais je te joins ce mail si toi ou qqn d'autre souhaite ajouter un patch a mpdaf.
merci! Eric
-------- Forwarded Message -------- Subject: Re: Pixtable pb Date: Tue, 10 Sep 2019 22:26:27 +0200 From: Simon Conseil simon@sconseil.fr To: Eric Emsellem eric.emsellem@eso.org
Ah oui, il y a un petit soucis, l'extension PIXTABLE_FLAT_FIELD est je crois liée au flat-field spectrum ajouté dans la version 2.2, et qu'on utilisait pas pour l'UDF (pour lequel on avait des satellites à masquer).
Du coup je n'ai pas eu ce soucis ... mais en gros il faudrait modifier mpdaf pour lire et sauver cette extension en plus des autres. Il faut probablement juste la lire si elle est présente, et la sauver, donc ca ne doit pas être très compliqué à faire, mais ca fait un peu de boulot en plus. Éventuellement tu peux le faire manuellement pour tester.
a+, Simon
Le 10/09/2019 à 13:30, Eric Emsellem a écrit :
Salut
j'ai fais a priori comme tu m'as dis pour masquer la PixTable. Mais je me retrouve avec une Pixtable qui n'a pas tout les bons ingredients et du coup cela ne marche pas.
Si je regarde la PixTable originelle j'ai ca
In [10]: PT.info() [INFO] 24 merged IFUs went into this pixel table [INFO] This pixel table was flux-calibrated [INFO] projected (intermediate) (Gnomonic proje) Filename: PIXTABLE_REDUCED_2017-12-26T05:11:09_0003.fits No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 2586 () 1 xpos 1 ImageHDU 9 (1, 323877659) float32 2 ypos 1 ImageHDU 9 (1, 323877659) float32 3 lambda 1 ImageHDU 9 (1, 323877659) float32 4 data 1 ImageHDU 9 (1, 323877659) float32 5 dq 1 ImageHDU 8 (1, 323877659) int32 6 stat 1 ImageHDU 9 (1, 323877659) float32 7 origin 1 ImageHDU 8 (1, 323877659) int32 8 PIXTABLE_FLAT_FIELD 1 BinTableHDU 15 3683R x 3C [1D, 1D, 1D] [INFO] None
Mais la PixTable masquee donne ca:
In [11]: masked_PT.info() [INFO] 24 merged IFUs went into this pixel table [INFO] This pixel table was flux-calibrated [INFO] projected (intermediate) (Gnomonic proje) Filename: tmaskPIXTABLE_REDUCED_2017-12-26T05:11:09_0003.fits No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 2587 () 1 XPOS 1 ImageHDU 9 (1, 316641649) float32 2 YPOS 1 ImageHDU 9 (1, 316641649) float32 3 LAMBDA 1 ImageHDU 9 (1, 316641649) float32 4 DATA 1 ImageHDU 9 (1, 316641649) float32 5 DQ 1 ImageHDU 8 (1, 316641649) int32 6 STAT 1 ImageHDU 9 (1, 316641649) float32 7 ORIGIN 1 ImageHDU 8 (1, 316641649) int32 [INFO] None
Si tu as une idee comment ne pas avoir ce pb (voir ci-dessus sur comment je fais).
merci
Eric
Ma routine fait ca:
j'ouvre la pixtable
pixtable = PixTable(self.pixtable_name)
je cree le masque a partir d'une image de 1 et de 0 avec le bon WCS
mask_col = pixtable.mask_column(self.mask_name)
je fais la nouvelle pixtable
newpixtable = pixtable.extract_from_mask(mask_col.maskcol)
Je l'ecris
newpixtable.write(self.newpixtable_name)