Skip to main content

A full featured python library to read from and write to FITS files.

Project description

fitsio

build wheels/sdist tests

A Python library to read from and write to FITS files.

Description

This is a Python extension written in C and Python. Data are read into numerical Python arrays.

A version of cfitsio is bundled with this package, there is no need to install your own, nor will this conflict with a version you have installed.

Some Features

  • Read from and write to image, binary, and ASCII table extensions.
  • Read arbitrary subsets of table columns and rows without loading all the data to memory.
  • Read image subsets without reading the whole image.
  • Write subsets to existing images.
  • Write and read variable length table columns.
  • Read images and tables using slice notation similar to numpy arrays. (This is like a more powerful memmap, since it is column-aware for tables.)
  • Append rows to an existing table.
  • Delete row sets and row ranges, resize tables, or insert rows.
  • Query the columns and rows in a table.
  • Read and write header keywords.
  • Read and write images in tile-compressed format (RICE, GZIP, PLIO ,HCOMPRESS).
  • Read/write GZIP files directly.
  • Read unix compress (.Z, .zip) and bzip2 (.bz2) files.
  • TDIM information is used to return array columns in the correct shape.
  • Write and read string table columns, including array columns of arbitrary shape.
  • Read and write complex, bool (logical), unsigned integer, signed bytes types.
  • Write checksums into the header and verify them.
  • Insert new columns into tables in-place.
  • Iterate over rows in a table. Data are buffered for efficiency.
  • Python 3 support, including Python 3 strings.

Examples

import fitsio
from fitsio import FITS,FITSHDR

# Often you just want to quickly read or write data without bothering to
# create a FITS object.  In that case, you can use the read and write
# convienience functions.

# read all data from the first hdu that has data
filename='data.fits'
data = fitsio.read(filename)

# read a subset of rows and columns from a table
data = fitsio.read(filename, rows=[35,1001], columns=['x','y'], ext=2)

# read the header
h = fitsio.read_header(filename)
# read both data and header
data,h = fitsio.read(filename, header=True)

# open the file and write a new binary table extension with the data
# array, which is a numpy array with fields, or "recarray".

data = np.zeros(10, dtype=[('id','i8'),('ra','f8'),('dec','f8')])
fitsio.write(filename, data)

# Write an image to the same file. By default a new extension is
# added to the file.  use clobber=True to overwrite an existing file
# instead.  To append rows to an existing table, see below.

fitsio.write(filename, image)

#
# the FITS class gives the you the ability to explore the data, and gives
# more control
#

# open a FITS file for reading and explore
fits=fitsio.FITS('data.fits')

# see what is in here; the FITS object prints itself
print(fits)

file: data.fits
mode: READONLY
extnum hdutype         hduname
0      IMAGE_HDU
1      BINARY_TBL      mytable

# at the python or ipython prompt the fits object will
# print itself
>>> fits
file: data.fits
... etc

# explore the extensions, either by extension number or
# extension name if available
>>> fits[0]

file: data.fits
extension: 0
type: IMAGE_HDU
image info:
  data type: f8
  dims: [4096,2048]

# by name; can also use fits[1]
>>> fits['mytable']

file: data.fits
extension: 1
type: BINARY_TBL
extname: mytable
rows: 4328342
column info:
  i1scalar            u1
  f                   f4
  fvec                f4  array[2]
  darr                f8  array[3,2]
  dvarr               f8  varray[10]
  s                   S5
  svec                S6  array[3]
  svar                S0  vstring[8]
  sarr                S2  array[4,3]

# See bottom for how to get more information for an extension

# [-1] to refers the last HDU
>>> fits[-1]
...

# if there are multiple HDUs with the same name, and an EXTVER
# is set, you can use it.  Here extver=2
#    fits['mytable',2]


# read the image from extension zero
img = fits[0].read()
img = fits[0][:,:]

# read a subset of the image without reading the whole image
img = fits[0][25:35, 45:55]


# read all rows and columns from a binary table extension
data = fits[1].read()
data = fits['mytable'].read()
data = fits[1][:]

