Skip to content

michitaro/fits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Example (Source code of the working demo)

import { Fits, Hdu } from "@hscmap/fits"
const sampleFitsURL = require<string>('file-loader!./sample.fits')


window.addEventListener('load', async e => {
    const fits = await Fits.fetch(sampleFitsURL, [
        { outputDataType: Fits.DataType.uint8 },
        { outputDataType: Fits.DataType.uint8 },
    ])

    for (const hdu of fits) {
        showHdu(hdu)
    }
})


function showHdu(hdu: Hdu) {
    const width = hdu.card('NAXIS1', 'number')
    const height = hdu.card('NAXIS2', 'number')

    const canvas = document.createElement('canvas')
    const ctx = canvas.getContext('2d')!
    canvas.width = width
    canvas.height = height

    const imagedata = ctx.createImageData(width, height)
    hdu.uint8array(array => {
        for (let y = 0; y < height; ++y) {
            for (let x = 0; x < width; ++x) {
                const i = y * width + x
                const j = (height - y) * width + x
                const value = array[i]
                imagedata.data[4 * j] = value
                imagedata.data[4 * j + 1] = value
                imagedata.data[4 * j + 2] = value
                imagedata.data[4 * j + 3] = 255
            }
        }
    })
    ctx.putImageData(imagedata, 0, 0)
    document.body.appendChild(canvas)

    const pre = document.createElement('pre')
    pre.innerText = JSON.stringify(hdu.header, undefined, 2)
    document.body.appendChild(pre)

    document.body.appendChild(document.createElement('hr'))
}

See also