Git Product home page Git Product logo

fitskit's Introduction

FitsKit

MIT License Swift 5.2

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.3+
    • 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

fitskit's People

Contributors

brampf avatar dieudonnewillems avatar matteolesinigo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.