Table Of Contents

Previous topic

Composition

Next topic

Elemental ID

Detector

Conditions describing the type and configuration of a detector used to collect the data.

Constants

Signal types

pyhmsa.spec.condition.detector.SIGNAL_TYPE_EDS
pyhmsa.spec.condition.detector.SIGNAL_TYPE_WDS
pyhmsa.spec.condition.detector.SIGNAL_TYPE_ELS
pyhmsa.spec.condition.detector.SIGNAL_TYPE_AES
pyhmsa.spec.condition.detector.SIGNAL_TYPE_PES
pyhmsa.spec.condition.detector.SIGNAL_TYPE_XRF
pyhmsa.spec.condition.detector.SIGNAL_TYPE_CLS
pyhmsa.spec.condition.detector.SIGNAL_TYPE_GAM
pyhmsa.spec.condition.detector.SIGNAL_TYPE_EBSD
pyhmsa.spec.condition.detector.SIGNAL_TYPE_BEI
pyhmsa.spec.condition.detector.SIGNAL_TYPE_SEI

Collection modes

pyhmsa.spec.condition.detector.COLLECTION_MODE_PARALLEL
pyhmsa.spec.condition.detector.COLLECTION_MODE_SERIAL

PHA modes (WDS signal)

pyhmsa.spec.condition.detector.PHA_MODE_INTEGRAL
pyhmsa.spec.condition.detector.PHA_MODE_DIFFERENTIAL

XEDS technologies (EDS signal)

pyhmsa.spec.condition.detector.XEDS_TECHNOLOGY_GE
pyhmsa.spec.condition.detector.XEDS_TECHNOLOGY_SILI
pyhmsa.spec.condition.detector.XEDS_TECHNOLOGY_SDD
pyhmsa.spec.condition.detector.XEDS_TECHNOLOGY_UCAL

Helper classes

Calibration

class pyhmsa.spec.condition.calibration.CalibrationConstant(quantity, unit, value)

Defines the energy/wavelength/etc calibration of a spectrometer or other measurement device operating at a fixed position, such as a CL monochromator.

Parameters:
  • quantity – physical quantity (required)
  • unit – unit (required)
  • value – value (required)
get_index(value)
get_quantity(index)
get_unit(instance)
get_value(instance)
quantity

physical quantity

set_quantity(instance, value)
set_unit(instance, value)
set_value(instance, value, unit=None)
unit

unit

value

constant value

class pyhmsa.spec.condition.calibration.CalibrationLinear(quantity, unit, gain, offset)

Defines the energy/wavelength/etc calibration of a spectrometer or other measurement device, for which the measurement ordinals (e.g. channel numbers) have a linear relationship to the physical quantity (e.g. nm), with a constant offset and gain.

Parameters:
  • quantity – physical quantity (required)
  • unit – unit (required)
  • gain – gain (required)
  • offset – offset, the calibration value (energy, wavelength, position, etc.) corresponding to the first measurement ordinal (required)
func
gain

gain

get_gain(instance)
get_index(value)
get_offset(instance)
get_quantity(index)
get_unit(instance)
offset

offset

quantity

physical quantity

set_gain(instance, value, unit=None)
set_offset(instance, value, unit=None)
set_quantity(instance, value)
set_unit(instance, value)
unit

unit

class pyhmsa.spec.condition.calibration.CalibrationPolynomial(quantity, unit, coefficients)

Defines the energy/wavelength/etc calibration of a spectrometer or other measurement device, for which the measurement ordinals (e.g. channel numbers) have a relationship to the physical quantity (e.g. nm) that may be modelled by an nth order polynomial.

Parameters:
  • quantity – physical quantity (required)
  • unit – unit (required)
  • coefficients – iterable of coefficients (required)
coefficients

polynomial coefficients

func
get_coefficients(instance)
get_index(value)
get_quantity(index)
get_unit(instance)
quantity

physical quantity

set_coefficients(instance, value, unit=None)
set_quantity(instance, value)
set_unit(instance, value)
unit

unit

class pyhmsa.spec.condition.calibration.CalibrationExplicit(quantity, unit, values, labels=None)

Defines the energy/wavelength/etc calibration of a spectrometer or other measurement device, for which relationship between the measurement ordinals (e.g. channel numbers) and physical quantity (e.g. nm) cannot be adequately modelled by linear or polynomial functions, and therefore must be declared explicitly for each ordinal as an array of floating point values.

