Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pythonic FITS reader #1273

Open
mrocklin opened this issue Sep 18, 2019 · 4 comments
Open

Pythonic FITS reader #1273

mrocklin opened this issue Sep 18, 2019 · 4 comments
Assignees
Labels
enhancement New feature or request external contribution welcome A good place to start contributing to the project

Comments

@mrocklin
Copy link

I'm copying over an issue from rapidsai/cudf#2821 by @profjsb . Hopefully this is in-scope for DALI.

This is a request for a GPU FITS reader. Such a reader will be a welcomed and critical component as the community starts to transition data pipelines from CPU- to GPU-centric workflows.

The common image exchange format in astronomy is FITS (Flexible Image Transport System) and there are well-supported CPU-centric packages for reading (and writing) FITS, such as PyFITS (https://pythonhosted.org/pyfits/) and astropy.io (https://docs.astropy.org/en/stable/io/fits/). As part of many data pipelines, it is common to read FITS files from disk, combine and manipulate the images/spectra (as operations on numpy arrays, e.g.), and then write the results back to disk. The reduction pipeline pypeit (https://github.com/pypeit/PypeIt/tree/master/pypeit) is a good example package to see the end-to-end manipulation of FITS files for science.

With the relatively recent introduction of neural network-based steps for astronomical image processing (e.g., we have a package called deepCR, https://github.com/profjsb/deepCR, https://arxiv.org/abs/1907.09500) the best practice when wanting to use GPUs currently is to read FITS data from disk, push the data to a GPU Tensor in pytorch, apply machine learning models, then convert the Tensor back to a CPU-based numpy array. This roundtrip adds overhead. We'd like to be able to read FITS files directly to a GPU Tensor in pytorch (and the like). Of course writing FITS files directly from GPU Tensors would be a next step.

If a FITS reader is developed that can easily lead to the construction of a tensor variable on the GPU, this will open up our community to develop entirely GPU-based image processing pipelines. Much of our manipulations on images are very amenable to the massive parallelism afforded by GPUs. As someone leading an astronomy-meets-machine-learning group at UC Berkeley, I'm personally excited about this as we start to make use of GPU-based clusters, such as the new "Perlmutter" system at NERSC (https://www.nersc.gov/systems/perlmutter/).

cc @profjsb @datametrician @jakirkham

@awolant awolant added this to ToDo in Users requests via automation Sep 19, 2019
@awolant awolant added enhancement New feature or request external contribution welcome A good place to start contributing to the project labels Sep 19, 2019
@awolant
Copy link
Contributor

awolant commented Sep 19, 2019

Hi, thanks for the question.

We will look into this.

@rcthomas
Copy link

rcthomas commented Sep 9, 2021

Hi there, I was wondering if there might be a status update on this issue?

@JanuszL
Copy link
Contributor

JanuszL commented Sep 9, 2021

Hi @rcthomas,

I'm sorry to say but this is not on our mid-term roadmap. However, if there is anyone in the community willing to contribute such functionality we would be more than happy to support such an effort.

@JanuszL
Copy link
Contributor

JanuszL commented Jan 24, 2024

Hi @mrocklin,

There is an experimental support added, please check the fits reader that is available now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request external contribution welcome A good place to start contributing to the project
Projects
Development

No branches or pull requests

4 participants