void harp::spec_desisim::values ( vector_double & data ) const { data.resize ( nglobal_ ); data.clear(); fitsfile * fp; fits::open_read ( fp, path_ ); // read the object flux fits::img_seek ( fp, objhdu_ ); fits::img_read ( fp, data, false ); // read the sky flux and sum vector_double skyflux ( data.size() ); fits::img_seek ( fp, skyhdu_ ); fits::img_read ( fp, skyflux, false ); fits::close ( fp ); for ( size_t i = 0; i < data.size(); ++i ) { data[i] += skyflux[i]; } return; }
void harp::spec_sim::inv_variance ( vector_double & data ) const { data.resize ( size_ ); data.clear(); return; }
void harp::column_norm ( matrix_double const & mat, vector_double & S ) { S.resize( mat.size1() ); S.clear(); for ( size_t i = 0; i < mat.size2(); ++i ) { for ( size_t j = 0; j < mat.size1(); ++j ) { S[ j ] += mat( j, i ); } } // Invert for ( size_t i = 0; i < S.size(); ++i ) { S[i] = 1.0 / S[i]; } return; }
void harp::spec_desisim::sky ( vector_double & data ) const { data.resize ( nglobal_ ); data.clear(); fitsfile * fp; fits::open_read ( fp, path_ ); // read the sky flux fits::img_seek ( fp, skyhdu_ ); fits::img_read ( fp, data, false ); fits::close ( fp ); return; }