Parameters:
  • quantity – physical quantity (required)
  • unit – unit (required)
  • values – explicit values (required)
get_index(value)
get_label(index)
get_labels(instance)
get_quantity(index)
get_unit(instance)
get_values(instance)
labels

text labels for each of the calibration points

quantity

physical quantity

set_labels(instance, value)
set_quantity(instance, value)
set_unit(instance, value)
set_values(instance, value, unit=None)
unit

unit

values

explicit values

Window

class pyhmsa.spec.condition.detector.WindowLayer(material, thickness)

Defines a layer of a window.

Parameters:
  • material – material
  • thickness – thickness
get_material(instance)
get_thickness(instance)
material

material

set_material(instance, value)
set_thickness(instance, value, unit=None)
thickness

thickness

class pyhmsa.spec.condition.detector.Window(layers=None)

Defines the layer(s) of a window.

Parameters:layers – iterable of Layer (optional)
append_layer(material, thickness)

Helper function that creates a new Layer and appends it to this window.

Parameters:
  • material – material
  • thickness – thickness
Returns:

created layer

Return type:

Layer

get_layers(instance)
layers

modifiable list of layers

PHA

class pyhmsa.spec.condition.detector.PulseHeightAnalyser(bias=None, gain=None, base_level=None, window=None, mode=None)

Defines the condition of the pulse height analyser of a WDS spectrometer.

Parameters:
  • bias – bias (optional)
  • gain – gain (optional)
  • base_level – base level (optional)
  • window – window (optional)
  • mode – mode, either PHA_MODE_INTEGRAL or PHA_MODE_DIFFERENTIAL (optional)
base_level

base level

bias

bias

gain

gain

get_base_level(instance)
get_bias(instance)
get_gain(instance)
get_mode(instance)
get_window(instance)
mode

mode

set_base_level(instance, value, unit=None)
set_bias(instance, value, unit=None)
set_gain(instance, value, unit=None)
set_mode(instance, value)
set_window(instance, value, unit=None)
window

window

Classes

class pyhmsa.spec.condition.detector.DetectorCamera(pixel_count_u, pixel_count_v, exposure_time=None, magnification=None, focal_length=None, signal_type=None, manufacturer=None, model=None, serial_number=None, measurement_unit='counts', elevation=None, azimuth=None, distance=None, area=None, solid_angle=None, semi_angle=None, temperature=None)

Describes the calibration and collection mode of a camera used to collect a HMSA dataset, such as an EBSD or TEM camera. The camera detector is expected to have two datum axes (U and V) which are, in general, assumed to be independent of the specimen coordinate dimensions (X/Y/Z).

Parameters:
  • pixel_count_u – number of pixels along the horizontal axis (required)
  • pixel_count_y – number of pixels along the vertical axis (required)
  • exposure_time – exposure time (optional)
  • magnification – magnification (optional)
  • focal_length – focal length (optional)
  • signal_type – type of signal (optional)
  • manufacturer – manufacturer (optional)
  • model – model (optional)
  • serial_number – serial number (optional)
  • measurement_unit – measurement unit (optional)
  • elevation – elevation (optional)
  • azimuth – azimuth (optional)
  • distance – distance (optional)
  • area – area (optional)
  • solid_angle – solid angle (optional)
  • semi_angle – semi-angle (optional)
  • temperature – temperature (optional)
CLASS = 'Camera'
TEMPLATE = 'Detector'
area

area

azimuth

azimuth

distance

distance

elevation

elevation

exposure_time

exposure time

focal_length

focal length

get_area(instance)
get_azimuth(instance)
get_distance(instance)
get_elevation(instance)
get_exposure_time(instance)
get_focal_length(instance)
get_magnification(instance)
get_manufacturer(instance)
get_measurement_unit(instance)
get_model(instance)
get_pixel_count_u(instance)
get_pixel_count_v(instance)
get_semi_angle(instance)
get_serial_number(instance)
get_signal_type(instance)
get_solid_angle(instance)
get_temperature(instance)
magnification

magnification

manufacturer

manufacturer

measurement_unit

measurement unit

model

model

pixel_count_u

number of pixels along the horizontal axis

pixel_count_v

number of pixels along the vertical axis

semi_angle

semi-angle

serial_number

serial number

