#!/usr/bin/env python
from request_sdss import *
import numpy as np
from astropy.io import fits
from astropy.wcs import WCS
from astropy.coordinates import SkyCoord
from astropy import units as u
import os

def create_assoc(name):
  f_reg = open('regions_stars_cfhtm.reg', 'w')
  f_assoc = open('assoc_stars_list_cfhtm.txt', 'w')
  try:
    hdulist = fits.open(name)
    w = WCS(hdulist[0].header)
    hdr=hdulist[0].header
    dat = hdulist[0].data 
    
    width=dat.shape[0]
    height=dat.shape[1]
    ra1, dec1 = w.wcs_pix2world(1, 1, 0)
    ra2, dec2 = w.wcs_pix2world(width, height, 0)
    print ra1
    c1 = SkyCoord(ra=ra1*u.degree, dec=dec1*u.degree, frame='icrs')
    c2 = SkyCoord(ra=ra2*u.degree, dec=dec2*u.degree, frame='icrs')
    sep = c1.separation(c2)
    rad = sep.arcmin/2
    ra_c = (ra1+ra2)/2
    dec_c = (dec1+dec2)/2
    stars_json = search_sdss_star(ra_c,dec_c,rad)
    json=stars_json[0]["Rows"]
    i=0
    for row in json:
        dec=row["dec"]
        ra=row["ra"]
        x, y = w.wcs_world2pix(ra, dec, 0)
        if (x > 0) & (y>0) & (x < width) & (y < height) :
            string_to_reg_file =  'circle('+str(x)+','+str(y)+',7.0")'
            string_to_assoc_file =  str(x)+'	'+str(y)
        
            f_reg.write(string_to_reg_file + '\n')
            f_assoc.write(string_to_assoc_file + '\n')
        i=i+1
    f_reg.close()
    f_assoc.close()
    print i
  except IOError:
    print 'file_err'
  except ValueError:
    print 'valuefile_err'
