Statistical Distribution Script Example#
This example switches the project to probabilistic analysis and edits a StatsDistribution on an individual joint.
Download the blankProject.rocslope2 for this example.
Code Snippet: Statistical Distributions#
from rocslope2.RocSlope2Modeler import RocSlope2Modeler
from rocslope2.projectSettings.ProjectSettingsEnum import AnalysisType
from rocslope2.individualJoint.IndividualJoint import StatsDistributionProperty
import rocslope2.generatedPythonFiles.CommonMessages_pb2 as CommonMessages_pb2
import os
import inspect
current_file = inspect.getfile(lambda: None)
current_dir = os.path.dirname(os.path.abspath(current_file))
example_model = os.path.join(current_dir, "example_models", "blankProject.rocslope2")
RocSlope2Modeler.startApplication()
modeler = RocSlope2Modeler()
model = modeler.openFile(example_model)
# Probabilistic analysis is required before editing statistical distributions
statistics = model.getProjectSettings().statisticsTab
statistics.setSelectedAnalysisTypeMethod(AnalysisType.PROBABILISTIC)
joint_set = model.getAllJointSets()[0]
individual_joint = joint_set.getAllIndividualJoints()[0]
dip_stats = individual_joint.getStatsDistribution(StatsDistributionProperty.dipStats)
dip_stats.setMean(55.5)
dip_stats.setDistType(CommonMessages_pb2.STATISTICS_NORMAL)
dip_stats.setStdv(3.0)
dip_stats.setRelMin(9.0)
dip_stats.setRelMax(9.0)
print(f"Dip mean: {dip_stats.getMean()}")
print(f"Dip stdv: {dip_stats.getStdv()}")
print(f"Dip distribution: {dip_stats.getDistType()}")
model.save()
model.close(saveProject=False)
modeler.closeProgram()
Output#
Dip mean: 55.5
Dip stdv: 3.0
Dip distribution: 1