Skip to main content

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

Build Status (master) tests

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 untar the file, enter the fitsio directory and type

python setup.py install

optionally with a prefix

python setup.py install --prefix=/some/path

Requirements

  • python 2 or python 3
  • 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 here if this has already impacted your work https://github.com/numpy/numpy/issues/6467

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.

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!

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.2.8.tar.gz (4.5 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.2.8-cp314-cp314t-musllinux_1_2_x86_64.whl (868.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp314-cp314t-manylinux_2_28_x86_64.whl (849.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp314-cp314t-macosx_14_0_arm64.whl (721.5 kB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

fitsio-1.2.8-cp314-cp314t-macosx_13_0_x86_64.whl (729.5 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

fitsio-1.2.8-cp314-cp314-musllinux_1_2_x86_64.whl (854.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp314-cp314-manylinux_2_28_x86_64.whl (834.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp314-cp314-macosx_14_0_arm64.whl (720.1 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

fitsio-1.2.8-cp314-cp314-macosx_13_0_x86_64.whl (728.4 kB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

fitsio-1.2.8-cp313-cp313-musllinux_1_2_x86_64.whl (854.3 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp313-cp313-manylinux_2_28_x86_64.whl (834.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp313-cp313-macosx_14_0_arm64.whl (720.1 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

fitsio-1.2.8-cp313-cp313-macosx_13_0_x86_64.whl (728.4 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

fitsio-1.2.8-cp312-cp312-musllinux_1_2_x86_64.whl (854.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp312-cp312-manylinux_2_28_x86_64.whl (834.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp312-cp312-macosx_14_0_arm64.whl (720.1 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

fitsio-1.2.8-cp312-cp312-macosx_13_0_x86_64.whl (728.4 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

fitsio-1.2.8-cp311-cp311-musllinux_1_2_x86_64.whl (852.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp311-cp311-manylinux_2_28_x86_64.whl (832.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp311-cp311-macosx_14_0_arm64.whl (719.8 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

fitsio-1.2.8-cp311-cp311-macosx_13_0_x86_64.whl (728.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

fitsio-1.2.8-cp310-cp310-musllinux_1_2_x86_64.whl (852.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp310-cp310-manylinux_2_28_x86_64.whl (832.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp310-cp310-macosx_14_0_arm64.whl (719.8 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

fitsio-1.2.8-cp310-cp310-macosx_13_0_x86_64.whl (728.2 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

fitsio-1.2.8-cp39-cp39-musllinux_1_2_x86_64.whl (852.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

fitsio-1.2.8-cp39-cp39-manylinux_2_28_x86_64.whl (831.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

fitsio-1.2.8-cp39-cp39-macosx_14_0_arm64.whl (719.8 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

fitsio-1.2.8-cp39-cp39-macosx_13_0_x86_64.whl (728.2 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

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

File metadata

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

File hashes

Hashes for fitsio-1.2.8.tar.gz
Algorithm Hash digest
SHA256 d386e13a8b3cb9f7e1642056eefb4ae63676ed0bcf6369874168384f4db77eb1
MD5 cdf0bc2782feac582605a07ffc97d699
BLAKE2b-256 b50ad4c8c390d7270e0350a137a817f3d4951171a6f625a57a3aac5eff168091

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c10c2cdd11b59b9d6a79abcb53ca76c87ce01b0b266066bd3e583ce2dd825a9f
MD5 b75b96c5f8c70dd26760d43c09df9f22
BLAKE2b-256 4dfca76271f37d99f08f6a8fe17b4ed59b5baa3444e4933431d283af7cc53a27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71366ac73ed3c4f954406d9f1f5c19812fecb972362bdea04f22f7866c34117a
MD5 410f48c7ee3cfc79d8ea675f85cc412d
BLAKE2b-256 e90701acb28c9ae8fcc040827b4a3ff8bccfb5602f7530758141a7c715d57718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 29a3a3aae0e9742dc509156e9fbfb28f6f550879da233db003a0af6ff2e45f5a
MD5 431084bde3b6920bab3f9cf00646be0b
BLAKE2b-256 8bfa848e170c882b9edfb36f610a587fab455f5e03d31f69ab8c6522d905be32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e6681375f9dd4e198c6ad24826f4c91940576b05396429b1fa7aa0c4a8f13433
MD5 5490e7c86add2050cde8c56a92538c00
BLAKE2b-256 8ee7593f68e2ca90c8895fe2c05de7aea82f73535f1f759fb6ac24c7973c9c95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 90be524f6bc15d9f58051ab2376430d1a5e4bb581b142884d0795cad53d4e76e
MD5 94e120c7ee65b662147fc8b6e55c784e
BLAKE2b-256 c0536c638e00b10738b698faa48383fe9361ad60ffcd3992b550b27a76681f0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d3a4df0964475de083735ac06f2d10e60dbfeb636df0a1f193dec129178867a
MD5 dafb370c3a76132eed0905a689e85fed
BLAKE2b-256 4f7614960a98587f920e667c1d4366ac28689ef8ad1bce747a8dd5f4c1ce9fb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8d953d42711dbd4d3327934653fe1f061d3a45585e4ab75ef7448d5c914fd3a8
MD5 434712fb4cf1b036395baa9a0a9f4d84
BLAKE2b-256 670439f58356ee8a7f8c3cbe98c3bf65c51732ba1ae3129cf2c5ec91f4b4ca55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 49b3849befd96f66319637bb4699873f7a1f90cabc5aeb80ba760a017720ef8e
MD5 3ceb1193ffd32c228a0aaee0e462e2a0
BLAKE2b-256 c0be59960cb6cae13a10d5b079735c64f701092008e19b62de0f3044c477811f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e8e3e0fe543516ea12f663475aab2ed11a12853e4fd9c956717bf778168e78e
MD5 042ff607c1f4d953deed259cb3fa275c
BLAKE2b-256 6f046159d9621cf0e443fb20e0c16c2e2e1366c360a6faaf96338e22e4377da0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74491ebb25685fb358f5d56671a68c93accd1f50191670de50d749db20f3acca
MD5 c62bfe823343a0375a4b7625ab249a37
BLAKE2b-256 927cfe193c2fdc7b9090ee1b98155feb99f0f9b9a71f9dc4de619deba3cae0b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9fd301e292c53edfb2e8d9a8a1ccb417ccef00809a22515360589dd49e8855f1
MD5 ea3c27d2c177c0bceb57ff8049f4e205
BLAKE2b-256 cce3c259632760ce1291f8e6e9ce2aed2506cf021060afdfe27f60ac7541b6c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1ab7904514f91187f849b222dde1a3347157d7945bd3d3474d8fe9ff86470331
MD5 68b1c1b002c7253fdfe0012b6d72f0ea
BLAKE2b-256 2c94a39361a02b8b90b128c4d36e4d83598897fb9e16eeedbf0e685b58acbff4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cb36d6a4f847230b2e2a2f39c2fce1440ed50b3e1df885a3411a6cbf78276afc
MD5 ad5d38251942f43b16326a9b85f9edb3
BLAKE2b-256 27158f62d6bf9087748f0e89f9d538f2239074da1a506c13c4af5f88eab3c612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2f37bf73bbf70d80338833492e87a229bad0d3fce8c5951395190a3098098c9
MD5 c629a88120d2b7fc7afae52007178889
BLAKE2b-256 3dd906a480a5552baa0fa74bacfd068c86f601a0e4d658d6edecae979f7e0829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b8ddc1fa8b79bcad2e24eab7f440b8054fd454fa37ed65eefac93a0eac9c9e20
MD5 e2410d26667a260977e2ab1d9f8c718a
BLAKE2b-256 916dd8fe5e74ff5efedf7deba2b2c96b402b72dabbd211ee3bbc110db9b06489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 70d547c384ddef306fa169d45d4a3e674b26af8d4b67a71aa92bba59220f31ca
MD5 3e66fa77205164b736d16c5e7d7be98f
BLAKE2b-256 225b986f6ec31ea2dcb6d5f73f5907ce9a894d2c8c3cb8fa8e28b8ae5d626159

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9eff363258d68c7d9d25c5471f09dec8b53c67c77866b8da684396d8cdbdbff7
MD5 023a4c8c4f66508b27aac940c9c2da73
BLAKE2b-256 e4c6d15e8a70b7a12da68e0b5f60f97278e14b08156dd91ba84f0f879d1b7159

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10dacee60cec60b2707f13a46db28fb9d647c7c17351ef058201b6a15326ce8d
MD5 e1d51cfc911c4d39995576cc5cc1675e
BLAKE2b-256 0aa947997bf38d0be531f9c5e3f5e0d9f12b2edd1038ef41ff427ba7ea854d49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 08b77b1ce50de82da22ba8e099d3bb0aebe51f2250f8d26b6b268a87d69b4ccd
MD5 92eac6b601b59491084653d48efe72f4
BLAKE2b-256 34154f015965ee982328f8759cc5dd3a3cb3c0c3b5cf60ec61e8ec2685b25080

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e91729ae20ae2b15da51e58fb3f21574296a3f6ce71336b6e7fd577440f0a8d6
MD5 43f581567eaca161f1ad7d66ad0b64e1
BLAKE2b-256 5083a24504cf36f1889e91e7c27754b4249dd1ebdf2e2ab65387ca87fda16f8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a74b0f777523c360d12147608ae7bf431cd73584eb622cf939ab892c57bc529
MD5 840bcff9bcb88344b8f15fcdca5f2ed6
BLAKE2b-256 a90f5bbd9ac3f06af778c4d70d30d9d5d9d68c99d409a13bdfb2e6dbd42d6e80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ae3fc7a89b3aca181d09cedeb8a4c7433e92580df410ed88016553033633f37
MD5 21e3a54df683c1a189a311f79cf5ba7b
BLAKE2b-256 6b5b366b678c04d6d668d575dd3ff7645987c64aa3e128f12367f180dbc856f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f52df259362ce8dc098c4fbe7f6c590d63ccaa7be0e1750b123d5fa1ebe154d0
MD5 600f5784beabb7b60e320a4195a44986
BLAKE2b-256 150f50aebeff049d34b961971a271a5e64e06a488b444e32016ca5dd4b48e467

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b4989ceb31d5a2bad4d4a478efb7227b946550d3d77e5898f12e2dcde30c0870
MD5 5effd61ccde34851371a740208c4e04e
BLAKE2b-256 cb6166093af7670fe7aaf104fbc54dd386fee0ac71569fd4c67bcf105f489fff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 99caff32f82ef355c3760638930c36bb5c46cb9cfd204741d20ffccee0cdcde6
MD5 61da1ecf37266845df8e34d368dfbb7c
BLAKE2b-256 557c8f5552ee2770e8ef5cc1dcfd87f2a0500041be7f87bcffda57e3d0b7faea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c99041aa6af9c9b6584555d97ee00bb17d0ee11091d907c8e8b1aebfb835e00
MD5 bf7709796b789eaf773e73892cca9fbc
BLAKE2b-256 288910bb37994c36caed609b6c698ce2a39f3536c236f86840f8ea47cd73167e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6759c4cef69e8fbe833722447dc3c5d750ae402f75b382f4d4acff16fb3c0a11
MD5 705c16d18ffb739e05936cef541ae32d
BLAKE2b-256 70dcbb4f4ad5404c4f8e75f358dddc4cb08761014bbd0ace028917958d02809a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fitsio-1.2.8-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 51a89151dd239fa95a5e8e39f8e83de68b78681b65a3932708213a6a9d7475e8
MD5 8740c77d2a5963e2a3797b75d4d6a294
BLAKE2b-256 2a355a2a1756cf723e973ac27bdddda39c174510a6bfe28b5f8455be4c618db4

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 Sentry Error logging StatusPage Status page