Открытие файла Astropy FITS с SFTP-сервера - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть скрипт Python, который подключается по ssh к удаленному серверу с помощью модуля Paramiko.

Ниже приведен мой скрипт

import paramiko

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

Файл FITS на локальной машине обычно открывается следующим образом:

from astropy.io import fits

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

Мне было интересно, как открыть файл FITS с компьютера сервера SFTP и сохранить его под переменной hdu на локальном компьютере.

Я не могу загрузить файлс сервера на локальный компьютер из-за ограничений хранилища.

1 Ответ

0 голосов
/ 11 декабря 2018

Astropy.io fits.open метод принимает файл-подобный объект вместо имени файла:

name : путь к файлу, файлобъект, файлоподобный объект или pathlib.Path объект


Файловый объект, представляющий удаленный файл, возвращается Paramiko SFTPClient.open method :

файлоподобный объект возвращается *1022*, что близко имитирует поведение обычного файлового объекта Python, включая возможность использования в качестве диспетчера контекста.


Так что это должно работать:

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