Changeset 20358


Ignore:
Timestamp:
Jul 2, 2006, 2:58:57 PM (18 years ago)
Author:
markus
Message:

Speed up for non-DBF drivers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • grass/trunk/scripts/v.rast.stats/v.rast.stats

    r20357 r20358  
    7171fi
    7272TMPNAME=`basename $TMP`
     73SQLTMP=$TMPNAME.sql
    7374
    7475cleanup()
     
    8384   g.rename ${TMPNAME}_origmask,MASK > /dev/null
    8485 fi
    85  rm -f $TMPNAME $TMP.cats
     86 rm -f $TMPNAME $TMP.cats $SQLTMP
    8687}
    8788
     
    165166  DBFDRIVER=0
    166167fi
     168# we need this for non-DBF driver:
     169DB_SQLDRIVER=`v.db.connect -g $VECTOR | cut -d' ' -f5`
     170DB_DATABASE="`v.db.connect -g $VECTOR | cut -d' ' -f4`"
    167171
    168172for i in n min max range mean stddev variance cf_var sum ; do
     
    210214  v.db.update map=$VECTOR col="`echo ${COLPREFIX}_sum| cut -b1-10`"      value=$sum      where="cat=$i"
    211215 else
    212   v.db.update map=$VECTOR col=${COLPREFIX}_n         value=$n         where="cat=$i"
    213   v.db.update map=$VECTOR col=${COLPREFIX}_min       value=$min       where="cat=$i"
    214   v.db.update map=$VECTOR col=${COLPREFIX}_max       value=$max       where="cat=$i"
    215   v.db.update map=$VECTOR col=${COLPREFIX}_range     value=$range     where="cat=$i"
    216   v.db.update map=$VECTOR col=${COLPREFIX}_mean      value=$mean      where="cat=$i"
    217   v.db.update map=$VECTOR col=${COLPREFIX}_stddev    value=$stddev    where="cat=$i"
    218   v.db.update map=$VECTOR col=${COLPREFIX}_variance  value=$variance  where="cat=$i"
    219   v.db.update map=$VECTOR col=${COLPREFIX}_cf_var    value=$coeff_var where="cat=$i"
    220   v.db.update map=$VECTOR col=${COLPREFIX}_sum       value=$sum       where="cat=$i"
     216  echo "UPDATE $VECTOR SET ${COLPREFIX}_n=$n     WHERE cat=$i;" > $SQLTMP
     217  echo "UPDATE $VECTOR SET ${COLPREFIX}_min=$min WHERE cat=$i;" >> $SQLTMP
     218  echo "UPDATE $VECTOR SET ${COLPREFIX}_max=$max WHERE cat=$i;" >> $SQLTMP
     219  echo "UPDATE $VECTOR SET ${COLPREFIX}_range=$range WHERE cat=$i;" >> $SQLTMP
     220  echo "UPDATE $VECTOR SET ${COLPREFIX}_mean=$mean   WHERE cat=$i;" >> $SQLTMP
     221  echo "UPDATE $VECTOR SET ${COLPREFIX}_stddev=$stddev     WHERE cat=$i;" >> $SQLTMP
     222  echo "UPDATE $VECTOR SET ${COLPREFIX}_variance=$variance WHERE cat=$i;" >> $SQLTMP
     223  echo "UPDATE $VECTOR SET ${COLPREFIX}_cf_var=$coeff_var  WHERE cat=$i;" >> $SQLTMP
     224  echo "UPDATE $VECTOR SET ${COLPREFIX}_sum=$sum     WHERE cat=$i;" >> $SQLTMP
     225
     226  # this should be fast:
     227  cat $SQLTMP | db.execute database=$DB_DATABASE driver=$DB_SQLDRIVER
    221228 fi
    222229
Note: See TracChangeset for help on using the changeset viewer.