set_area(instance, value, unit=None)
set_azimuth(instance, value, unit=None)
set_distance(instance, value, unit=None)
set_elevation(instance, value, unit=None)
set_exposure_time(instance, value, unit=None)
set_focal_length(instance, value, unit=None)
set_magnification(instance, value, unit=None)
set_manufacturer(instance, value)
set_measurement_unit(instance, value)
set_model(instance, value)
set_pixel_count_u(instance, value, unit=None)
set_pixel_count_v(instance, value, unit=None)
set_semi_angle(instance, value, unit=None)
set_serial_number(instance, value)
set_signal_type(instance, value)
set_solid_angle(instance, value, unit=None)
set_temperature(instance, value, unit=None)
signal_type

type of signal

solid_angle

solid angle

temperature

temperature

class pyhmsa.spec.condition.detector.DetectorSpectrometer(channel_count, calibration, collection_mode=None, signal_type=None, manufacturer=None, model=None, serial_number=None, measurement_unit='counts', elevation=None, azimuth=None, distance=None, area=None, solid_angle=None, semi_angle=None, temperature=None)

Describes the calibration and collection mode of a spectrometer used to collect a HMSA dataset.

Parameters:
  • channel_count – number of channels (required)
  • calibration (_Calibration) – calibration (required)
  • mode (collection) – mode of collection, either COLLECTION_MODE_PARALLEL or COLLECTION_MODE_SERIAL (optional)
  • signal_type – type of signal (optional)
  • manufacturer – manufacturer (optional)
  • model – model (optional)
  • serial_number – serial number (optional)
  • measurement_unit – measurement unit (optional)
  • elevation – elevation (optional)
  • azimuth – azimuth (optional)
  • distance – distance (optional)
  • area – area (optional)
  • solid_angle – solid angle (optional)
  • semi_angle – semi-angle (optional)
  • temperature – temperature (optional)
CLASS = 'Spectrometer'
TEMPLATE = 'Detector'
area

area

azimuth

azimuth

calibration

calibration

calibration_energy
calibration_wavelength
channel_count

number of channels

collection_mode

mode of collection

distance

distance

elevation

elevation

get_area(instance)
get_azimuth(instance)
get_calibration(instance)
get_calibration_energy()
get_calibration_wavelength()
get_channel_count(instance)
get_collection_mode(instance)
get_distance(instance)
get_elevation(instance)
get_manufacturer(instance)
get_measurement_unit(instance)
get_model(instance)
get_semi_angle(instance)
get_serial_number(instance)
get_signal_type(instance)
get_solid_angle(instance)
get_temperature(instance)
manufacturer

manufacturer

measurement_unit

measurement unit

model

model

semi_angle

semi-angle

serial_number

serial number

set_area(instance, value, unit=None)
set_azimuth(instance, value, unit=None)
set_calibration(instance, value)
set_channel_count(instance, value, unit=None)
set_collection_mode(instance, value)
set_distance(instance, value, unit=None)
set_elevation(instance, value, unit=None)
set_manufacturer(instance, value)
set_measurement_unit(instance, value)
set_model(instance, value)
set_semi_angle(instance, value, unit=None)
set_serial_number(instance, value)
set_signal_type(instance, value)
set_solid_angle(instance, value, unit=None)
set_temperature(instance, value, unit=None)
signal_type

type of signal

solid_angle

solid angle

temperature

temperature

class pyhmsa.spec.condition.detector.DetectorSpectrometerCL(channel_count, calibration, grating_d=None, collection_mode=None, signal_type=None, manufacturer=None, model=None, serial_number=None, measurement_unit='counts', elevation=None, azimuth=None, distance=None, area=None, solid_angle=None, semi_angle=None, temperature=None)

Describes the type and configuration of a cathodoluminescence spectrometer.

Note

If the spectrometer is operating as a monochromator (e.g. monochromatic CL mapping), the calibration definition shall be of type CalibrationConstant.

Parameters:
  • channel_count – number of channels (required)
  • calibration (_Calibration) – calibration (required)
  • grating_d – grading spacing (optional)
  • mode (collection) – mode of collection, either COLLECTION_MODE_PARALLEL or COLLECTION_MODE_SERIAL (optional)
  • signal_type – type of signal (optional)
  • manufacturer – manufacturer (optional)
  • model – model (optional)
  • serial_number – serial number (optional)
  • measurement_unit – measurement unit (optional)
  • elevation – elevation (optional)
  • azimuth – azimuth (optional)
  • distance – distance (optional)
  • area – area (optional)
  • solid_angle – solid angle (optional)
  • semi_angle – semi-angle (optional)
  • temperature – temperature (optional)
