numina.core
— Core classes for Pipelines¶
numina.core.dataholders
— Dataholders¶
Recipe requirements
-
class
numina.core.dataholders.
Parameter
(value, description, destination=None, optional=True, choices=None, validation=True, validator=None, accept_scalar=False, as_list=False, nelem=None)¶ The Recipe requires a plain Python type.
Parameters: - value (plain python type) – Default value of the parameter, the requested type is inferred from the type of value.
- description (str) – Description of the parameter. The value is used by numina show-recipes to provide human-readible documentation.
- destination (str, optional) – Name of the field in the RecipeInput object. Overrides the value provided by the name of the Parameter variable
- optional (bool, optional) – If False, the builder of the RecipeInput must provide a value for this Parameter. If True (default), the builder can skip this Parameter and then the default in value is used.
- choices (list of plain python type, optional) – The possible values of the inputs. Any other value will raise an exception
- validator (callable, optional) – A custom validator for inputs
- accept_scalar (bool, optional) – If True, when value is a list, scalar value inputs are converted to list. If False (default), scalar values will raise an exception if value is a list
- as_list (bool, optional:) – If True, consider the internal type a list even if value is scalar Default is False
- nelem (str or int, optional:) – If nelem is ‘*’, the list can contain any number of objects. If is ‘+’, the list must contain at least 1 element. With a number, the list must contain that number of elements.
-
convert
(val)¶ Convert input values to type values.
-
validate
(val)¶ Validate values according to the requirement
-
class
numina.core.dataholders.
Product
(ptype, description='', validation=True, destination=None, optional=False, default=None, choices=None)¶ Product holder for RecipeResult.
Deprecated since version 0.16: Product is replaced by Result. It will be removed in 1.0
-
class
numina.core.dataholders.
Requirement
(rtype, description, destination=None, optional=False, default=None, choices=None, validation=True, query_opts=None)¶ Requirement holder for RecipeInput.
Parameters: - rtype (
DataType
or Type[DataType]) – Object or class repressenting the yype of the requirement, it must be a subclass of DataType - description (str) – Description of the Requirement. The value is used by numina show-recipes to provide human-readable documentation.
- destination (str, optional) – Name of the field in the RecipeInput object. Overrides the value provided by the name of the Requirement variable
- optional (bool, optional) – If False, the builder of the RecipeInput must provide a value for this Parameter. If True (default), the builder can skip this Parameter and then the default in value is used.
- default (optional) – The value provided by the Requirement if the RecipeInput builder does not provide one.
- choices (list of values, optional) – The possible values of the inputs. Any other value will raise an exception
- rtype (
-
class
numina.core.dataholders.
Result
(ptype, description='', validation=True, destination=None, optional=False, default=None, choices=None)¶ Result holder for RecipeResult.
numina.core.metaclass
— Metaclasses¶
Base metaclasses
-
class
numina.core.metaclass.
RecipeInputType
¶ Metaclass for RecipeInput.
-
class
numina.core.metaclass.
RecipeResultType
¶ Metaclass for RecipeResult.
-
class
numina.core.metaclass.
StoreType
¶ Metaclass for storing members.
numina.core.metarecipes
— Meta class for recipes¶
Metaclasses for Recipes.
-
class
numina.core.metarecipes.
RecipeType
¶ Metaclass for Recipe.
-
numina.core.metarecipes.
generate_docs
(klass)¶ Add documentation to generated classes
numina.core.oresult
— Observation Result¶
Results of the Observing Blocks
-
class
numina.core.oresult.
ObservationResult
(instrument='UNKNOWN', mode='UNKNOWN')¶ The result of a observing block.
-
get_sample_frame
()¶ Return first available image in observation result
-
-
numina.core.oresult.
dataframe_from_list
(values)¶ Build a DataFrame object from a list.
-
numina.core.oresult.
obsres_from_dict
(values)¶ Build a ObservationResult object from a dictionary.
numina.core.pipeline
— Pipeline classes¶
DRP related classes
-
class
numina.core.pipeline.
InstrumentDRP
(name, configurations, modes, pipelines, products=None, datamodel=None, version='undefined')¶ Description of an Instrument Data Reduction Pipeline
Parameters: - name (str) – Name of the instrument
- configurations (dict of InstrumentConfiguration) –
- modes (dict of ObservingModes) –
- pipeline (dict of Pipeline) –
-
get_recipe_object
(mode_name, pipeline_name='default')¶ Build a recipe object from a given mode name
-
iterate_mode_provides
(modes, pipeline)¶ Return the mode that provides a given product
-
query_provides
(product, pipeline='default', search=False)¶ Return the mode that provides a given product
-
search_mode_provides
(product, pipeline='default')¶ Search the mode that provides a given product
-
select_configuration
(obresult)¶ Select instrument configuration based on OB
-
class
numina.core.pipeline.
ObservingMode
¶ Observing modes of an Instrument.
-
class
numina.core.pipeline.
Pipeline
(instrument, name, recipes, version=1, products=None, provides=None)¶ Base class for pipelines.
-
depsolve
()¶ Load all recipes to search for products
-
get_recipe_object
(mode)¶ Load recipe object, according to observing mode
-
load_product_class
(mode)¶ Load recipe object, according to observing mode
-
load_product_object
(name)¶ Load product object, according to name
-
load_recipe_object
(mode)¶ Load recipe object, according to observing mode
-
provides
(mode_label)¶ Return the ProductEntry for some mode
-
query_recipe
(mode)¶ Recursive query of all calibrations required by a mode
-
who_provides
(product_label)¶ Return the ProductEntry for some requirement
-
numina.core.pipelineload
— Build pipelines from files¶
Build a LoadableDRP from a yaml file
-
numina.core.pipelineload.
check_section
(node, section, keys=None)¶ Validate keys in a section
-
numina.core.pipelineload.
drp_load
(package, resource, confclass=None)¶ Load the DRPS from a resource file.
-
numina.core.pipelineload.
drp_load_data
(package, data, confclass=None)¶ Load the DRPS from data.
-
numina.core.pipelineload.
load_mode
(node)¶ Load one observing mdode
-
numina.core.pipelineload.
load_mode_builder
(obs_mode, node)¶ Load observing mode OB builder
-
numina.core.pipelineload.
load_mode_tagger
(obs_mode, node)¶ Load observing mode OB tagger
-
numina.core.pipelineload.
load_mode_validator
(obs_mode, node)¶ Load observing mode validator
-
numina.core.pipelineload.
load_modes
(node)¶ Load all observing modes
numina.core.recipeinout
— Recipe input and output¶
Recipe inputs and outputs
-
class
numina.core.recipeinout.
RecipeInput
(*args, **kwds)¶ RecipeInput base class
-
class
numina.core.recipeinout.
RecipeResult
(*args, **kwds)¶ The result of a Recipe.
-
class
numina.core.recipeinout.
RecipeResultQC
(*args, **kwds)¶
-
class
numina.core.recipeinout.
define_input
(inputClass)¶ Recipe decorator.
-
numina.core.recipeinout.
define_requirements
¶ alias of
numina.core.recipeinout.define_input
-
class
numina.core.recipeinout.
define_result
(resultClass)¶ Recipe decorator.
numina.core.recipes
— Base class for Recipes¶
Basic tools and classes used to generate recipe modules.
A recipe is a class that complies with the reduction recipe API:
- The class must derive from
numina.core.BaseRecipe
.
-
class
numina.core.recipes.
BaseRecipe
(*args, **kwargs)¶ Base class for all instrument recipes
Parameters: intermediate_results (bool, optional) – If True, save intermediate results of the Recipe -
obresult
¶ ObservationResult, requirement
-
qc
¶ QualityControl, result, QC.GOOD by default
-
logger
¶ recipe logger
-
class
RecipeInput
(*args, **kwds)¶ RecipeInput base class
-
class
RecipeResult
(*args, **kwds)¶ The result of a Recipe.
-
build_recipe_input
(ob, dal)¶ Build a RecipeInput object.
-
classmethod
create_input
(*args, **kwds)¶ Pass the result arguments to the RecipeInput constructor
-
classmethod
create_result
(*args, **kwds)¶ Pass the result arguments to the RecipeResult constructor
-
run_qc
(recipe_input, recipe_result)¶ Run Quality Control checks.
-
save_intermediate_array
(array, name)¶ Save intermediate array object as FITS.
-
save_intermediate_img
(img, name)¶ Save intermediate FITS objects.
-
set_base_headers
(hdr)¶ Set metadata in FITS headers.
-
validate_input
(recipe_input)¶ “Validate the input of the recipe
-
validate_result
(recipe_result)¶ Validate the result of the recipe
-
-
numina.core.recipes.
timeit
(method)¶ Decorator to measure the time used by the recipe
numina.core.requirements
— Recipe requirements¶
Recipe requirement holders
-
class
numina.core.requirements.
InstrumentConfigurationRequirement
¶ The Recipe requires the configuration of the instrument.
-
class
numina.core.requirements.
ObservationResultRequirement
(query_opts=None)¶ The Recipe requires the result of an observation.
numina.core.taggers
— Extract information from OBs¶
Function to retrieve tags from Observation results.
Parameters: - (ObservationResult) (ob) –
- (dict) (reqtags) –
Returns: Return type: A dictionary
numina.core.types
— Types for Recipe IO¶
Deprecated since version 0.17: Use numina.types
numina.core.utils
— Utilities¶
Recipes for system checks.
-
class
numina.core.utils.
AlwaysFailRecipe
(*args, **kwargs)¶ A Recipe that always fails.
-
class
RecipeInput
(*args, **kwds)¶ RecipeInput base class
-
class
RecipeResult
(*args, **kwds)¶ The result of a Recipe.
-
class
-
class
numina.core.utils.
AlwaysSuccessRecipe
(*args, **kwargs)¶ A Recipe that always successes.
-
class
RecipeInput
(*args, **kwds)¶ RecipeInput base class
-
class
RecipeResult
(*args, **kwds)¶ The result of a Recipe.
-
class
-
class
numina.core.utils.
Combine
(*args, **kwargs)¶ -
class
CombineInput
(*args, **kwds)¶ CombineInput documentation.
-
field
¶ str, requirement, optional, default=image – Extract field of previous result
-
method
¶ str, requirement, optional, default=mean – Method of combination
-
obresult
¶ ObservationResultType, requirement – Observation Result
-
-
RecipeInput
¶ alias of
numina.core.metaclass.CombineInput
-
RecipeResult
¶ alias of
numina.core.metaclass.CombineResult
-
build_recipe_input
(obsres, dal)¶ Build a RecipeInput object.
-
class
-
class
numina.core.utils.
OBSuccessRecipe
(*args, **kwargs)¶ A Recipe that always successes, it requires an OB
-
class
OBSuccessRecipeInput
(*args, **kwds)¶ OBSuccessRecipeInput documentation.
-
obresult
¶ ObservationResultType, requirement – Observation Result
-
-
RecipeInput
¶ alias of
numina.core.metaclass.OBSuccessRecipeInput
-
class
RecipeResult
(*args, **kwds)¶ The result of a Recipe.
-
class
numina.core.validator
— Input output validation¶
Validator decorator
-
numina.core.validator.
as_list
(callable)¶ Convert a scalar validator in a list validator
-
numina.core.validator.
only_positive
(value)¶ Validation error is value is negative
-
numina.core.validator.
range_validator
(minval=None, maxval=None)¶ Generates a function that validates that a number is within range
Parameters: - minval (numeric, optional:) – Values strictly lesser than minval are rejected
- maxval (numeric, optional:) – Values strictly greater than maxval are rejected
Returns: - A function that returns values if are in the range and raises
- ValidationError is the values are outside the range
-
numina.core.validator.
validate
(method)¶ Decorate run method, inputs and outputs are validated