- Added a Tcl template processing facility to SICS
This commit is contained in:
51
tcl/ritaframe
Executable file
51
tcl/ritaframe
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/tclsh
|
||||
#--------------------------------------------------------------------------
|
||||
# script for extracting a frame of rita data from a file and to dump
|
||||
# the frame into an ASCII file
|
||||
#
|
||||
# Mark Koennecke, November 2006
|
||||
#-------------------------------------------------------------------------
|
||||
set loadnx "/afs/psi.ch/project/sinq/sl-linux/lib/"
|
||||
load [file join $loadnx nxinter.so]
|
||||
|
||||
if {$argc < 2} {
|
||||
puts stdout "Usage:\n\tritaframe filename number"
|
||||
exit 1
|
||||
}
|
||||
set num [lindex $argv 1]
|
||||
|
||||
set f [nx_open [lindex $argv 0] $NXACC_READ]
|
||||
nx_openpath $f /entry1/data/counts
|
||||
set info [nx_getinfo $f]
|
||||
set dim1 [expr int([get_nxds_value $info 2])]
|
||||
set dim2 [expr int([get_nxds_value $info 3])]
|
||||
set nFrames [expr int([get_nxds_value $info 4])]
|
||||
if {$num < 0 || $num > $nFrames-1} {
|
||||
nx_close $f
|
||||
puts stdout "Requested frame out of range"
|
||||
exit1
|
||||
}
|
||||
set start [create_nxds 1 $NX_INT32 3]
|
||||
set end [create_nxds 1 $NX_INT32 3]
|
||||
put_nxds_value $start 0 0
|
||||
put_nxds_value $start 0 1
|
||||
put_nxds_value $start $num 2
|
||||
|
||||
put_nxds_value $end $dim1 0
|
||||
put_nxds_value $end $dim2 1
|
||||
put_nxds_value $end 1 2
|
||||
|
||||
set data [nx_getslab $f $start $end]
|
||||
for {set y 0} {$y < $dim2} {incr y} {
|
||||
for {set x 0} {$x < $dim1} {incr x} {
|
||||
set val [expr int([get_nxds_value $data $x $y])]
|
||||
puts -nonewline stdout [format " %8d" $val]
|
||||
}
|
||||
puts stdout ""
|
||||
}
|
||||
drop_nxds $start
|
||||
drop_nxds $end
|
||||
drop_nxds $data
|
||||
|
||||
nx_close $f
|
||||
exit 0
|
||||
Reference in New Issue
Block a user