def import_lastrun_data(opt): mjd_yesterday = ephem.date(ephem.julian_date(ephem.date( opt.date))) - 2400000.5 data_to_date = query_for_observations(mjd_yesterday, opt.cal, OSSOS_RUNIDS) for row in data_to_date: storage.populate(row['dataset_name'])
def create_ascii_table(observation_table, outfile): """Given a table of observations create an ascii log file for easy parsing. Store the result in outfile (could/should be a vospace dataNode) observation_table: astropy.votable.array object outfile: str (name of the vospace dataNode to store the result to) """ logging.info("writing text log to %s" % outfile) stamp = "#\n# Last Updated: " + time.asctime() + "\n#\n" header = "| %20s | %20s | %20s | %20s | %20s | %20s | %20s |\n" % ( "EXPNUM", "OBS-DATE", "FIELD", "EXPTIME(s)", "RA", "DEC", "RUNID") bar = "=" * (len(header) - 1) + "\n" if outfile[0:4] == "vos:": temp_file = tempfile.NamedTemporaryFile(suffix='.txt') fout = temp_file else: fout = open(outfile, 'w') t2 = None fout.write(bar + stamp + bar + header) populated = storage.list_dbimages() for i in range(len(observation_table) - 1, -1, -1): row = observation_table.data[i] if row['dataset_name'] not in populated: storage.populate(row['dataset_name']) str_date = str( ephem.date(row.StartDate + 2400000.5 - ephem.julian_date(ephem.date(0))))[:20] t1 = time.strptime(str_date, "%Y/%m/%d %H:%M:%S") if t2 is None or math.fabs(time.mktime(t2) - time.mktime(t1)) > 3 * 3600.0: fout.write(bar) t2 = t1 ra = str(ephem.hours(math.radians(row.RA))) dec = str(ephem.degrees(math.radians(row.DEC))) line = "| %20s | %20s | %20s | %20.1f | %20s | %20s | %20s |\n" % ( str(row.dataset_name), str( ephem.date(row.StartDate + 2400000.5 - ephem.julian_date(ephem.date(0))))[:20], row.TargetName[:20], row.ExposureTime, ra[:20], dec[:20], row.ProposalID[:20]) fout.write(line) fout.write(bar) if outfile[0:4] == "vos:": fout.flush() storage.copy(fout.name, outfile) fout.close() return
def create_ascii_table(observation_table, outfile): """Given a table of observations create an ascii log file for easy parsing. Store the result in outfile (could/should be a vospace dataNode) observation_table: astropy.votable.array object outfile: str (name of the vospace dataNode to store the result to) """ logging.info("writing text log to %s" % outfile) stamp = "#\n# Last Updated: " + time.asctime() + "\n#\n" header = "| %20s | %20s | %20s | %20s | %20s | %20s | %20s |\n" % ( "EXPNUM", "OBS-DATE", "FIELD", "EXPTIME(s)", "RA", "DEC", "RUNID") bar = "=" * (len(header) - 1) + "\n" if outfile[0:4] == "vos:": temp_file = tempfile.NamedTemporaryFile(suffix='.txt') fout = temp_file else: fout = open(outfile, 'w') t2 = None fout.write(bar + stamp + bar + header) populated = storage.list_dbimages() for i in range(len(observation_table) - 1, -1, -1): row = observation_table.data[i] if row['dataset_name'] not in populated: storage.populate(row['dataset_name']) str_date = str(ephem.date(row.StartDate + 2400000.5 - ephem.julian_date(ephem.date(0))))[:20] t1 = time.strptime(str_date, "%Y/%m/%d %H:%M:%S") if t2 is None or math.fabs(time.mktime(t2) - time.mktime(t1)) > 3 * 3600.0: fout.write(bar) t2 = t1 ra = str(ephem.hours(math.radians(row.RA))) dec = str(ephem.degrees(math.radians(row.DEC))) line = "| %20s | %20s | %20s | %20.1f | %20s | %20s | %20s |\n" % ( str(row.dataset_name), str(ephem.date(row.StartDate + 2400000.5 - ephem.julian_date(ephem.date(0))))[:20], row.TargetName[:20], row.ExposureTime, ra[:20], dec[:20], row.ProposalID[:20]) fout.write(line) fout.write(bar) if outfile[0:4] == "vos:": fout.flush() storage.copy(fout.name, outfile) fout.close() return
parser = argparse.ArgumentParser(description="Make links in the dbimages directory for a given set of observations") parser.add_argument('date', nargs='?', action='store',default='2013-01-01') parser.add_argument('--runid', nargs='*', action='store', default= list(('13AP05','13AP06'))) parser.add_argument('--cal', action='store', default="RAW") opt = parser.parse_args() runids = tuple(opt.runid) mjd_yesterday = 56401.5841892 data={"QUERY": """SELECT Observation.target_name as TargetName, COORD1(CENTROID(Plane.position_bounds)) AS RA, COORD2(CENTROID(Plane.position_bounds)) AS DEC, Plane.time_bounds_cval1 AS StartDate, Plane.time_exposure AS ExposureTime, Observation.instrument_name AS Instrument, Plane.energy_bandpassName AS Filter, Observation.collectionID AS dataset_name, Observation.proposal_id AS ProposalID, Observation.proposal_pi AS PI FROM caom.Observation AS Observation JOIN caom.Plane AS Plane ON Observation.obsID = Plane.obsID WHERE ( Observation.collection = 'CFHT' ) AND Plane.time_bounds_cval1 > %d AND Plane.observable_ctype='%s' AND Observation.proposal_id IN %s """ % ( mjd_yesterday, opt.cal, str(tuple(opt.runid)) ), "REQUEST": "doQuery", "LANG": "ADQL", "FORMAT": "votable"} url="http://www.cadc.hia.nrc.gc.ca/tap/sync?"+urllib.urlencode(data) tmpFile = tempfile.NamedTemporaryFile() urllib.urlretrieve(url,tmpFile.name) vot = parse(tmpFile.name).get_first_table() vot.array.sort(order='StartDate') t=vot.array for row in t.data: storage.populate(row['dataset_name'])
data = { "QUERY": """SELECT Observation.target_name as TargetName, COORD1(CENTROID(Plane.position_bounds)) AS RA, COORD2(CENTROID(Plane.position_bounds)) AS DEC, Plane.time_bounds_cval1 AS StartDate, Plane.time_exposure AS ExposureTime, Observation.instrument_name AS Instrument, Plane.energy_bandpassName AS Filter, Observation.collectionID AS dataset_name, Observation.proposal_id AS ProposalID, Observation.proposal_pi AS PI FROM caom.Observation AS Observation JOIN caom.Plane AS Plane ON Observation.obsID = Plane.obsID WHERE ( Observation.collection = 'CFHT' ) AND Plane.time_bounds_cval1 > %d AND Plane.observable_ctype='%s' AND Observation.proposal_id IN %s """ % (mjd_yesterday, opt.cal, str(tuple(opt.runid))), "REQUEST": "doQuery", "LANG": "ADQL", "FORMAT": "votable" } url = "http://www.cadc.hia.nrc.gc.ca/tap/sync?" + urllib.urlencode(data) tmpFile = tempfile.NamedTemporaryFile() urllib.urlretrieve(url, tmpFile.name) vot = parse(tmpFile.name).get_first_table() vot.array.sort(order='StartDate') t = vot.array for row in t.data: storage.populate(row['dataset_name'])
parser.add_argument("--runid", nargs="*", action="store", default=list(("13AP05", "13AP06"))) parser.add_argument("--cal", action="store", default="RAW") opt = parser.parse_args() runids = tuple(opt.runid) mjd_yesterday = 56401.5841892 data = { "QUERY": """SELECT Observation.target_name as TargetName, COORD1(CENTROID(Plane.position_bounds)) AS RA, COORD2(CENTROID(Plane.position_bounds)) AS DEC, Plane.time_bounds_cval1 AS StartDate, Plane.time_exposure AS ExposureTime, Observation.instrument_name AS Instrument, Plane.energy_bandpassName AS Filter, Observation.collectionID AS dataset_name, Observation.proposal_id AS ProposalID, Observation.proposal_pi AS PI FROM caom.Observation AS Observation JOIN caom.Plane AS Plane ON Observation.obsID = Plane.obsID WHERE ( Observation.collection = 'CFHT' ) AND Plane.time_bounds_cval1 > %d AND Plane.observable_ctype='%s' AND Observation.proposal_id IN %s """ % (mjd_yesterday, opt.cal, str(tuple(opt.runid))), "REQUEST": "doQuery", "LANG": "ADQL", "FORMAT": "votable", } url = "http://www.cadc.hia.nrc.gc.ca/tap/sync?" + urllib.urlencode(data) tmpFile = tempfile.NamedTemporaryFile() urllib.urlretrieve(url, tmpFile.name) vot = parse(tmpFile.name).get_first_table() vot.array.sort(order="StartDate") t = vot.array for row in t.data: storage.populate(row["dataset_name"])