简体   繁体   中英

Opening Astropy FITS file from SFTP server

I have a Python script that ssh into a remote server using Paramiko module.

The below is my script

import paramiko

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

A FITS file on a local machine is usually opened as follows:

from astropy.io import fits

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

I was wondering how would I open a FITS file from the SFTP server machine and store it under the variable hdu in the local machine.

I cannot download the file from the server to the local machine due to the storage constraints.

Astropy.io fits.open method accepts a file-like object in place of a file name:

name : file path, file object, file-like object or pathlib.Path object


A file-like object representing a remote file is returned by Paramiko SFTPClient.open method :

A file-like object is returned , which closely mimics the behavior of a normal Python file object, including the ability to be used as a context manager.


So this should work:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM