def __init__( self, log, ra, dec, downloadDirectory="./", filename="sdss_stamp.jpeg", settings=False, grid=True, label=False, photocat=False, speccat=False, invertColors=False, arcminWidth=5, pixelWidth=500 ): self.log = log log.debug("instansiating a new 'image' object") self.settings = settings self.ra = ra self.dec = dec self.filename = filename self.downloadDirectory = downloadDirectory self.grid = grid self.label = label self.photocat = photocat self.speccat = speccat self.invertColors = invertColors self.arcminWidth = arcminWidth self.pixelWidth = pixelWidth # xt-self-arg-tmpx # INITIAL ACTIONS # CHECK SDSS COVERAGE BEFORE DOWNLOAD ATTEMPT from check_coverage import check_coverage # covered = True | False | 999 (i.e. not sure) self.covered = check_coverage( log=log, ra=self.ra, dec=self.dec ).get() return None
def main(arguments=None): """ *The main function used when ``cl_utils.py`` is run as a single script from the cl, or when installed as a cl command* """ # setup the command-line util settings su = tools( arguments=arguments, docString=__doc__, logLevel="WARNING", options_first=True, projectName="sloancone", tunnel=False ) arguments, settings, log, dbConn = su.setup() # tab completion for raw_input readline.set_completer_delims(' \t\n;') readline.parse_and_bind("tab: complete") readline.set_completer(tab_complete) # unpack remaining cl arguments using `exec` to setup the variable names # automatically for arg, val in arguments.iteritems(): if arg[0] == "-": varname = arg.replace("-", "") + "Flag" else: varname = arg.replace("<", "").replace(">", "") if isinstance(val, str) or isinstance(val, unicode): exec(varname + " = '%s'" % (val,)) else: exec(varname + " = %s" % (val,)) if arg == "--dbConn": dbConn = val log.debug('%s = %s' % (varname, val,)) ## START LOGGING ## startTime = times.get_now_sql_datetime() log.info( '--- STARTING TO RUN THE cl_utils.py AT %s' % (startTime,)) # set options interactively if user requests if "interactiveFlag" in locals() and interactiveFlag: # load previous settings moduleDirectory = os.path.dirname(__file__) + "/resources" pathToPickleFile = "%(moduleDirectory)s/previousSettings.p" % locals() try: with open(pathToPickleFile): pass previousSettingsExist = True except: previousSettingsExist = False previousSettings = {} if previousSettingsExist: previousSettings = pickle.load(open(pathToPickleFile, "rb")) # x-raw-input # x-boolean-raw-input # x-raw-input-with-default-value-from-previous-settings # save the most recently used requests pickleMeObjects = [] pickleMe = {} theseLocals = locals() for k in pickleMeObjects: pickleMe[k] = theseLocals[k] pickle.dump(pickleMe, open(pathToPickleFile, "wb")) # CALL FUNCTIONS/OBJECTS # call the worker function if search: cs = cone_search( log=log, ra=ra, dec=dec, searchRadius=float(arcsecRadius), nearest=nearestFlag, outputFormat=outputFormat, galaxyType=galaxyType ) results = cs.get() print results # covered = True | False | 999 (i.e. not sure) if covered: check = check_coverage( log=log, ra=ra, dec=dec ).get() print check if "dbConn" in locals() and dbConn: dbConn.commit() dbConn.close() ## FINISH LOGGING ## endTime = times.get_now_sql_datetime() runningTime = times.calculate_time_difference(startTime, endTime) log.info('-- FINISHED ATTEMPT TO RUN THE cl_utils.py AT %s (RUNTIME: %s) --' % (endTime, runningTime, )) return