# read a subset of rows and columns. By default uses a case-insensitive
# match. The result retains the names with original case.  If columns is a
# sequence, a numpy array with fields, or recarray is returned
data = fits[1].read(rows=[1,5], columns=['index','x','y'])

# Similar but using slice notation
# row subsets
data = fits[1][10:20]
data = fits[1][10:20:2]
data = fits[1][[1,5,18]]

# Using EXTNAME and EXTVER values
data = fits['SCI',2][10:20]

# Slicing with reverse (flipped) striding
data = fits[1][40:25]
data = fits[1][40:25:-5]

# all rows of column 'x'
data = fits[1]['x'][:]

# Read a few columns at once. This is more efficient than separate read for
# each column
data = fits[1]['x','y'][:]

# General column and row subsets.
columns=['index','x','y']
rows = [1, 5]
data = fits[1][columns][rows]

# data are returned in the order requested by the user
# and duplicates are preserved
rows = [2, 2, 5]
data = fits[1][columns][rows]

# iterate over rows in a table hdu
# faster if we buffer some rows, let's buffer 1000 at a time
fits=fitsio.FITS(filename,iter_row_buffer=1000)
for row in fits[1]:
    print(row)

# iterate over HDUs in a FITS object
for hdu in fits:
    data=hdu.read()

# Note dvarr shows type varray[10] and svar shows type vstring[8]. These
# are variable length columns and the number specified is the maximum size.
# By default they are read into fixed-length fields in the output array.
# You can over-ride this by constructing the FITS object with the vstorage
# keyword or specifying vstorage when reading.  Sending vstorage='object'
# will store the data in variable size object fields to save memory; the
# default is vstorage='fixed'.  Object fields can also be written out to a
# new FITS file as variable length to save disk space.

fits = fitsio.FITS(filename,vstorage='object')
# OR
data = fits[1].read(vstorage='object')
print(data['dvarr'].dtype)
    dtype('object')


# you can grab a FITS HDU object to simplify notation
hdu1 = fits[1]
data = hdu1['x','y'][35:50]

# get rows that satisfy the input expression.  See "Row Filtering
# Specification" in the cfitsio manual (note no temporary table is
# created in this case, contrary to the cfitsio docs)
w=fits[1].where("x > 0.25 && y < 35.0")
data = fits[1][w]

# read the header
h = fits[0].read_header()
print(h['BITPIX'])
    -64

fits.close()


# now write some data
fits = FITS('test.fits','rw')


# create a rec array.  Note vstr
# is a variable length string
nrows=35
data = np.zeros(nrows, dtype=[('index','i4'),('vstr','O'),('x','f8'),
                              ('arr','f4',(3,4))])
data['index'] = np.arange(nrows,dtype='i4')
data['x'] = np.random.random(nrows)
data['vstr'] = [str(i) for i in xrange(nrows)]
data['arr'] = np.arange(nrows*3*4,dtype='f4').reshape(nrows,3,4)

# create a new table extension and write the data
fits.write(data)

# can also be a list of ordinary arrays if you send the names
array_list=[xarray,yarray,namearray]
names=['x','y','name']
fits.write(array_list, names=names)

# similarly a dict of arrays
fits.write(dict_of_arrays)
fits.write(dict_of_arrays, names=names) # control name order

# append more rows to the table.  The fields in data2 should match columns
# in the table.  missing columns will be filled with zeros
fits[-1].append(data2)

# insert a new column into a table
fits[-1].insert_column('newcol', data)

# insert with a specific colnum
fits[-1].insert_column('newcol', data, colnum=2)

# overwrite rows
fits[-1].write(data)

# overwrite starting at a particular row. The table will grow if needed
fits[-1].write(data, firstrow=350)


# create an image
img=np.arange(2*3,dtype='i4').reshape(2,3)

# write an image in a new HDU (if this is a new file, the primary HDU)
fits.write(img)

# write an image with rice compression
fits.write(img, compress='rice')

# control the compression
fimg=np.random.normal(size=2*3).reshape(2, 3)
fits.write(img, compress='rice', qlevel=16, qmethod='SUBTRACTIVE_DITHER_2')

# lossless gzip compression for integers or floating point
fits.write(img, compress='gzip', qlevel=None)
fits.write(fimg, compress='gzip', qlevel=None)

# overwrite the image
fits[ext].write(img2)

# write into an existing image, starting at the location [300,400]
# the image will be expanded if needed
fits[ext].write(img3, start=[300,400])

# change the shape of the image on disk
fits[ext].reshape([250,100])

# add checksums for the data
fits[-1].write_checksum()

# can later verify data integridy
fits[-1].verify_checksum()

# you can also write a header at the same time.  The header can be
#   - a simple dict (no comments)
#   - a list of dicts with 'name','value','comment' fields
#   - a FITSHDR object

hdict = {'somekey': 35, 'location': 'kitt peak'}
fits.write(data, header=hdict)
hlist = [{'name':'observer', 'value':'ES', 'comment':'who'},
         {'name':'location','value':'CTIO'},
         {'name':'photometric','value':True}]
fits.write(data, header=hlist)
hdr=FITSHDR(hlist)
fits.write(data, header=hdr)

# you can add individual keys to an existing HDU
fits[1].write_key(name, value, comment="my comment")

# Write multiple header keys to an existing HDU. Here records
# is the same as sent with header= above
fits[1].write_keys(records)

# write special COMMENT fields
fits[1].write_comment("observer JS")
fits[1].write_comment("we had good weather")

# write special history fields
fits[1].write_history("processed with software X")
fits[1].write_history("re-processed with software Y")

fits.close()

# using a context, the file is closed automatically after leaving the block
with FITS('path/to/file') as fits:
    data = fits[ext].read()

    # you can check if a header exists using "in":
    if 'blah' in fits:
        data=fits['blah'].read()
    if 2 in f:
        data=fits[2].read()

# methods to get more information about extension.  For extension 1:
f[1].get_info()             # lots of info about the extension
f[1].has_data()             # returns True if data is present in extension
f[1].get_extname()
f[1].get_extver()
f[1].get_extnum()           # return zero-offset extension number
f[1].get_exttype()          # 'BINARY_TBL' or 'ASCII_TBL' or 'IMAGE_HDU'
f[1].get_offsets()          # byte offsets (header_start, data_start, data_end)
f[1].is_compressed()        # for images. True if tile-compressed
f[1].get_colnames()         # for tables
f[1].get_colname(colnum)    # for tables find the name from column number
f[1].get_nrows()            # for tables
f[1].get_rec_dtype()        # for tables
f[1].get_rec_column_descr() # for tables
f[1].get_vstorage()         # for tables, storage mechanism for variable
                            # length columns

# public attributes you can feel free to change as needed
f[1].lower           # If True, lower case colnames on output
f[1].upper           # If True, upper case colnames on output
f[1].case_sensitive  # if True, names are matched case sensitive

Installation

The easiest way is using pip or conda. To get the latest release

pip install fitsio

# update fitsio (and everything else)
pip install fitsio --upgrade

# if pip refuses to update to a newer version
pip install fitsio --upgrade --ignore-installed

# if you only want to upgrade fitsio
pip install fitsio --no-deps --upgrade --ignore-installed

# for conda, use conda-forge
conda install -c conda-forge fitsio

You can also get the latest source tarball release from

https://pypi.python.org/pypi/fitsio

or the bleeding edge source from GitHub or use git. To check out the code for the first time

git clone https://github.com/esheldon/fitsio.git

Or at a later time to update to the latest

cd fitsio
git update

Use tar xvfz to unpack the file, enter the fitsio directory and type

pip install .

Requirements

  • python >=3.8
  • a C compiler and build tools like make, patch, etc.
  • numpy (See the note below. Generally, numpy 1.11 or later is better.)

Do not use numpy 1.10.0 or 1.10.1

There is a serious performance regression in numpy 1.10 that results in fitsio running tens to hundreds of times slower. A fix may be forthcoming in a later release. Please comment on GitHub issue numpy/issues/6467 here if this has already impacted your work

Tests

The unit tests should all pass for full support.

pytest fitsio

Some tests may fail if certain libraries are not available, such as bzip2. This failure only implies that bzipped files cannot be read, without affecting other functionality.

Linting and Code Formatting

