xyds9

Read a ds9 marker file and extract the X,Y,Text values for markers of a specified color and type. You can use "any" for a color and/or type if you want to pull anything.

% cat test1.reg 
# Region file format: DS9 version 4.1
# Filename: a.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
physical
circle(793,1118,20.1409) # text={1}
circle(1141,935,20) # color=yellow text={2}
circle(1082,1104,20) # color=cyan text={3}
ellipse(911,1002,95,38,331.881) # color=white text={4 and all }
circle(2082,1104,20) 
circle(3082,1104,20) 
circle(3082,1104,20) text={booty baby} 

% xyds9.sh test1.reg circle green
Need local "log.make" for log file. 
% cat xyds9.xy
     793.000     1118.000   "1                             " circle     green     


% xyds9.sh test1.reg ellipse any
Need local "log.make" for log file. 
% cat xyds9.xy
     911.000     1002.000   "4 and all                     " ellipse    white     


% xyds9.sh test1.reg any any
Need local "log.make" for log file. 
% cat xyds9.xy
     793.000     1118.000   "1                             " circle     green     
    1141.000      935.000   "2                             " circle     yellow    
    1082.000     1104.000   "3                             " circle     cyan      
     911.000     1002.000   "4 and all                     " ellipse    white     


Where this is headed!

The simple file produced here (named xyds9.xy) can easily be read through the wcstools routine xy2sky. If I use the output file (xyds9.xy) used in the last example above, and the local image dss.fits, I can easily compute the RA,DEC asoociated with each XY value (according to the WCS in the header of dss.fits):


% cat xyds9.xy 
     793.000     1118.000   "1                             " circle     green     
    1141.000      935.000   "2                             " circle     yellow    
    1082.000     1104.000   "3                             " circle     cyan      
     911.000     1002.000   "4 and all                     " ellipse    white     

% xy2sky dss.fits @xyds9.xy 
12:40:41.390 +41:28:22.08 J2000 793.000  1118.000 
12:39:48.472 +41:23:17.68 J2000 1141.000   935.000 
12:39:57.656 +41:28:03.97 J2000 1082.000  1104.000 
12:40:23.334 +41:25:07.31 J2000 911.000  1002.000 


% xy2sky dss.fits @xyds9.xy > ra_dec.list 
% cat ra_dec.list 
12:40:41.390 +41:28:22.08 J2000 793.000  1118.000 
12:39:48.472 +41:23:17.68 J2000 1141.000   935.000 
12:39:57.656 +41:28:03.97 J2000 1082.000  1104.000 
12:40:23.334 +41:25:07.31 J2000 911.000  1002.000 

Notice that the original X,Y are tacked on to the output of xy2sky, however the format is not in rigid columns anymore. This is not a big deal really as I am reading these lines now mostly with shell scripts and python codes that are smart enough to handle this.



A change in keeping with OTW!

I have decided to have the output from xyds9 come to standard out, just like the other wcstools and things I am mostly using now. The point here is that when I use the xyds9 in a script, I can direct the output to a filename of my choosing there. I do not have to tie myself to a name like "xyds9.xy" or whatever. I also turned off the "log.make message". So, my new run would look something like:

 

% xyds9.sh test1.reg any any 
     793.000     1118.000   "1                             " circle     green     
    1141.000      935.000   "2                             " circle     yellow    
    1082.000     1104.000   "3                             " circle     cyan      
     911.000     1002.000   "4 and all                     " ellipse    white     




Back to SCO CODES page