#!/bin/bash

# cone search NED
# cs_NED [-r CONERADIUS] {-s} {-h} RA(deg) Dec(deg) or pipe
# -r .. radius of cone in arcseconds [15]
# -s .. show header columns
# -h .. help
# can accept input from pipe
#
# LAST REVISION: 25-January-2020

#-----------------------------------------------------------------------
HELP=; SHOW=; SR=15; 
JSON_FILE="csNED.json"; JSON_ADD='"program":"csNED","utility":"NED",'
TF="OUT_csNED";  TFo=${TF}.out
#trap "[ -e $TFo ] && rm $TFo" EXIT
#-----------------------------------------------------------------------

while getopts r:sh OPTVAL
do
    case $OPTVAL in
	r) SR=$OPTARG;;
	s) SHOW=1;;
	h) HELP=1;;
	*) exit -1; 
    esac
done
shift $((OPTIND-1))

if [ $HELP ]; then
  echo "cs_NED [-r CONERADIUS] {-s} {h} RA(deg) Dec(deg) or pipe "
  echo " -r CONERADIUS (in arcseconds) [10]"
  echo " -s show header"
  exit
fi

RADIUS=$(echo "scale=5;$SR/3600"|bc) #convert cone radius to degrees

#-----------------------------------------------------------------------
#input from pipe? if so, convert to positional parameters
#-----------------------------------------------------------------------

if [ -p /dev/stdin ]; then
    PIPE=$(cat -)
    set -- $PIPE
fi

[ $# -ne 2 ] && { echo "expecting one pair: ra, dec but received $#"; exit 1;} 

RA=$1; DEC=$2; shift 2

curl -s "https://ned.ipac.caltech.edu/tap/sync?query=SELECT+*+FROM+objdir+WHERE+CONTAINS(POINT('J2000',ra,dec),CIRCLE('J2000',$RA,$DEC,$RADIUS))=1&LANG=ADQL&REQUEST=doQuery&FORMAT=text"  -o $TFo

sed 2d $TFo | dlm2json -d"|" > $JSON_FILE

    if [ $SHOW ]; then
	head -1 $TFo | sed 's/ //g' | awk -F '|' '{print $1,$2,$3,$11,$12,$13}' OFS="\t"
    fi

    sed 1,2d $TFo | sed 's/ //g;s/ *"/"/g;' | \
    awk -F'|' 'BEGIN{pi=3.141592653589793}
                 {($12=="")?$12=-1:$12=$12; ($13=="")?$13=-1:$13=$13
                  dra=($2-RA)*cos(pi/180*DEC)*3600; 
                  ddec=($3-DEC)*3600;doff=sqrt(dra^2+ddec^2);
                  printf ("%25s %9.5f %8.5f %5s %4.2f %4.2f %4.1f\"\n",
                        $1,$2,$3,$11,$12,$13,doff)}' RA=$RA DEC=$DEC