We use the pre-commit framework for linting and code formatting. To run the linting and code formatting, use the following command

pre-commit run -a

Notes on Usage and Features

cfitsio bundling

We bundle cfitsio partly because many deployed versions of cfitsio in the wild do not have support for interesting features like tiled image compression. Bundling a version that meets our needs is a safe alternative.

Array Ordering

Since numpy uses C order, FITS uses fortran order, we have to write the TDIM and image dimensions in reverse order, but write the data as is. Then we need to also reverse the dims as read from the header when creating the numpy dtype, but read as is.

distutils vs setuptools

As of version 1.0.0, fitsio has been transitioned to setuptools for packaging and installation. There are many reasons to do this (and to not do this). However, at a practical level, what this means for you is that you may have trouble uninstalling older versions with pip via pip uninstall fitsio. If you do, the best thing to do is to manually remove the files manually. See this stackoverflow question for example.

Python 3 Strings

As of version 1.0.0, fitsio now supports Python 3 strings natively. This support means that for Python 3, native strings are read from and written correctly to FITS files. All byte string columns are treated as ASCII-encoded unicode strings as well. For FITS files written with a previous version of fitsio, the data in Python 3 will now come back as a string and not a byte string. Note that this support is not the same as full unicode support. Internally, fitsio only supports the ASCII character set.

