45 namespace algorithms {
 
   55 bool ptrEquals(
T a, 
T b) {
 
   75         : 
afw::math::BoundedField(
bbox),
 
   76           _throwOnMissing(true),
 
   79           _elements(elements) {}
 
   83         : 
afw::math::BoundedField(
bbox),
 
   84           _throwOnMissing(false),
 
   87           _elements(elements) {}
 
   90     auto coord = _coaddWcs->pixelToSky(position);
 
   93     for (ElementVector::const_iterator i = _elements.
begin(); i != _elements.
end(); ++i) {
 
   94         geom::Point2D transformedPosition = i->wcs->skyToPixel(coord);
 
   95         bool inValidArea = i->validPolygon ? i->validPolygon->contains(transformedPosition) : 
true;
 
   97             sum += i->weight * i->field->evaluate(transformedPosition);
 
  102         if (_throwOnMissing) {
 
  104                               (
boost::format(
"No constituent fields to evaluate at point %f, %f") %
 
  105                                position.getX() % position.getY())
 
  123 class CoaddBoundedFieldPersistenceKeys1 {
 
  132     static CoaddBoundedFieldPersistenceKeys1 
const& get() {
 
  133         static CoaddBoundedFieldPersistenceKeys1 
const instance;
 
  138     CoaddBoundedFieldPersistenceKeys1(
const CoaddBoundedFieldPersistenceKeys1&) = 
delete;
 
  139     CoaddBoundedFieldPersistenceKeys1& 
operator=(
const CoaddBoundedFieldPersistenceKeys1&) = 
delete;
 
  142     CoaddBoundedFieldPersistenceKeys1(CoaddBoundedFieldPersistenceKeys1&&) = 
delete;
 
  143     CoaddBoundedFieldPersistenceKeys1& 
operator=(CoaddBoundedFieldPersistenceKeys1&&) = 
delete;
 
  146     CoaddBoundedFieldPersistenceKeys1()
 
  149                                                            "lower-left corner of bounding box", 
"pixel")),
 
  151                                                            "upper-right corner of bounding box", 
"pixel")),
 
  152               coaddWcs(
schema.addField<int>(
"coaddWcs", 
"archive ID of the coadd's WCS")),
 
  154                       "throwOnMissing", 
"whether to throw an exception on missing data")),
 
  156                                                "default value to use when throwOnMissing is False")) {}
 
  160 class CoaddBoundedFieldPersistenceKeys2 {
 
  162     afw::table::Schema 
schema;
 
  168     static CoaddBoundedFieldPersistenceKeys2 
const& get() {
 
  169         static CoaddBoundedFieldPersistenceKeys2 
const instance;
 
  174     CoaddBoundedFieldPersistenceKeys2(
const CoaddBoundedFieldPersistenceKeys2&) = 
delete;
 
  175     CoaddBoundedFieldPersistenceKeys2& 
operator=(
const CoaddBoundedFieldPersistenceKeys2&) = 
delete;
 
  178     CoaddBoundedFieldPersistenceKeys2(CoaddBoundedFieldPersistenceKeys2&&) = 
delete;
 
  179     CoaddBoundedFieldPersistenceKeys2& 
operator=(CoaddBoundedFieldPersistenceKeys2&&) = 
delete;
 
  182     CoaddBoundedFieldPersistenceKeys2()
 
  184               field(
schema.addField<int>(
"field", 
"archive ID of the BoundedField to be coadded")),
 
  185               wcs(
schema.addField<int>(
"wcs", 
"archive ID of the Wcs associated with this element")),
 
  187                                                 "archive ID of the Polygon associated with this element")),
 
  188               weight(
schema.addField<double>(
"weight", 
"weight value for this element")) {}
 
  197         CoaddBoundedFieldPersistenceKeys1 
const& keys1 = CoaddBoundedFieldPersistenceKeys1::get();
 
  198         CoaddBoundedFieldPersistenceKeys2 
const& keys2 = CoaddBoundedFieldPersistenceKeys2::get();
 
  210                                        i->get(keys2.weight)));
 
  212         return std::make_shared<CoaddBoundedField>(
 
  215                 record1.
get(keys1.default_));
 
  223 std::string getCoaddBoundedFieldPersistenceName() { 
return "CoaddBoundedField"; }
 
  234     CoaddBoundedFieldPersistenceKeys1 
const& keys1 = CoaddBoundedFieldPersistenceKeys1::get();
 
  235     CoaddBoundedFieldPersistenceKeys2 
