modifier une entete fits sur une série d'images

Configurer PRiSM comme je veux !
Répondre
Jean francois Coliac
Messages : 22
Enregistré le : 19 nov. 2020, 11:40

modifier une entete fits sur une série d'images

Message par Jean francois Coliac »

Bonjour à tous

Voilà encore un problème avec l'entête fits.. les seuils de visualisation ne fonctionnent pas correctement
selon les logiciels que l'on utilise... Muniwin, Siril, Prism quelle galère
Il manque toujours un mot clé ou alors le mot clé n'a pas la bonne synthaxe, un "s" en trop en moins...

J'ai bien vu qu'on peut modifier avec PRISM v10 un mot clé pour une image unique mais sur un lot
Comment peut on faire pour modifier un mot clé sur une série d'images ?

Je ne sais pas faire des scripts non-simples...

Existe t il un module dans prism qui fait ça avec une fenêtre ?
connaissez vous un logiciel externe qui ne fait que ça ?

Merci
Jean-François
Marc DELDEM
Messages : 1269
Enregistré le : 20 juin 2009, 01:01

Re: modifier une entete fits sur une série d'images

Message par Marc DELDEM »

Salut Jean-François,

Je pense que la seule solution en l'état actuel est un script Prism.
Ce n'est pas très compliqué à mettre en oeuvre.

Voici un premier exemple simple:

Code : Tout sélectionner

// Ajoute le mot clé 'FILTER' et la valeur 'None' dans l'entête d'un ensemble d'images FITS

DirIni$="E:\TEST_HOPS\TEST"

Quote$="'"
FilterValue$="None              "
Key$="FILTER"
Value$=Quote$+FilterValue$+Quote$
ExtensionNumberBloc=0
Comment$="Filter"

// Sélection des images FITS
PRINT "Sélection des images FITS"
Filter$="FITS|*.fits"
GETLISTFILENAMEEX  "Sélection des images FITS"  Filter$  DirIni$  aFileList$ nImageCount
IF nImageCount=0
	EXIT
ENDIF
PRINT ""

// Ajout du mot clé FILTER dans l'entête FITS
FOR i=1 nImageCount
	SETHEADERSTRINGFITS aFileList[i]$ Key$ ExtensionNumberBloc Value$ Comment$ Err
	IF Err=TRUE
		PRINT "ERROR SETHEADERSTRINGFITS on file " aFileList[i]$
		EXIT
	ELSE
		PRINT "Modification de l'entête FITS de " aFileList[i]$
	ENDIF	
NEXT i
Et voici un exemple un peu plus évolué:

Code : Tout sélectionner

// Modify FITS header for HOPS software

DirIni$="E:\CCD\2023\20230624\HAT-P-4\_raw_fits_modified"

Quote$="'"
ExtensionNumberBloc=0

// Sélection des images FITS
PRINT "Sélection des images FITS"
Filter$="FITS|*.fits"
GETLISTFILENAMEEX  "Sélection des images FITS"  Filter$  DirIni$  aFileList$ nImageCount
IF nImageCount=0
	EXIT
ENDIF
PRINT ""

// "EXPTIME" for Exposure time (instead of "EXPOSURE")
Key[1]$="EXPTIME"
Comment[1]$="Exposure time seconds"
Value[1]$=""

// "FILTER" (instead of "FILTERS")
Key[2]$="FILTER"
Comment[2]$="Filter"
Value[2]$=""

// "SITELAT" (modify the value - '+dd:mm:ss' instead of '+dd:mm:ss.s')
Key[3]$="SITELAT"
Comment[3]$="Latitude observatory"
Value[3]$=""

// "SITELONG" (modify the value - '+dd:mm:ss' instead of '+dd:mm:ss.s')
Key[4]$="SITELONG"
Comment[4]$="Longitude observatory"
Value[4]$=""

// @TODO - DEBUG
ShouldWriteHeader=TRUE

// Add "EXPTIME" for Exposure time ("EXPOSURE" is already existing)
FOR i=1 nImageCount
	OPEN Img aFileList[i]$ MINIMIZE
	PRINT "Image:" aFileList[i]$
	
	// Exposure time in seconds
	GETEXPTIME Img ExpTimeMSec
	ExpTimeSec = ExpTimeMSec/1000
	STRF ExpTimeSec 1 ExpTimeSec$
	Value[1]$=Quote$+ExpTimeSec$+Quote$
	PRINT Key[1]$ ":" Value[1]$
	
	// Filter
	GETFILTER Img Filter$
	IF Filter$="?"
		Filter$="None"
	ENDIF
	IF Filter$="SR"
		Filter$="r'"
	ENDIF
	Value[2]$=Quote$+Filter$+Quote$
	PRINT Key[2]$ ":" Value[2]$
	
	// Latitude observatory
	GETLATITUDE Img Latitude
	STR_RAD_TO_DEC Latitude deg$ min$ sec$
	VAL sec$ sec
	STR sec sec$
	Latitude$=deg$+":"+min$+":"+sec$
	Value[3]$=Quote$+Latitude$+Quote$
	PRINT Key[3]$ ":" Value[3]$
	
	// Longitude observatory
	GETLONGITUDE Img Longitude
	STR_RAD_TO_DEC Longitude deg$ min$ sec$
	// Should invert
	VAL deg$ deg
	ABS deg deg
	STR deg deg$
	IF deg<10
		deg$="0"+deg$
	ENDIF
	IF Longitude>0
		// West, should be negative
		deg$="-"+deg$
	ELSE
		// East, should be positive
		deg$="+"+deg$
	ENDIF
	VAL sec$ sec
	STR sec sec$
	Longitude$=deg$+":"+min$+":"+sec$
	Value[4]$=Quote$+Longitude$+Quote$
	PRINT Key[4]$ ":" Value[4]$

	
	
	IF ShouldWriteHeader=TRUE
		FOR idxKey=1 4
			SETHEADERSTRINGFITS aFileList[i]$ Key[idxKey]$ ExtensionNumberBloc Value[idxKey]$ Comment[idxKey]$ Err
			IF Err=TRUE
				PRINT "ERROR SETHEADERSTRINGFITS on file " aFileList[i]$ " and key:" Key[idxKey]$
				EXIT
			ELSE
				//PRINT "Modification de l'entête FITS de " aFileList[i]$
			ENDIF
		NEXT idxKey
	ENDIF

	CLOSE Img
NEXT i

Marc
Jean francois Coliac
Messages : 22
Enregistré le : 19 nov. 2020, 11:40

Re: modifier une entete fits sur une série d'images

Message par Jean francois Coliac »

Bonjour Marc

Je te remercie beaucoup pour avoir pris le temps de m'envoyer ces scripts

je vais les essayer

Ce serait super si un jour un module de prism le faisait sans script...

Astronomicalement
Jean-François
dan_adrian
Messages : 29
Enregistré le : 09 août 2021, 10:03

Re: modify a fit entete on a series of images

Message par dan_adrian »

Jean francois Coliac a écrit : 22 févr. 2024, 11:29 Hello everyone This is another problem with the fits header.. the visualization thresholds do not work properly according to the software we use... Muniwin, Siril, Prism what a galley A keyword is always missing or the keyword does not have the right syntax, an "s" in excess in less... I saw that we can modify with PRISM v10 a keyword for a single image but on a batch How can we modify a keyword on a series of images? I don't know how to make non-simple scripts... Is there a module in prism that does this with a window? Do you know any external software that only does that? thank you Jean-François
You can use Fits Header Utility to batch rename/changhe FITS Keywords Here is the link: https://astroshed.com/fits4win/f4w2hdudoc.htm#Download
Jean francois Coliac
Messages : 22
Enregistré le : 19 nov. 2020, 11:40

Re: modifier une entete fits sur une série d'images

Message par Jean francois Coliac »

Dear Dan

Many thanks for your link I am going to try it

Best regards
Jean francois
Répondre