CLASS = 'Spectrometer/CL'
TEMPLATE = 'Detector'
area

area

azimuth

azimuth

calibration

calibration

calibration_energy
calibration_wavelength
channel_count

number of channels

collection_mode

mode of collection

distance

distance

elevation

elevation

get_area(instance)
get_azimuth(instance)
get_calibration(instance)
get_calibration_energy()
get_calibration_wavelength()
get_channel_count(instance)
get_collection_mode(instance)
get_distance(instance)
get_elevation(instance)
get_grating_d(instance)
get_manufacturer(instance)
get_measurement_unit(instance)
get_model(instance)
get_semi_angle(instance)
get_serial_number(instance)
get_signal_type(instance)
get_solid_angle(instance)
get_temperature(instance)
grating_d

grating spacing

manufacturer

manufacturer

measurement_unit

measurement unit

model

model

semi_angle

semi-angle

serial_number

serial number

set_area(instance, value, unit=None)
set_azimuth(instance, value, unit=None)
set_calibration(instance, value)
set_channel_count(instance, value, unit=None)
set_collection_mode(instance, value)
set_distance(instance, value, unit=None)
set_elevation(instance, value, unit=None)
set_grating_d(instance, value, unit=None)
set_manufacturer(instance, value)
set_measurement_unit(instance, value)
set_model(instance, value)
set_semi_angle(instance, value, unit=None)
set_serial_number(instance, value)
set_signal_type(instance, value)
set_solid_angle(instance, value, unit=None)
set_temperature(instance, value, unit=None)
signal_type

type of signal

solid_angle

solid angle

temperature

temperature

class pyhmsa.spec.condition.detector.DetectorSpectrometerWDS(channel_count, calibration, collection_mode=None, dispersion_element=None, crystal_2d=None, rowland_circle_diameter=None, pulse_height_analyser=None, window=None, signal_type=None, manufacturer=None, model=None, serial_number=None, measurement_unit='counts', elevation=None, azimuth=None, distance=None, area=None, solid_angle=None, semi_angle=None, temperature=None)

Describes the type and configuration of a wavelength dispersive x-ray spectrometer.

Note

If the spectrometer is operating as a monochromator (e.g. WDS mapping), the calibration definition shall be of type CalibrationConstant.

Parameters:
  • channel_count – number of channels (required)
  • calibration (_Calibration) – calibration (required)
  • mode (collection) – mode of collection, either COLLECTION_MODE_PARALLEL or COLLECTION_MODE_SERIAL (optional)
  • element (dispersion_element) – dispersion element (optional)
  • crystal_2d – crystal 2d-spacing (optional)
  • rowland_circle_diameter – Rowland circle diameter (optional)
  • pulse_height_analyser (PulseHeightAnalyser) – pulse height analyser (optional)
  • window (Layer) – window (optional)
  • signal_type – type of signal (optional)
  • manufacturer – manufacturer (optional)
  • model – model (optional)
  • serial_number – serial number (optional)
  • measurement_unit – measurement unit (optional)
  • elevation – elevation (optional)
  • azimuth – azimuth (optional)
  • distance – distance (optional)
  • area – area (optional)
  • solid_angle – solid angle (optional)
  • semi_angle – semi-angle (optional)
  • temperature – temperature (optional)
CLASS = 'Spectrometer/WDS'
TEMPLATE = 'Detector'
area

area

azimuth

azimuth

calibration

calibration

calibration_energy
calibration_position
calibration_wavelength
channel_count

number of channels

collection_mode

mode of collection

crystal_2d

crystal 2d-spacing

dispersion_element

dispersion element

distance

distance

elevation

elevation

get_area(instance)
get_azimuth(instance)
get_calibration(instance)
get_calibration_energy()
get_calibration_position()
get_calibration_wavelength()
get_channel_count(instance)
get_collection_mode(instance)
get_crystal_2d(instance)
get_dispersion_element(instance)
get_distance(instance)
get_elevation(instance)
get_manufacturer(instance)
get_measurement_unit(instance)
get_model(instance)
get_pulse_height_analyser(instance)
get_rowland_circle_diameter(instance)
get_semi_angle(instance)
get_serial_number(instance)
get_signal_type(instance)
get_solid_angle(instance)
get_temperature(instance)
get_window(instance)
manufacturer

manufacturer

measurement_unit

