Bonsoir à tous,
Je reviens sur ce post qui n'a toujours pas réponse (problème plus compliqué qu'il n'y paraît?).
J'apporte une réponse qui intéressera tous ceux qui lancent des séquences
d'observation par script. En effet la valeur du fond de ciel mesurée par l'oeil
de l'Eagle est accessible via une requete http. Je ne sais pas faire de requête
http en langage script de PRISM mais je peux le faire en python. J'ai donc
ajouté, après avoir obtenu l'image, l'appel à un script python qui ajoute au
header du fichier fits la précieuse information donnée par l'oeil. Voici ce que
cela donne:
GetLastImageExposure img
SaveFIT img NomFichierImage$
CLOSE img
PythonScriptFilename$="C:\Users\PrimaLuceLab\Pictures\Astro\eye.py"
EXEC_EXTERNAL_PY PythonScriptFilename$ NomFichierImage$
le script python eye.py est ci-dessous.
Ca a résolu mon pb pour les scripts mais pas celui posé par l'interactif:
en sauvegardant une image l'indication apparaissant dans l'onglet "meteo" du
widget "etat du télescope" n'est pas sauvée dans le header.
Ciel clair à tous!
Michel
#------------------ Le script eye.py -------------------------------------------
import sys
import requests
import astropy.io.fits as fits
def get_eye_value(url):
try:
# Effectuer la requête GET
response = requests.get(url)
# Vérifier si la requête a réussi
if response.status_code == 200:
# Convertir la réponse en JSON
data = response.json()
return data.get("value")
else:
print(f"Erreur lors de la requête : {response.status_code}")
return None
except requests.exceptions.RequestException as e:
print(f"Une erreur s'est produite : {e}")
return None
def update_fits_file(filename, eye_value):
try:
# Ouvrir le fichier FITS avec un gestionnaire de contexte
with fits.open(filename, mode='update') as hdu:
# Mettre à jour l'en-tête
hdu[0].header['SKYBRIGH'] = eye_value
# Sauvegarder les modifications
hdu.flush()
print(f"Le fichier {filename} a été mis à jour avec succès.")
except Exception as e:
print(f"Une erreur s'est produite lors de la mise à jour du fichier : {e}")
def main():
if len(sys.argv) != 2:
print("Usage: python eye.py <fichier>")
return
filename = sys.argv[1]
url = "
http://localhost:1380/geteye?idx=0"
eye_value = get_eye_value(url)
if eye_value is not None:
update_fits_file(filename, eye_value)
if __name__ == "__main__":
main()