diff options
Diffstat (limited to 'tksao/fitsy++/analysis.C')
-rw-r--r-- | tksao/fitsy++/analysis.C | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tksao/fitsy++/analysis.C b/tksao/fitsy++/analysis.C new file mode 100644 index 0000000..b06aa12 --- /dev/null +++ b/tksao/fitsy++/analysis.C @@ -0,0 +1,56 @@ +// Copyright (C) 1999-2016 +// Smithsonian Astrophysical Observatory, Cambridge, MA, USA +// For conditions of distribution and use, see copyright notice in "copyright" + +#include "analysis.h" + +FitsAnalysis::FitsAnalysis(FitsFile* src) +{ + primary_ = src->primary(); + managePrimary_ = 0; + + head_ = new FitsHead(*(src->head())); + manageHead_ = 1; + + ext_ = src->ext(); + inherit_ = src->inherit(); + + // change bitpix to double + head_->setInteger("BITPIX", -64, ""); + + // unset BZERO/BSCALE if present + if (head_->find("BZERO")) + head_->setReal("BZERO",0,2,NULL); + + if (head_->find("BSCALE")) + head_->setReal("BSCALE",1,2,NULL); + + head_->updateHDU(); + + int width = head_->naxis(0); + int height = head_->naxis(1); + + // alloc memory + size_t size = (size_t)width*height; + data_ = new double[size]; + if (!data_) + return; + + dataSize_ = size; + dataSkip_ = 0; + + // clear memory + memset(data_, 0, size*sizeof(double)); + + // made it this far, must be valid + byteswap_ = 0; + endian_ = lsb() ? LITTLE : BIG; + valid_ = 1; +} + +FitsAnalysis::~FitsAnalysis() +{ + if (data_) + delete [] (char*)data_; +} + |