# npoints = 20 model = GeologicalModel(boundary_points[0, :], boundary_points[1, :]) model.set_model_data(data[:npoints]) stratigraphy = model.create_and_add_foliation("s0", interpolatortype="PLI", nelements=5000, buffer=0.3, cgw=0.1) #.2) viewer = LavaVuModelViewer(model, background="white") # viewer.add_scalar_field(model.bounding_box,(38,55,30), # 'box', # paint_with=stratigraphy, # cmap='prism') viewer.add_data(stratigraphy) viewer.add_isosurface(stratigraphy, voxet=model.voxet()) viewer.rotate([-85.18760681152344, 42.93233871459961, 0.8641873002052307]) viewer.display() ###################################################################### # Modelling folds using structural geology # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # The following section will describe how the fold axis, fold axial # surface and fold vergence can be used to help constrain the shape of the # folded surface. To do this we need to build a fold frame which is # curvilinear coordinate system based around the fold axis and the fold # axial surface. # # There are three coordinates to the fold frame: \* coordinate 0 is the # axial surface of the fold and is parallel to the axial foliation \*
# then interpolated by first restoring the observations by combining the # fault frame and an expected displacement model. # model = GeologicalModel(bb[0, :], bb[1, :]) model.set_model_data(data) fault = model.create_and_add_fault('fault', 500, nelements=10000, steps=4, interpolatortype='PLI', buffer=0.3) viewer = LavaVuModelViewer(model) viewer.add_isosurface(fault, voxet=model.voxet(), isovalue=0 # slices=[0,1]#nslices=10 ) xyz = model.data[model.data['feature_name'] == 'strati'][['X', 'Y', 'Z']].to_numpy() xyz = xyz[fault.evaluate(xyz), :] viewer.add_vector_field(fault, locations=xyz) viewer.add_points( model.data[model.data['feature_name'] == 'strati'][['X', 'Y', 'Z']], name='prefault') viewer.display() displacement = 400 #INSERT YOUR DISPLACEMENT NUMBER HERE BEFORE # model = GeologicalModel(bb[0, :], bb[1, :])