Пример #1
0
setparams()
{
    trakflag = FALSE;
    input = getparam("in");
    times = getparam("times");

    xvar = getparam("xvar");
    if (hasvalue("xlabel"))
        xlabel = getparam("xlabel");
    else
	xlabel = xvar;
    setrange(xrange, getparam("xrange"));

    yvar = getparam("yvar");
    if (hasvalue("ylabel"))
        ylabel = getparam("ylabel");
    else
	ylabel = yvar;
    setrange(yrange, getparam("yrange"));
 
    zvar = getparam("zvar");
    if (hasvalue("zlabel"))
        zlabel = getparam("zlabel");
    else
	zlabel = zvar;
    setrange(zrange, getparam("zrange"));
 
    visib = getparam("visib");
    psize = getparam("psize");
    fillcircle = getbparam("fill_circle");

    if (hasvalue("xticks"))
      setticks(xticks, &nxticks, getparam("xticks"));
    else {
      xticks[0] = xrange[0];
      xticks[1] = xrange[1];
      nxticks = - getiparam("nxticks");
    } 
    if (hasvalue("yticks"))
      setticks(yticks, &nyticks, getparam("yticks"));
    else {
      yticks[0] = yrange[0];
      yticks[1] = yrange[1];
      nyticks = - getiparam("nyticks");
    } 
    if (hasvalue("zticks"))
      setticks(zticks, &nzticks, getparam("zticks"));
    else {
      zticks[0] = zrange[0];
      zticks[1] = zrange[1];
      nzticks = - getiparam("nzticks");
    } 

    s2box_opt = getparam("s2box");
    
#ifdef COLOR
    color = getparam("color");
    setrange(crange, getparam("crange"));
#endif
}
Пример #2
0
void setparams()
{
    input = getparam("in");
    otimes = getparam("times");
    if (strcmp(otimes,"all")==0) {
        trange[0] = -HUGE;
        trange[1] =  HUGE;
    } else
    	setrange(trange, otimes);

    nplot=getiparam("nplot");    

    xvar = getparam("xvar");
    xvar_idx = get_idx(xvar);
    if (hasvalue("xlabel"))
        xlabel = getparam("xlabel");
    else
        xlabel = xvar;
    setrange(xrange, getparam("xrange"));

    yvar = getparam("yvar");
    yvar_idx = get_idx(yvar);
    if (hasvalue("ylabel"))
        ylabel = getparam("ylabel");
    else
        ylabel = yvar;
    setrange(yrange, getparam("yrange"));

    visib = getparam("visib");
    psize = getparam("psize");
#ifdef COLOR
    color = getparam("color");
#endif
    maxsteps = getiparam("maxsteps");
}
Пример #3
0
int	FMmark_active( FMAP_T *fmap, char *dbname, int active[] )
{
	char	*dp, *pp, *pc;
	char	dname[ 32 ];
	char	range[ 32 ];
	int	f, pcnt, p, p1;
	int	pl, ph;
	FM_ENTRY_T	*fme;

	dp = dbname;
	if( pp = strchr( dp, ':' ) ){
		strncpy( dname, dp, pp - dp );
		dname[ pp - dp ] = '\0';
	}else
		strcpy( dname, dp );

	if( !strcmp( dname, "all" ) ){
		for( f = 0; f < fmap->f_nentries; f++ )
			active[ f ] = 1;
		return( 0 );
	}

	if( ( fme = FMget_fmentry( fmap, dname, UNDEF ) ) == NULL ){
		fprintf( stderr, "FMmark_active: unknown db '%s'", dp );
		return( 1 );
	}

	for( pcnt = 0, p1 = p = fme - fmap->f_entries; ; ){
		pcnt++;
		if( p == fmap->f_nentries - 1 )
			break;
		p++;
		fme++;
		if( strcmp( fme->f_dname, dname ) )
			break;
	}

	if( pp == NULL || pp[1] == '\0' ){
		for( p = 0; p < pcnt; p++ )
			active[ p1 + p ] = 1;
		return( 0 );
	}

	for( ++pp; pp && *pp; ){
		if( pc = strchr( pp, ',' ) ){
			strncpy( range, pp, pc - pp );
			range[ pc - pp ] = '\0';
			pp = pc + 1;
		}else{
			strcpy( range, pp );
			pp = pc;
		}
		if( setrange( range, &pl, &ph, pcnt ) )
			return( 1 );
		for( p = pl - 1; p < ph; p++ )
			active[ p1 + p ] = 1;
	}

	return( 0 );
}
Пример #4
0
int main(int argc, string argv[])
{
  real rrange[2], rmax;
  int np;
  double lgrs;
  gsprof *gsp;
  stream ostr;

  initparam(argv, defv);
  setrange(rrange, getparam("rrange"));
  np = getiparam("npoint");
  rmax = pow(2.0, floor(log2(32.0 / getdparam("alpha"))));
  if (rmax < rrange[1] && getbparam("smartrange")) {
    lgrs = log2(rrange[1] / rrange[0]) / (np - 1);
    np = 1 + log2(rmax / rrange[0]) / lgrs;
    eprintf("[%s: warning: npoint = %d -> %d  rrange[1] = %f -> %f]\n",
	    getprog(), getiparam("npoint"), np, rrange[1], rmax);
    rrange[1] = rmax;
  }
  gsp = gsp_expd(getdparam("mtot"), getdparam("alpha"), getdparam("zdisk"),
		 np, rrange[0], rrange[1]);
  ostr = stropen(getparam("out"), "w");
  put_history(ostr);
  gsp_write(ostr, gsp);
  fflush(NULL);
  return 0;
}
Пример #5
0
int main(int argc, string argv[])
{
  string prog, itags[MaxBodyFields];
  stream xstr;
  int nprof, nbody, nsamp;
  real *prof1, *prof2, rrange[2], tnow;
  bodyptr btab = NULL;

  initparam(argv, defv);
  layout_body(fields, Precision, NDIM);
  prog = mktemp((string) copxstr("/tmp/sm_XXXXXX", sizeof(char)));
  xstr = execmap(prog);
  get_history(xstr);
  nprof = getiparam("nprof");
  prof1 = (real *) allocate((2 + nprof) * sizeof(real));
  prof2 = (real *) allocate((2 + nprof) * sizeof(real));
  setrange(rrange, getparam("rrange"));
  nsamp = 0;
  while (get_snap(xstr, &btab, &nbody, &tnow, itags, FALSE)) {
    setprofile(prof1, prof2, nprof, rrange, btab, nbody);
    nsamp++;
  }
  if (unlink(prog) != 0)
    error("%s: can't unlink %s\n", getargv0(), prog);
  if (nsamp == 0)
    error("%s: no data in input\n", getargv0());
  listdensity(prof1, prof2, nprof, rrange, nsamp);
  return (0);
}
Пример #6
0
int main(int argc, string argv[])
{
    stream istr;
    gsprof *tgsp, *mgsp;
    real beta_a, *sig2, rrange[2], lgrs, r;
    int np, i;

    initparam(argv, defv);
    istr = stropen(getparam("gsp"), "r");
    get_history(istr);
    tgsp = get_gsprof(istr);
    strclose(istr);
    if (! strnull(getparam("grav"))) {
        istr = stropen(getparam("grav"), "r");
        get_history(istr);
        mgsp = get_gsprof(istr);
        strclose(istr);
    } else
        mgsp = tgsp;
    beta_a = getdparam("beta_a");
    sig2 = calc_sig2_gsp(tgsp, mgsp, beta_a);
    np = getiparam("npoint");
    setrange(rrange, getparam("rrange"));
    lgrs = rlog2(rrange[1] / rrange[0]) / (np - 1);
    printf("%12s  %12s\n", "radius", "sig_r^2");
    for (i = 0; i < np; i++) {
        r = rrange[0] * rpow(2.0, lgrs * i);
        printf("%12.5f  %12.7f\n",
               r, sig2_gsp(tgsp, mgsp, beta_a, sig2, r));
    }
    return (0);
}
Пример #7
0
/* Insert the given character at the current cursor position.
 * Do nothing if the line would become too long.
 * Do nothing if the character is not printable.
 * The cursor moves to the right one column, provided it doesn't
 * move past dl_max_col.
 */
