Interpolation of IRFs

This module contains functions to interpolate from a set of IRFs for different conditions to a new IRF. Implementations of interpolation algorithms exist as interpolator classes and are applied by top-level estimator classes to IRF components. Direct usage of the interpolator classes is discuraged, as only the estimator classes check the data for consistency.

This can e.g. be used to interpolate IRFs for zenith angles of 20° and 40° to 30°.

Most methods support an arbitrary number of interpolation dimensions although it is strongly advised to limit those for resonable results.

Reference/API

pyirf.interpolation Package

Collection of interpolation and extrapolation methods

Classes

BaseComponentEstimator(grid_points)

Base class for all Estimators working on specific IRF components.

BaseInterpolator(grid_points)

Base class for all interpolators, only knowing grid-points, providing a common __call__-interface.

BaseNearestNeighborSearcher(grid_points, ...)

Dummy NearestNeighbor approach usable instead of actual Interpolation/Extrapolation

BaseExtrapolator(grid_points)

Base class for all extrapolators, only knowing grid-points, providing a common __call__-interface.

DiscretePDFExtrapolator(grid_points, ...)

Base class for all extrapolators used with binned IRF components like EDisp.

ParametrizedExtrapolator(grid_points, params)

Base class for all extrapolators used with IRF components that can be treated independently, e.g.

DiscretePDFComponentEstimator(grid_points, ...)

Base class for all Estimators working on IRF components that represent discretized PDFs.

DiscretePDFInterpolator(grid_points, ...)

Base class for all interpolators used with binned IRF components like EDisp.

DiscretePDFNearestNeighborSearcher(...[, ...])

Dummy NearestNeighbor approach usable instead of actual Interpolation/Extrapolation.

GridDataInterpolator(grid_points, params, ...)

MomentMorphInterpolator(grid_points, ...)

MomentMorphNearestSimplexExtrapolator(...)

ParametrizedComponentEstimator(grid_points, ...)

Base class for all Estimators working on IRF components that represent parametrized or scalar quantities.

ParametrizedInterpolator(grid_points, params)

Base class for all interpolators used with IRF components that can be independently interpolated, e.g.

ParametrizedNearestNeighborSearcher(...[, ...])

Dummy NearestNeighbor approach usable instead of actual Interpolation/Extrapolation Compatible with parametrized IRF component API.

ParametrizedNearestSimplexExtrapolator(...)

QuantileInterpolator(grid_points, bin_edges, ...)

EffectiveAreaEstimator(grid_points, ...[, ...])

RadMaxEstimator(grid_points, rad_max[, ...])

EnergyDispersionEstimator(grid_points, ...)

PSFTableEstimator(grid_points, ...[, ...])

Class Inheritance Diagram

