FITS with World Coordinate System — Tangent Plane (.fits)
A 32-bit integer image carrying a complete tangent-plane WCS: 1-based CRPIX reference pixels, a deliberately negative CDELT1 so right ascension runs the other way, and an ICRS frame. It targets the two mistakes every WCS implementation makes first, the 1-based origin and the flipped axis.
| Keyword | Value | Meaning |
|---|---|---|
| CTYPE1 / CTYPE2 | RA---TAN / DEC--TAN | gnomonic tangent-plane projection |
| CRPIX1 / CRPIX2 | 12.5 / 8.5 | reference pixel, 1-BASED (not 0-based) |
| CRVAL1 / CRVAL2 | 202.484167 / 47.230556 | sky coordinates at that pixel, degrees |
| CDELT1 / CDELT2 | -0.000277778 / 0.000277778 | 1 arcsec per pixel; axis 1 runs backwards |
| RADESYS | ICRS | reference frame |
Specifications
- Bitpix
- 32
- Projection
- TAN (gnomonic)
- Crpix1
- 12.5
- Crpix2
- 8.5
- Crval1
- 202.484167
- Crval2
- 47.230556
- Cdelt1
- -0.000277778
- Cdelt2
- 0.000277778
- Pixel Scale Arcsec
- 1
- Indexing
- 1-based
Testing contract
Expected to pass- Scenario
- Convert pixel (12.5, 8.5) to world coordinates using the header, then convert one pixel further along axis 1.
- Expected result
- The reference pixel maps to RA 202.484167 and Dec 47.230556 degrees, and stepping +1 pixel on axis 1 DECREASES RA by 0.000277778 degrees because CDELT1 is negative.
What is a .fits file?
FITS (.fits, Flexible Image Transport System) is the standard binary format in astronomy. It pairs human-readable 80-character header cards (in 2880-byte blocks) with binary image or table data, storing pixel arrays, coordinates, and instrument metadata. It has been the astronomical archive format for decades.
How to use this file
Use an example .fits file to test FITS readers (astropy, CFITSIO, DS9), header-card parsing, and image or table extraction, or to verify block-alignment handling.
How to use this file for testing
“FITS with World Coordinate System — Tangent Plane (.fits)” is a deterministic Novus Examples fixture for Scientific data, Serialization testing, Conversion testing. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: FITS · 5,760 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Related files
- h5HDF5 Chunked + gzip + shuffle Filters (.h5)One array stored twice in the same file: chunked with the shuffle and gzip filters applied, and contiguous with no filters at all. Comparing the two proves a reader ran the HDF5 filter pipeline rather than reading raw chunk bytes.

- h5MATLAB v7.3 (.mat) Variable Store — the HDF5 File It Actually Is (.h5)A MATLAB v7.3 variable store, which is an HDF5 file with a 512-byte MATLAB user block and MATLAB_class attributes — the bytes are the same whichever extension you give it. Because MATLAB is column-major, A appears in HDF5 as its own transpose, which is the conversion bug this fixture is built around.

- zipNumPy .npz-style Bundle — Five Arrays, Deflated (.zip)The identical five arrays bundled with deflate instead of stored, which is the only difference between NumPy's savez and savez_compressed. Loading both and comparing proves a reader ran the decompressor rather than trusting stored-size shortcuts.

- zipNumPy .npz-style Bundle — Five Arrays, Stored (.zip)An npz-style bundle: a ZIP whose members are .npy files, which is exactly what NumPy's savez produces. np.load opens it by ZIP magic rather than by extension, so the arrays load straight from this .zip; rename it to .npz for tooling that checks the suffix.

- fitsFITS BINTABLE — Typed Columns with TUNIT (.fits)A FITS binary table with four typed columns, big-endian numerics packed with no inter-field padding and TUNIT declaring milli-jansky on the two flux columns. It is the fixture for a table reader that has to build a row struct from TFORM codes rather than guess widths.

- fitsFITS BLANK — Undefined Integer Pixels (.fits)Integer FITS images mark undefined pixels with the BLANK keyword, and BLANK is compared against the stored value before BZERO and BSCALE are applied. Scale first and the four undefined pixels turn into a perfectly plausible zero, which is the ordering bug this file exists to expose.

Generated by generation/scientific.py. Free for any use, no attribution required — license.