Flexible Image Transport System

application/fits

Safe

Magic Bytes

Offset: 0
53 49 4D 50 4C 45 20 20 3D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54

The Flexible Image Transport System (FITS) is an open standard digital file format originally developed by NASA and maintained by the IAU FITS Working Group. It serves as the primary format within the astronomical community for storing, transmitting, and manipulating scientific data, specifically multidimensional arrays and images. Established in 1981, FITS prioritizes long-term stability and backwards compatibility, utilizing human-readable ASCII headers to ensure data remains accessible and secure.

Extension

.fits

MIME Type

application/fits

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .fits files in Python

Python
def is_fits(file_path: str) -> bool:
    """Check if file is a valid FITS by magic bytes."""
    signature = bytes([0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54])
    with open(file_path, "rb") as f:
        return f.read(30) == signature

How to validate .fits files in Node.js

Node.js
function isFITS(buffer: Buffer): boolean {
  const signature = Buffer.from([0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54]);
  return buffer.subarray(0, 30).equals(signature);
}
Go
func IsFITS(data []byte) bool {
    signature := []byte{0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54}
    if len(data) < 30 {
        return false
    }
    return bytes.Equal(data[:30], signature)
}

API Endpoint

GET /api/v1/fits
curl https://filesignature.org/api/v1/fits

Related Formats