digraph inheritance0db9d6eb4c { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "BaseComponentEstimator" [URL="api/pyirf.interpolation.BaseComponentEstimator.html#pyirf.interpolation.BaseComponentEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all Estimators working on specific IRF components."]; "BaseExtrapolator" [URL="api/pyirf.interpolation.BaseExtrapolator.html#pyirf.interpolation.BaseExtrapolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all extrapolators, only knowing grid-points,"]; "BaseInterpolator" [URL="api/pyirf.interpolation.BaseInterpolator.html#pyirf.interpolation.BaseInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all interpolators, only knowing grid-points,"]; "BaseNearestNeighborSearcher" [URL="api/pyirf.interpolation.BaseNearestNeighborSearcher.html#pyirf.interpolation.BaseNearestNeighborSearcher",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Dummy NearestNeighbor approach usable instead of"]; "BaseInterpolator" -> "BaseNearestNeighborSearcher" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DiscretePDFComponentEstimator" [URL="api/pyirf.interpolation.DiscretePDFComponentEstimator.html#pyirf.interpolation.DiscretePDFComponentEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all Estimators working on IRF components that represent discretized PDFs."]; "BaseComponentEstimator" -> "DiscretePDFComponentEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DiscretePDFExtrapolator" [URL="api/pyirf.interpolation.DiscretePDFExtrapolator.html#pyirf.interpolation.DiscretePDFExtrapolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all extrapolators used with binned IRF components like EDisp."]; "BaseExtrapolator" -> "DiscretePDFExtrapolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DiscretePDFInterpolator" [URL="api/pyirf.interpolation.DiscretePDFInterpolator.html#pyirf.interpolation.DiscretePDFInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all interpolators used with binned IRF components like EDisp."]; "BaseInterpolator" -> "DiscretePDFInterpolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DiscretePDFNearestNeighborSearcher" [URL="api/pyirf.interpolation.DiscretePDFNearestNeighborSearcher.html#pyirf.interpolation.DiscretePDFNearestNeighborSearcher",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Dummy NearestNeighbor approach usable instead of"]; "BaseNearestNeighborSearcher" -> "DiscretePDFNearestNeighborSearcher" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EffectiveAreaEstimator" [URL="api/pyirf.interpolation.EffectiveAreaEstimator.html#pyirf.interpolation.EffectiveAreaEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ParametrizedComponentEstimator" -> "EffectiveAreaEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EnergyDispersionEstimator" [URL="api/pyirf.interpolation.EnergyDispersionEstimator.html#pyirf.interpolation.EnergyDispersionEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "DiscretePDFComponentEstimator" -> "EnergyDispersionEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "GridDataInterpolator" [URL="api/pyirf.interpolation.GridDataInterpolator.html#pyirf.interpolation.GridDataInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ParametrizedInterpolator" -> "GridDataInterpolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MomentMorphInterpolator" [URL="api/pyirf.interpolation.MomentMorphInterpolator.html#pyirf.interpolation.MomentMorphInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "DiscretePDFInterpolator" -> "MomentMorphInterpolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MomentMorphNearestSimplexExtrapolator" [URL="api/pyirf.interpolation.MomentMorphNearestSimplexExtrapolator.html#pyirf.interpolation.MomentMorphNearestSimplexExtrapolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "DiscretePDFExtrapolator" -> "MomentMorphNearestSimplexExtrapolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PSFTableEstimator" [URL="api/pyirf.interpolation.PSFTableEstimator.html#pyirf.interpolation.PSFTableEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "DiscretePDFComponentEstimator" -> "PSFTableEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ParametrizedComponentEstimator" [URL="api/pyirf.interpolation.ParametrizedComponentEstimator.html#pyirf.interpolation.ParametrizedComponentEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all Estimators working on IRF components that represent parametrized"]; "BaseComponentEstimator" -> "ParametrizedComponentEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ParametrizedExtrapolator" [URL="api/pyirf.interpolation.ParametrizedExtrapolator.html#pyirf.interpolation.ParametrizedExtrapolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all extrapolators used with IRF components that can be"]; "BaseExtrapolator" -> "ParametrizedExtrapolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ParametrizedInterpolator" [URL="api/pyirf.interpolation.ParametrizedInterpolator.html#pyirf.interpolation.ParametrizedInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base class for all interpolators used with IRF components that can be"]; "BaseInterpolator" -> "ParametrizedInterpolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ParametrizedNearestNeighborSearcher" [URL="api/pyirf.interpolation.ParametrizedNearestNeighborSearcher.html#pyirf.interpolation.ParametrizedNearestNeighborSearcher",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Dummy NearestNeighbor approach usable instead of"]; "BaseNearestNeighborSearcher" -> "ParametrizedNearestNeighborSearcher" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ParametrizedNearestSimplexExtrapolator" [URL="api/pyirf.interpolation.ParametrizedNearestSimplexExtrapolator.html#pyirf.interpolation.ParametrizedNearestSimplexExtrapolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ParametrizedExtrapolator" -> "ParametrizedNearestSimplexExtrapolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "QuantileInterpolator" [URL="api/pyirf.interpolation.QuantileInterpolator.html#pyirf.interpolation.QuantileInterpolator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "DiscretePDFInterpolator" -> "QuantileInterpolator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RadMaxEstimator" [URL="api/pyirf.interpolation.RadMaxEstimator.html#pyirf.interpolation.RadMaxEstimator",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ParametrizedComponentEstimator" -> "RadMaxEstimator" [arrowsize=0.5,style="setlinewidth(0.5)"]; }