void dlinsert(displine *line, key k)
{
	char	restbuf[MAXWIDTH+1];		/* Char from cursor to end. */
	char	insbuf[2];					/* Char to insert. */

	if (line->dl_length >= line->wwidth)  return;
	if (!printable(k))  return;

	getrange(line, restbuf, line->wcur_col, line->wwidth);

	insbuf[0] = k;
	insbuf[1] = '\000';
	setrange(line, insbuf, line->wcur_col, line->wcur_col);

	setrange(line, restbuf, line->wcur_col+1, line->wwidth);

	dlright(line);
}
Пример #8
0
int main(int argc, string argv[])
{
    real rrange[2];
    gsprof *gsp;
    stream ostr;

    initparam(argv, defv);
    setrange(rrange, getparam("rrange"));
    gsp = plumgsp(getdparam("mtot"), getdparam("a"),
		  getiparam("npoint"), rrange[0], rrange[1]);
    ostr = stropen(getparam("out"), "w");
    put_history(ostr);
    put_gsprof(ostr, gsp);
    strclose(ostr);
    return (0);
}
Пример #9
0
setparams()
{
    string inname = getparam("in");
    nmax = nemo_file_lines(inname,getiparam("nmax"));
    if (nmax<0) error("Error opening %s",inname);
    if (nmax==0) error("No data?");
    instr = stropen (inname,"r");

    if (hasvalue("out"))
        outstr=stropen(getparam("out"),"w");
    else
        outstr=NULL;

    nxcol = nemoinpi(getparam("xcol"),xcolnr,MAXCOL);
    if (nxcol<0) error("Illegal xcol= nxcol=%d",nxcol);
    nycol = nemoinpi(getparam("ycol"),ycolnr,MAXCOL);
    if (nycol<0) error("Illegal ycol= nycol=%d",nycol);

    if (hasvalue("dxcol"))
        dxcolnr = getiparam("dxcol");
    else
        dxcolnr = 0;

    if (hasvalue("dycol"))
        dycolnr = getiparam("dycol");
    else
        dycolnr = 0;

    if (hasvalue("xrange"))
        setrange(xrange,getparam("xrange"));
    else {
        xrange[0] = -HUGE;
        xrange[1] = HUGE;
    } 
    
    method = getparam("fit");
    nsigma = getdparam("nsigma");
    order = getiparam("order");
    if (order<0) error("order=%d of %s cannot be negative",order,method);
    Qtab = getbparam("tab");

    mpfit_mode = getiparam("mpfit");
}
Пример #10
0
setparams()
{
	string  tmpstr;
	int	tmpint, i;

	infile = getparam ("in");

	cntstr = getparam ("contour");	/* get contour levels */
	if (*cntstr==0) {
/*	    ncntval = 0;		/* this will cause a grayscale plot */
	    gray=TRUE;
	} else {
	    ncntval = nemoinpr(getparam("contour"),cntval,MCNTVAL);
	    tmpstr = getparam("gray");
	    if (*tmpstr==0)
	    	gray=FALSE;
	    else
	    	gray=getbparam("gray");
	}

	if (hasvalue("mmin"))
		mmin = getdparam("mmin");	
	else
		mmin = UNDEF;

	if (hasvalue("mmax"))
		mmax = getdparam("mmax");
	else
		mmax= UNDEF;
		
	power=getdparam("power");

	if (hasvalue("xrange"))
		setrange(xplot,getparam("xrange"));
	else
		xplot[0] = xplot[1] = UNDEF;
		
	if (hasvalue("yrange"))
		setrange(yplot,getparam("yrange"));
	else
		yplot[0] = yplot[1] = UNDEF;
			
        headline = getparam("headline");
        if (hasvalue("tab")) {
            tabstr = stropen(getparam("tab"),"w");
	    tmpstr = getparam("format");
            sprintf(format4,"%s %s %s %s\n",tmpstr,tmpstr,tmpstr,tmpstr);
	}
	cmode = getiparam("cmode");
	if (hasvalue("blankval")) {
	  blankval = getrparam("blankval");
	  contour_setdef(1,blankval);
	} else
	  blankval = -999.9; /* only relevant for greyscale now , use NaN ?? */
			   
	if (hasvalue("ltype")) {
            lwidth = getiparam("ltype");
            /* oops, skip ltype for now */
        }
            
}
Пример #11
0
int redis_string::setrange(const char* key, unsigned offset, const char* value)
{
	return setrange(key, strlen(key), offset, value, strlen(value));
}
Пример #12
0
setparams()
{
  stream instr;
  string intpol;
  int i,j,n, nbadvel,nbadsig,nbadden;
  real vel, sig, den, minvel, maxvel, minsig, maxsig;
  real f=4.0;  /* f*sigma is the assumed contributions of signal */
  
  
  nz = getiparam("nz");
  setrange(zrange, getparam("zrange"));
  if (zrange[0] >= zrange[1])
    error("Bad zrange");
  zrange[2] = (zrange[1]-zrange[0])/nz;

  instr = stropen(getparam("invel"),"r");
  read_image(instr,&velptr);
  strclose(instr);

  if (hasvalue("inden")) {
    instr = stropen(getparam("inden"),"r");
    read_image(instr,&denptr);
    strclose(instr);
  }

  if (hasvalue("insig")) {
    instr = stropen(getparam("insig"),"r");
    read_image(instr,&sigptr);
    strclose(instr);
  } else
    sigdef = getdparam("sigdefault");

  n = nbadvel = nbadsig = nbadden = 0;
  for (j=0; j<Ny(velptr); j++)
    for (i=0; i<Nx(velptr); i++) {
      vel = MapValue(velptr,i,j);
      if (denptr) {
	den = MapValue(denptr,i,j);
	if (den < 0) {
	  nbadden++;
	  continue;
	} else if (den == 0)
	  continue;
      } 
      if (sigptr) {
	sig = MapValue(sigptr,i,j);
	if (sig < 0) {
	  nbadsig++;
	  continue;
	}
      } else
	sig = sigdef;
      if (vel-f*sig < zrange[0]) nbadvel++;
      if (vel+f*sig > zrange[1]) nbadvel++;
      if (n==0) {
	minvel = vel-f*sig;
	maxvel = vel+f*sig;
	minsig = maxsig = sig;
      } else {
	minvel = MIN(minvel,vel-f*sig);
	maxvel = MAX(maxvel,vel+f*sig);
	minsig = MIN(minsig,sig);
	maxsig = MAX(maxsig,sig);
      }	
      n++;
    }
  if (nbadden) warning("%d bad density pixels (density < 0)",nbadden);
  if (nbadsig) warning("%d bad sigma pixels (sigma < 0)",nbadsig);
  if (nbadvel) warning("%d/%d pixels outside your zrange %g %g\n",
		       nbadvel,Nx(velptr)*Ny(velptr),zrange[0],zrange[1]);
  dprintf(0,"Minvel=%g Maxvel=%g (using %g sigma) Minsig=%g Maxsig=%g\n",
	  minvel,maxvel,f,minsig,maxsig);
  
}
Пример #13
0
/* Starting at column, col, set the characters in the display line, line,
 * to the given string, str.
 * This differs from setnadline because it does not pad the line with blanks.
 * Overflows are avoided by truncation.
 * Note that col is a one-based position, not zero-based as strings are.
 * This cannot be used to initialize a line, since it does not set the
 * characters before column col.
 */
void setndline(displine *line, char *str, int col)
{
	setrange(line, str, col, line->wwidth);
}