2 votes

Ouverture d'un fichier FITS d'Astropy à partir d'un serveur SFTP

J'ai un Python script qui ssh dans un serveur distant en utilisant le module Paramiko.

Voici mon script.

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("host", username="McMissile")

Un fichier FITS sur une machine locale est généralement ouvert comme suit :

from astropy.io import fits

hdu = fits.open('File.fits')

Je me demandais comment ouvrir un fichier FITS à partir de la machine du serveur SFTP et le stocker sous la variable hdu dans la machine locale.

Je ne peux pas télécharger le fichier du serveur vers la machine locale en raison de contraintes de stockage.

3voto

Martin Prikryl Points 4584

Astropy.io fits.open méthode accepte un objet de type fichier à la place d'un nom de fichier :

nom : chemin du fichier, objet du fichier, objet de type fichier ou l'objet pathlib.Path


Un objet de type fichier représentant un fichier distant est renvoyé par Paramiko. SFTPClient.open méthode :

A un objet de type fichier est retourné qui imite étroitement le comportement d'un objet fichier Python normal, y compris la possibilité d'être utilisé comme gestionnaire de contexte.


Donc ça devrait marcher :

sftp_client = ssh_client.open_sftp()
with sftp_client.open('remote_filename') as remote_file:
    hdu = fits.open(remote_file)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X