示例#1
0
inverted_index_dump::inverted_index_dump(
    const inverted_index_storage& storage) {
  convert_table(storage.inv_, storage.column2id_.id2key_, inv);
}
示例#2
0
inverted_index_dump::inverted_index_dump(
    const sparse_matrix_storage& storage) {
  convert_table(storage.tbl_, storage.column2id_.id2key_, inv);
}
示例#3
0
文件: convert.c 项目: snfactory/ifuio
void convert_datacube(char *in,char *out)
{
  E3D_file src,dst;
  SPECTRUM sig, noise, *rms, *signal;
  SPAXEL *spaxels;
  E3Dspec_desc *ptdesc;
  int i, specId, nbspax, npix=-1;
  double start = -1, end;
  char extname[lg_name+1], tablename[lg_name+1];

  if (open_E3D_file(&src,in,"I")<0) {
    print_error("Cannot open input file %s",in);
    exit_session(ERR_OPEN);
  }
  else {
    if (has_common_bounds(&src)) {
      get_common_param(&src,&npix,&start,&end);
    }
    if (create_E3D_file(&dst,out,npix,start,src.step,src.data_type,src.ident,src.cunit) < 0) {
      close_E3D_file(&src);
      print_error("Cannot create output file %s",out);
      exit_session(ERR_CREAT);
    }
    else {
      signal = NULL;
      rms = NULL;
      ptdesc = NULL;
      if (src.signal != NULL) {
        signal = &sig;
        ptdesc = src.signal;
      }
      if (src.noise != NULL) {
        rms = &noise;
        ptdesc = src.noise;
      }
      else { 
        if (src.signal == NULL) {
          close_E3D_file(&src);
          print_error("Inconsistent input file (no spectra inside)");
          exit_session(ERR_BAD_PARAM);
        }
      }

      reset_print_progress();
      for (i=0;i<src.nbspec;i++) {
        print_progress("Convert datacube: ", (int)((100*i)/src.nbspec),1);
        specId = ptdesc[i].specId;
        get_E3D_spec(&src,signal,rms,specId);
        set_quality(rms);
        put_E3D_spec(&dst,signal,rms,specId);
        nbspax = get_E3D_spaxels(&src,specId,&spaxels);
        put_E3D_spaxels(&dst,specId,nbspax,spaxels);
      }
      if (src.data_format == TIGER_FORMAT) {	/* set groups */
        set_tiger_group(&src);
      }
      put_E3D_groups(&dst,src.ngroups,src.groups);
      print_progress("Convert datacube: ", (int)100,1);
	  
      CP_non_std_desc(&src,&dst);
      close_E3D_file(&src);
      close_E3D_file(&dst);

      printf("\n");

      if (src.data_format == TIGER_FORMAT) {	/* save table in special extension */
        get_science_table_name(in,tablename);
	append_tbl_extension(out, OutputIO.basic_io);
        sprintf(extname,"%s[%s]",out,E3D_TIGER_EXT);
        convert_table(tablename,extname);
      }
      if (dst.data_format == TIGER_FORMAT) {	/* save science extension as table */
        strcpy(tablename,out);
	remove_file_extension(tablename);
        sprintf(extname,"%s[%s]",in,E3D_TIGER_EXT);
        convert_table(extname,tablename);
      }
    }
  }
}