const& keys2 = CoaddBoundedFieldPersistenceKeys2::get();
 
  238     record1->set(keys1.bboxMin, 
getBBox().getMin());
 
  239     record1->set(keys1.bboxMax, 
getBBox().getMax());
 
  240     record1->set(keys1.coaddWcs, handle.
put(_coaddWcs));
 
  241     record1->set(keys1.default_, _default);
 
  244     for (ElementVector::const_iterator i = _elements.
begin(); i != _elements.
end(); ++i) {
 
  246         record2->set(keys2.field, handle.
put(i->field));
 
  247         record2->set(keys2.wcs, handle.
put(i->wcs));
 
  248         record2->set(keys2.validPolygon, handle.
put(i->validPolygon));
 
  249         record2->set(keys2.weight, i->weight);
 
  260     if (!rhsCasted) 
return false;
 
  262     return (
getBBox() == rhsCasted->getBBox()) && (_default == rhsCasted->_default) &&
 
  263            ptrEquals(_coaddWcs, rhsCasted->_coaddWcs) && (_elements == rhsCasted->_elements);
 
table::Key< std::string > name
 
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
 
#define LSST_ARCHIVE_ASSERT(EXPR)
An assertion macro used to validate the structure of an InputArchive.
 
A 2-dimensional celestial WCS that transform pixels to ICRS RA/Dec, using the LSST standard for pixel...
 
An abstract base class for 2-d functions defined on an integer bounding boxes.
 
lsst::geom::Box2I getBBox() const
Return the bounding box that defines the region where the field is valid.
 
Base class for all records.
 
Field< T >::Value get(Key< T > const &key) const
Return the value of a field for the given key.
 
Iterator class for CatalogT.
 
std::shared_ptr< RecordT > addNew()
Create a new record, add it to the end of the catalog, and return a pointer to it.
 
A vector of catalogs used by Persistable.
 
An object passed to Persistable::write to allow it to persist itself.
 
void saveCatalog(BaseCatalog const &catalog)
Save a catalog in the archive.
 
BaseCatalog makeCatalog(Schema const &schema)
Return a new, empty catalog with the given schema.
 
int put(Persistable const *obj, bool permissive=false)
Save an object to the archive and return a unique ID that can be used to retrieve it from an InputArc...
 
static std::shared_ptr< T > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
 
A base class for factory classes used to reconstruct objects from records.
 
A floating-point coordinate rectangle geometry.
 
bool contains(Point2D const &point) const noexcept
Return true if the box contains the point.
 
An integer coordinate rectangle.
 
Factory(std::string const &name)
 
virtual std::shared_ptr< afw::table::io::Persistable > read(InputArchive const &archive, CatalogVector const &catalogs) const
Construct a new object from the given InputArchive and vector of catalogs.
 
CoaddBoundedField(geom::Box2I const &bbox, std::shared_ptr< afw::geom::SkyWcs const > coaddWcs, ElementVector const &elements)
 
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
 
std::shared_ptr< afw::math::BoundedField > operator*(double const scale) const override
Return a scaled BoundedField.
 
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
 
double evaluate(geom::Point2D const &position) const override
Evaluate the field at the given point.
 
bool operator==(BoundedField const &rhs) const override
BoundedFields (of the same sublcass) are equal if their bounding boxes and parameters are equal.
 
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
 
Reports arguments outside the domain of an operation.
 
Reports attempts to access elements using an invalid key.
 
def scale(algorithm, min, max=None, frame=None)
 
bool operator==(FilterProperty const &rhs) const noexcept
Return true iff two FilterProperties are identical.
 
FilterProperty & operator=(FilterProperty const &)=default
 
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
 
A base class for image defects.
 
afw::table::Key< double > weight
 
afw::table::PointKey< int > bboxMax
 
afw::table::Key< afw::table::Flag > throwOnMissing
 
afw::table::Key< int > coaddWcs
 
afw::table::Key< int > field
 
afw::table::Key< double > default_
 
afw::table::Key< int > validPolygon
 
afw::table::Schema schema
 
afw::table::PointKey< int > bboxMin
 
afw::table::Key< int > wcs
 
Struct used to hold one Exposure's data in a CoaddBoundedField.
 
std::shared_ptr< afw::geom::SkyWcs const  > wcs
 
std::shared_ptr< afw::math::BoundedField > field
 
std::shared_ptr< afw::geom::polygon::Polygon const  > validPolygon