modules.foundationPit 模块帮助

本章节包含 modules.foundationPit 包中基坑支护相关计算模块的使用说明和示例,例如:

  • 依据液性指数或标贯击数计算土钉极限粘结强度(NailCohesionByTest,GB 50739-2011 第 5.1.7 条)

  • 其它基坑分析模块(详见 modules.foundationPit)

NailCohesionByTest

模块简介与适用场景

  • NailCohesionByTest 对 MaterialTable 中每一行岩土,按 GB 50739-2011《复合土钉墙基坑支护技术规范》第 5.1.7 条 经验表,由 液性指数 和/或 标贯击数 计算 土钉极限粘结强度 ``qsk``(kPa)。

  • 同时输出 **成孔注浆土钉**(grout)与 **打入钢管土钉**(steel)两类建议值及字符串说明(区间、插值或 < / > 边界形式)。

  • 典型场景:标准地层表已含岩土名称及土工试验指标,需在 pipeline 中批量得到各层土钉粘结强度供支护设计或报表;常与 ConvertToMaterialTable 串联。

端口说明

  • 输入端口

    • InputMaterials:材料表(MaterialTable)。也可通过参数 material_table 传入(等价写入 InputMaterials)。

  • 输出端口

    • OutputResults:结果表(TableData,name 为 nail_cohesion_by_test_qsk)。若 InputMaterials 为 None,则为 None。

execute() 的返回值与 OutputResults 一致。

输入字段要求

模块通过 RequiredColumnCheck 校验:

  • 必须存在 GeoMaterialProps.MaterialName``(``material_name / 岩土名称)

  • **至少存在其一**(列级 OR):GeoMaterialProps.LiquidityIndex``(``liquidity_index / 液性指数)或 GeoMaterialProps.SPTNumber``(``spt_number / 标贯击数)

可选列 GeoMaterialProps.LayerNumber 会原样带入输出;material_id 来自材料表索引。

按岩土类型的行级计算条件

岩土名称经 for_nail_bc 映射后,各行需满足:

  • 黏性土:该行 liquidity_index 不能为空

  • 砂土:该行 spt_number 不能为空

  • 素填土、淤泥质土、粉土:不依赖上述两列的具体数值(取规范表建议区间中值)

  • 无法映射或规范表归类为 其他 时,该行无法计算

输出字段说明(OutputResults)

  • material_id、layer_number、material_name

  • grout / grout_str:成孔注浆土钉极限粘结强度(数值 kPa / 字符串说明)

  • steel / steel_str:打入钢管土钉极限粘结强度(数值 kPa / 字符串说明)

无法计算时,数值列与 grout_str、steel_str 均为 None。可计算时,字符串列可能为固定建议值、区间(如 60~80)或 < / > 边界形式,数值列为对应的建议计算值(插值或区间中值等,与内部 cal_soil_nail_cohesion_qsk 一致)。

参数说明

NailCohesionByTest 参数一览

参数名

类型

默认值

说明

material_table

MaterialTable | None

None

输入材料表;赋值后写入 InputMaterials。也可直接设置 InputMaterials 端口。

快速上手示例:材料表计算 qsk

from gdisdk.dataclass.geoProfiles import MaterialTable
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.foundationPit import NailCohesionByTest

materials = MaterialTable(
    {
        GProps.MaterialID: [0, 1, 2],
        GProps.LayerNumber: ["1", "2", "3"],
        GProps.MaterialName: ["黏性土", "砂土", "粉土"],
        GProps.LiquidityIndex: [0.4, None, None],
        GProps.SPTNumber: [None, 12, None],
    }
)

mod = NailCohesionByTest(mname="NailCohesionByTest")
mod.InputMaterials = materials
mod.execute()

result = mod.OutputResults.data

快速上手示例:接 ConvertToMaterialTable

from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.converters import ConvertToMaterialTable
from gdisdk.modules.foundationPit import NailCohesionByTest

conv = ConvertToMaterialTable(mname="ConvertMaterial")
conv.column_name_map = {
    "地层编号": GProps.LayerNumber,
    "岩土名称": GProps.MaterialName,
    "液性指数": GProps.LiquidityIndex,
    "标贯击数": GProps.SPTNumber,
}
# conv.InputTable = standard_layer_table
conv.execute()
materials = conv.OutputMaterialTable.data

mod = NailCohesionByTest(mname="NailCohesionByTest")
mod.InputMaterials = materials
mod.execute()
qsk_table = mod.OutputResults.data

在 pipeline 中的使用方式

from gdisdk.pipeline import PipeLine
from gdisdk.modules.converters import ConvertToMaterialTable
from gdisdk.modules.foundationPit import NailCohesionByTest

pipe = PipeLine(app_name="NailQskDemo", app_title="土钉极限粘结强度计算")

convert = ConvertToMaterialTable(mname="ConvertMaterial")
calc = NailCohesionByTest(mname="NailCohesionByTest")

# links = reader.OutputTable >> convert.InputTable
# links = convert.OutputMaterialTable >> calc.InputMaterials
# pipe.add_module(convert)
# pipe.add_module(calc)
# pipe.run()
# qsk_table = calc.OutputResults.data

更多信息