spym.io.rhksm4._sm4

The main SM4 class that represents a RHK SM4 file, with all the necessary attributes and methods to read the binary data of the .sm4 files (RHK technology Inc.).

Module Contents

Classes

object_type Generic enumeration.
page_data_type Generic enumeration.
page_source_type Generic enumeration.
page_type Generic enumeration.
line_type Generic enumeration.
image_type Generic enumeration.
scan_type Generic enumeration.
drift_option_type Generic enumeration.
RHKsm4 This is the main class that represents a RHK SM4 file
RHKObject Define an RHK object.
RHKObjectContainer Represents a class containing RHK Objects
RHKFileHeader Class representing the File Header.
RHKPageIndexHeader Class representing the Page Index Header.
RHKPageHeader Class representing the Page Header
RHKPage Class representing Page
class spym.io.rhksm4._sm4.object_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_OBJECT_UNDEFINED = 0
RHK_OBJECT_PAGE_INDEX_HEADER = 1
RHK_OBJECT_PAGE_INDEX_ARRAY = 2
RHK_OBJECT_PAGE_HEADER = 3
RHK_OBJECT_PAGE_DATA = 4
RHK_OBJECT_IMAGE_DRIFT_HEADER = 5
RHK_OBJECT_IMAGE_DRIFT = 6
RHK_OBJECT_SPEC_DRIFT_HEADER = 7
RHK_OBJECT_SPEC_DRIFT_DATA = 8
RHK_OBJECT_COLOR_INFO = 9
RHK_OBJECT_STRING_DATA = 10
RHK_OBJECT_TIP_TRACK_HEADER = 11
RHK_OBJECT_TIP_TRACK_DATA = 12
RHK_OBJECT_PRM = 13
RHK_OBJECT_THUMBNAIL = 14
RHK_OBJECT_PRM_HEADER = 15
RHK_OBJECT_THUMBNAIL_HEADER = 16
RHK_OBJECT_API_INFO = 17
RHK_OBJECT_HISTORY_INFO = 18
RHK_OBJECT_PIEZO_SENSITIVITY = 19
RHK_OBJECT_FREQUENCY_SWEEP_DATA = 20
RHK_OBJECT_SCAN_PROCESSOR_INFO = 21
RHK_OBJECT_PLL_INFO = 22
RHK_OBJECT_CH1_DRIVE_INFO = 23
RHK_OBJECT_CH2_DRIVE_INFO = 24
RHK_OBJECT_LOCKIN0_INFO = 25
RHK_OBJECT_LOCKIN1_INFO = 26
RHK_OBJECT_ZPI_INFO = 27
RHK_OBJECT_KPI_INFO = 28
RHK_OBJECT_AUX_PI_INFO = 29
RHK_OBJECT_LOWPASS_FILTER0_INFO = 30
RHK_OBJECT_LOWPASS_FILTER1_INFO = 31
class spym.io.rhksm4._sm4.page_data_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_DATA_IMAGE = 0
RHK_DATA_LINE = 1
RHK_DATA_XY_DATA = 2
RHK_DATA_ANNOTATED_LINE = 3
RHK_DATA_TEXT = 4
RHK_DATA_ANNOTATED_TEXT = 5
RHK_DATA_SEQUENTIAL = 6
RHK_DATA_MOVIE = 7
class spym.io.rhksm4._sm4.page_source_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_SOURCE_RAW = 0
RHK_SOURCE_PROCESSED = 1
RHK_SOURCE_CALCULATED = 2
RHK_SOURCE_IMPORTED = 3
class spym.io.rhksm4._sm4.page_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_PAGE_UNDEFINED = 0
RHK_PAGE_TOPOGRAPHIC = 1
RHK_PAGE_CURRENT = 2
RHK_PAGE_AUX = 3
RHK_PAGE_FORCE = 4
RHK_PAGE_SIGNAL = 5
RHK_PAGE_FFT_TRANSFORM = 6
RHK_PAGE_NOISE_POWER_SPECTRUM = 7
RHK_PAGE_LINE_TEST = 8
RHK_PAGE_OSCILLOSCOPE = 9
RHK_PAGE_IV_SPECTRA = 10
RHK_PAGE_IV_4x4 = 11
RHK_PAGE_IV_8x8 = 12
RHK_PAGE_IV_16x16 = 13
RHK_PAGE_IV_32x32 = 14
RHK_PAGE_IV_CENTER = 15
RHK_PAGE_INTERACTIVE_SPECTRA = 16
RHK_PAGE_AUTOCORRELATION = 17
RHK_PAGE_IZ_SPECTRA = 18
RHK_PAGE_4_GAIN_TOPOGRAPHY = 19
RHK_PAGE_8_GAIN_TOPOGRAPHY = 20
RHK_PAGE_4_GAIN_CURRENT = 21
RHK_PAGE_8_GAIN_CURRENT = 22
RHK_PAGE_IV_64x64 = 23
RHK_PAGE_AUTOCORRELATION_SPECTRUM = 24
RHK_PAGE_COUNTER = 25
RHK_PAGE_MULTICHANNEL_ANALYSER = 26
RHK_PAGE_AFM_100 = 27
RHK_PAGE_CITS = 28
RHK_PAGE_GPIB = 29
RHK_PAGE_VIDEO_CHANNEL = 30
RHK_PAGE_IMAGE_OUT_SPECTRA = 31
RHK_PAGE_I_DATALOG = 32
RHK_PAGE_I_ECSET = 33
RHK_PAGE_I_ECDATA = 34
RHK_PAGE_I_DSP_AD = 35
RHK_PAGE_DISCRETE_SPECTROSCOPY_PP = 36
RHK_PAGE_IMAGE_DISCRETE_SPECTROSCOPY = 37
RHK_PAGE_RAMP_SPECTROSCOPY_RP = 38
RHK_PAGE_DISCRETE_SPECTROSCOPY_RP = 39
class spym.io.rhksm4._sm4.line_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_LINE_NOT_A_LINE = 0
RHK_LINE_HISTOGRAM = 1
RHK_LINE_CROSS_SECTION = 2
RHK_LINE_LINE_TEST = 3
RHK_LINE_OSCILLOSCOPE = 4
RHK_LINE_RESERVED = 5
RHK_LINE_NOISE_POWER_SPECTRUM = 6
RHK_LINE_IV_SPECTRUM = 7
RHK_LINE_IZ_SPECTRUM = 8
RHK_LINE_IMAGE_X_AVERAGE = 9
RHK_LINE_IMAGE_Y_AVERAGE = 10
RHK_LINE_NOISE_AUTOCORRELATION_SPECTRUM = 11
RHK_LINE_MULTICHANNEL_ANALYSER_DATA = 12
RHK_LINE_RENORMALIZED_IV = 13
RHK_LINE_IMAGE_HISTOGRAM_SPECTRA = 14
RHK_LINE_IMAGE_CROSS_SECTION = 15
RHK_LINE_IMAGE_AVERAGE = 16
RHK_LINE_IMAGE_CROSS_SECTION_G = 17
RHK_LINE_IMAGE_OUT_SPECTRA = 18
RHK_LINE_DATALOG_SPECTRUM = 19
RHK_LINE_GXY = 20
RHK_LINE_ELECTROCHEMISTRY = 21
RHK_LINE_DISCRETE_SPECTROSCOPY = 22
RHK_LINE_DATA_LOGGER = 23
RHK_LINE_TIME_SPECTROSCOPY = 24
RHK_LINE_ZOOM_FFT = 25
RHK_LINE_FREQUENCY_SWEEP = 26
RHK_LINE_PHASE_ROTATE = 27
RHK_LINE_FIBER_SWEEP = 28
class spym.io.rhksm4._sm4.image_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_IMAGE_NORMAL = 0
RHK_IMAGE_AUTOCORRELATED = 1
class spym.io.rhksm4._sm4.scan_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_SCAN_RIGHT = 0
RHK_SCAN_LEFT = 1
RHK_SCAN_UP = 2
RHK_SCAN_DOWN = 3
class spym.io.rhksm4._sm4.drift_option_type

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

