Changeset 1978 in Sophya for trunk/SophyaExt/FitsIOServer


Ignore:
Timestamp:
May 3, 2002, 3:04:05 PM (23 years ago)
Author:
lemeur
Message:

suppression mots cles FITS de format, dans dvlist, en lecture

Location:
trunk/SophyaExt/FitsIOServer
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/FitsIOServer/fitsfile.cc

    r1771 r1978  
    254254  taille_des_chaines_.clear();
    255255  dvl_.Clear();
     256
     257  dnull_ = 1.e-300;
     258  fnull_ = 1.e-33;
     259  inull_= 99999;
     260  cnull_= string("xxx");
    256261 
     262
    257263}
    258264
     
    742748{
    743749  int status= 0;
    744   int    anull;
    745   double dnull= 0.;
    746   float fnull= 0.;
    747   int inull= 0;
    748   char* cnull= "";
     750  int    anynul;
     751  double dnull= dnull_;
     752  float fnull= fnull_;
     753  int inull= inull_;
     754  char* cnull= const_cast<char*>(cnull_.c_str());
    749755  int dcount = 0.;
    750756  int fcount = 0.;
     
    769775        case FitsDataType_double :
    770776          {
    771           fits_read_col(fptr_,TDOUBLE,ncol+1,ligneALire,premierElement,1,&dnull,&ddata[dcount++],&anull,&status);
     777          fits_read_col(fptr_,TDOUBLE,ncol+1,ligneALire,premierElement,1,&dnull,&ddata[dcount++],&anynul,&status);
    772778            break;
    773779          }
    774780        case FitsDataType_float :         
    775           fits_read_col(fptr_,TFLOAT,ncol+1,ligneALire,premierElement,1,&fnull,&fdata[fcount++],&anull,&status);
     781          fits_read_col(fptr_,TFLOAT,ncol+1,ligneALire,premierElement,1,&fnull,&fdata[fcount++],&anynul,&status);
    776782          break;
    777783        case  FitsDataType_int :
    778784          fits_read_col(fptr_,TINT,ncol+1,ligneALire,premierElement,1,&inull,&idata[icount++],
    779                         &anull,&status);
     785                        &anynul,&status);
    780786          break;
    781787        case  FitsDataType_long :
    782           fits_read_col(fptr_,TLONG,ncol+1,ligneALire,premierElement,1,&inull,&idata[icount++], &anull,&status);
     788          fits_read_col(fptr_,TLONG,ncol+1,ligneALire,premierElement,1,&inull,&idata[icount++], &anynul,&status);
    783789        case  FitsDataType_byte :
    784790          {
    785791            unsigned char uschar = 0;
    786             fits_read_col(fptr_,TBYTE,ncol+1,ligneALire,premierElement,1,&inull,&uschar, &anull,&status);
     792            fits_read_col(fptr_,TBYTE,ncol+1,ligneALire,premierElement,1,&inull,&uschar, &anynul,&status);
    787793            idata[icount++] = (int)uschar;
    788794          }
    789795          break;
    790796        case FitsDataType_char :
    791           fits_read_col(fptr_,TSTRING,ncol+1,ligneALire,premierElement,1,cnull,&cdata[ccount++],&anull,&status);
     797          fits_read_col(fptr_,TSTRING,ncol+1,ligneALire,premierElement,1,cnull,&cdata[ccount++],&anynul,&status);
    792798          break;
    793799        }
     
    806812{
    807813  int status= 0;
    808   int    anull;
    809   double dnull= 0.;
    810   float fnull= 0.;
    811   int inull= 0;
    812   char* cnull= "";
     814  int    anynul;
     815  double dnull= dnull_;
     816  float fnull= fnull_;
     817  int inull= inull_;
     818  char* cnull=  const_cast<char*>(cnull_.c_str());
    813819  int dcount = 0.;
    814820  int fcount = 0.;
     
    822828        {
    823829        case FitsDataType_double :
    824           fits_read_col(fptr_,TDOUBLE,ncol+1,NoLine+1,1,1,&dnull,&ligne.ddata_[dcount++],&anull,&status);
     830          fits_read_col(fptr_,TDOUBLE,ncol+1,NoLine+1,1,1,&dnull,&ligne.ddata_[dcount++],&anynul,&status);
    825831          break;
    826832        case FitsDataType_float :
    827           fits_read_col(fptr_,TFLOAT,ncol+1,NoLine+1,1,1,&fnull,&ligne.fdata_[fcount++],&anull,&status);
     833          fits_read_col(fptr_,TFLOAT,ncol+1,NoLine+1,1,1,&fnull,&ligne.fdata_[fcount++],&anynul,&status);
    828834          break;
    829835        case FitsDataType_int :
    830           fits_read_col(fptr_,TINT,ncol+1,NoLine+1,1,1,&inull,&ligne.idata_[icount++], &anull,&status);
     836          fits_read_col(fptr_,TINT,ncol+1,NoLine+1,1,1,&inull,&ligne.idata_[icount++], &anynul,&status);
    831837          break;
    832838        case FitsDataType_long :
    833           fits_read_col(fptr_,TLONG,ncol+1,NoLine+1,1,1,&inull,&ligne.ldata_[icount++], &anull,&status);
     839          fits_read_col(fptr_,TLONG,ncol+1,NoLine+1,1,1,&inull,&ligne.ldata_[icount++], &anynul,&status);
    834840          break;
    835841        case FitsDataType_byte :
    836           fits_read_col(fptr_,TBYTE,ncol+1,NoLine+1,1,1,&inull,&ligne.bdata_[icount++], &anull,&status);
     842          fits_read_col(fptr_,TBYTE,ncol+1,NoLine+1,1,1,&inull,&ligne.bdata_[icount++], &anynul,&status);
    837843          break;
    838844        case FitsDataType_char :
    839845          char* chaine = new char[taille_des_chaines_[ccount]];
    840           fits_read_col(fptr_,TSTRING,ncol+1,NoLine+1,1,1,cnull,&chaine,&anull,&status);
     846          fits_read_col(fptr_,TSTRING,ncol+1,NoLine+1,1,1,cnull,&chaine,&anynul,&status);
    841847          ligne.cdata_[ccount++] = string(chaine);
    842848          break;
     
    857863{
    858864  int status= 0;
    859   int    anull;
    860   float fnull= 0.;
     865  int    anynul;
     866  float fnull= fnull_;
    861867  long nels=1;
    862868  int ncol;
    863869  for (ncol=0; ncol<nbcols_; ncol++)
    864870    {
    865       fits_read_col(fptr_,TFLOAT,ncol+1,NoLine+1,1,1,&fnull,&fdata[ncol],&anull,&status);
     871      fits_read_col(fptr_,TFLOAT,ncol+1,NoLine+1,1,1,&fnull,&fdata[ncol],&anynul,&status);
    866872      if (status)
    867873        {
     
    892898        }
    893899      long nels=nentries;
    894       int    anull;
    895       // no checking for undefined pixels
    896       double dnull= 0.;
    897       //     fits_read_key(fptr_,TDOUBLE,"BAD_DATA",&dnull,NULL,&status);
    898       //  if (status != 0)
    899       //        {
    900       //          dnull = -1.6375e30;  // default value
    901       //          status = 0;
    902       //        }
    903       //   if (nentries != nrows_*repeat)
    904       //        {
    905       //          cout << " found " << nentries << " pixels, expected:  " << nrows_*repeat << endl;
    906           //      throw PException(" FitsFile:::GetBinTabFCol ");
    907       //        }
     900      int    anynul;
     901      double dnull= dnull_;
     902
    908903      fits_read_col(fptr_,TDOUBLE,NoCol+1,1,1,nels,&dnull,valeurs,
    909                             &anull,&status);
     904                            &anynul,&status);
    910905      if( status )
    911906        {
     
    931926        }
    932927      long nels=nentries;
    933       int    anull;
    934       // no checking for undefined pixels
    935       float fnull= 0.;
    936       //     fits_read_key(fptr_,TFLOAT,"BAD_DATA",&fnull,NULL,&status);
    937       //    if (status != 0)
    938       //        {
    939       //          fnull = -1.6375e30;  // default value
    940       //          status = 0;
    941       //        }
    942       //  if (nentries != nrows_*repeat)
    943       //        {
    944       //          cout << " found " << nentries << " pixels, expected:  " << nrows_*repeat << endl;
    945           //      throw PException(" FitsFile:::GetBinTabFCol ");
    946       //        }
     928      int    anynul;
     929      float fnull= fnull_;
    947930      fits_read_col(fptr_,TFLOAT,NoCol+1,1,1,nels,&fnull,valeurs,
    948                             &anull,&status);
     931                            &anynul,&status);
    949932      if( status ) printerrorAndContinue( status,"erreur lecture de colonne" );
    950933    }
     
    967950        }
    968951      long nels=nentries;
    969       // no checking for undefined pixels
    970       int    anull;
    971       int inull= 0;
    972       //     fits_read_key(fptr_,TINT,"BAD_DATA",&inull,NULL,&status);
    973       //     if (status != 0)
    974       //        {
    975       //          inull = -999999;  // default value
    976       //          status = 0;
    977       //        }
    978       // if (nentries != nrows_*repeat)
    979       //        {
    980       //          cout << " found " << nentries << " pixels, expected:  " << nrows_*repeat << endl;
    981           //      throw PException(" FitsFile:::GetBinTabFCol ");
    982       //        }
     952      int    anynul;
     953      int inull= inull_;
    983954
    984955
     
    986957      // voir commentaire dans putColToFits()
    987958      fits_read_col(fptr_,TINT,NoCol+1,1,1,nels,&inull,valeurs,
    988                             &anull,&status);
     959                            &anynul,&status);
    989960      if( status ) printerrorAndContinue( status,"erreur lecture de colonne" );
    990961    }
     
    1006977        }
    1007978      long nels=nentries;
    1008       // no checking for undefined pixels
    1009       int    anull;
    1010       char* cnull= "";
    1011       // if (nentries != nrows_*repeat/width)
    1012       //        {
    1013       //          cout << " found " << nentries << " pixels, expected:  " << nrows_*repeat/width << endl;
    1014           //      throw PException(" FitsFile:::GetBinTabFCol ");
    1015       //        }
     979      int    anynul;
     980      char* cnull=  const_cast<char*>(cnull_.c_str());
    1016981      long frow=1;
    1017982      long felem=1;
    1018983      fits_read_col(fptr_,TSTRING,NoCol+1,frow,felem,nels,cnull,valeurs,
    1019                     &anull,&status);
     984                    &anynul,&status);
    1020985      if( status ) printerrorAndContinue( status,"erreur lecture de colonne" );
    1021986    }
     
    10391004        }
    10401005 
    1041       // no checking for undefined pixels
    1042       int    anull;
    1043       double dnull= 0.;
     1006      int    anynul;
     1007      double dnull= dnull_;
    10441008 
    10451009      long nels= nentries;
    1046       fits_read_img(fptr_,TDOUBLE,1,nels,&dnull,map,&anull,&status);
     1010      fits_read_img(fptr_,TDOUBLE,1,nels,&dnull,map,&anynul,&status);
    10471011      if( status ) printerror( status );
    10481012    }
     
    10721036          cout << " Conversion to float achieved by cfitsio lib" << endl;
    10731037        }
    1074       // no checking for undefined pixels
    1075       int   anull;
    1076       float fnull= 0.;
     1038      int   anynul;
     1039      float fnull= fnull_;
    10771040     
    10781041      long nels= nentries;
    1079       fits_read_img(fptr_,TFLOAT,1,nels,&fnull, map,&anull,&status);
     1042      fits_read_img(fptr_,TFLOAT,1,nels,&fnull, map,&anynul,&status);
    10801043      if( status ) printerror( status );
    10811044    }
     
    11051068          cout << " Conversion to float achieved by cfitsio lib" << endl;
    11061069        }
    1107       // no checking for undefined pixels
    1108       int   anull;
    1109       float fnull= 0.;
     1070      int   anynul;
     1071      float fnull= fnull_;
    11101072     
    11111073      long nels= nentries;
    1112       fits_read_img(fptr_,TINT,1,nels,&fnull,map,&anull,&status);
     1074      fits_read_img(fptr_,TINT,1,nels,&fnull,map,&anynul,&status);
    11131075      if( status ) printerror( status );
    11141076    }
     
    13271289            case 'C':
    13281290              fits_read_key(fileptr,TSTRING,keyname,strval,comment,&status);
     1291              if ( strncmp(keyname,"TTYPE",5) == 0 ||
     1292                   strncmp(keyname,"TFORM",5) == 0 ||
     1293                   strncmp(keyname,"TBCOL",5) == 0 ) break;
    13291294              dvl[keyname]= strval;
    13301295              dvl.SetComment(keyname, comment);
     
    13521317        }
    13531318    }
    1354   //  dvl_.Print();
     1319  //    dvl.Print();
    13551320}
    13561321
     
    18111776  int k;
    18121777  int status= 0;
    1813   int    anull;
     1778  int    anynul;
    18141779  int ncol=0;
    18151780  long nels=1;
  • trunk/SophyaExt/FitsIOServer/fitsfile.h

    r1771 r1978  
    249249
    250250void InitNull();
     251
    251252void getHeaderWithSophyaObject();
    252253static void KeywordsIntoDVList(fitsfile* fileptr, DVList& dvl, int hdunum);
     
    264265 DVList dvl_;          /**< DVList for transferring keywords */
    265266 vector<int>  taille_des_chaines_; /**< Bintable parameters:   length of the char* variables */
     267
     268  double dnull_;
     269  float fnull_;
     270  int inull_;
     271  string cnull_;
     272
     273 
    266274
    267275 };
Note: See TracChangeset for help on using the changeset viewer.