def setup_output(self, job_to_use=None, output_type="hazard_map", db_backed=True): """Create an output object of the given type. :param job_to_use: if set use the passed :py:class:`db.alchemy.models.OqJob` instance as opposed to creating a new one. :param str output_type: map type, one of "hazard_map", "loss_map" :param bool db_backed: initialize the property of the newly created :py:class:`db.alchemy.models.Output` instance with this value. :returns: a :py:class:`db.alchemy.models.Output` instance """ job = job_to_use if job_to_use else self.setup_classic_job() output = Output(owner=job.owner, oq_job=job, output_type=output_type, db_backed=db_backed) output.path = self.touch( dir=os.path.join(job.path, "computed_output"), suffix=".xml", prefix="hzrd." if output_type == "hazard_map" else "loss.") session = Session.get() session.add(output) session.commit() return output
def setup_output(self, job_to_use=None, output_type="hazard_map", db_backed=True): """Create an output object of the given type. :param job_to_use: if set use the passed :py:class:`db.alchemy.models.OqJob` instance as opposed to creating a new one. :param str output_type: map type, one of "hazard_map", "loss_map" :param bool db_backed: initialize the property of the newly created :py:class:`db.alchemy.models.Output` instance with this value. :returns: a :py:class:`db.alchemy.models.Output` instance """ job = job_to_use if job_to_use else self.setup_classic_job() output = Output(owner=job.owner, oq_job=job, output_type=output_type, db_backed=db_backed) output.path = self.generate_output_path(job, output_type) output.display_name = os.path.basename(output.path) session = get_uiapi_writer_session() session.add(output) session.commit() return output
def setup_output(self, job_to_use=None, output_type="hazard_map", db_backed=True): """Create an output object of the given type. :param job_to_use: if set use the passed :py:class:`db.alchemy.models.OqJob` instance as opposed to creating a new one. :param str output_type: map type, one of "hazard_map", "loss_map" :param bool db_backed: initialize the property of the newly created :py:class:`db.alchemy.models.Output` instance with this value. :returns: a :py:class:`db.alchemy.models.Output` instance """ job = job_to_use if job_to_use else self.setup_classic_job() output = Output(owner=job.owner, oq_job=job, output_type=output_type, db_backed=db_backed) output.path = self.touch( dir=os.path.join(job.path, "computed_output"), suffix=".xml", prefix="hzrd." if output_type == "hazard_map" else "loss.", ) session = Session.get() session.add(output) session.commit() return output
def insert_output(self): """Insert an `uiapi.output` record for the hazard map at hand.""" logger.info("> insert_output") job = self.session.query(OqJob).filter( OqJob.id == self.oq_job_id).one() self.output = Output(owner=job.owner, oq_job=job, path=self.nrml_path, output_type="hazard_map", db_backed=True) self.session.add(self.output) self.session.commit() logger.info("output = '%s'" % self.output) logger.info("< insert_output")