RHK_DRIFT_DISABLED = 0
RHK_DRIFT_EACH_SPECTRA = 1
RHK_DRIFT_EACH_LOCATION = 2
class spym.io.rhksm4._sm4.RHKsm4(filename)

This is the main class that represents a RHK SM4 file

Args:
filename: the name of the .sm4 file to be opened
class spym.io.rhksm4._sm4.RHKObject(sm4)

Define an RHK object.

An Object contains: Object ID: (4 bytes) Type of data stored Offset: (4 bytes) Data offset Size: (4 bytes) size of the data Using the data offset and size, we can read the corresponding object data.

size

Seek to the end position of the current Object (for compatibility with future file versions in case Object Field Size is no longer 12 bytes)

class spym.io.rhksm4._sm4.RHKObjectContainer

Represents a class containing RHK Objects

class spym.io.rhksm4._sm4.RHKFileHeader(sm4)

Bases: spym.io.rhksm4._sm4.RHKObjectContainer

Class representing the File Header.

The File Header contains the general information about the SM4 file and the file offset to other details like index header, PRM data etc.

reserved

Seek to the end position of the File Header (for compatibility with future file versions in case File Header Size is no longer 56 bytes)

class spym.io.rhksm4._sm4.RHKPageIndexHeader(sm4)

Bases: spym.io.rhksm4._sm4.RHKObjectContainer

Class representing the Page Index Header.

class spym.io.rhksm4._sm4.RHKPageHeader(page, sm4)

Bases: spym.io.rhksm4._sm4.RHKObjectContainer

Class representing the Page Header

read_sequential_type(self, page)
read_default_type(self, page)
read_objects(self, page)
class spym.io.rhksm4._sm4.RHKPage(sm4)

Bases: spym.io.rhksm4._sm4.RHKObjectContainer

Class representing Page