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 (
DataTypeor 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