#!/bin/bash #qsSim .. quick syummary of output of "csSim" # qsSim [-v VERBOSITY] {-h} file | pipe # input file is the output of csSim #----------------------------------------------------------------------- VERB=1; HELP=; NREFMAX=30 #not call ADS nrefs > NREFMAX #----------------------------------------------------------------------- TFILE="OUT_qsSim.tmp" trap "[ -e $TFILE ] && rm $TFILE" EXIT #----------------------------------------------------------------------- while getopts v:h OPTVAL do case $OPTVAL in v) VERB=$OPTARG;; h) HELP=1;; *) echo "qsSim -h for help"; exit -1;; esac done shift $((OPTIND-1)) if [ $HELP ]; then echo "qsSim [-v VERBOSITY] {-h} file | pipe" echo "-v [1] for top-level summary; 2 add IDs; 3 add references" echo "input file is supplied by csSim" exit fi #----------------------------------------------------------------------- # check to see if data is being supplied by pipe #----------------------------------------------------------------------- case $# in 0) if [ -p /dev/stdin ]; then set -- "/dev/stdin" #set $1=/dev/stdin else echo "no file given nor is there a trailing pipe" exit -1; fi cat $1 > $TFILE; IFILE=$TFILE;; 1) IFILE=$1;; *) echo "can accept only one file"; exit -1;; esac #----------------------- #No source found #----------------------- grep '^!! No astronomical' $IFILE > /dev/null if [ $? -eq 0 ]; then echo "qsSim: nada" exit fi #----------------------- #One source found #----------------------- Object=$(grep '^Object ' $IFILE) if [ $? -eq 0 ]; then RADEC=$(grep "^Coordinates(ICRS" | expar -c2-7 | coco -d -b) echo $RADEC "Simbad" Name=$(echo $Object | sed 's/\(^Object \)\([^-]*\)\(.*$\)/\2/;s/^ *//;s/ *$//;s/.*/"&"/') Type=$(echo $Object | sed 's/\(^[^-]*---\)\([^-]*\)\(.*$\)/\2/;s/ //g') ID=$(grep '^Identifiers' $IFILE) nId=$(echo $ID | sed 's;\(^Identifiers[^(]*(\)\([0-9]*\)\().*\);\2;') Bib=$(grep '^Bibcodes' $IFILE) nBib=$(echo $Bib | sed 's/^Bibcodes[^(]*(//;s/) *(//;s/).*$//') echo -e "Simbad obj:$Name type:$Type avatars:$nId refs: $nBib" if [ $VERB -ge 2 ]; then sed -n '/^Identifiers/,/^Bibcodes/p' $IFILE | sed '1d;$d;/^$/d;s/ */,/g;s/^,/"/;s/,$/"/;s/,/","/' sed -n '/^Notes/,/^======/p' $IFILE | sed '1d;/^$/d;$d' BIBCODE=$(sed -n '/^Bibcodes/,/^Measures/p' $IFILE | gsed '1d;$d;s/^ *//;s/ *$//;/^$/d') NBibCode=$(echo $BIBCODE | awk '{print NF}') if [ $VERB -eq 2 ]; then echo "Simbad: number of references: $NBibCode" exit fi fi if [ $VERB -ge 3 ]; then echo -n "Simbad: number of references: $NBibCode." if [ $NBibCode -le $NREFMAX ]; then bc2top "$BIBCODE" else echo "popular object. Not calling ADS" fi fi exit fi #----------------------- #Mutiple objects found #----------------------- NumberOfObjects=$(grep '^Number of object' $IFILE) if [ $? -eq 0 ]; then nSources=$(grep "Number of objects" $IFILE| awk -F":" '{print $NF}' | sed 's/ //g') echo $nSources " sources within error circle" if [ $VERB -ge 2 ]; then dline grep "|" $IFILE | awk -F'|' \ '/^[^1-9]/{print $2,$3,$4,$12} /^[1-9]/{print $2,$3,$4,$12; if ($12>mxbib){mxbib=$12;mxobj=$3;mxoffset=$2;}} END{sub(/ *$/,"",mxobj); sub(/^ */,"",mxoffset) print "\""mxobj"\"", mxoffset, mxbib}' fi if [ $VERB -ge 3 ]; then echo "hello $VERB" fi fi