set_surface_values()
是gempy.core.model.Project
类的一个方法,用于在Gempy中设置表面的属性值。
set_surface_values(series: str, attribute: str, values: List, force: bool = False) -> None
series
: str,要设置属性值的地层学序列的名称。attribute
: str,要设置的表面属性的名称。values
: List,所有表面属性的非默认值列表。列表的长度必须等于该地层序列中的表面数。force
: bool,表示是否强制设置所有表面的属性值。默认值为False。None
:无返回值set_surface_values()
方法用于在Gempy中设置地层学模型中表面的属性值。能够设置的属性包括但不限于表面类型、含油、含气等属性。在设置之前,需要创建一个地层学模型,并且创建地层学序列及表面。
如果要设置的表面数量和提供的属性值数量不匹配,则会引发ValueError
。如果force
参数为True,则会强制设置所有表面的属性值。否则,会引发ValueError
并提示哪些表面没有提供属性值。
下面是set_surface_values()
方法的使用示例:
import gempy as gp
# 创建地层学模型
model = gp.create_model("Example")
# 添加地层学序列和表面
gp.init_data(
model,
[0, 0.1, 0.2, 1],
[0, 10, 40, 100, 120],
["air", "sandstone", "shale", "sandstone", "basement"],
)
# 设置“Main”地层学序列中第一个表面的“is_fault”属性
model.set_surface_values("Main", "is_fault", [True, False, False, False])
# 使用“force=True”强制设置所有表面的类型为“erodible”
model.set_surface_values("Main", "type", ["erodible"] * 4, force=True)
在上面的示例中,set_surface_values()
方法被用来设置表面的属性值。第一个调用将“Main”地层学序列中第一个表面标记为断层地层。第二个调用使用了force=True
,以便强制将“Main”地层学序列中所有表面的类型设置为“erodible”。