atomscale.results.rheed_video.RHEEDVideoResult#

class atomscale.results.rheed_video.RHEEDVideoResult(data_id: UUID | str, timeseries_data: DataFrame, snapshot_image_data: list[RHEEDImageResult] | None, views: DataFrame | bool | None = None, collected_datetime: str | None = None, rotating: bool | None = None)[source]

Bases: MSONable

RHEED video result

Parameters:
  • data_id (UUID | str) – Data ID for the entry in the data catalogue.

  • timeseries_data (DataFrame) – Pandas DataFrame with per-frame RHEED features, indexed against a “Time” column. Columns are capitalized labels such as “Cluster ID”, “Specular Intensity”, “Strain”, “Cumulative Strain”, “Oscillation Period”, “Diffraction Spot Count”, and “Lattice Spacing”.

  • snapshot_image_data (list[atomscale.results.rheed_image.RHEEDImageResult] | None) – One atomscale.results.rheed_image.RHEEDImageResult per snapshot extracted from the video, or None if no snapshots were extracted.

  • views (DataFrame | None) – Motion intervals and effective azimuth annotations. Omitted or None means no views are known, which reads as not rotating.

  • collected_datetime (str | None) – Datetime when the data was collected.

  • rotating (bool | None) – Deprecated. This argument held a bare rotating flag before rotation became a stored rate; it is accepted so callers written against that signature — and MSONable payloads serialized under it, which carry no views — still construct. It is translated to the placeholder view atomscale.rheed_metadata.legacy_views_frame() builds for the matching legacy type, so rotating answers the same. Ignored when views is given.

__init__(data_id: UUID | str, timeseries_data: DataFrame, snapshot_image_data: list[RHEEDImageResult] | None, views: DataFrame | bool | None = None, collected_datetime: str | None = None, rotating: bool | None = None)[source]

RHEED video result

Parameters:
  • data_id (UUID | str) – Data ID for the entry in the data catalogue.

  • timeseries_data (DataFrame) – Pandas DataFrame with per-frame RHEED features, indexed against a “Time” column. Columns are capitalized labels such as “Cluster ID”, “Specular Intensity”, “Strain”, “Cumulative Strain”, “Oscillation Period”, “Diffraction Spot Count”, and “Lattice Spacing”.

  • snapshot_image_data (list[atomscale.results.rheed_image.RHEEDImageResult] | None) – One atomscale.results.rheed_image.RHEEDImageResult per snapshot extracted from the video, or None if no snapshots were extracted.

  • views (DataFrame | None) – Motion intervals and effective azimuth annotations. Omitted or None means no views are known, which reads as not rotating.

  • collected_datetime (str | None) – Datetime when the data was collected.

  • rotating (bool | None) – Deprecated. This argument held a bare rotating flag before rotation became a stored rate; it is accepted so callers written against that signature — and MSONable payloads serialized under it, which carry no views — still construct. It is translated to the placeholder view atomscale.rheed_metadata.legacy_views_frame() builds for the matching legacy type, so rotating answers the same. Ignored when views is given.

Methods

__init__(data_id, timeseries_data, ...[, ...])

RHEED video result

as_dict()

A JSON serializable dict representation of an object.

from_dict(d)

Reconstruct an MSONable object from a dict.

load(file_path)

Load an instance from a JSON file written by save().

save(json_path[, mkdir, json_kwargs, ...])

Serialize the instance to JSON on disk, pickling fields if needed.

to_json()

Returns a json string representation of the MSONable object.

unsafe_hash()

Return a hash of the current object.

validate_monty_v1(_MSONable__input_value)

Pydantic validator with correct signature for pydantic v1.x.

validate_monty_v2(_MSONable__input_value, _)

Pydantic validator with correct signature for pydantic v2.x.

Attributes

REDIRECT

rotating

Whether the stage turned during this recording.

property rotating

Whether the stage turned during this recording.

Read from the stored per-view rpm rather than from the catalogue type, so a recording answers the same before and after the RHEED types were unified — rheed_stationary is simply rpm 0. Kept because callers relied on this attribute before rotation became a stored rate.

A NaN rpm comes only from the legacy fallback in atomscale.rheed_metadata.legacy_views_frame() — a backend that recorded rotation as a type name and never a rate. That still reads as rotating.

as_dict() → dict

A JSON serializable dict representation of an object.

Return type:

dict

classmethod from_dict(d: dict) → MSONable

Reconstruct an MSONable object from a dict.

Parameters:

d (dict) – Dict representation.

Return type:

MSONable

Returns:

MSONable class.

classmethod load(file_path: PathLike | str) → MSONable

Load an instance from a JSON file written by save().

Parameters:

file_path (PathLike | str) – The JSON file to load from.

Return type:

MSONable

Returns:

An instance of the class being reloaded.

save(json_path: PathLike | str, mkdir: bool = True, json_kwargs: dict | None = None, pickle_kwargs: dict | None = None, strict: bool = True) → None

Serialize the instance to JSON on disk, pickling fields if needed.

For a fully MSONable class, only {save_dir}/class.json is written. For a partially MSONable class, non-serializable attributes are pickled individually into the same directory, keeping the JSON portion readable.

Parameters:
  • json_path (PathLike | str) – The file to which to save the JSON object. A pickled companion file with the same stem but a different extension may also be written if the class is not entirely MSONable.

  • mkdir (bool) – If True, create the target directory (including parents).

  • json_kwargs (dict | None) – Keyword arguments forwarded to the JSON serializer.

  • pickle_kwargs (dict | None) – Keyword arguments forwarded to pickle.dump.

  • strict (bool) – If True, refuse to overwrite existing files.

Return type:

None

to_json() → str

Returns a json string representation of the MSONable object.

Return type:

str

unsafe_hash() → Any

Return a hash of the current object.

This uses a generic but low performance method of converting the object to a dictionary, flattening any nested keys, and then performing a hash on the resulting object.

Return type:

Any

classmethod validate_monty_v1(_MSONable__input_value)

Pydantic validator with correct signature for pydantic v1.x.

classmethod validate_monty_v2(_MSONable__input_value, _)

Pydantic validator with correct signature for pydantic v2.x.