Wrappers to IFU_iolibs 6.3 | |
python wrapper | |
Les scripts doivent commencer par loader IFU_py_io de la facon suivante : import sys sys.path.append("XXXXXX/IFU_C_iolibs-6.3/python_wrapper") from IFU_py_io import * où XXXXX désigne la localisation (le PATH) de vos librairies. Attention ! Les commandes d'accès aux descripteurs et aux tables ont quelque peu changé par rapport à la librairie C (paramètres de retour de RD_desc et RD_tbl) | Exemple de scripts python utilisant le wrapper : |
Acces a un spectre : # set format according to IFU_DEFAULT_FMT set_user_dataformat() spec = SPECTRUM() open_spec (spec,'myspectrum','IO') startx = spec.startx val = RD_spec(spec, 10) WR_spec(spec, 10, 15) WR_desc(spec,'CRPIX1',FLOAT,1,20.0) pixref = RD_desc(spec,'CRPIX1',FLOAT,1) print "pixref = ",pixref close_spec(spec) spec.__del__ |
Acces a une table : # set format according to IFU_DEFAULT_FMT set_user_dataformat() table = TABLE() open_table(table,'Neon_ref.fits','IO') collbda = get_col_ref(table, 'LAMBDA') lbda = RD_tbl(table, 20, collbda) print "table(20,",collbda,") =",lbda WR_tbl(table, 20, collbda, 6500.0) close_table(table) table.__del__ |
tcl wrapper | |
Utilisable depuis tclsh, wish, bltwish, tixwish, etc ...Inutile d'utiliser le IFU_wish qui peut s'averer trop lourd en memoire. Des simplifications ont ete apportees aux commandes d'acces aux descripteurs et aux tables pour lesquelles les arguments etaient passes par adresse de facon a etre independantes du type. Meme plus besoin de declarer vos variables, ni de les allouer dynamiquement ! Les scripts doivent commencer par loader IFU_tcl_io.so de la facon suivante : load $IFU_PATH/IFU_C_iolibs-6.3/tcl_wrapper/IFU_tcl_io.so IFU_tcl_io | Exemple de scripts tcl utilisant le wrapper : |
Acces a un spectre : # set format according to IFU_DEFAULT_FMT set_user_dataformat set spec [new_SPECTRUM] open_spec $spec "myspectrum" "IO" set startx [ $spec cget -start ] RD_desc $spec "CRPIX1" $FLOAT 1 pixref WR_desc $spec "TOTO" $CHAR 10 "0123456789" set val [RD_spec $spec 10] WR_spec $spec 10 15 close_spec $spec delete_SPECTRUM $spec |
Acces a une table : # set format according to IFU_DEFAULT_FMT set_user_dataformat set table [new_TABLE] open_table $table "Neon_ref.fits" "IO" set collbda [ get_col_ref $table "LAMBDA" ] RD_tbl $table 20 $collbda lbda puts "Lambda = $lbda" WR_tbl $table 20 $collbda 6500.0 close_table $table delete_TABLE $table |
Wrappers to IFU_mathlibs 6.3 | |
python wrapper | |
Les scripts doivent commencer par loader IFU_py_io de la facon suivante : import sys sys.path.append("XXXXXX/IFU_C_iolibs-6.3/python_wrapper") from IFU_py_io import * load $IFU_PATH/IFU_C_mathlibs-6.3/tcl_wrapper/IFU_tcl_math.so IFU_tcl_math | Exemple de scripts python utilisant le wrapper : |
Calcul de la mediane : import numarray as N work = N.zeros(10) data = N.arange(10,typecode='Float64') data *= data med = median(data,10,work) print "median = ", med del(data) del(work) |
Tri d'un tableau : import numarray as N idx = N.zeros(10) data = N.arange(10,typecode='Float64') data = (10-data)*data print "data =", data # sort values indexx(10,data,idx) print "min value =", data[idx[0]] print "max value =", data[idx[9]] del(data) del(idx) |
tcl wrapper | |
Les scripts doivent commencer par loader IFU_tcl_math.so de la facon suivante : load $IFU_PATH/IFU_C_mathlibs-6.3/tcl_wrapper/IFU_tcl_math.so IFU_tcl_math | Exemple de scripts tcl utilisant le wrapper : |
Calcul de la mediane : set work [ new_intArray 10 ] set data [ new_doubleArray 10 ] for {set i 0} {$i < 10} {incr i} { doubleArray_setitem $data $i [expr $i*$i*1.0] } set median [median $data 10 $work] puts "median = $median" delete_intArray $work delete_doubleArray $data |
Tri d'un tableau : set data [ new_doubleArray 10 ] set idx [ new_intArray 10 ] for {set i 0} {$i < 10} {incr i} { doubleArray_setitem $data $i [expr (10-$i)*$i*1.0] } # sort values indexx 10 $data $idx set imin [intArray_getitem $idx 0] set imax [intArray_getitem $idx 9] puts "min value = [doubleArray_getitem $data $imin]" puts "max value = [doubleArray_getitem $data $imax]" delete_doubleArray $data delete_intArray $idx |