Ignore:
Timestamp:
Nov 22, 1999, 12:20:36 AM (26 years ago)
Author:
ansari
Message:

Corrections bug divers ds FitsIO - Reza 21/11/99

File:
1 edited

Legend:

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

    r605 r609  
    341341  if (sph.NbPixels() != npixels)
    342342    {
    343       cout << " found " << npixels << " pixels" << endl;
    344       cout << " expected " << sph.NbPixels() << endl;
     343      //DBG      cout << " found " << npixels << " pixels" << endl;
     344      //DBG cout << " expected " << sph.NbPixels() << endl;
    345345      if (nside <= 0 )
    346346        {
     
    352352        {
    353353          sph.Resize(nside);
    354           cout << " resizing the sphere to nside= " << nside  << endl;
    355         }
    356       else
    357         {
    358           cout << " FITSIOSERVER : same resolution, surprising ! " << endl;
     354          cout << "FitsIoServer::load(SphereGorski<double> ...) ReSizing to NSide= " << nside  << endl;
     355        }
     356      //      else
     357      //        {
     358      //          cout << " FITSIOSERVER : same resolution, surprising ! " << endl;
    359359//        exit(0);   $CHECK$   Ca peut etre OK , non ??  Reza 20/11/99
    360         }
     360      //        }
    361361    }
    362362  for (int j = 0; j < sph.NbPixels(); j++) sph(j)= (double)r_8tab_[j];
     
    386386  if (sph.NbPixels() != npixels)
    387387    {
    388       cout << " found " << npixels << " pixels" << endl;
    389       cout << " expected " << sph.NbPixels() << endl;
     388      //DBG      cout << " found " << npixels << " pixels" << endl;
     389      //DBG      cout << " expected " << sph.NbPixels() << endl;
    390390      if (nside <= 0 )
    391391        {
     
    397397        {
    398398          sph.Resize(nside);
    399           cout << " resizing the sphere to nside= " << nside  << endl;
    400         }
    401       else
    402         {
    403           cout << " FITSIOSERVER : same resolution, surprising ! " << endl;
     399          cout << "FitsIoServer::load(SphereGorski<float> ...) ReSizing to NSide= " << nside  << endl;
     400        }
     401      //      else
     402      //        {
     403      //          cout << " FITSIOSERVER : same resolution, surprising ! " << endl;
    404404//        exit(0);   $CHECK$ - Il ne faut pas sortir, me semble-t-il , Reza 20/11/99
    405         }
     405      //        }
    406406    }
    407407  //  cout << " fin relecture debut transfert" << endl;
     
    716716
    717717  // extension name
    718   char extname[] = "NTuple_Binary_tbl";
     718  char * extname = "NTuple_Binary_tbl";
    719719
    720720  // define the name, and the datatype for the tfields columns
     
    760760        }
    761761      fits_write_col(fptr,TFLOAT,i+1,firstrow,firstelem,nrows,dens,&status);
    762       delete []dens;
     762      delete[] dens;
    763763    }
    764764
     
    774774    {
    775775      char keytype= (*it).second.typ;
    776       char keyname[9]="";
     776      char keyname[10];
    777777      strncpy(keyname,(*it).first.substr(0,64).c_str(),8);
    778       char comment[FLEN_COMMENT]="";
     778      char comment[FLEN_COMMENT];
    779779
    780780      switch (keytype)
     
    796796        case 'S' :
    797797          {
    798             char strval[]="";
    799             strcpy(strval,(*it).second.mtv.strv);
     798            char strval[128];
     799            strncpy(strval,(*it).second.mtv.strv,127);
    800800            strcpy(comment,"S character string");
    801801            fits_write_key(fptr,TSTRING,keyname,&strval,comment,&status);
     
    11511151
    11521152  //dvl.Print();
     1153  char keyname[16];
     1154  int flen_keyword = 9;
     1155  char comment[FLEN_COMMENT];
     1156  char strval[128];
     1157
    11531158  DVList::ValList::const_iterator it;
    11541159  for(it = dvl.Begin(); it != dvl.End(); it++) 
    11551160    {
    11561161      int datatype=  key_type_PL2FITS( (*it).second.typ);
    1157       char keyname[]="";
    1158       int flen_keyword = 9;
    11591162      // FLEN_KEYWORD est la longueur max d'un mot-cle. Il doit y avoir une
    11601163      // erreur dans la librairie fits qui donne FLEN_KEYWORD=72
    11611164      // contrairement a la notice qui donne FLEN_KEYWORD=9 (ch. 5, p.39)
    1162       strncpy(keyname, (*it).first.substr(0,64).c_str(),flen_keyword-1);
    1163       char comment[FLEN_COMMENT]="";
     1165      //$CHECK$ Reza 20/11/99
     1166      //      strncpy(keyname, (*it).first.substr(0,64).c_str(),flen_keyword-1);
     1167      strncpy(keyname, (*it).first.substr(0,64).c_str(),flen_keyword); 
     1168      keyname[flen_keyword] = '\0';
    11641169      int ival=0;
    11651170      double dval=0.;
    1166       char strval[]="";
    11671171      switch (datatype)
    11681172        {
     
    11701174          ival=(*it).second.mtv.iv;
    11711175          strcpy(comment,"I entier");
     1176//DBG          cerr << " Writing I " << (string)keyname << " = " << ival << endl;
    11721177          fits_write_key(fptr, datatype, keyname, &ival, comment, &status);
    11731178          break;
     
    11751180          dval=(*it).second.mtv.dv;
    11761181          strcpy(comment,"D double");
     1182//DBG          cerr << " Writing D " << (string)keyname << " = " << dval << endl;
    11771183          fits_write_key(fptr, datatype, keyname, &dval, comment, &status);
    11781184          break;
    11791185        case TSTRING :
    1180           strcpy(strval, (*it).second.mtv.strv);
     1186          strncpy(strval, (*it).second.mtv.strv, 128); strval[127] = '\0';
    11811187          strcpy(comment,"S character string");
     1188//DBG          cerr << " Writing S " << (string)keyname << " = " << (string)strval << endl;
    11821189          fits_write_key(fptr, datatype, keyname, &strval, comment, &status);
    11831190          break;
     
    11881195      if( status ) printerror( status );
    11891196    }
     1197
     1198  strncpy(keyname, "CREATOR",flen_keyword); keyname[flen_keyword] = '\0';
     1199  strcpy(strval, "SOPHYA");
     1200  strcpy(comment," SOPHYA Package - FITSIOServer ");
     1201  fits_write_key(fptr, TSTRING, keyname, &strval, comment, &status);
     1202  if( status ) printerror( status );
     1203
     1204  fits_write_comment(fptr,"..............................................", &status);
     1205  fits_write_comment(fptr, " SOPHYA package - FITSIOSever ", &status);
     1206  fits_write_comment(fptr, " (C) LAL/IN2P3-CNRS Orsay,  FRANCE 1999", &status);
     1207  fits_write_comment(fptr, " (C) DAPNIA/CEA     Saclay, FRANCE 1999", &status);
     1208  fits_write_comment(fptr,"..............................................", &status);
     1209  if( status ) printerror( status );
     1210
    11901211  // close the file
    11911212  fits_close_file(fptr, &status);
     
    12071228
    12081229  // create new FITS file 
    1209   fits_create_file(&fptr, flnm, &status);
     1230  fits_create_file(&fptr, flnm, &status);
     1231  //DBG  cerr << " DBG - Apres fits_create_file status = " << status << endl;
    12101232  if( status )  printerror( status );
    12111233
     
    12161238  // write the current date
    12171239  fits_write_date(fptr, &status);
     1240  //DBG  cerr << " DBG - Apres write_date status = " << status << endl;
    12181241  if( status )  printerror( status );
    12191242
     
    12421265 fits_create_tbl(fptr,BINARY_TBL,nrows,tfields,ttype,tform,
    12431266                 NULL,extname,&status);
     1267  //DBG  cerr << " DBG - Apres create_tbl status = " << status << endl;
    12441268  if( status )  printerror( status );
    12451269  for( int ii = 0; ii < tfields; ii++)
     
    12551279    case TDOUBLE :
    12561280      fits_write_col(fptr, TDOUBLE, 1, 1, 1, nelements, r_8tab_, &status);
    1257       if( status )  printerror( status, "probleme dans ecriture du tableau de doubles" );
     1281      if( status )
     1282        printerror( status, "planck_write_bntbl: Error writing double table" );
    12581283      break;
    12591284
    1260 
    12611285    case TFLOAT :
    1262       for (int kk=0; kk<10; kk++) cout << r_4tab_[kk] << endl;
     1286 //DBG!!! $CHECK$ Reza      for (int kk=0; kk<10; kk++) cout << r_4tab_[kk] << endl;
    12631287      fits_write_col(fptr, TFLOAT, 1, 1, 1, nelements, r_4tab_, &status);
    1264       if( status ) printerror( status );
     1288      if( status )
     1289        printerror( status, "planck_write_bntbl: Error writing float table" );
    12651290      break;
    12661291    case TINT :
    12671292      fits_write_col(fptr, TINT, 1, 1, 1, nelements, i_4tab_, &status);
    1268       if( status ) printerror( status );
     1293      if( status )
     1294        printerror( status, "planck_write_bntbl: Error writing int table");
    12691295      break;
    12701296    default :
     
    12751301  fits_write_comment(fptr, " ", &status);
    12761302  fits_write_comment(fptr, " ", &status);
     1303  //DBG  cerr << " DBG - Apres write_comment1 status = " << status << endl; 
    12771304  if( status ) printerror( status );
    12781305  fits_write_comment(fptr,"--------------------------------------------", &status);
    12791306  fits_write_comment(fptr, comment1, &status);
    12801307  fits_write_comment(fptr,"--------------------------------------------", &status);
     1308  //DBG  cerr << " DBG - Apres write_comment2 status = " << status << endl; 
    12811309  if( status ) printerror( status );
    12821310
     
    12901318    {
    12911319      int datatype=  key_type_PL2FITS( (*it).second.typ);
    1292       char keyname[]="";
    1293       strncpy(keyname, (*it).first.substr(0,64).c_str(),flen_keyword-1);
    1294       char comment[FLEN_COMMENT]="";
     1320      char keyname[16];
     1321      strncpy(keyname, (*it).first.substr(0,64).c_str(),flen_keyword);
     1322      keyname[flen_keyword] = '\0';
     1323      char comment[FLEN_COMMENT];
    12951324      int ival=0;
    12961325      double dval=0.;
    1297       char strval[]="";
     1326      char strval[128];
    12981327      switch (datatype)
    12991328        {
     
    13011330          ival=(*it).second.mtv.iv;
    13021331          strcpy(comment," ");
     1332//DBG          cerr << " Writing I " << (string)keyname << " = " << ival << endl;
    13031333          fits_write_key(fptr, datatype, keyname, &ival, comment, &status);
    13041334          break;
     
    13061336          dval=(*it).second.mtv.dv;
    13071337          strcpy(comment," ");
     1338//DBG          cerr << " Writing D " << (string)keyname << " = " << dval << endl;
    13081339          fits_write_key(fptr, datatype, keyname, &dval, comment, &status);
    13091340          break;
    13101341        case TSTRING :
    1311           strcpy(strval, (*it).second.mtv.strv);
     1342          strncpy(strval, (*it).second.mtv.strv, 128); strval[127] = '\0';
    13121343          strcpy(comment," ");
     1344//DBG          cerr << " Writing S " << (string)keyname << " = " << (string)strval << endl;
    13131345          fits_write_key(fptr, datatype, keyname, &strval, comment, &status);
    13141346          break;
     
    13191351      if( status ) printerror( status );
    13201352    }
    1321   //char keyname[]="";
    1322   //char strval[]="";
    1323   //char comment[FLEN_COMMENT]="";
    1324   //strncpy(keyname, "CREATOR",flen_keyword-1);
    1325   //strcpy(strval, "SOPHYA");
    1326   //strcpy(comment," Orsay");
    1327   //fits_write_key(fptr, TSTRING, keyname, &strval, comment, &status);
    1328   //if( status ) printerror( status );
     1353  char keyname[16];
     1354  char strval[32];
     1355  char comment[FLEN_COMMENT];
     1356  strncpy(keyname, "CREATOR",flen_keyword); keyname[flen_keyword] = '\0';
     1357  strcpy(strval, "SOPHYA");
     1358  strcpy(comment," SOPHYA Package - FITSIOServer ");
     1359  fits_write_key(fptr, TSTRING, keyname, &strval, comment, &status);
     1360  if( status ) printerror( status );
    13291361  // close the file
    13301362  fits_close_file(fptr, &status);
     1363  //DBG  cerr << " DBG - Apres close status = " << status << endl; 
    13311364  if( status )  printerror( status );
    13321365}
     
    14201453  int num = 0;
    14211454  char comment2[FLEN_COMMENT] = "x";
    1422   char keyname[]= "";
    1423   char datekey[]= "DATE";
    1424   char endkey[] = "END";
     1455  char keyname[16];
     1456  char * datekey= "DATE";
     1457  char * endkey= "END";
    14251458  char typ='x';
    14261459  int ival;
    14271460  double dval;
    1428   char strval[]="";
     1461  char strval[90];
    14291462  // on a convenu que les mots cles utilisateur sont apres le mot cle DATE
    14301463  // on va jusqu'au mot cle DATE
     
    14371470      num++;
    14381471      fits_read_record(fptr, num, card, &status);
    1439       strncpy(keyname,card,flen_keyword-1);
     1472      strncpy(keyname,card,flen_keyword-1); keyname[10] = '\0';
    14401473    }
    14411474  if (status != 0 )
     
    14491482      // on lit un record pour recuperer le nom du mot-cle
    14501483      fits_read_record(fptr, num, card, &status);
    1451       strncpy(keyname,card,flen_keyword-1);
     1484      strncpy(keyname,card,flen_keyword-1);  keyname[10] = '\0';
    14521485      char value[FLEN_VALUE];
    14531486      // on recupere le premier caractere du commentaire, qui contient
     
    14811514              break;
    14821515            default :
    1483               cout << " FITSIOSERVER::planck_read_img : type de donnee non prevu " << endl;
     1516              //              cout << " FITSIOSERVER::planck_read_img -> DVList Type ? for key "
     1517              //                   << (string)keyname << endl;
    14841518              break;
    14851519            }
     
    15331567   if( status )  printerror( status );
    15341568
    1535   char binta[] = "BINTABLE";
     1569  char * binta = "BINTABLE";
    15361570  if (  strncmp(xtension, binta,8) != 0)
    15371571    //   if (xtension !="BINTABLE")
     
    16311665  char dtype;
    16321666  //char bidon[LEN_KEYWORD];
    1633   char comkey[] = "COMMENT";
     1667  char * comkey = "COMMENT";
    16341668
    16351669   for(int j = 1; j <= nkeys; j++)
Note: See TracChangeset for help on using the changeset viewer.