Ejemplo n.º 1
0
void writeFitsAllUnits(const int i, configInfo *par, imageInfo *img){
  int j;
  char *img_filename_root;

  if(img[i].numunits == 1){
    writeFits(i,0,par,img);
  }else{
    copyInparStr(img[i].filename, &(img_filename_root));
    for(j=0;j<img[i].numunits;j++) {
      insertUnitStrInFilename(img_filename_root, par, img, i, j);
      writeFits(i,j,par,img);
    }
  }
}
Ejemplo n.º 2
0
void StarCatalog::write() const 
{
    std::vector<std::string> files = MakeMultiName(_params, "stars");  

    const int nfiles = files.size();
    for(int i=0; i<nfiles; ++i) {
        const std::string& file = files[i];
        dbg<<"Writing star catalog to file: "<<file<<std::endl;

        bool isFitsIo = false;
        if (_params.keyExists("stars_io")) {
            std::vector<std::string> ios = _params["stars_io"];
            Assert(ios.size() == files.size());
            isFitsIo = (ios[i] == "FITS");
        } else if (file.find("fits") != std::string::npos) {
            isFitsIo = true;
        }

        try {
            if (isFitsIo) {
                writeFits(file);
            } else {
                std::string delim = "  ";
                if (_params.keyExists("stars_delim")) {
                    std::vector<std::string> delims = _params["stars_delim"];
                    Assert(delims.size() == files.size());
                    delim = delims[i];
                } else if (file.find("csv") != std::string::npos) {
                    delim = ",";
                }
                writeAscii(file,delim);
            }
        } catch (CCfits::FitsException& e) {
            xdbg<<"Caught FitsException: \n"<<e.message()<<std::endl;
            throw WriteException(
                "Error writing to "+file+" -- caught error\n" + e.message());
        } catch (std::exception& e) { 
            xdbg<<"Caught std::exception: \n"<<e.what()<<std::endl;
            throw WriteException(
                "Error writing to "+file+" -- caught error\n" + e.what());
        } catch (...) { 
            xdbg<<"Caught unknown exception"<<std::endl;
            throw WriteException(
                "Error writing to "+file+" -- caught unknown error");
        }
    }
    dbg<<"Done Write StarCatalog\n";
}