measurement unit

model

model

pulse_height_analyser

pulse height analyzer

rowland_circle_diameter

Rowland circle diameter

semi_angle

semi-angle

serial_number

serial number

set_area(instance, value, unit=None)
set_azimuth(instance, value, unit=None)
set_calibration(instance, value)
set_channel_count(instance, value, unit=None)
set_collection_mode(instance, value)
set_crystal_2d(instance, value, unit=None)
set_dispersion_element(instance, value)
set_distance(instance, value, unit=None)
set_elevation(instance, value, unit=None)
set_manufacturer(instance, value)
set_measurement_unit(instance, value)
set_model(instance, value)
set_pulse_height_analyser(instance, value)
set_rowland_circle_diameter(instance, value, unit=None)
set_semi_angle(instance, value, unit=None)
set_serial_number(instance, value)
set_signal_type(instance, value)
set_solid_angle(instance, value, unit=None)
set_temperature(instance, value, unit=None)
set_window(instance, value)
signal_type

type of signal

solid_angle

solid angle

temperature

temperature

window

window

class pyhmsa.spec.condition.detector.DetectorSpectrometerXEDS(channel_count, calibration, collection_mode=None, technology=None, nominal_throughput=None, time_constant=None, strobe_rate=None, window=None, signal_type=None, manufacturer=None, model=None, serial_number=None, measurement_unit='counts', elevation=None, azimuth=None, distance=None, area=None, solid_angle=None, semi_angle=None, temperature=None)

Describes the type and configuration of an energy dispersive x-ray spectrometer.

Parameters:
  • channel_count – number of channels (required)
  • calibration (_Calibration) – calibration (required)
  • mode (collection) – mode of collection, either COLLECTION_MODE_PARALLEL or COLLECTION_MODE_SERIAL (optional)
  • technology – technology (optional)
  • nominal_throughput – nominal throughput (optional)
  • time_constant – time constant (optional)
  • strobe_rate – strobe rate (optional)
  • window (Layer) – window (optional)
  • signal_type – type of signal (optional)
  • manufacturer – manufacturer (optional)
  • model – model (optional)
  • serial_number – serial number (optional)
  • measurement_unit – measurement unit (optional)
  • elevation – elevation (optional)
  • azimuth – azimuth (optional)
  • distance – distance (optional)
  • area – area (optional)
  • solid_angle – solid angle (optional)
  • semi_angle – semi-angle (optional)
  • temperature – temperature (optional)
CLASS = 'Spectrometer/XEDS'
TEMPLATE = 'Detector'
area

area

azimuth

azimuth

calibration

calibration

calibration_energy
calibration_wavelength
channel_count

number of channels

collection_mode

mode of collection

distance

distance

elevation

elevation

get_area(instance)
get_azimuth(instance)
get_calibration(instance)
get_calibration_energy()
get_calibration_wavelength()
get_channel_count(instance)
get_collection_mode(instance)
get_distance(instance)
get_elevation(instance)
get_manufacturer(instance)
get_measurement_unit(instance)
get_model(instance)
get_nominal_throughput(instance)
get_semi_angle(instance)
get_serial_number(instance)
get_signal_type(instance)
get_solid_angle(instance)
get_strobe_rate(instance)
get_technology(instance)
get_temperature(instance)
get_time_constant(instance)
get_window(instance)
manufacturer

manufacturer

measurement_unit

measurement unit

model

model

nominal_throughput

nominal throughput

semi_angle

semi-angle

serial_number

serial number

set_area(instance, value, unit=None)
set_azimuth(instance, value, unit=None)
set_calibration(instance, value)
set_channel_count(instance, value, unit=None)
set_collection_mode(instance, value)
set_distance(instance, value, unit=None)
set_elevation(instance, value, unit=None)
set_manufacturer(instance, value)
set_measurement_unit(instance, value)
set_model(instance, value)
set_nominal_throughput(instance, value, unit=None)
set_semi_angle(instance, value, unit=None)
set_serial_number(instance, value)
set_signal_type(instance, value)
set_solid_angle(instance, value, unit=None)
set_strobe_rate(instance, value, unit=None)
set_technology(instance, value)
set_temperature(instance, value, unit=None)
set_time_constant(instance, value, unit=None)
set_window(instance, value)
signal_type

type of signal

solid_angle

solid angle

strobe_rate

strobe rate

technology

technology

temperature

temperature

time_constant

time constant

window

window