Source code for pdrtpy.tool.toolbase
import pdrtpy.pdrutils as utils
[docs]class ToolBase(object):
""" Base class object for PDR Toolbox tools. This class implements a simple
interface with a run method. Tools will generally do some set up
such as reading in observational data before run() can be invoked.
"""
def __init__(self):
self._measurements = None
self._measurementnaxis = -1
self._modelnaxis = -1
[docs] def run(self):
"""Runs the tool. Each subclass Tool must implement its own run() method.
"""
pass
def _set_measurementnaxis(self):
if self._measurements is None:
return
fk = utils.firstkey(self._measurements)
self._measurementnaxis = len(self._measurements[fk].shape)
@property
def has_maps(self):
'''Are the Measurements used map-based?. (i.e., have 2 spatial axes)
:returns: True, if the observational inputs are spatial maps, False otherwise
:rtype: bool
'''
return self._measurementnaxis > 1
@property
def has_vectors(self):
'''Are the Measurements used a Nx1 vector, e.g. read in from a table with :meth:`~pdrtpy.Measurement.from_table`.
:returns: True, if the observational inputs are a vector, False otherwise
:rtype: bool
'''
fk = utils.firstkey(self._measurements)
return self._measurementnaxis == 1 and self._measurements[fk].data.size >1
#deprecated
@property
def has_scalar(self):
'''Are the Measurements used scalars.
:returns: True, if the observational inputs are scalars, False otherwise
:rtype: bool
'''
return self._measurementnaxis == 0