X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=scripts%2Fcreate_mhd_4D.sh;h=24d3fd1d5110d80c60e2d57676e1eca183dd21f5;hb=56707942c9aad40a0023bf882320c6883054589f;hp=00df85ce77720452d5ab9174393face3c81f410f;hpb=70807bce501741d4a89c1b4e4eebb62706c4d893;p=clitk.git diff --git a/scripts/create_mhd_4D.sh b/scripts/create_mhd_4D.sh index 00df85c..24d3fd1 100755 --- a/scripts/create_mhd_4D.sh +++ b/scripts/create_mhd_4D.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/sh +x write_mhd_4D() @@ -12,11 +12,12 @@ write_mhd_4D() /DimSize/ s/.*/& $nbph/ s/ElementDataFile = .*/ElementDataFile = LIST/" > "$1/$file_name_4D" - for ph in $listph + for ph in ${listph[@]} do ph=`basename $ph` echo "$ph" >> "$1/$file_name_4D" done + echo $1/$file_name_4D } ################################################# @@ -28,87 +29,126 @@ then exit 1 fi -nb_phase_file=`find $1 -iname "*[0-9]*.mhd" -o -iname "*[0-9]*\]*.mhd" | wc -l` +nb_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd" | wc -l` if [ $nb_phase_file = 0 ] then - echo "Error: no phase found" + echo "No phase found in $1" exit 1 fi -########## CT ######### -list_pattern="" -list_phase_file=`find $1 -iname "*[0-9]*.mhd"` +list_prefix="" +list_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd"` for phase_file in $list_phase_file do - phase_file_name=`basename $phase_file` - if [[ ! -z `echo "$phase_file_name" | grep ","` ]] + if grep -q "NDims = 4" $phase_file 2> /dev/null then - prefix=`echo $phase_file_name | sed "s/,_.*/,_/"` - else + #echo $phase_file is 4D + continue; + fi; + + phase_file_name=`basename $phase_file .mhd` +# if [[ ! -z `echo "$phase_file_name" | grep "__[0-9]"` ]] +# then +# prefix=`echo $phase_file_name | sed "s/__[0-9].*/__/"` +# else +# if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]] +# then +# if [[ ! -z `echo "$phase_file_name" | grep "[0-9][0-9]-.*\]"` ]] +# then +# prefix=`echo $phase_file_name | sed "s/[0-9][0-9]-.*//"` +# else +# prefix=`echo $phase_file_name | sed "s/[0-9]-.*//"` +# fi +# else +# prefix="NONE" +# fi +# fi + + # preffix: grep sequence of characters followed by sequence of numbers and remove sequence of numbers + # prefix=`echo $phase_file_name | grep -o "\(^[[:alpha:][:punct:]]*\)\([[:digit:]\.\_\-]\+\)" | sed 's/\(^[[:alpha:][:punct:]]*\)\([[:digit:]\.\_\-]\+\)/\1/'` + prefix=`echo $phase_file_name | grep -o "\(^[[:alpha:][:punct:]]*\)\([[:digit:]]\+\)\([\.\_\-]*\)"` + prefix=`echo $prefix | sed 's/^\-\+//' | sed 's/\(^[[:alpha:][:punct:]]*\)\([[:digit:]]\+\)\([\.\_\-]*\)/\1/'` + if [[ -z $prefix ]] + then prefix="NONE" fi - if [[ -z `echo "$list_pattern" | grep "$prefix"` ]] - then - list_pattern="$list_pattern $prefix" - fi -done - -for pattern in $list_pattern -do - - if [ "$pattern" = "NONE" ] + # register new preffix if not yet done + if [[ -z `echo "$list_prefix" | grep -w -- "$prefix"` ]] then - pattern="" + list_prefix="$list_prefix $prefix" fi - - nbph=`find $1 -iname "${pattern}*[0-9]*.mhd" | wc -l` - orig=`find $1 -iname "${pattern}*[0-9]*.mhd" | sort | head -n 1` - listph=`find $1 -iname "${pattern}*[0-9]*.raw" | sort` - - file_name_4D="${pattern}_4D.mhd" - echo $file_name_4D - - write_mhd_4D $1 - done -############ PET ########### - -list_pattern="" -list_phase_file=`find $1 -iname "*[0-9]*\]*.mhd"` -for phase_file in $list_phase_file +for prefix in $list_prefix do - phase_file_name=`basename $phase_file` - if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]] - then - prefix=`echo $phase_file_name | sed "s/.*[0-9]-/-/;s/\]_.*//"` - else - prefix="NONE" - fi - if [[ -z `echo "$list_pattern" | grep -- "$prefix"` ]] + if [ "$prefix" = "NONE" ] then - list_pattern="$list_pattern $prefix" + prefix="" fi -done - -for pattern in $list_pattern -do - - if [ "$pattern" = "NONE" ] - then - pattern="" - fi + list_suffix="" + list_phase_file_prefix=`find $1 -maxdepth 1 -iname "${prefix}[0-9]*.mhd"` + for phase_file_prefix in $list_phase_file_prefix + do + if grep -q "NDims = 4" $phase_file_prefix 2> /dev/null + then + #echo $phase_file_prefix is 4D + continue; + fi; + phase_file_prefix_name=`basename $phase_file_prefix .mhd` +# if [[ ! -z `echo "$phase_file_prefix_name" | grep "__[0-9]"` ]] +# then +# suffix="NONE" +# else +# if [[ ! -z `echo "$phase_file_prefix_name" | grep "[0-9]-.*\]"` ]] +# then +# suffix=`echo $phase_file_prefix_name | sed "s/.*[0-9]-//;s/_\.mhd//;s/\.mhd//"` +# else +# suffix="NONE" +# fi +# fi +# + + # suffix: grep sequence of numbers followed by sequence of characters and remove sequence of numbers + # suffix=`echo $phase_file_prefix_name | grep -o "\([[:digit:]\.\_\-]\+\)\([[:alpha:][:punct:]]*$\)" | sed 's/\([[:digit:]\.\_\-]\+\)\([[:alpha:][:punct:]]*$\)/\2/'` + suffix=`echo $phase_file_prefix_name | grep -o "\([\.\_\-]*\)\([[:digit:]]\+\)\([[:alpha:][:punct:]]*$\)"` + if ! echo $suffix | grep -qo "^\-\+"; then + suffix=`echo $suffix | sed 's/\([\.\_\-]*\)\([[:digit:]]\+\)\([[:alpha:][:punct:]]*$\)/\3/'` + fi + suffix=`echo $suffix | sed 's/[\.\_\-]\+$//'` + if [[ -z $suffix ]] + then + suffix="NONE" + fi + + # register new suffix if not yet done + if [[ -z `echo "$list_suffix" | grep -w -- "$suffix"` ]] + then + list_suffix="$list_suffix $suffix" + fi + done - nbph=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | wc -l` - orig=`find $1 -iname "*[0-9]${pattern}\]*.mhd" | sort | head -n 1` - listph=`find $1 -iname "*[0-9]${pattern}\]*.raw" | sort` - file_name_4D=`basename "$orig" | sed "s/[0-9]${pattern}\]/${pattern}\]/;s/_.mhd/_4D.mhd/"` + for suffix in $list_suffix + do + if [ "$suffix" = "NONE" ] + then + suffix="" + fi + orig=`find $1 -maxdepth 1 -iname "${prefix}[0-9]*${suffix}*.mhd" | grep "${prefix}[[:digit:][:punct:]]\+${suffix}[\.\_\-]*.mhd" | sort | head -n 1` + listph=( `find $1 -maxdepth 1 -iname "${prefix}[0-9]*${suffix}*.*raw" | grep "${prefix}[[:digit:][:punct:]]\+${suffix}[\.\_\-]*.z*raw" | sort` ) + nbph=${#listph[@]} + + # only create 4D file if potential number of phases is > 1 + if [ $nbph -gt 1 ]; then + file_name_4D="${prefix}4D${suffix}.mhd" + write_mhd_4D $1 + fi - write_mhd_4D $1 + done done +