TODO

  • HDU groups: does anyone use these? If so open an issue!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fitsio-1.3.0.tar.gz (5.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fitsio-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl (837.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl (818.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp314-cp314t-macosx_14_0_arm64.whl (678.1 kB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

fitsio-1.3.0-cp314-cp314t-macosx_13_0_x86_64.whl (688.4 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

fitsio-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl (824.1 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp314-cp314-manylinux_2_28_x86_64.whl (804.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp314-cp314-macosx_14_0_arm64.whl (676.8 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

fitsio-1.3.0-cp314-cp314-macosx_13_0_x86_64.whl (687.3 kB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

fitsio-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl (824.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp313-cp313-manylinux_2_28_x86_64.whl (804.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp313-cp313-macosx_14_0_arm64.whl (676.8 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

fitsio-1.3.0-cp313-cp313-macosx_13_0_x86_64.whl (687.3 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

fitsio-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (824.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp312-cp312-manylinux_2_28_x86_64.whl (804.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp312-cp312-macosx_14_0_arm64.whl (676.8 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

fitsio-1.3.0-cp312-cp312-macosx_13_0_x86_64.whl (687.3 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

fitsio-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (821.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (802.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp311-cp311-macosx_14_0_arm64.whl (676.6 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

fitsio-1.3.0-cp311-cp311-macosx_13_0_x86_64.whl (687.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

fitsio-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl (821.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (801.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp310-cp310-macosx_14_0_arm64.whl (676.6 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

fitsio-1.3.0-cp310-cp310-macosx_13_0_x86_64.whl (687.2 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

fitsio-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl (820.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

fitsio-1.3.0-cp39-cp39-manylinux_2_28_x86_64.whl (800.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

fitsio-1.3.0-cp39-cp39-macosx_14_0_arm64.whl (676.6 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

fitsio-1.3.0-cp39-cp39-macosx_13_0_x86_64.whl (687.2 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file fitsio-1.3.0.tar.gz.

File metadata

  • Download URL: fitsio-1.3.0.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fitsio-1.3.0.tar.gz
Algorithm Hash digest
SHA256 e2394fb0dca62f46feaaf61a48ad89fad6d2428a5a96a78ebfb4299a084b9260
MD5 547c8b681cb9a7d96443eb78143ba316
BLAKE2b-256 9ef1319003b56bcf6c83ef299461d601e13ad5910c1d62fa683d86fdb2fec2c6

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dd2b1fce5227aa2f9cb478f67d61e037428bcd14eaf7a4be2a0a6662cdd32d5e
MD5 c1bdb29e7e5a907c1dd45ea97e824730
BLAKE2b-256 a51a3667f55e05a4ba214cc5349c626770d120f52d1b0bb1d90b590fcc8eb157

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08569c6774598bbd8c07f6505e9aa047fc7860a5225152df24d0cfc2dbe6994f
MD5 7f05a8992269264f574fe3e9cbc05e38
BLAKE2b-256 8941c6a1eb665d58436768c1cc0a075f082b8c2957471ae351b1900c875e3805

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3261739383b890fe3eea6a2d3f97172e8d369020c9656d42c5fc843f0b977550
MD5 e52a834ec6be94294fa9cd7166480d8b
BLAKE2b-256 faa95f83fb47dcc89da6477bed2607ab0c32d824b185196bc6d53083ea47c0ed

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d7d8ff2896d30a18a1d6ec836b727399040907937d368293a76ba6fe17f02d5b
MD5 888d2cfb8c3776fe87d45f8222330622
BLAKE2b-256 9fc6d6d89fad808297c68b608a57fd3c2d607c69b53514a1c967bdd669772865

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d38863806b20231227acddfe1501644596199566007e8fae8c4526a3ae369dae
MD5 e2055cc27f6675db64d48a734f7158a6
BLAKE2b-256 41f25c0f93aa2c39e9f9ce8ea414519d47edf09e5894a0ad19b232f375c4b8d7

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b49dbdd0c4727b119da8a40bbd2eb245277de3cce4935157b304396351a9a61c
MD5 1164912e6acba4f66b0cd5da091464aa
BLAKE2b-256 8924f17e2a70eb0ba962da95b1f92c5c05b4299d61934c55cf78b7419cb93b7f

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 65956a157758fc719d148362a7fcfb4c48b539fe2a27046ea494c90c7fc7013f
MD5 5ad0946b24c75708d19db45acb36cfce
BLAKE2b-256 06f6fc1780842bf27a61182c2fa1765bb07e8d48fd56a1f10d8119f0ca91ef30

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f99292e606acb47122a2b985bfa9a528ac9d37326eb0ea0b597e26b92fbff22b
MD5 b8bb09ddd6415a1675ec7b3ef2226664
BLAKE2b-256 09d3dd701b5464c0a3ed19f8f0b28aae3999ca63683065a4ff3e9f5554e2159b

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b1017eea6a3924ce47e3aae6f7451147ffb8251729a14c5fffc24b655924c862
MD5 3e4fd681f1882ceae24f36b2befd6eb8
BLAKE2b-256 f442683fd9ed3b5069ac41b0469fd1121d5c4c4aafb88b41d383206afe688223

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37568c7e8d3193e96ebbd5d9221bbb5e288e8e3e44d3780bc656680404dc5ee6
MD5 7f8490ef0de5c5b53674976f008d1d80
BLAKE2b-256 559ba270a186b38280579a5cc4342ef619cb488521d28f3a1872d4d81840cd0c

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5c124fdc03318b66a5227a44428b7b161e07d4841b4a58b13b5db99383959322
MD5 0a50877be35136795df052406ea78359
BLAKE2b-256 5355f57eb7813534b5783db8ca25f25a2cdbc19d005c088a6b132af37f9268a1

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4636c63228527028fe73b4ff5f7202be668dcd784c44bae4d4d2013a5e40902b
MD5 f75c1873e8413cc142e55dc2b8b3dd8b
BLAKE2b-256 f3a49a07cff037542479a6d606b705b471bd878f477ebbec4a17a95e55899bbf

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91556f6140e60a77cda96727fb7cb11316fc0f530ea6ddce4bee8b356737468c
MD5 d832a38914da2cf6307623155f7843eb
BLAKE2b-256 1e9a399a1e59664a5945ffe51b09230e9973104b8e1ba2bc6a894e1266a2ed16

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0c6d0528947dd81bf0a50c8d0187edd05b2112bf890fc4dc825babb7f6e1d10
MD5 7979bf09853ddc46a445121447f6059a
BLAKE2b-256 dd5c5713b58b7a848ba0738ce70f461dbf937f94f22a194762ef679b66293884

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ac477c4b8f24d8e6fffe448f74e814b29e2ff24043797d497b0cacc8aef395db
MD5 32e3f8ec5832a6db5b9f5b31d2a05b44
BLAKE2b-256 3335e037ab8263507d922f5201afb69c10a32a3d45ea1571b2a08cdd6ce0fff7

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e81b837a5e802784a487f00ef87783aee13204591c0f8283d020a48f348fa290
MD5 b1d17002f8a6029b5274c274d3fef791
BLAKE2b-256 dc3f6ecf0a9b597bd61de2705a10ae3ad1a8ec27da5f948cf38101376a3c5084

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a9bb5354d202913ad481ee24cffa4633749074f2a5ebb2c6a352452bdce87aa
MD5 d7a2bafb7bc736834169d46da93c4d6a
BLAKE2b-256 e1b19a6462f7bdc6090b8d77b9e3aa8ff4e647e0548c3eb62f237759be50e5eb

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3286f1b7588ab95dea88225e4f177df222820e036b906eb09e50c40edd3d36b1
MD5 db91c4b2f875304ee8ca099841846719
BLAKE2b-256 0c6997fa1ddb1ba364a0e658ae22c793cb6262c20a1d4736709caddd89ca9b3c

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1751f93fbe73ba0de67dbd0f5557e2618581c00f284de7781f1829b8f453ac6c
MD5 d474d8ae04e9481ca8c05bfa6f43960a
BLAKE2b-256 74b5cc1159e3d7c34cbf883383900cdefc2a0f2a774a271bcad1135ee0cf2c3f

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1316b7e12922c9902a0be44670b3f0d852aabf8e368ab7e09c178dacf1cec6b9
MD5 89c1bae28a02012790c34d3c7d12ad9f
BLAKE2b-256 af0d13f7bd26c6ff29b2f29ced97a19117dd6d6ad54a9aeed99f672780a47a00

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c750bd09ea45b70650a393010af7798b916e95d6f26365b2bbb34256ab7ecb5e
MD5 291ec05bf52f1ed2bd7019492e0d3059
BLAKE2b-256 43b8e2f1d33ae67794f5660b8a52898de2e49b65850386aeb12cc53b29f16502

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 705e39a504e655583d81ec7636048f67db2e504b8a840ebad0cce018bd910d2f
MD5 d82eda558885549158cbbc2fa7472f09
BLAKE2b-256 57356f46b012ce15b152498a811c9b92b011bea5a6d6f4b4a83b5c202dc7ecd8

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e79c146f1e790b047b5db7cf4fca89ecc15d9506783701f95ce033eeea184c15
MD5 ed9e16d8ff6ed5febdc6dc3603469b53
BLAKE2b-256 caee47f3d8c3456e6a01d1682b985bb58421e9960180407a706201bf043eda16

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d6e8d70bcb7113b3cf1d2d38d838b658dd52466adf741a0814032bb4107c0a7c
MD5 b36c2954a2b0c96786ebccca3c06ea92
BLAKE2b-256 f906d27768439430ade416b1d53434274bd3a984d5c8a85688bd4305c7e4cca0

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea9a048ef89f1d6cd2bc91f018b5904aaebba738c43343b421a4f4a75081ba61
MD5 3d6d6b64684222b92efef8255cca590f
BLAKE2b-256 74b563eeef9002dd87c7793b1157159367eb37ff8cd143a4c94b5344ef727570

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bcbc86b8f0f635519611160c843b1cf12f363d09eef9c40091da171d36efddec
MD5 38b7b4e520a040cb905a6f841f1c5c4a
BLAKE2b-256 282944abba3ac37cd4a57e6b9653f73e7f184cfd1fbdc73b1f4b9cd919737a88

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 eb48cf15410856a48f4d9e4e169e224b4c951e84ac1b073490cfd1bf4207f5d5
MD5 77c03074de9e0cd1d9b81316c077bf11
BLAKE2b-256 f6513b8414ee4b603743e63d4d581b57d88b413c943d157a551ce8a2e72613e9

See more details on using hashes here.

File details

Details for the file fitsio-1.3.0-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for fitsio-1.3.0-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 880343e3d0398b2c21130aff57a40793299d098cca6147b56a693cab7fb233e6
MD5 49473e2f244572b152a659297ade1f82
BLAKE2b-256 7848aabfe0e36c80978831ee0bc22c7b5198f2a14226e2025d29b5b688c3d1d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page