⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snaphu_io.c

📁 phase unwrapping algorithm for SAR interferometry
💻 C
📖 第 1 页 / 共 5 页
字号:
	}else if(!strcmp(str2,"SINGLEANTENNATRANSMIT") || !strcmp(str2,"SAT")		 || !strcmp(str2,"SINGLEANTTRANSMIT")){	  params->transmitmode=SINGLEANTTRANSMIT;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"BASELINE")){	if(!(badparam=StringToDouble(str2,&(params->baseline)))){	  params->bperp=0;	}      }else if(!strcmp(str1,"BASELINEANGLE_RAD")){	if(!(badparam=StringToDouble(str2,&(params->baselineangle)))){	  params->bperp=0;	}      }else if(!strcmp(str1,"BASELINEANGLE_DEG")){	if(!(badparam=StringToDouble(str2,&(params->baselineangle)))){	  (params->baselineangle)*=(PI/180.0);	  params->bperp=0;	}      }else if(!strcmp(str1,"NLOOKSRANGE")){	badparam=StringToLong(str2,&(params->nlooksrange));      }else if(!strcmp(str1,"NLOOKSAZ")){	badparam=StringToLong(str2,&(params->nlooksaz));      }else if(!strcmp(str1,"NLOOKSOTHER")){	badparam=StringToLong(str2,&(params->nlooksother));      }else if(!strcmp(str1,"NCORRLOOKS")){	badparam=StringToDouble(str2,&(params->ncorrlooks));      }else if(!strcmp(str1,"NCORRLOOKSRANGE")){	badparam=StringToLong(str2,&(params->ncorrlooksrange));      }else if(!strcmp(str1,"NCORRLOOKSAZ")){	badparam=StringToLong(str2,&(params->ncorrlooksaz));      }else if(!strcmp(str1,"NEARRANGE") || !strcmp(str1,"NOMRANGE")){	badparam=StringToDouble(str2,&(params->nearrange));      }else if(!strcmp(str1,"DR")){	badparam=StringToDouble(str2,&(params->dr));      }else if(!strcmp(str1,"DA")){	badparam=StringToDouble(str2,&(params->da));      }else if(!strcmp(str1,"RANGERES")){	badparam=StringToDouble(str2,&(params->rangeres));      }else if(!strcmp(str1,"AZRES")){	badparam=StringToDouble(str2,&(params->azres));      }else if(!strcmp(str1,"LAMBDA")){	badparam=StringToDouble(str2,&(params->lambda));      }else if(!strcmp(str1,"KDS") || !strcmp(str1,"KSD")){	if(!strcmp(str1,"KSD")){	  fprintf(sp0,"WARNING: parameter KSD interpreted as KDS (%s:%ld)\n",		  conffile,nlines);	}	badparam=StringToDouble(str2,&(params->kds));      }else if(!strcmp(str1,"SPECULAREXP") || !strcmp(str1,"N")){	badparam=StringToDouble(str2,&(params->specularexp));      }else if(!strcmp(str1,"DZRCRITFACTOR")){	badparam=StringToDouble(str2,&(params->dzrcritfactor));      }else if(!strcmp(str1,"SHADOW")){	badparam=SetBooleanSignedChar(&(params->shadow),str2);      }else if(!strcmp(str1,"DZEIMIN")){	badparam=StringToDouble(str2,&(params->dzeimin));      }else if(!strcmp(str1,"LAYWIDTH")){	badparam=StringToLong(str2,&(params->laywidth));      }else if(!strcmp(str1,"LAYMINEI")){	badparam=StringToDouble(str2,&(params->layminei));      }else if(!strcmp(str1,"SLOPERATIOFACTOR")){	badparam=StringToDouble(str2,&(params->sloperatiofactor));      }else if(!strcmp(str1,"SIGSQEI")){	badparam=StringToDouble(str2,&(params->sigsqei));      }else if(!strcmp(str1,"DRHO")){	badparam=StringToDouble(str2,&(params->drho));      }else if(!strcmp(str1,"RHOSCONST1")){	badparam=StringToDouble(str2,&(params->rhosconst1));      }else if(!strcmp(str1,"RHOSCONST2")){	badparam=StringToDouble(str2,&(params->rhosconst2));      }else if(!strcmp(str1,"CSTD1")){	badparam=StringToDouble(str2,&(params->cstd1));      }else if(!strcmp(str1,"CSTD2")){	badparam=StringToDouble(str2,&(params->cstd2));      }else if(!strcmp(str1,"CSTD3")){	badparam=StringToDouble(str2,&(params->cstd3));      }else if(!strcmp(str1,"DEFAULTCORR")){	badparam=StringToDouble(str2,&(params->defaultcorr));      }else if(!strcmp(str1,"RHOMINFACTOR")){	badparam=StringToDouble(str2,&(params->rhominfactor));      }else if(!strcmp(str1,"DZLAYPEAK")){	badparam=StringToDouble(str2,&(params->dzlaypeak));      }else if(!strcmp(str1,"AZDZFACTOR")){	badparam=StringToDouble(str2,&(params->azdzfactor));      }else if(!strcmp(str1,"DZEIFACTOR")){	badparam=StringToDouble(str2,&(params->dzeifactor));      }else if(!strcmp(str1,"DZEIWEIGHT")){	badparam=StringToDouble(str2,&(params->dzeiweight));      }else if(!strcmp(str1,"DZLAYFACTOR")){	badparam=StringToDouble(str2,&(params->dzlayfactor));      }else if(!strcmp(str1,"LAYCONST")){	badparam=StringToDouble(str2,&(params->layconst));      }else if(!strcmp(str1,"LAYFALLOFFCONST")){	badparam=StringToDouble(str2,&(params->layfalloffconst));      }else if(!strcmp(str1,"SIGSQSHORTMIN")){	badparam=StringToLong(str2,&(params->sigsqshortmin));      }else if(!strcmp(str1,"SIGSQLAYFACTOR")){	badparam=StringToDouble(str2,&(params->sigsqlayfactor));      }else if(!strcmp(str1,"DEFOAZDZFACTOR")){	badparam=StringToDouble(str2,&(params->defoazdzfactor));      }else if(!strcmp(str1,"DEFOTHRESHFACTOR")){	badparam=StringToDouble(str2,&(params->defothreshfactor));      }else if(!strcmp(str1,"DEFOMAX_CYCLE")){	badparam=StringToDouble(str2,&(params->defomax));      }else if(!strcmp(str1,"DEFOMAX_RAD")){	if(!(badparam=StringToDouble(str2,&(params->defomax)))){	  params->defomax/=TWOPI;	}      }else if(!strcmp(str1,"SIGSQCORR")){	badparam=StringToDouble(str2,&(params->sigsqcorr));      }else if(!strcmp(str1,"DEFOLAYCONST") || !strcmp(str1,"DEFOCONST")){	badparam=StringToDouble(str2,&(params->defolayconst));      }else if(!strcmp(str1,"INITMAXFLOW")){	badparam=StringToLong(str2,&(params->initmaxflow));      }else if(!strcmp(str1,"ARCMAXFLOWCONST")){	badparam=StringToLong(str2,&(params->arcmaxflowconst));      }else if(!strcmp(str1,"MAXFLOW")){	badparam=StringToLong(str2,&(params->maxflow));      }else if(!strcmp(str1,"KROWEI") || !strcmp(str1,"KROW")){	badparam=StringToLong(str2,&(params->krowei));      }else if(!strcmp(str1,"KCOLEI") || !strcmp(str1,"KCOL")){	badparam=StringToLong(str2,&(params->kcolei));      }else if(!strcmp(str1,"KPERPDPSI")){	badparam=StringToLong(str2,&(params->kperpdpsi));      }else if(!strcmp(str1,"KPARDPSI")){	badparam=StringToLong(str2,&(params->kpardpsi));      }else if(!strcmp(str1,"THRESHOLD")){	badparam=StringToDouble(str2,&(params->threshold));      }else if(!strcmp(str1,"INITDZR")){	badparam=StringToDouble(str2,&(params->initdzr));      }else if(!strcmp(str1,"INITDZSTEP")){	badparam=StringToDouble(str2,&(params->initdzstep));      }else if(!strcmp(str1,"MAXCOST")){	badparam=StringToDouble(str2,&(params->maxcost));      }else if(!strcmp(str1,"COSTSCALE")){	badparam=StringToDouble(str2,&(params->costscale));      }else if(!strcmp(str1,"COSTSCALEAMBIGHT")){	badparam=StringToDouble(str2,&(params->costscaleambight));      }else if(!strcmp(str1,"DNOMINCANGLE")){	badparam=StringToDouble(str2,&(params->dnomincangle));      }else if(!strcmp(str1,"CS2SCALEFACTOR")){	badparam=StringToLong(str2,&(params->cs2scalefactor));      }else if(!strcmp(str1,"PIECEFIRSTROW")){	badparam=StringToLong(str2,&(params->piecefirstrow));      }else if(!strcmp(str1,"PIECEFIRSTCOL")){	badparam=StringToLong(str2,&(params->piecefirstcol));      }else if(!strcmp(str1,"PIECENROW")){	badparam=StringToLong(str2,&(params->piecenrow));      }else if(!strcmp(str1,"PIECENCOL")){	badparam=StringToLong(str2,&(params->piecencol));      }else if(!strcmp(str1,"NTILEROW")){	badparam=StringToLong(str2,&(params->ntilerow));      }else if(!strcmp(str1,"NTILECOL")){	badparam=StringToLong(str2,&(params->ntilecol));      }else if(!strcmp(str1,"ROWOVRLP")){	badparam=StringToLong(str2,&(params->rowovrlp));      }else if(!strcmp(str1,"COLOVRLP")){	badparam=StringToLong(str2,&(params->colovrlp));      }else if(!strcmp(str1,"TILECOSTTHRESH")){	badparam=StringToLong(str2,&(params->tilecostthresh));      }else if(!strcmp(str1,"MINREGIONSIZE")){	badparam=StringToLong(str2,&(params->minregionsize));      }else if(!strcmp(str1,"TILEEDGEWEIGHT")){	badparam=StringToDouble(str2,&(params->tileedgeweight));      }else if(!strcmp(str1,"SCNDRYARCFLOWMAX")){	badparam=StringToLong(str2,&(params->scndryarcflowmax));	      }else if(!strcmp(str1,"ASSEMBLEONLY")){	if(!strcmp(str2,"FALSE")){	  params->assembleonly=FALSE;	}else{	  params->assembleonly=TRUE;	  StrNCopy(params->tiledir,str2,MAXSTRLEN);	}      }else if(!strcmp(str1,"RMTMPTILE")){	badparam=SetBooleanSignedChar(&(params->rmtmptile),str2);      }else if(!strcmp(str1,"MINCONNCOMPFRAC")){	badparam=StringToDouble(str2,&(params->minconncompfrac));      }else if(!strcmp(str1,"CONNCOMPTHRESH")){	badparam=StringToLong(str2,&(params->conncompthresh));      }else if(!strcmp(str1,"MAXNCOMPS")){	badparam=StringToLong(str2,&(params->maxncomps));      }else if(!strcmp(str1,"NSHORTCYCLE")){	badparam=StringToLong(str2,&(params->nshortcycle));      }else if(!strcmp(str1,"MAXNEWNODECONST")){	badparam=StringToDouble(str2,&(params->maxnewnodeconst));      }else if(!strcmp(str1,"MAXNFLOWCYCLES")){	badparam=StringToLong(str2,&(params->maxnflowcycles));      }else if(!strcmp(str1,"MAXCYCLEFRACTION")){	badparam=StringToDouble(str2,&(params->maxcyclefraction));	params->maxnflowcycles=USEMAXCYCLEFRACTION;      }else if(!strcmp(str1,"SOURCEMODE")){	badparam=StringToLong(str2,&(params->sourcemode));      }else if(!strcmp(str1,"NPROC") || !strcmp(str1,"NTHREADS")){	badparam=StringToLong(str2,&(params->nthreads));      }else if(!strcmp(str1,"COSTINFILE")){	StrNCopy(infiles->costinfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"COSTOUTFILE")){	StrNCopy(outfiles->costoutfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"LOGFILE")){	StrNCopy(outfiles->logfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"INFILEFORMAT")){	if(!strcmp(str2,"COMPLEX_DATA")){	  infiles->infileformat=COMPLEX_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->infileformat=FLOAT_DATA;	}else if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->infileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->infileformat=ALT_SAMPLE_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"UNWRAPPEDINFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->unwrappedinfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->unwrappedinfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->unwrappedinfileformat=FLOAT_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"MAGFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->magfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->magfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->magfileformat=FLOAT_DATA;	}else if(!strcmp(str2,"COMPLEX_DATA")){	  infiles->magfileformat=COMPLEX_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"OUTFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  outfiles->outfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  outfiles->outfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  outfiles->outfileformat=FLOAT_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"CORRFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->corrfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->corrfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->corrfileformat=FLOAT_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"AMPFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->ampfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->ampfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->ampfileformat=FLOAT_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"ESTFILEFORMAT")){	if(!strcmp(str2,"ALT_LINE_DATA")){	  infiles->estfileformat=ALT_LINE_DATA;	}else if(!strcmp(str2,"ALT_SAMPLE_DATA")){	  infiles->estfileformat=ALT_SAMPLE_DATA;	}else if(!strcmp(str2,"FLOAT_DATA")){	  infiles->estfileformat=FLOAT_DATA;	}else{	  badparam=TRUE;	}      }else if(!strcmp(str1,"INITFILE")){	StrNCopy(outfiles->initfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"FLOWFILE")){	StrNCopy(outfiles->flowfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"EIFILE")){	StrNCopy(outfiles->eifile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"ROWCOSTFILE")){	StrNCopy(outfiles->rowcostfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"COLCOSTFILE")){	StrNCopy(outfiles->colcostfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"MSTROWCOSTFILE")){	StrNCopy(outfiles->mstrowcostfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"MSTCOLCOSTFILE")){	StrNCopy(outfiles->mstcolcostfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"MSTCOSTSFILE")){	StrNCopy(outfiles->mstcostsfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"CORRDUMPFILE")){	StrNCopy(outfiles->corrdumpfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"RAWCORRDUMPFILE")){	StrNCopy(outfiles->rawcorrdumpfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"CONNCOMPFILE")){	StrNCopy(outfiles->conncompfile,str2,MAXSTRLEN);      }else if(!strcmp(str1,"REGROWCONNCOMPS")){	badparam=SetBooleanSignedChar(&(params->regrowconncomps),str2);      }else{	fprintf(sp0,"unrecognized configuration parameter '%s' (%s:%ld)\n",		str1,conffile,nlines);	exit(ABNORMAL_EXIT);      }      /* give an error if we had trouble interpreting the line */      if(badparam){	fprintf(sp0,"illegal argument %s for parameter %s (%s:%ld)\n",		str2,str1,conffile,nlines);	exit(ABNORMAL_EXIT);      }    }  }  /* finish up */  fclose(fp);  if(nparams>1){    fprintf(sp1,"%ld parameters input from file %s (%ld lines total)\n",	    nparams,conffile,nlines);  }else{    if(nlines>1){      fprintf(sp1,"%ld parameter input from file %s (%ld lines total)\n",	      nparams,conffile,nlines);    }else{      fprintf(sp1,"%ld parameter input from file %s (%ld line total)\n",	      nparams,conffile,nlines);    }  }}/* function: WriteConfigLogFile() * ------------------------------ * Writes a text log file of configuration parameters and other * information.  The log file is in a format compatible to be used as * a configuration file.   */void WriteConfigLogFile(int argc, char *argv[], infileT *infiles, 			outfileT *outfiles, long linelen, paramT *params){  FILE *fp;  time_t t[1];  long k;  char buf[MAXSTRLEN], *ptr;  /* see if we need to write a log file */  if(strlen(outfiles->logfile)){    /* open the log file */    if((fp=fopen(outfiles->logfile,"w"))==NULL){      fprintf(sp0,"unable to write to log file %s\n",outfiles->logfile);      exit(ABNORMAL_EXIT);    }    fprintf(sp1,"Logging run-time parameters to file %s\n",outfiles->logfile);        /* print some run-time environment information */    fprintf(fp,"# %s v%s\n",PROGRAMNAME,VERSION);    time(t);    fprintf(fp,"# Log file generated %s",ctime(t));    ptr=getcwd(buf,MAXSTRLEN);    if(ptr!=NULL){      fprintf(fp,"# Current working directory: %s\n",buf);    }else{      fprintf(fp,"# Could not determine current working directory\n");    }    fprintf(fp,"# Command line call:");    for(k=0;k<argc;k++){      fprintf(fp," %s",argv[k]);    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -