/// <summary>Given a Header return an appropriate datum.</summary> internal static Data DataFactory(Header hdr) { if (ImageHDU.IsHeader(hdr)) { return(ImageHDU.ManufactureData(hdr)); } else if (RandomGroupsHDU.IsHeader(hdr)) { return(RandomGroupsHDU.ManufactureData(hdr)); } else if (useAsciiTables && AsciiTableHDU.IsHeader(hdr)) { return(AsciiTableHDU.ManufactureData(hdr)); } else if (BinaryTableHDU.IsHeader(hdr)) { return(BinaryTableHDU.ManufactureData(hdr)); } else if (UndefinedHDU.IsHeader(hdr)) { return(UndefinedHDU.ManufactureData(hdr)); } else { throw new FitsException("Unrecognizable header in dataFactory"); } }