Use this file to discover all available pages before exploring further.
Physical samples and projects let you group related data items for cross-run analysis. Use the SDK to list, fetch, and align data across multiple uploads.
Use get_physical_sample() to retrieve all analysis results linked to a sample:
result = client.get_physical_sample(physical_sample_id="sample-uuid")# Iterate over all result objectsfor item in result.data_results: print(type(item).__name__, item.data_id)
The returned PhysicalSampleResult contains:
physical_sample_id and physical_sample_name for identification
data_results with all result objects (RHEED, XPS, PL, metrology, etc.)
Use get_project() to retrieve all data grouped by physical sample:
result = client.get_project(project_id="project-uuid")for sample in result.samples: print(f"Sample: {sample.physical_sample_name}") for item in sample.data_results: print(f" {type(item).__name__}: {item.data_id}")
Pass align=True to time-align data from multiple sources onto a common time index:
result = client.get_physical_sample( physical_sample_id="sample-uuid", align=True,)# Access the aligned DataFramealigned = result.aligned_timeseriesprint(aligned.columns)print(aligned.tail())
This merges RHEED, metrology, optical, and other timeseries data so you can correlate signals across instruments.By default, alignment uses an outer join (union of all timestamps). Pass a join strategy string for different behavior:
# Inner join: only timestamps present in all sourcesresult = client.get_physical_sample( physical_sample_id="sample-uuid", align="inner",)
Project-level alignment works the same way:
result = client.get_project(project_id="project-uuid", align=True)print(result.aligned_timeseries.tail())