CfhtIsrTaskConfig¶
-
class
lsst.obs.cfht.cfhtIsrTask.
CfhtIsrTaskConfig
¶ Bases:
lsst.ip.isr.isrTask.IsrTaskConfig
Attributes Summary
assembleCcd
CCD assembly task ( ConfigurableInstance
, default<class 'lsst.ip.isr.assembleCcdTask.AssembleCcdConfig'>
)badStatistic
How to estimate the average value for BAD regions. biasDataProductName
Name of the bias data product ( str
, default'bias'
)brighterFatterApplyGain
Should the gain be applied when applying the brighter fatter correction? ( bool
, defaultTrue
)brighterFatterLevel
The level at which to correct for brighter-fatter. brighterFatterMaskGrowSize
Number of pixels to grow the masks listed in config.maskListToInterpolate when brighter-fatter correction is applied. brighterFatterMaxIter
Maximum number of iterations for the brighter fatter correction ( int
, default10
)brighterFatterThreshold
Threshold used to stop iterating the brighter fatter correction. connections
Configurations describing the connections of the PipelineTask to datatypes ( Connections
, default<class 'lsst.pipe.base.config.Connections'>
)crosstalk
Intra-CCD crosstalk correction ( ConfigurableInstance
, default<class 'lsst.ip.isr.crosstalk.CrosstalkConfig'>
)darkDataProductName
Name of the dark data product ( str
, default'dark'
)datasetType
Dataset type for input data; users will typically leave this alone, but camera-specific ISR tasks will override it ( str
, default'raw'
)defaultFluxMag0T1
Default value for fluxMag0T1 (for an unrecognized filter). doAddDistortionModel
Apply a distortion model based on camera geometry to the WCS? Deprecated: Camera geometry is incorporated when reading the raw files. doApplyGains
Correct the amplifiers for their gains instead of applying flat correction ( bool
, defaultFalse
)doAssembleCcd
Assemble amp-level exposures into a ccd-level exposure? ( bool
, defaultTrue
)doAssembleIsrExposures
Assemble amp-level calibration exposures into ccd-level exposure? ( bool
, defaultFalse
)doAttachTransmissionCurve
Construct and attach a wavelength-dependent throughput curve for this CCD image? ( bool
, defaultFalse
)doBias
Apply bias frame correction? ( bool
, defaultTrue
)doBrighterFatter
Apply the brighter fatter correction ( bool
, defaultFalse
)doCameraSpecificMasking
Mask camera-specific bad regions? ( bool
, defaultFalse
)doConvertIntToFloat
Convert integer raw images to floating point values? ( bool
, defaultTrue
)doCrosstalk
Apply intra-CCD crosstalk correction? ( bool
, defaultFalse
)doCrosstalkBeforeAssemble
Apply crosstalk correction before CCD assembly, and before trimming? ( bool
, defaultFalse
)doDark
Apply dark frame correction? ( bool
, defaultTrue
)doDefect
Apply correction for CCD defects, e.g. doEmpiricalReadNoise
Calculate empirical read noise instead of value from AmpInfo data? ( bool
, defaultFalse
)doFlat
Apply flat field correction? ( bool
, defaultTrue
)doFringe
Apply fringe correction? ( bool
, defaultTrue
)doIlluminationCorrection
Perform illumination correction? ( bool
, defaultFalse
)doInterpolate
Interpolate masked pixels? ( bool
, defaultTrue
)doLinearize
Correct for nonlinearity of the detector’s response? ( bool
, defaultTrue
)doMeasureBackground
Measure the background level on the reduced image? ( bool
, defaultFalse
)doNanInterpAfterFlat
If True, ensure we interpolate NaNs after flat-fielding, even if we also have to interpolate them before flat-fielding. doNanInterpolation
Perform interpolation over pixels masked as NaN? NB: This is independent of doNanMasking; if that is False this plane will likely be blank, resulting in a no-op here. doNanMasking
Mask NAN pixels? ( bool
, defaultTrue
)doOverscan
Do overscan subtraction? ( bool
, defaultTrue
)doSaturation
Mask saturated pixels? NB: this is totally independent of the interpolation option - this is ONLY setting the bits in the mask. doSaturationInterpolation
Perform interpolation over pixels masked as saturated? NB: This is independent of doSaturation; if that is False this plane will likely be blank, resulting in a no-op here. doSaveInterpPixels
Save a copy of the pre-interpolated pixel values? ( bool
, defaultFalse
)doSetBadRegions
Should we set the level of all BAD patches of the chip to the chip’s average value? ( bool
, defaultTrue
)doStrayLight
Subtract stray light in the y-band (due to encoder LEDs)? ( bool
, defaultFalse
)doSuspect
Mask suspect pixels? ( bool
, defaultFalse
)doTrimToMatchCalib
Trim raw data to match calibration bounding boxes? ( bool
, defaultFalse
)doTweakFlat
Tweak flats to match observed amplifier ratios? ( bool
, defaultFalse
)doUseAtmosphereTransmission
Load and use transmission_atmosphere (if doAttachTransmissionCurve is True)? ( bool
, defaultTrue
)doUseFilterTransmission
Load and use transmission_filter (if doAttachTransmissionCurve is True)? ( bool
, defaultTrue
)doUseOpticsTransmission
Load and use transmission_optics (if doAttachTransmissionCurve is True)? ( bool
, defaultTrue
)doUseSensorTransmission
Load and use transmission_sensor (if doAttachTransmissionCurve is True)? ( bool
, defaultTrue
)doVariance
Calculate variance? ( bool
, defaultTrue
)doVignette
Apply vignetting parameters? ( bool
, defaultFalse
)doWidenSaturationTrails
Widen bleed trails based on their width? ( bool
, defaultTrue
)doWrite
Persist postISRCCD? ( bool
, defaultTrue
)expectWcs
Expect input science images to have a WCS (set False for e.g. fallbackFilterName
Fallback default filter name for calibrations. flatDataProductName
Name of the flat data product ( str
, default'flat'
)flatScalingType
The method for scaling the flat on the fly. flatUserScale
If flatScalingType is ‘USER’ then scale flat by this amount; ignored otherwise ( float
, default1.0
)fluxMag0T1
The approximate flux of a zero-magnitude object in a one-second exposure, per filter. fringe
Fringe subtraction task ( ConfigurableInstance
, default<class 'lsst.ip.isr.fringe.FringeConfig'>
)fringeAfterFlat
Do fringe subtraction after flat-fielding? ( bool
, defaultTrue
)fwhm
FWHM of PSF in arcseconds. gain
The gain to use if no Detector is present in the Exposure (ignored if NaN) ( float
, defaultnan
)growSaturationFootprintSize
Number of pixels by which to grow the saturation footprints ( int
, default1
)history
illumFilters
Only perform illumination correction for these filters. illumScale
Scale factor for the illumination correction. illuminationCorrectionDataProductName
Name of the illumination correction data product. maskListToInterpolate
List of mask planes that should be interpolated. masking
Masking task. normalizeGains
Normalize all the amplifiers in each CCD to have the same median value. numEdgeSuspect
Number of edge pixels to be flagged as untrustworthy. overscanBiasJump
Fit the overscan in a piecewise-fashion to correct for bias jumps? ( bool
, defaultFalse
)overscanBiasJumpDevices
List of devices that need piecewise overscan correction. overscanBiasJumpKeyword
Header keyword containing information about devices. overscanBiasJumpLocation
Location of bias jump along y-axis. overscanFitType
The method for fitting the overscan bias level. overscanIsInt
Treat overscan as an integer image for purposes of overscan.FitType=MEDIAN and overscan.FitType=MEDIAN_PER_ROW. overscanMaxDev
Maximum deviation from the median for overscan ( float
, default1000.0
)overscanNumLeadingColumnsToSkip
Number of columns to skip in overscan, i.e. overscanNumSigmaClip
Rejection threshold (sigma) for collapsing overscan before fit ( float
, default3.0
)overscanNumTrailingColumnsToSkip
Number of columns to skip in overscan, i.e. overscanOrder
Order of polynomial or to fit if overscan fit type is a polynomial, or number of spline knots if overscan fit type is a spline. qa
QA related configuration options. readNoise
The read noise to use if no Detector is present in the Exposure ( float
, default0.0
)safe
Safety margin for CFHT sensors gain determination ( float
, default0.95
)saturatedMaskName
Name of mask plane to use in saturation detection and interpolation ( str
, default'SAT'
)saturation
The saturation level to use if no Detector is present in the Exposure (ignored if NaN) ( float
, defaultnan
)saveMetadata
Flag to enable/disable metadata saving for a task, enabled by default. strayLight
y-band stray light correction ( ConfigurableInstance
, default<class 'lsst.ip.isr.straylight.StrayLightConfig'>
)suspectMaskName
Name of mask plane to use for suspect pixels ( str
, default'SUSPECT'
)useFallbackDate
Pass observation date when using fallback filter. vignette
Vignetting task. Methods Summary
compare
(other[, shortcut, rtol, atol, output])Compare this configuration to another Config
for equality.formatHistory
(name, **kwargs)Format a configuration field’s history to a human-readable format. freeze
()Make this config, and all subconfigs, read-only. items
()Get configurations as (field name, field value)
pairs.iteritems
()Iterate over (field name, field value) pairs. iterkeys
()Iterate over field names itervalues
()Iterate over field values. keys
()Get field names. load
(filename[, root])Modify this config in place by executing the Python code in a configuration file. loadFromStream
(stream[, root, filename])Modify this Config in place by executing the Python code in the provided stream. names
()Get all the field names in the config, recursively. save
(filename[, root])Save a Python script to the named file, which, when loaded, reproduces this config. saveToStream
(outfile[, root, skipImports])Save a configuration file to a stream, which, when loaded, reproduces this config. setDefaults
()Subclass hook for computing defaults. toDict
()Make a dictionary of field names and their values. update
(**kw)Update values of fields specified by the keyword arguments. validate
()Validate the Config, raising an exception if invalid. values
()Get field values. Attributes Documentation
-
assembleCcd
¶ CCD assembly task (
ConfigurableInstance
, default<class 'lsst.ip.isr.assembleCcdTask.AssembleCcdConfig'>
)
-
badStatistic
¶ How to estimate the average value for BAD regions. (
str
, default'MEANCLIP'
)Allowed values:
'MEANCLIP'
- Correct using the (clipped) mean of good data
'MEDIAN'
- Correct using the median of the good data
'None'
- Field is optional
-
brighterFatterApplyGain
¶ Should the gain be applied when applying the brighter fatter correction? (
bool
, defaultTrue
)
-
brighterFatterLevel
¶ The level at which to correct for brighter-fatter. (
str
, default'DETECTOR'
)Allowed values:
'AMP'
- Every amplifier treated separately.
'DETECTOR'
- One kernel per detector
'None'
- Field is optional
-
brighterFatterMaskGrowSize
¶ Number of pixels to grow the masks listed in config.maskListToInterpolate when brighter-fatter correction is applied. (
int
, default0
)
-
brighterFatterMaxIter
¶ Maximum number of iterations for the brighter fatter correction (
int
, default10
)
-
brighterFatterThreshold
¶ Threshold used to stop iterating the brighter fatter correction. It is the absolute value of the difference between the current corrected image and the one from the previous iteration summed over all the pixels. (
float
, default1000
)
-
connections
¶ Configurations describing the connections of the PipelineTask to datatypes (
Connections
, default<class 'lsst.pipe.base.config.Connections'>
)
-
crosstalk
¶ Intra-CCD crosstalk correction (
ConfigurableInstance
, default<class 'lsst.ip.isr.crosstalk.CrosstalkConfig'>
)
-
datasetType
¶ Dataset type for input data; users will typically leave this alone, but camera-specific ISR tasks will override it (
str
, default'raw'
)
-
defaultFluxMag0T1
¶ Default value for fluxMag0T1 (for an unrecognized filter). (
float
, default158489319246.11172
)
-
doAddDistortionModel
¶ Apply a distortion model based on camera geometry to the WCS? Deprecated: Camera geometry is incorporated when reading the raw files. This option no longer is used, and will be removed after v19. (
bool
, defaultTrue
)
-
doApplyGains
¶ Correct the amplifiers for their gains instead of applying flat correction (
bool
, defaultFalse
)
-
doAssembleIsrExposures
¶ Assemble amp-level calibration exposures into ccd-level exposure? (
bool
, defaultFalse
)
-
doAttachTransmissionCurve
¶ Construct and attach a wavelength-dependent throughput curve for this CCD image? (
bool
, defaultFalse
)
-
doCrosstalkBeforeAssemble
¶ Apply crosstalk correction before CCD assembly, and before trimming? (
bool
, defaultFalse
)
-
doEmpiricalReadNoise
¶ Calculate empirical read noise instead of value from AmpInfo data? (
bool
, defaultFalse
)
-
doNanInterpAfterFlat
¶ If True, ensure we interpolate NaNs after flat-fielding, even if we also have to interpolate them before flat-fielding. (
bool
, defaultFalse
)
-
doNanInterpolation
¶ Perform interpolation over pixels masked as NaN? NB: This is independent of doNanMasking; if that is False this plane will likely be blank, resulting in a no-op here. (
bool
, defaultTrue
)
-
doSaturation
¶ Mask saturated pixels? NB: this is totally independent of the interpolation option - this is ONLY setting the bits in the mask. To have them interpolated make sure doSaturationInterpolation=True (
bool
, defaultTrue
)
-
doSaturationInterpolation
¶ Perform interpolation over pixels masked as saturated? NB: This is independent of doSaturation; if that is False this plane will likely be blank, resulting in a no-op here. (
bool
, defaultTrue
)
-
doSetBadRegions
¶ Should we set the level of all BAD patches of the chip to the chip’s average value? (
bool
, defaultTrue
)
-
doUseAtmosphereTransmission
¶ Load and use transmission_atmosphere (if doAttachTransmissionCurve is True)? (
bool
, defaultTrue
)
-
doUseFilterTransmission
¶ Load and use transmission_filter (if doAttachTransmissionCurve is True)? (
bool
, defaultTrue
)
-
doUseOpticsTransmission
¶ Load and use transmission_optics (if doAttachTransmissionCurve is True)? (
bool
, defaultTrue
)
-
doUseSensorTransmission
¶ Load and use transmission_sensor (if doAttachTransmissionCurve is True)? (
bool
, defaultTrue
)
-
expectWcs
¶ Expect input science images to have a WCS (set False for e.g. spectrographs). (
bool
, defaultTrue
)
-
flatScalingType
¶ The method for scaling the flat on the fly. (
str
, default'USER'
)Allowed values:
'USER'
- Scale by flatUserScale
'MEAN'
- Scale by the inverse of the mean
'MEDIAN'
- Scale by the inverse of the median
'None'
- Field is optional
-
flatUserScale
¶ If flatScalingType is ‘USER’ then scale flat by this amount; ignored otherwise (
float
, default1.0
)
-
fluxMag0T1
¶ The approximate flux of a zero-magnitude object in a one-second exposure, per filter. (
Dict
, default{'Unknown': 158489319246.11172}
)
-
fringe
¶ Fringe subtraction task (
ConfigurableInstance
, default<class 'lsst.ip.isr.fringe.FringeConfig'>
)
-
gain
¶ The gain to use if no Detector is present in the Exposure (ignored if NaN) (
float
, defaultnan
)
-
growSaturationFootprintSize
¶ Number of pixels by which to grow the saturation footprints (
int
, default1
)
-
history
¶
-
illumFilters
¶ Only perform illumination correction for these filters. (
List
, default[]
)
-
illuminationCorrectionDataProductName
¶ Name of the illumination correction data product. (
str
, default'illumcor'
)
-
maskListToInterpolate
¶ List of mask planes that should be interpolated. (
List
, default['SAT', 'BAD', 'UNMASKEDNAN']
)
-
masking
¶ Masking task. (
ConfigurableInstance
, default<class 'lsst.ip.isr.masking.MaskingConfig'>
)
-
normalizeGains
¶ Normalize all the amplifiers in each CCD to have the same median value. (
bool
, defaultFalse
)
-
overscanBiasJump
¶ Fit the overscan in a piecewise-fashion to correct for bias jumps? (
bool
, defaultFalse
)
-
overscanBiasJumpDevices
¶ List of devices that need piecewise overscan correction. (
List
, default()
)
-
overscanBiasJumpKeyword
¶ Header keyword containing information about devices. (
str
, default'NO_SUCH_KEY'
)
-
overscanFitType
¶ The method for fitting the overscan bias level. (
str
, default'MEDIAN'
)Allowed values:
'POLY'
- Fit ordinary polynomial to the longest axis of the overscan region
'CHEB'
- Fit Chebyshev polynomial to the longest axis of the overscan region
'LEG'
- Fit Legendre polynomial to the longest axis of the overscan region
'NATURAL_SPLINE'
- Fit natural spline to the longest axis of the overscan region
'CUBIC_SPLINE'
- Fit cubic spline to the longest axis of the overscan region
'AKIMA_SPLINE'
- Fit Akima spline to the longest axis of the overscan region
'MEAN'
- Correct using the mean of the overscan region
'MEANCLIP'
- Correct using a clipped mean of the overscan region
'MEDIAN'
- Correct using the median of the overscan region
'MEDIAN_PER_ROW'
- Correct using the median per row of the overscan region
'None'
- Field is optional
-
overscanIsInt
¶ Treat overscan as an integer image for purposes of overscan.FitType=MEDIAN and overscan.FitType=MEDIAN_PER_ROW. (
bool
, defaultTrue
)
-
overscanNumLeadingColumnsToSkip
¶ Number of columns to skip in overscan, i.e. those closest to amplifier (
int
, default0
)
-
overscanNumSigmaClip
¶ Rejection threshold (sigma) for collapsing overscan before fit (
float
, default3.0
)
-
overscanNumTrailingColumnsToSkip
¶ Number of columns to skip in overscan, i.e. those farthest from amplifier (
int
, default0
)
-
overscanOrder
¶ Order of polynomial or to fit if overscan fit type is a polynomial, or number of spline knots if overscan fit type is a spline. (
int
, default1
)
-
qa
¶ QA related configuration options. (
IsrQaConfig
, default<class 'lsst.ip.isr.isrQa.IsrQaConfig'>
)
-
saturatedMaskName
¶ Name of mask plane to use in saturation detection and interpolation (
str
, default'SAT'
)
-
saturation
¶ The saturation level to use if no Detector is present in the Exposure (ignored if NaN) (
float
, defaultnan
)
-
saveMetadata
¶ Flag to enable/disable metadata saving for a task, enabled by default. (
bool
, defaultTrue
)
-
strayLight
¶ y-band stray light correction (
ConfigurableInstance
, default<class 'lsst.ip.isr.straylight.StrayLightConfig'>
)
-
vignette
¶ Vignetting task. (
ConfigurableInstance
, default<class 'lsst.ip.isr.vignette.VignetteConfig'>
)
Methods Documentation
-
compare
(other, shortcut=True, rtol=1e-08, atol=1e-08, output=None)¶ Compare this configuration to another
Config
for equality.Parameters: - other :
lsst.pex.config.Config
Other
Config
object to compare against this config.- shortcut :
bool
, optional If
True
, return as soon as an inequality is found. Default isTrue
.- rtol :
float
, optional Relative tolerance for floating point comparisons.
- atol :
float
, optional Absolute tolerance for floating point comparisons.
- output : callable, optional
A callable that takes a string, used (possibly repeatedly) to report inequalities.
Returns: - isEqual :
bool
True
when the twolsst.pex.config.Config
instances are equal.False
if there is an inequality.
See also
Notes
Unselected targets of
RegistryField
fields and unselected choices ofConfigChoiceField
fields are not considered by this method.Floating point comparisons are performed by
numpy.allclose
.- other :
-
formatHistory
(name, **kwargs)¶ Format a configuration field’s history to a human-readable format.
Parameters: - name :
str
Name of a
Field
in this config.- kwargs
Keyword arguments passed to
lsst.pex.config.history.format
.
Returns: - history :
str
A string containing the formatted history.
See also
- name :
-
freeze
()¶ Make this config, and all subconfigs, read-only.
-
items
()¶ Get configurations as
(field name, field value)
pairs.Returns: - items :
list
List of tuples for each configuration. Tuple items are:
- Field name.
- Field value.
See also
- items :
-
iteritems
()¶ Iterate over (field name, field value) pairs.
Yields: - item :
tuple
Tuple items are:
- Field name.
- Field value.
See also
- item :
-
itervalues
()¶ Iterate over field values.
Yields: - value : obj
A field value.
See also
-
keys
()¶ Get field names.
Returns: - names :
list
List of
lsst.pex.config.Field
names.
See also
- names :
-
load
(filename, root='config')¶ Modify this config in place by executing the Python code in a configuration file.
Parameters: - filename :
str
Name of the configuration file. A configuration file is Python module.
- root :
str
, optional Name of the variable in file that refers to the config being overridden.
For example, the value of root is
"config"
and the file contains:config.myField = 5
Then this config’s field
myField
is set to5
.Deprecated: For backwards compatibility, older config files that use
root="root"
instead ofroot="config"
will be loaded with a warning printed tosys.stderr
. This feature will be removed at some point.
See also
lsst.pex.config.Config.loadFromStream
,lsst.pex.config.Config.save
,lsst.pex.config.Config.saveFromStream
- filename :
-
loadFromStream
(stream, root='config', filename=None)¶ Modify this Config in place by executing the Python code in the provided stream.
Parameters: - stream : file-like object,
str
, or compiled string Stream containing configuration override code.
- root :
str
, optional Name of the variable in file that refers to the config being overridden.
For example, the value of root is
"config"
and the file contains:config.myField = 5
Then this config’s field
myField
is set to5
.Deprecated: For backwards compatibility, older config files that use
root="root"
instead ofroot="config"
will be loaded with a warning printed tosys.stderr
. This feature will be removed at some point.- filename :
str
, optional Name of the configuration file, or
None
if unknown or contained in the stream. Used for error reporting.
See also
lsst.pex.config.Config.load
,lsst.pex.config.Config.save
,lsst.pex.config.Config.saveFromStream
- stream : file-like object,
-
names
()¶ Get all the field names in the config, recursively.
Returns:
-
save
(filename, root='config')¶ Save a Python script to the named file, which, when loaded, reproduces this config.
Parameters: - filename :
str
Desination filename of this configuration.
- root :
str
, optional Name to use for the root config variable. The same value must be used when loading (see
lsst.pex.config.Config.load
).
- filename :
-
saveToStream
(outfile, root='config', skipImports=False)¶ Save a configuration file to a stream, which, when loaded, reproduces this config.
Parameters: - outfile : file-like object
Destination file object write the config into. Accepts strings not bytes.
- root
Name to use for the root config variable. The same value must be used when loading (see
lsst.pex.config.Config.load
).- skipImports :
bool
, optional If
True
then do not includeimport
statements in output, this is to support human-oriented output frompipetask
where additional clutter is not useful.
-
setDefaults
()¶ Subclass hook for computing defaults.
Notes
Derived
Config
classes that must compute defaults rather than using theField
instances’s defaults should do so here. To correctly use inherited defaults, implementations ofsetDefaults
must call their base class’ssetDefaults
.
-
toDict
()¶ Make a dictionary of field names and their values.
Returns: See also
Notes
This method uses the
toDict
method of individual fields. Subclasses ofField
may need to implement atoDict
method for this method to work.
-
update
(**kw)¶ Update values of fields specified by the keyword arguments.
Parameters: - kw
Keywords are configuration field names. Values are configuration field values.
Notes
The
__at
and__label
keyword arguments are special internal keywords. They are used to strip out any internal steps from the history tracebacks of the config. Do not modify these keywords to subvert aConfig
instance’s history.Examples
This is a config with three fields:
>>> from lsst.pex.config import Config, Field >>> class DemoConfig(Config): ... fieldA = Field(doc='Field A', dtype=int, default=42) ... fieldB = Field(doc='Field B', dtype=bool, default=True) ... fieldC = Field(doc='Field C', dtype=str, default='Hello world') ... >>> config = DemoConfig()
These are the default values of each field:
>>> for name, value in config.iteritems(): ... print(f"{name}: {value}") ... fieldA: 42 fieldB: True fieldC: 'Hello world'
Using this method to update
fieldA
andfieldC
:>>> config.update(fieldA=13, fieldC='Updated!')
Now the values of each field are:
>>> for name, value in config.iteritems(): ... print(f"{name}: {value}") ... fieldA: 13 fieldB: True fieldC: 'Updated!'
-
validate
()¶ Validate the Config, raising an exception if invalid.
Raises: - lsst.pex.config.FieldValidationError
Raised if verification fails.
Notes
The base class implementation performs type checks on all fields by calling their
validate
methods.Complex single-field validation can be defined by deriving new Field types. For convenience, some derived
lsst.pex.config.Field
-types (ConfigField
andConfigChoiceField
) are defined inlsst.pex.config
that handle recursing into subconfigs.Inter-field relationships should only be checked in derived
Config
classes after calling this method, and base validation is complete.
-