Skip to content
/ fitskit Public

A native iOS library to compute vector / image data of FITS files

License

Notifications You must be signed in to change notification settings

brampf/fitskit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FitsKit

MIT License Swift 5.4

A native Swift library to read and write FITS files

Description

FITSKit is a pure Swift library to process the image data of FITS 4.0 file files, commonly used to store astronomical data.

The aim is to implement a modern, native Swift library to utilize the full computing power of modern apple hardware. In particuary, I was seeking for a simple solution to read, render & review FITS files on an iPad.

FITSKit is a highly plattform depenedend library. It compiles and runs exclusively on iOS / iPadOS / macCatalyst. It utilizes apples standard libraries Core Image and Accelerate to process, render & manipulate image data stored in FITS files. It is meant as an addition to the general FITS file format library FitsCore.

FITSCore FITSCore FITSCore
FITSCore FITSKit FITSTool
Fits file format read & write Image rendering & manipulation Command line tool
macOS, iOS & Linux iOS / macCatalyst Linux

Features

  • Read & Write FITS 4.0 files
    • Image format conversion using Accelerate
    • [x| BITPIX 8 support
    • BITPIX 16 support
    • BITPIX 32 support
    • BITPIX 64 support
    • BITPIX -32 support
    • BITPIX -64 support
  • Native code
    • Swift 5.4
    • Compiles for macCatalyst
    • Compiles for iPadOS / iOS

Getting started

Package Manager

With the swift package manager, add the library to your dependencies

dependencies: [
.package(url: "https://github.com/brampf/fitskit.git", from: "0.1.0")
]

then simply add the FITSKit import to your target

.target(name: "YourApp", dependencies: ["FITSKit"])

Documentation

There are several decoders to decode the raw image data of an FITS DataUnit into either an CGImage or into an vImage_Buffer

  • GrayscaleDecoder : Renders grayscale images from two-dimensional data
  • RGBDecoder : Renders RGB images from tree-dimensional data
  • BayerDecoder : Renders RGB images from two-dimensional data

Please note: Decoders only translate the raw byte patterns into processable images and does not apply color correction of any kind.

Don't care, just give me a picture, alright?

import FITSKit

let image = try file.prime.decode()

Grayscale Decoder

Applicable on two-dimensional (NAXIS == 2) data units

import FITSKit

let image = try file.prime.decode(GrayscaleDecoder.self, ())

RGB Decoder

Applicable on three-dimensional (NAXIS == 3) data units

import FITSKit

let image = try file.prime.decode(RGB_Decoder<RGB>.self, ())
}

The RGB Decoder allows parametrization of the output and can also decode grayscale images

import FITSKit

let image = try file.prime.decode(RGB_Decoder<Mono>.self, ())
}

Bayer Decoder (De-Bayering / Demosaic)

Applicable on two-dimensional (NAXIS == 2) data units

import FITSKit

let image = try file.prime.decode(BayerDecoder.self, .RGGB)
}

License

MIT license; see LICENSE. (c) 2021

About

A native iOS library to compute vector / image data of FITS files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages