# Scratchpad for computation stuff.


database=cwms:wq0xa
dssdir=$CWMS_HOME/dated/da/comb
rawdss=$dssdir/rawdata.dss
revdss=$dssdir/revdata.dss

operation air_temp_screen_f
	:f = when (:f >=   0 and :f <= 100) 
	       q-set-ok
	     when (:f >= -20 and :f <= 120) 
	       q-set-q
	     otherwise 
	       q-set-r

operation air_temp_f2c
	perform air_temp_screen_f
	:c = (:f - 32) / 1.8 ; skip
	[units=C;version=computed]
	
macro air_temp_f2c(apart, bpart)
	perform air_temp_f2c with
	:f=$rawdss:/$apart/$bpart/temp-air//1hour/obs/
	save :c to $revdss:
	trap reset
	
macro air_temp_f2c(bpart)
	run air_temp_f2c("", $bpart)
	
time t-3h t

run air_temp_f2c with
	bpart1 bpart2 (apart3, bpart3) bpart4
	


SCRIPTING---------------------------------
tx = tx.multiply(0, "$0 < 0")
tx = tx.add(ty, "$1 > 0")



=============================================

abs unit=xxx qmin=val qmax=val qchg=val[,val2] {qrepl=val|qmiss} rmin=val rmax=val rchg=val[,val2] {rrepl=val|rmiss}

dur unit=xxx nU miss%=val qmin=val qmax=val {qrepl=val|qmiss} rmin=val rmax=val {rrepl=val|rmiss}

const unit=xxx nU miss%=val qmin=val qmax=val qtol=val {qnew=val|qmiss} rmin=val rmax=val rtol=val {rnew=val|rmiss}

avg unit=xxx meth={F|C|O} num=val min=val qoff=val {qest=val|qmiss} roff=val {rest=val|rmiss}

est qmax=val rmax=val mmax=val

miss {Q|R|QR}



$f = dss.get /a/b/c/d/e/f/ unit=xxx
$f-rev = $f.abs ....
rename none
rename version replace noerror "-RAW" ""
rename version append "-REV"
dss.put $f-rev



define avg1($ts, $qoff, $roff)
    return avg($ts, meth=O, num=7, min=3, qoff=$qoff, roff=$roff, rmiss)
end

define copyq($dsrc, $qsrc)
    $dst = $dsrc
    q-set($dst, q-get($qsrc))
    return $dst
end

define tester($dss, $bpart, $old_fpart, $new_fpart)
    $elev-raw = get($dss, //$bpart/ELEV//1HOUR/$fpart/)
    $elev-rev = scrn-elev($elev-raw, .5, 1)
    $elev-rev = set($elev-rev, F=$new_fpart)
    $rating   = get($dss, //$bpart/Elev;Stor//Standard/Production/)
    $stor-raw = rate($rating $elev-raw)
    $stor-rev = copyq($stor-raw, $elev-rev)
    put($dss, [$elev-rev, $stor-rev])
end

define 

$dss = wcds.dss
$reservoirs = [KEYS,HULA,COPA,OOLO,HUDS,FGIB]
do tester($dss, $reservoirs, decodes-raw, decodes-rev)















