úÎ!\îVO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNTypes for FITS Data Units(c) Zac Slade, 2018BSD2krakrjak@gmail.com experimentalSafe &'.EHUVXhQ2C fits-parseThe K is the full HDU. Both the header information is encoded alongside the  payload. fits-parseJust the header part of the HDU fits-parseThe actual data payload fits-parse¾The header part of the HDU is vital carrying not only authorship metadata, but also specifying how to make sense of the binary payload that starts 2,880 bytes after the start of the . fits-parseSIMPLE fits-parseBITPIX fits-parse Axes metadata  fits-parseOBJECT  fits-parseDATE  fits-parseOBJECT  fits-parseTELESCOP  fits-parseINSTRUME fits-parseOBSERVER fits-parseCREATOR fits-parseREFERENC fits-parse Following Z we have a tag for integer and floating point values. We box them up to ease parsing. fits-parseThe  is the nitty gritty of how the Ö data is layed out in the file. The standard recognizes six formats: unsigned 8 bit integer, two's complement binary integers at 16, 32, and 64 bits along with 32 and 64 bit IEEE floating point formats. fits-parse-BITPIX = 8; unsigned binary integer of 8 bits fits-parse7BITPIX = 16; two's complement binary integer of 16 bits fits-parse7BITPIX = 32; two's complement binary integer of 32 bits fits-parse7BITPIX = 64; two's complement binary integer of 64 bits fits-parse=BITPIX = -32; IEEE single precision floating point of 32 bits fits-parse=BITPIX = -64; IEEE double precision floating point of 64 bits fits-parse" represents a single NAXIS record.! fits-parse#The axis number under consideration" fits-parse#The number of elements in this axis# fits-parse`The standard defines two possible values for the SIMPLE keyword, T and F. The T refers to a $ format while F refers to a % format. At this time only the $, T, format is supported.$ fits-parse!Value of SIMPLE=T in the header.  supported% fits-parse!Value of SIMPLE=F in the header.  unsupported& fits-parse&Š contains an encoded numeric record from a data field. This data type still needs to be converted into more useful Haskell data types.( fits-parseKey to decoding the structure) fits-parse"Encoding the sign of the real part* fits-parseAll 3! have a real part (sign stripped)+ fits-parse'Encoding the sign of the imaginary part, fits-parseOnly 6' have an imaginary part (sign stripped)- fits-parse0, 1, or 2. fits-parseAll 3 may have an exponent/ fits-parseBUtility data type to help with the ASCII representation of numbers0 fits-parseHDU positive number value1 fits-parseHDU negative number value2 fits-parse8HDU numeric value is zero, could be positive or negative3 fits-parseÄThe FITS standard allows for the encoding of unsigned integers, signed integers, real numbers, and complex numbers. They are always ASCII encoded. See 5.2 of the standard for more details.4 fits-parse HDU ASCII encoded integer number5 fits-parseHDU ASCII encoded real number6 fits-parse HDU ASCII encoded complex number7 fits-parseA 7( is a type paired with a possible value.9 fits-parseWhich ; is this value?: fits-parse!The payload of a character string; fits-parseÖThere are many types of strings defined in the FITS documentation. Refered to as "character string(s)" in the documentation, they can be null, empty, undefined, or contain characters (printable ASCII only).< fits-parse(The NULL character string (e.g. AUTHOR=)= fits-parse An empty string (e.g. AUTHOR="")> fits-parsePlain ASCII data? fits-parse2A single record in the HDU is an eighty byte word.@ fits-parseMThe maximum amount of eighty byte records is thirty-six per the standard.A fits-parse›The size of an HDU block is fixed at thirty-six eighty byte words. In other words 2,880 bytes. These blocks are padded with zeros to this boundary.B fits-parseOThis utility function can be used to get the word count for data in an HDU.O fits-parseMThis utility function can be used to get the size in bytes of the - format.C fits-parseWThis utility functions quickly lets you know if you are dealing with integer data.D fits-parse^This utility functions quickly lets you know if you are dealing with floating point data.P fits-parse Removes the  tag from an Q type within. R fits-parse Removes the  tag from a S type within. E fits-parse#Remove the Pix wrapper for integer  lists. F fits-parse Remove the  wrapper for floating point  lists. G fits-parseäThis is the main low-level function which parses the data portion of an HDU. You need and element count, a format and a bytestring. The resulting list is produced in column-row major order as specified in the standard.J fits-parseThe default instance of 7) is an undefined string with no text.K fits-parseThe default instance for &E is a 32-bit integer of zero with no imaginary or exponent parts.L fits-parseThe default instance for  is NAXIS=0 with zero elements.H  !"#$%&'.*()+,-/2013456789:;<=>?@ABCDEFGHGEF #$% !";<=>789:3456/201&'.*()+,-CDB?@A#MegaParsec based parser for an HDU.(c) Zac Slade, 2018BSD2krakrjak@gmail.com experimentalNoneU"TUVWXYZ[\]^_`abcdefghijklmnopqrstuSafeUÝvwxyz{|}~      !!"#$%&''()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSPQTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'fits-parse-0.0.1-1idNTZaeiZRKoX6d6j4nfI Data.FitsData.Fits.MegaParserPaths_fits_parseHeaderDataUnit headerData payloadData HeaderData simpleFormat bitPixFormataxesobjectIdentifierobservationDateoriginIdentifiertelescopeIdentifierinstrumentIdentifierobserverIdentifierauthorIdentifierreferenceStringPixPBPI16PI32PI64PFPD BitPixFormat EightBitInt SixteenBitIntThirtyTwoBitIntSixtyFourBitIntThirtyTwoBitFloatSixtyFourBitFloatAxis axisNumberaxisElementCount SimpleFormat Conformant NonConformant NumberValue numberType realModifierrealPartimaginaryModifier imaginaryPartexponentModifierexponentNumberModifierPositiveNegativeZero NumberType IntegerTypeRealType ComplexType StringValue stringType stringValue StringType NullString EmptyString DataStringhduRecordLength hduMaxRecords hduBlockSizebitPixToWordSize isBitPixInt isBitPixFloat pixsUnwrapI pixsUnwrapDparsePix$fShowStringType$fShowStringValue$fDefaultStringValue$fDefaultNumberValue $fDefaultAxis$fShowBitPixFormat$fDefaultHeaderDatabitPixToByteSizeunPixIghc-prim GHC.TypesIntunPixDDoubleDataUnitValues FITSFloat64 FITSFloat32 FITSInt64 FITSInt32 FITSInt16 FITSUInt8ParseErrParserheaderBlockParse parseSimple parseEquals parseBitPixparseAxisCount parseNaxes parseBzero parseBscaleparseReference parseObserverparseInstrumentparseTelescope parseObject parseCreator parseDate skipEmpty consumeDeadparseEnd parseNatural parseIntegerparseStringValuecountHeaderDataUnits getAllHDUs getOneHDUdataSizeversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName