def run_repo_based_subtraction(science_file, template_file, repo_dir, verbose=True): """Run a subtraction using the Butler""" science_fileroot = filename_to_fileroot(science_file) template_fileroot = filename_to_fileroot(template_file) args = [ repo_dir, '--id', 'fileroot={}'.format(science_fileroot), '--templateId', 'fileroot={}'.format(template_fileroot), '--output', repo_dir, '--configfile', 'diffimconfig.py', '--logdest', 'wiyn_imageDifference.log', '--clobber-config', '--clobber-versions', ] from lsst.pipe.tasks.imageDifference import ImageDifferenceTask if verbose: print("Running ImageDifferenceTask.parseAndrun with args:") print(args) ImageDifferenceTask.parseAndRun(args=args)
def diffImage(REPO,visit,ccdnum,**kw): try: import scipy.stats except ImportError: pass from lsst.pipe.tasks.imageDifference import ImageDifferenceTask template = find_templateID(visit) command = "{REPO} --id visit={EXPNUM} ccdnum={CCDNUM} --templateId visit={TEMPLATE} --rerun A --config doAddCalexpBackground=False --configfile {configfile}" args = command.format(EXPNUM=visit,CCDNUM=ccdnum,REPO=REPO,TEMPLATE=template,**kw).split() ImageDifferenceTask.parseAndRun(args=args) print "Done imageDifference\n"
def __init__(self, db_file): """Create similar configuration for tasks ad in ap_pipe. """ self.log = Log.getLogger("RunAssociation") self.apdbConfig = ApdbConfig() self.apdbConfig.db_url = "sqlite:///" + db_file self.apdbConfig.isolation_level = "READ_UNCOMMITTED" self.apdbConfig.dia_object_index = "baseline" self.apdbConfig.dia_object_columns = [] self.apdbConfig.connection_timeout = 240 self.apdbConfig.schema_file = _data_file_name("apdb-schema.yaml", "dax_apdb") self.apdbConfig.column_map = _data_file_name( "apdb-ap-pipe-afw-map.yaml", "ap_association") self.apdbConfig.extra_schema_file = _data_file_name( "apdb-ap-pipe-schema-extra.yaml", "ap_association") self.apdb = Apdb(config=self.apdbConfig, afw_schemas=dict(DiaObject=make_dia_object_schema(), DiaSource=make_dia_source_schema())) # apdb.makeSchema() self.differencerConfig = ImageDifferenceConfig() # Schema is different if we do decorrelation self.differencerConfig.doDecorrelation = True self.differencerSchema = ImageDifferenceTask( config=self.differencerConfig).schema self.diaSourceDpddifier = MapDiaSourceTask( inputSchema=self.differencerSchema) self.associator = AssociationTask() self.diffType = "deep"
task_args.append("--config") task_args.append("subtract.kernel.active.kernelSize=%d" % (kSize)) task_args.append( "subtract.kernel.active.detectionConfig.fpGrowMin=%d" % (fpGrowPix - 1)) task_args.append( "subtract.kernel.active.detectionConfig.fpGrowPix=%d" % (fpGrowPix)) task_args.append( "subtract.kernel.active.detectionConfig.fpGrowMax=%d" % (fpGrowPix + 1)) task_args.append("doDetection=False") task_args.append("doMeasurement=False") ## Hack around the lack of metadata being returned in cmdLineTask tmp = ImageDifferenceTask() parsedCmd = tmp._makeArgumentParser().parse_args( config=tmp.ConfigClass(), args=task_args, log=tmp.log, override=tmp.applyOverrides) task = ImageDifferenceTask(name=ImageDifferenceTask._DefaultName, config=parsedCmd.config, log=parsedCmd.log) results = task.run(parsedCmd.dataRefList[0]) try: kSum = task.subtract.metadata.get("spatialKernelSum") cNum = task.subtract.metadata.get("spatialConditionNum") except Exception: kSums.append(np.inf)
for kSize in kSizes: for gSize in gSizes: fpGrowPix = int(gSize * kSize / 2 + 0.5) # this is a grow radius # Specializations for this test task_args = sys.argv[1:] task_args.append("--config") task_args.append("subtract.kernel.active.kernelSize=%d" % (kSize)) task_args.append("subtract.kernel.active.detectionConfig.fpGrowMin=%d" % (fpGrowPix-1)) task_args.append("subtract.kernel.active.detectionConfig.fpGrowPix=%d" % (fpGrowPix)) task_args.append("subtract.kernel.active.detectionConfig.fpGrowMax=%d" % (fpGrowPix+1)) task_args.append("doDetection=False") task_args.append("doMeasurement=False") ## Hack around the lack of metadata being returned in cmdLineTask tmp = ImageDifferenceTask() parsedCmd = tmp._makeArgumentParser().parse_args(config=tmp.ConfigClass(), args=task_args, log=tmp.log, override=tmp.applyOverrides) task = ImageDifferenceTask(name = ImageDifferenceTask._DefaultName, config=parsedCmd.config, log=parsedCmd.log) results = task.run(parsedCmd.dataRefList[0]) try: kSum = task.subtract.metadata.get("spatialKernelSum") cNum = task.subtract.metadata.get("spatialConditionNum") except Exception: kSums.append(np.inf) cNums.append(np.inf) else: kSums.append(kSum) cNums.append(cNum) fig = plt.figure()
#!/usr/bin/env python # # LSST Data Management System # Copyright 2008, 2009, 2010 LSST Corporation. # # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. # try: import scipy.stats except ImportError: pass from lsst.pipe.tasks.imageDifference import ImageDifferenceTask ImageDifferenceTask.parseAndRun()
# # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. # # Workaround for a problem in the lsstimport module. This module sets # RTLD_GLOBAL for all LSST imports, which is necessary for RTTI, but # causes scipy to fail when loading numpy. Importing scipy beforehand # avoids this problem. try: import scipy.stats # noqa see comment above except ImportError: pass from lsst.pipe.tasks.imageDifference import ImageDifferenceTask ImageDifferenceTask.parseAndRun()