rsseismic.Results module#

class rsseismic.Results.Results(client: Client, modelId: str)#

Bases: _ProxyObject

Query computed analysis results for an open project.

Access via model.Results. After model.runCompute(), use listResultDatabases or listResultMotions() to discover valid profile and motion names, then fetch tabular data as pandas DataFrame objects.

Use getResultDatabasePath to see which result files exist for a profile/motion pair before calling specialized queries (strain convergence, displacement animation, etc.).

getResultsRoot() str#

Return the folder where RSSeismic stores computed results for this project.

listResultDatabases(profileName: str = '', onlyExisting: bool = False) list[ResultDatabaseInfo]#

List profile/motion pairs and their result file paths.

When profileName is empty, entries for all profiles are returned. When onlyExisting is True, only pairs whose main result database file exists on disk are included.

Use the motionName values from these entries (or from listResultMotions) when calling result DataFrame methods — they may differ from names shown in the Motion view, especially for complementary analyses.

getResultDatabasePath(profileName: str, motionName: str) ResultDatabaseInfo#

Return result file paths and availability flags for one profile and motion.

motionName must be a compute-aligned name from listResultDatabases or listResultMotions after runCompute(). Check fields such as resultDatabaseExists, strainConvergenceExists, and deconvolutionBedrockMotionExists before calling related DataFrame methods.

listResultMotions() list[ResultMotionSummary]#

List motion names available for result queries after compute.

Includes complementary motions when project settings add them (for example ChiChi-EL derived from selected motion ChiChi). Prefer these names over Motion-view labels when fetching results.

listResultLayers(profileName: str) list[ResultLayerSummary]#

List layers that can be used with layer-scoped result queries for a profile.

Includes soil layers with result output enabled and the top-of-rock layer when bedrock output is configured.

getTopOfRockLayerId(profileName: str) str#

Return the layer ID to use for top-of-rock result queries on a profile.

Raises ValueError when top of rock output is not available in listResultLayers(profileName).

getLayerTimeHistoryDataFrame(profileName: str, motionName: str, layerID: str) pandas.DataFrame#

Return layer time-history results as a pandas DataFrame.

Columns typically include time, acceleration, velocity, and related series for the given layer. For finite-element analysis, effective vertical stress may also be included.

motionName must be compute-aligned. layerID comes from listResultLayers(profileName) or listSoilLayers() on the same profile. Column units are in dataframe.attrs["column_units"] when available.

getProfileResultsDataFrame(profileName: str, motionName: str) pandas.DataFrame#

Return profile-level summary results as a pandas DataFrame.

Provides depth-based summary columns for the profile (for example maximum strain by layer). Not available for deconvolution profiles — use layer-scoped methods instead.

motionName must be compute-aligned after runCompute().

getResultSeriesDataFrame(profileName: str, motionName: str, kind: ResultSeriesKind, layerID: str = '') pandas.DataFrame#

Return one result chart series as a pandas DataFrame.

Pass a ResultSeriesKind value for kind (for example MAX_STRAIN, PGA, ACCELERATION). When kind.requires_layer is True, layerID is required — use listResultLayers(profileName) to obtain valid IDs.

motionName must be compute-aligned after runCompute().

getStrainConvergenceDataFrame(profileName: str, motionName: str) pandas.DataFrame#

Return equivalent-linear strain convergence data as a pandas DataFrame.

Table columns show iteration and per-layer strain values. Requires equivalent-linear analysis and a computed strain-convergence file for the motion. Check getResultDatabasePath(...).strainConvergenceExists before calling.

For complementary equivalent-linear runs, pass the complementary motion name (for example ChiChi-EL).

getRealTimeDisplacementDataFrame(profileName: str, motionName: str) pandas.DataFrame#

Return real-time relative displacement at each layer as a pandas DataFrame.

Requires the displacement animation option enabled in project settings and a standard result database for the motion.

getAllStrainConvergenceDataFrames(profileName: str, *, skipErrors: bool = True) dict[str, pandas.DataFrame]#

Fetch strain convergence DataFrames for all motions on the Check convergence tab.

Uses the same motion list as that tab in the RSSeismic UI: primary equivalent-linear motions, plus complementary EL motions when that option is enabled. Each entry is loaded via getStrainConvergenceDataFrame.

When skipErrors is True (default), motions without convergence data are skipped instead of raising an error.

getAllRealTimeDisplacementDataFrames(profileName: str, *, skipErrors: bool = True) dict[str, pandas.DataFrame]#

Fetch real-time displacement DataFrames for all result motions on a profile.

Uses the same motion list as the displacement animation tab. Requires the displacement animation project setting. When skipErrors is True (default), motions without data are skipped instead of raising an error.

getAllResultSeriesDataFrames(profileName: str, kind: ResultSeriesKind, motionTypeFilters: Sequence[ResultMotionType] | None = None, layerIds: Sequence[str] | None = None, *, skipErrors: bool = True) dict[str, pandas.DataFrame] | dict[tuple[str, str], pandas.DataFrame]#

Fetch one result series kind for many motions (and layers when required).

Returns a dict keyed by motion name for profile-level series, or by (motion_name, layer_id) when kind.requires_layer is True.

motionTypeFilters limits which motion variants are included (standard, complementary equivalent-linear, complementary nonlinear total stress). Pass None or an empty sequence to include all types.

layerIds limits layer-scoped series. When omitted or empty and kind requires a layer, all layers from listResultLayers(profileName) are used.

When skipErrors is True (default), missing combinations are skipped instead of raising an error.