Flexible Image Transport System
application/fits
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.
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