modules.shallowFoundation 模块帮助
本章节包含 modules.shallowFoundation 包中浅基础相关计算模块的使用说明和示例,例如:
创建矩形浅基础(
CreateRecFoundation)按 GB 50007-2011 分层总和法计算矩形基础沉降(
FoundationSettlement)按 GB 50007-2011 基础宽度与埋深修正地基承载力(
BearingCapacityModify)评价基础底面以下地基均匀性(
SoilUniformity)依据 JGJ 340-2015 标贯修正击数计算地基承载力特征值
fak``(``BearingCapacityBySPT)依据 GB 50007-2011 抗剪强度指标计算地基承载力
fa``(``BearingCapacityByStrength)
CreateRecFoundation
模块简介与适用场景
CreateRecFoundation按平面尺寸、标高和荷载生成一个矩形浅基础RecFoundation,供FoundationSettlement、BearingCapacityModify、SoilUniformity使用。模块只有输出端口。
name为空时不生成基础,OutputFoundation为None。荷载可以用设计荷载(kN)或基础底面应力(kPa)输入,二者按底面积换算。换算关系见参数说明。
典型场景:在 pipeline 里先建基础,再把
OutputFoundation接到沉降或承载力模块的InputFoundation。
端口说明
输出端口
OutputFoundation:矩形浅基础(RecFoundation)。name为None时为None。
execute() 的返回值与 OutputFoundation 一致。
基础对象上可直接读取 name、width、length、design_ground_elev、bottom_elev、ave_unit_weight、design_load。bottom_depth 为设计地面至基础底面的埋深(m),bottom_stress 为基础底面应力(kPa)。
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
基础名称。为 |
|
|
|
基础宽度 b(m),须大于 0。 |
|
|
|
基础长度 l(m),须大于 0。 |
|
|
|
设计地面标高(m)。 |
|
|
|
基础底面标高(m)。埋深 = 设计地面标高 − 基础底面标高。 |
|
|
|
基础及上覆回填土的平均重度(kN/m³)。界面中限定在 5–50。 |
|
|
|
荷载输入方式。 |
|
|
|
设计荷载(kN)。 |
|
|
|
基础底面应力(kPa)。仅当 |
快速上手示例
from gdisdk.modules.shallowFoundation import CreateRecFoundation
mod = CreateRecFoundation(mname="CreateRecFoundation")
mod.name = "F1"
mod.width = 8.0
mod.length = 20.0
mod.design_ground_elev = 10.0
mod.bottom_elev = 8.0
mod.ave_unit_weight = 20.0
mod.load_by = "bottom_stress"
mod.bottom_stress = 150.0
mod.execute()
foundation = mod.OutputFoundation.data
# foundation.bottom_depth == 2.0
# foundation.design_load == 150 * 8 * 20
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.shallowFoundation import CreateRecFoundation, FoundationSettlement
pipe = PipeLine(app_name="ShallowFoundationDemo", app_title="浅基础沉降")
foundation = CreateRecFoundation(mname="CreateRecFoundation")
foundation.name = "F1"
foundation.width = 8.0
foundation.length = 20.0
calc = FoundationSettlement(mname="FoundationSettlement")
# links = foundation.OutputFoundation >> calc.InputFoundation
# pipe.add_links(links)
# pipe.add_module(foundation)
# pipe.add_module(calc)
# pipe.run()
FoundationSettlement
模块简介与适用场景
FoundationSettlement对每条钻孔,按 GB 50007-2011《建筑地基基础设计规范》 分层总和法计算矩形基础中心点沉降,并用表 5.3.5 的沉降经验系数修正。输入为钻孔
MultiProfile1D、岩土MaterialTable和RecFoundation。任一为空时OutputResult为None。变形计算深度按基础宽度取 Δz,并按 Δs′n ≤ 0.025 s′n 确定。孔深不够时仍输出孔深范围内的沉降,同时按持力层末层向下延伸给出推测沉降。
达到变形计算深度之前遇到压缩模量为空的土层,或计算基底以上平均重度时遇到重度为空的土层,该孔发出
GDIWarning并退出计算。全部钻孔都无法计算时抛出RuntimeError。基础底面所在层的
soil_bearing_capacity_fak为空时抛出ValueError。附加应力 p0 < 0 时仍写入实际 p0,沉降记为 0,并发出GDIWarning。p0 = 0 时同样按无沉降写入,不再另发警告。典型场景:钻孔表、地层表已转为
MultiProfile1D,岩土参数建议值已转为MaterialTable,再与CreateRecFoundation串联,得到各孔沉降表。
计算会改写输入:材料表中若没有 material_id = -1,会追加一行「填土」;设置了设计水位时,各孔地下水埋深会被覆盖。
端口说明
输入端口
InputProfiles:钻孔(MultiProfile1D)。也可通过参数profiles传入。InputMaterialTable:岩土参数(MaterialTable)。也可通过参数material_table传入。InputFoundation:矩形基础(RecFoundation)。也可通过参数foundation传入。
输出端口
OutputResult:沉降结果表(TableData,name为f_settle,标题「基础沉降计算结果」)。任一输入为None时为None。
execute() 的返回值与 OutputResult 一致。
输入字段要求
材料表需能按 material_id 取到各层参数。沉降计算实际使用:
compression_modulus:压缩模量(MPa)。变形计算深度以内缺失时,该孔不参与计算。soil_bearing_capacity_fak:基础底面所在层的地基承载力特征值(kPa),用于沉降经验系数。unit_weight:天然重度(kN/m³),用于基底以上土的加权平均重度。该段土层缺失重度时,该孔不参与计算。
钻孔使用孔口标高、层底深度、地层对应的 materials_id,以及地下水埋深 gwt_depth。
输出字段说明(OutputResult)
profile_number:钻孔编号cal_settle_depth:变形计算深度(m),自基础底面起算bore_depth:钻孔深度(m),自孔口起算is_depth_enough:钻孔深度是否满足变形计算深度,取满足或不满足。p0 ≤ 0 时为无沉降,变形计算深度和沉降经验系数为空addition_stress:基底附加应力 p0(kPa)settlement:孔深范围内的基础沉降(mm)empirical_psi:对应的沉降经验系数 ψsmodified_settlement:ψs × ``settlement``(mm)infer_settlement:推测基础沉降(mm)。孔深满足时与settlement相同;不满足时假定末层继续向下直至满足深度要求infer_empirical_psi:推测沉降经验系数infer_modified_settlement:推测修正基础沉降(mm)
计算规则说明
附加应力 p0 由基础底面应力与基底以上土重的差值得到。底面应力来自基础的设计荷载除以底面积。
cal_p0_from = "design_ground":在设计地面与基础底面之间,按天然重度做厚度加权得到 γm。孔口低于设计地面时,空隙用填土补齐。p0 = 底面应力 + (基础及回填土平均重度 − γm) × 基础埋深。cal_p0_from = "original_ground":孔口高于基础底面时,取孔口至基础底面的土层,按天然重度厚度加权得到 γm,h 为该段厚度,d 为基础埋深。p0 = 底面应力 + 基础及回填土平均重度 × d − γm × h。地下水位高于孔口时,再减去水的重度 × (水位 − 孔口标高)。该方式要求钻孔孔口高于基础底面。γm 使用天然重度。参与加权的土层重度为空时,该孔发出
GDIWarning并不参与后续沉降计算。design_water_elev会把各孔地下水埋深改写为「孔口标高 − 设计水位」;不设置则保留钻孔原有水位。该水位只参与「水位高于孔口」时的水重修正。p0 < 0 表示基础底面相对原土是卸荷。结果表保留该 p0,沉降、修正沉降和推测沉降记为 0,并给出
GDIWarning,警告中的 p0 保留两位小数。p0 = 0 时同样记为无沉降,不发该警告。
变形计算深度的 Δz 由基础宽度 b 决定:
基础宽度 b(m) |
Δz(m) |
|---|---|
b ≤ 2 |
0.3 |
2 < b ≤ 4 |
0.6 |
4 < b ≤ 8 |
0.8 |
b > 8 |
1.0 |
自基础底面向下累计沉降,直至计算厚度 Δz 范围内的压缩量不大于总沉降的 2.5%。压缩模量优先使用 compression_modulus_by_profile 中该孔、基础底面以下各层的值;未提供时使用材料表的 compression_modulus。列表长度须等于该孔原始分层数,位于基础底面以上的层会从列表前部去掉。
沉降经验系数按 GB 50007-2011 表 5.3.5,由计算深度内的压缩模量当量值和 p0 与持力层 fak 的相对大小插值。p0 ≥ fak 或 p0 ≤ 0.75 fak 时取表的对应端点。
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
输入钻孔;赋值后写入 |
|
|
|
输入材料表;赋值后写入 |
|
|
|
输入基础;赋值后写入 |
|
|
|
基底以上土体自重的起算面。 |
|
|
|
填土压缩模量(MPa)。 |
|
|
|
填土地基承载力特征值(kPa)。基础底面落在填土中时,用作该层 fak。 |
|
|
|
填土重度(kN/m³)。界面中仅在 |
|
|
|
按钻孔编号给出各层压缩模量(MPa)。为 |
|
|
|
设计水位高程(m)。为 |
|
|
|
水的重度(kN/m³)。水位高于孔口时参与附加应力修正。 |
快速上手示例
import pandas as pd
from gdisdk.dataclass.geoProfiles import MaterialTable, MultiProfile1D
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.shallowFoundation import CreateRecFoundation, FoundationSettlement
materials = MaterialTable(
{
GProps.MaterialID: [0, 1],
GProps.LayerNumber: ["1", "2"],
GProps.MaterialName: ["粉质黏土", "黏土"],
GProps.CompressionModulus: [6.0, 8.0],
GProps.UnitWeight: [18.5, 19.0],
GProps.SaturateUnitWeight: [19.5, 20.0],
GProps.SoilCharacteristicBearingCapacity: [160.0, 180.0],
}
)
profiles = MultiProfile1D(
profiles_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK2"],
"top": [10.0, 10.0],
"x_coord": [0.0, 10.0],
"y_coord": [0.0, 0.0],
"gwt_depth": [3.0, 3.5],
}
),
layers_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK1", "ZK2", "ZK2"],
"layers_depth": [4.0, 12.0, 5.0, 14.0],
"materials_id": [0, 1, 0, 1],
}
),
)
foundation_mod = CreateRecFoundation(mname="CreateRecFoundation")
foundation_mod.name = "F1"
foundation_mod.design_ground_elev = 10.0
foundation_mod.bottom_elev = 8.0
foundation_mod.load_by = "bottom_stress"
foundation_mod.bottom_stress = 150.0
foundation_mod.execute()
calc = FoundationSettlement(mname="FoundationSettlement")
calc.cal_p0_from = "original_ground"
calc.InputProfiles = profiles
calc.InputMaterialTable = materials
calc.InputFoundation = foundation_mod.OutputFoundation.data
calc.execute()
result = calc.OutputResult.data
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.converters import ConvertToMaterialTable, ConvertToMultiProfile1D
from gdisdk.modules.shallowFoundation import CreateRecFoundation, FoundationSettlement
pipe = PipeLine(app_name="FoundationSettlementDemo", app_title="浅基础沉降")
to_material = ConvertToMaterialTable(mname="ToMaterial")
to_profiles = ConvertToMultiProfile1D(mname="ToProfiles")
foundation = CreateRecFoundation(mname="CreateRecFoundation")
foundation.name = "F1"
calc = FoundationSettlement(mname="FoundationSettlement")
calc.cal_p0_from = "original_ground"
# links = to_profiles.OutputMultiProfile1D >> calc.InputProfiles
# links = to_material.OutputMaterialTable >> calc.InputMaterialTable
# links = foundation.OutputFoundation >> calc.InputFoundation
# pipe.add_module(to_material)
# pipe.add_module(to_profiles)
# pipe.add_module(foundation)
# pipe.add_module(calc)
# pipe.run()
# result = calc.OutputResult.data
BearingCapacityModify
模块简介与适用场景
BearingCapacityModify按 GB 50007-2011《建筑地基基础设计规范》第 5.2.4 条,用基础宽度和埋深把持力层承载力特征值fak修正为fa,并判断fa是否不小于基础底面应力。每个钻孔使用基础底面所在土层。土类编号决定宽度、深度修正系数 ηb、ηd;未指定土类的钻孔会跳过并给出警告。
f_soil_types整体为空时,各孔按土类 0(淤泥和淤泥质土)计算。湿陷性黄土(土类编号 12–17)的深度项为 (d − 1.5),其余土类为 (d − 0.5)。基础宽度小于 3 m 时按 3 m、大于 6 m 时按 6 m 代入宽度项。
持力层材料行含
deep_plate_loading_test且其值为真时,深度修正系数 ηd 取 0。典型场景:已有各孔剖面、岩土
fak与重度,以及矩形基础,需要按持力层土类做承载力深宽修正,并给出基础是否满足。
计算会改写输入。未设置 design_water_elev 时,各孔地下水埋深被清空,按无地下水、天然重度计算;设置后按该水位覆盖各孔水位,水位以下用有效重度(饱和重度 − 水的重度)。材料表中若没有 material_id = -1,会追加填土的承载力与重度。
端口说明
输入端口
InputProfiles:钻孔(MultiProfile1D)。也可通过参数profiles传入。InputMaterialTable:岩土参数(MaterialTable)。也可通过参数materials传入。InputFoundation:矩形基础(RecFoundation)。也可通过参数foundation传入。
输出端口
OutputResult:表集合(TableCollection)。任一输入为None时为None。主表result_by_foundation``(标题「地基承载力是否满足」)按 ``foundation_name关联子表 ``result_by_profile``(标题「修正地基承载力特征值计算结果」)。
execute() 的返回值与 OutputResult 一致。可用 output["result_by_foundation"] 与 output["result_by_profile"] 取表。
输入字段要求
持力层(基础底面以下第一层)材料行需要:
soil_bearing_capacity_fak:地基承载力特征值(kPa)unit_weight:天然重度(kN/m³)saturated_unit_weight:饱和重度(kN/m³)。持力层处于地下水位以下时使用layer_number、material_name:写入「基础持力层」列;有岩土名称时形式为层号 名称
可选列 deep_plate_loading_test:为真时不做深度修正。
基底以上土层需要 unit_weight;水位以下还需要 saturated_unit_weight。
输出字段说明
主表 result_by_foundation:
foundation_name:基础名称foundation_width:基础宽度(m)bottom_stress:基础底面应力(kPa)。字段标题为「设计荷载」satisfied:是否满足。任一参与计算的钻孔fa小于底面应力时为不满足,否则为满足
子表 result_by_profile:
foundation_name:基础名称profile_number:钻孔编号layer_number:基础持力层soil_bearing_capacity_fak:持力层承载力特征值(kPa)unit_weight_below_foundation:基底以下土重度 γ(kN/m³)unit_weight_above_foundation:基底以上土的加权平均重度 γm(kN/m³)soil_bearing_capacity_factor_eta_b:宽度修正系数 ηbsoil_bearing_capacity_factor_eta_d:深度修正系数 ηdfoundation_bottom_depth:代入公式的基础埋深 d(m)soil_bearing_capacity_fa:修正后地基承载力特征值 fa(kPa)
计算规则说明
fa = fak + ηb · γ · (b′ − 3) + ηd · γm · (d − d0)
b′ 为基础宽度,并限制在 3–6 m。一般土 d0 = 0.5 m;土类 12–17(湿陷性黄土)d0 = 1.5 m。
γ 为持力层重度:地下水位高于持力层层底时取有效重度,否则取天然重度。γm 为基底以上土的厚度加权平均重度,水位以下同样取有效重度。
埋深 d 由 cal_d_from 决定:
design_ground:d 为设计地面至基础底面的埋深。γm 取设计地面与基础底面之间的土层;孔口低于设计地面时用填土补齐。original_ground:d 为孔口至基础底面的深度;孔口不高于基础底面时 d = 0、γm = 0。γm 取孔口与基础底面之间的土层。user_defined:γm 与design_ground相同,公式中的 d 改用equivalent_f_depth。两侧裙楼宽度都大于两倍主楼宽度时,可分别折算等效埋深后取不利值填入。
基础底面与钻孔不相交,或钻孔底高于基础底面时,抛出 RuntimeError。
土类编号与修正系数(与界面「基础底面所在土的类别」一致):
编号 |
土的类别 |
ηb |
ηd |
|---|---|---|---|
0 |
淤泥和淤泥质土 |
0 |
1 |
1 |
人工填土,e或t大于等于0.85的黏性土 |
0 |
1 |
2 |
红黏土,含水比 aw > 0.8 |
0 |
1.2 |
3 |
红黏土,含水比 aw ≤ 0.8 |
0.15 |
1.4 |
4 |
大面积压实填土,压实系数大于0.95,黏粒含量pc ≥ 10%的黏性土 |
0 |
1.5 |
5 |
最大干密度大于2100kg/m³的级配砂石 |
0 |
2 |
6 |
粉土,黏粒含量 pc ≥ 10%的粉性土 |
0.3 |
1.5 |
7 |
粉土,黏粒含量 pc < 10%的粉性土 |
0.5 |
2 |
8 |
e及t均小于0.85的黏性土 |
0.3 |
1.6 |
9 |
粉砂、细砂(不包括饱湿与饱和时的高密实状态) |
2 |
3 |
10 |
中砂、粗砂、砾砂和碎石土 |
3 |
4.4 |
11 |
非弱风化和全风化岩石 |
1 |
1 |
12 |
晚更新世、全新世湿陷性黄土,ω≤24% |
0.2 |
1.25 |
13 |
晚更新世、全新世湿陷性黄土,ω>24% |
0 |
1.1 |
14 |
新进堆积黄土 |
0 |
1 |
15 |
饱和黄土,e及IL都小于0.85 |
0.2 |
1.25 |
16 |
饱和黄土,e或IL大于等于0.85 |
0 |
1.1 |
17 |
饱和黄土,e及IL都不小于1.00 |
0 |
1 |
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
输入钻孔;赋值后写入 |
|
|
|
输入材料表;赋值后写入 |
|
|
|
输入基础;赋值后写入 |
|
|
|
基础埋深的取法。见上文计算规则。 |
|
|
|
等效基础埋深(m)。仅 |
|
|
|
各钻孔持力层土类编号。键为钻孔编号,值为上表编号。为 |
|
|
|
设计水位高程(m)。为 |
|
|
|
水的重度(kN/m³)。有效重度 = 饱和重度 − 该值。 |
|
|
|
填土地基承载力特征值(kPa)。 |
|
|
|
填土重度(kN/m³)。 |
快速上手示例
import pandas as pd
from gdisdk.dataclass.geoProfiles import MaterialTable, MultiProfile1D
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.shallowFoundation import BearingCapacityModify, CreateRecFoundation
materials = MaterialTable(
{
GProps.MaterialID: [0, 1],
GProps.LayerNumber: ["1", "2"],
GProps.MaterialName: ["粉质黏土", "黏土"],
GProps.UnitWeight: [18.5, 19.0],
GProps.SaturateUnitWeight: [19.5, 20.0],
GProps.SoilCharacteristicBearingCapacity: [160.0, 180.0],
}
)
profiles = MultiProfile1D(
profiles_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK2"],
"top": [10.0, 10.0],
"x_coord": [0.0, 10.0],
"y_coord": [0.0, 0.0],
"gwt_depth": [3.0, 3.5],
}
),
layers_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK1", "ZK2", "ZK2"],
"layers_depth": [4.0, 12.0, 5.0, 14.0],
"materials_id": [0, 1, 0, 1],
}
),
)
foundation_mod = CreateRecFoundation(mname="CreateRecFoundation")
foundation_mod.name = "F1"
foundation_mod.design_ground_elev = 10.0
foundation_mod.bottom_elev = 8.0
foundation_mod.load_by = "bottom_stress"
foundation_mod.bottom_stress = 150.0
foundation_mod.execute()
calc = BearingCapacityModify(mname="BearingCapacityModify")
calc.cal_d_from = "design_ground"
calc.f_soil_types = {"ZK1": 8, "ZK2": 8}
calc.design_water_elev = 7.0
calc.InputProfiles = profiles
calc.InputMaterialTable = materials
calc.InputFoundation = foundation_mod.OutputFoundation.data
calc.execute()
output = calc.OutputResult.data
by_foundation = output["result_by_foundation"]
by_profile = output["result_by_profile"]
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.shallowFoundation import BearingCapacityModify, CreateRecFoundation
pipe = PipeLine(app_name="BearingCapacityModifyDemo", app_title="地基承载力修正")
foundation = CreateRecFoundation(mname="CreateRecFoundation")
foundation.name = "F1"
calc = BearingCapacityModify(mname="BearingCapacityModify")
calc.cal_d_from = "design_ground"
calc.f_soil_types = {"ZK1": 8, "ZK2": 8}
# links = foundation.OutputFoundation >> calc.InputFoundation
# pipe.add_module(foundation)
# pipe.add_module(calc)
# pipe.run()
# output = calc.OutputResult.data
SoilUniformity
模块简介与适用场景
SoilUniformity把各钻孔在基础底面至同一变形区底面之间的土层,按分层总和法的附加应力系数积分成压缩模量当量值,再用各孔当量值评价地基是否均匀。输入为
MultiProfile1D、MaterialTable和RecFoundation。任一为空时OutputResult为None。变形区底面默认取各孔孔底标高的最大值(最浅的孔底),使每个钻孔都能覆盖这段深度。设置
cal_elevation时,取该值与上述孔底标高中的较大者,因此不会算到任一钻孔尚未揭露的深度;填得更高则变形区更浅。变形区内压缩模量为空的钻孔会发出
GDIWarning并排除。有效钻孔少于 2 个时抛出RuntimeError。基础底面低于某孔孔底时抛出RuntimeError。典型场景:同一矩形基础下有多条钻孔,需要用压缩模量当量值判断地基均匀性。
材料表中若没有 material_id = -1,会追加填土及其压缩模量,供基础底面高于孔口时的填土段使用。
端口说明
输入端口
InputProfiles:钻孔(MultiProfile1D)。也可通过参数profiles传入。InputMaterialTable:岩土参数(MaterialTable)。也可通过参数materials传入。InputFoundation:矩形基础(RecFoundation)。也可通过参数foundation传入。
输出端口
OutputResult:评价结果(ResultModel,模型名SoilUniformityResult,标题「地基均匀性评价」)。任一输入为None时为None。
execute() 的返回值与 OutputResult 一致。字段可按属性读取,例如 result.conclusion。
输入字段要求
变形区内每一层都需要材料表中的 ``compression_modulus``(MPa)。缺失的钻孔不参与评价。
输出字段说明(OutputResult)
calculation_depth:计算深度(m),为基础底面标高减去变形区底面标高mean_es:各有效钻孔压缩模量当量值的算术平均(MPa)real_non_uniformity_factor:实际不均匀系数 C_U = Es,max / Es,minstandard_non_uniformity_factor:由mean_es插值得到的标准不均匀系数 C_Ukconclusion:均匀,满足要求或不均匀,不满足要求
计算规则说明
各孔先切到基础底面,再切到同一变形区底面。某层的附加应力系数沿厚度的积分记为 A_i,该孔压缩模量当量值为 ΣA_i / Σ(A_i / Es_i)。这与沉降计算中的当量模量相同,不是厚度加权平均。
C_U 大于 C_Uk 时结论为「不均匀,不满足要求」;二者相等时为「均匀,满足要求」。C_Uk 由 mean_es 分段线性插值:
当量压缩模量平均值 Es(MPa) |
C_Uk |
|---|---|
Es ≤ 4 |
1.3 |
4 < Es ≤ 7.5 |
1.3 至 1.5 线性插值 |
7.5 < Es ≤ 15 |
1.5 至 1.8 线性插值 |
15 < Es ≤ 20 |
1.8 至 2.5 线性插值 |
Es > 20 |
2.5 |
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
输入钻孔;赋值后写入 |
|
|
|
输入材料表;赋值后写入 |
|
|
|
输入基础;赋值后写入 |
|
|
|
变形区底部标高(m)。为 |
|
|
|
填土压缩模量(MPa),须大于 0。 |
快速上手示例
import pandas as pd
from gdisdk.dataclass.geoProfiles import MaterialTable, MultiProfile1D
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.shallowFoundation import CreateRecFoundation, SoilUniformity
materials = MaterialTable(
{
GProps.MaterialID: [0, 1],
GProps.LayerNumber: ["1", "2"],
GProps.MaterialName: ["粉质黏土", "黏土"],
GProps.CompressionModulus: [6.0, 8.0],
}
)
profiles = MultiProfile1D(
profiles_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK2"],
"top": [10.0, 10.0],
"x_coord": [0.0, 10.0],
"y_coord": [0.0, 0.0],
"gwt_depth": [3.0, 3.5],
}
),
layers_table=pd.DataFrame(
{
"pnum": ["ZK1", "ZK1", "ZK2", "ZK2"],
"layers_depth": [4.0, 12.0, 5.0, 14.0],
"materials_id": [0, 1, 0, 1],
}
),
)
foundation_mod = CreateRecFoundation(mname="CreateRecFoundation")
foundation_mod.name = "F1"
foundation_mod.design_ground_elev = 10.0
foundation_mod.bottom_elev = 8.0
foundation_mod.execute()
calc = SoilUniformity(mname="SoilUniformity")
calc.InputProfiles = profiles
calc.InputMaterialTable = materials
calc.InputFoundation = foundation_mod.OutputFoundation.data
calc.execute()
result = calc.OutputResult.data
# result.conclusion、result.real_non_uniformity_factor、result.mean_es
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.shallowFoundation import CreateRecFoundation, SoilUniformity
pipe = PipeLine(app_name="SoilUniformityDemo", app_title="地基均匀性评价")
foundation = CreateRecFoundation(mname="CreateRecFoundation")
foundation.name = "F1"
calc = SoilUniformity(mname="SoilUniformity")
# links = foundation.OutputFoundation >> calc.InputFoundation
# pipe.add_module(foundation)
# pipe.add_module(calc)
# pipe.run()
# result = calc.OutputResult.data
BearingCapacityBySPT
模块简介与适用场景
BearingCapacityBySPT对MaterialTable中每一行岩土,按 JGJ 340-2015《建筑地基检测技术规范》第 7.4.8 条 与标贯修正击数modified_spt_number计算 地基承载力特征值 ``fak``(kPa),并输出数值列与字符串列两种表示。岩土名称经内部分类映射后,支持 中砂和粗砂、粉砂和细砂、粉土、黏性土 四类查表;规范表格范围内对击数做线性插值,低于或高于表格端点时
fak_str为<…/>…形式。典型场景:标准地层表已含岩土名称与标贯修正击数,需在 pipeline 中批量得到各层
fak供报表或下游承载力分析;常与ConvertToMaterialTable串联。
端口说明
输入端口
InputMaterials:材料表(MaterialTable)。也可通过参数material_table在构造时传入(等价写入InputMaterials)。
输出端口
OutputResults:结果表(TableData,name为bearing_capacity_by_spt_fak)。若InputMaterials为None,则为None。
execute() 的返回值与 OutputResults 一致。
输入字段要求
模块通过 RequiredColumnCheck 校验输入材料表至少包含:
GeoMaterialProps.MaterialName``(``material_name/ 岩土名称)GeoMaterialProps.ModifiedSPTNumber``(``modified_spt_number/ 标贯修正击数)
可选列 GeoMaterialProps.LayerNumber``(地层编号)会原样带入输出;``material_id 来自材料表索引。
输出字段说明(OutputResults)
material_id:岩性 IDlayer_number:地层编号material_name:岩土名称soil_bearing_capacity_fak:地基承载力特征值(数值,kPa);无法计算或超出表格以字符串表示时该列为Nonefak_str:地基承载力特征值字符串(kPa 单位元数据);无法计算时为None,表格外为<下限/>上限等
计算规则说明
岩土名称无法映射到承载力查表分类时,该行
fak与fak_str均为空。modified_spt_number为空时,同样为空。击数在规范表格 闭区间 内:线性插值得到浮点
fak;str_precision为None时fak_str为str(fak),否则按指定小数位格式化。击数 低于 表格最小击数:
fak_str形如<80``(以下限承载力为界);**高于** 最大击数:``fak_str形如>220。这两种情况数值列soil_bearing_capacity_fak为None。
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
输入材料表;赋值后写入 |
|
|
|
|
快速上手示例:材料表计算 fak
from gdisdk.dataclass.geoProfiles import MaterialTable
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.shallowFoundation import BearingCapacityBySPT
materials = MaterialTable(
{
GProps.MaterialID: [0, 1, 2],
GProps.LayerNumber: ["1", "2", "3"],
GProps.MaterialName: ["砂土", "黏性土", "粉土"],
GProps.ModifiedSPTNumber: [6, 8.9, 24],
}
)
mod = BearingCapacityBySPT(mname="BearingCapacityBySPT")
mod.str_precision = 0
mod.InputMaterials = materials
mod.execute()
result = mod.OutputResults.data
# result 含 material_id、layer_number、material_name、
# soil_bearing_capacity_fak、fak_str
快速上手示例:接 ConvertToMaterialTable
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.converters import ConvertToMaterialTable
from gdisdk.modules.shallowFoundation import BearingCapacityBySPT
conv = ConvertToMaterialTable(mname="ConvertMaterial")
conv.column_name_map = {
"地层编号": GProps.LayerNumber,
"岩土名称": GProps.MaterialName,
"标贯修正击数": GProps.ModifiedSPTNumber,
}
# conv.InputTable = standard_layer_table
conv.execute()
materials = conv.OutputMaterialTable.data
mod = BearingCapacityBySPT(mname="BearingCapacityBySPT")
mod.InputMaterials = materials
mod.execute()
fak_table = mod.OutputResults.data
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.converters import ConvertToMaterialTable
from gdisdk.modules.shallowFoundation import BearingCapacityBySPT
pipe = PipeLine(app_name="FakBySPTDemo", app_title="标贯击数计算地基承载力特征值")
convert = ConvertToMaterialTable(mname="ConvertMaterial")
calc = BearingCapacityBySPT(mname="BearingCapacityBySPT")
# links = reader.OutputTable >> convert.InputTable
# links = convert.OutputMaterialTable >> calc.InputMaterials
# pipe.add_links(links)
# pipe.add_module(convert)
# pipe.add_module(calc)
# pipe.run()
# fak_table = calc.OutputResults.data
BearingCapacityByStrength
模块简介与适用场景
BearingCapacityByStrength对MaterialTable中每一行岩土,按 GB 50007-2011《建筑地基基础设计规范》第 5.2.5 条,由 黏聚力、内摩擦角 与 重度**(及基础宽度)计算 **地基承载力 ``fa``(kPa),只输出数值结果。模块约定 基底埋深为 0**(不做深度与宽度修正项中的埋深部分;宽度通过参数 ``f_width`` 参与公式)。可选 **抗浮水位
anti_float_water_level:当层底平均高程低于该水位时,按 水下 工况采用饱和重度并扣除水的重度(water_unit_weight,默认 10 kN/m³)。典型场景:标准地层表已汇总各层土工指标(
c、φ、天然/饱和重度、层底标高),需在 pipeline 中批量得到各层fa;常与ConvertToMaterialTable串联。
端口说明
输入端口
InputMaterials:材料表(MaterialTable)。也可通过参数material_table传入(等价写入InputMaterials)。
输出端口
OutputResults:结果表(TableData,name为bearing_capacity_by_strength_fa)。若InputMaterials为None,则为None。
execute() 的返回值与 OutputResults 一致。
输入字段要求
模块通过 RequiredColumnCheck 校验输入材料表至少包含:
GeoMaterialProps.UnitWeight``(``unit_weight/ 重度,kN/m³)GeoMaterialProps.SaturateUnitWeight``(``saturate_unit_weight/ 饱和重度,kN/m³)GeoMaterialProps.Cohesion``(``cohesion/ 黏聚力,kPa)GeoMaterialProps.InternalFrictionAngle``(``internal_friction_angle/ 内摩擦角,°)GeoMaterialProps.MeanLayerBottomElevation``(``mean_layer_bottom_elevation/ 层底平均高程,m)
可选列 GeoMaterialProps.LayerNumber、GeoMaterialProps.MaterialName 会原样带入输出;material_id 来自材料表索引。
输出字段说明(OutputResults)
material_id:岩性 IDlayer_number:地层编号material_name:岩土名称soil_bearing_capacity_fa:修正后地基承载力特征值(数值,kPa);无法计算时为None
计算规则说明
由规范表对 Mb、Mc 按内摩擦角线性插值(内摩擦角低于表格下限时
Mb=0、Mc=π)。**非水下**(未设抗浮水位,或层底平均高程 ≥ 抗浮水位):
fa = Mb × unit_weight × f_width + Mc × cohesion。**水下**(已设
anti_float_water_level且层底平均高程 < 抗浮水位):fa = Mb × (saturate_unit_weight − water_unit_weight) × f_width + Mc × cohesion,且饱和重度不得为空。water_unit_weight默认 10 kN/m³。cohesion或internal_friction_angle为空时无法计算;设了抗浮水位但mean_layer_bottom_elevation为空时无法计算;水下且saturate_unit_weight为空时无法计算;非水下且unit_weight为空时无法计算。numeric_precision控制数值结果的小数位数;为None时保留计算原值。
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
输入材料表;赋值后写入 |
|
|
|
基础宽度(m),参与 5.2.5 条公式。 |
|
|
|
抗浮设计水位(m)。为 |
|
|
|
水的重度(kN/m³)。水下工况的有效重度 = 饱和重度 − 该值。 |
|
|
|
数值结果的小数位数(0–100)。为 |
快速上手示例:材料表计算 fa
from gdisdk.dataclass.geoProfiles import MaterialTable
from gdisdk.dataclass.terminologies import GeoMaterialProps as GProps
from gdisdk.modules.shallowFoundation import BearingCapacityByStrength
materials = MaterialTable(
{
GProps.MaterialID: [0, 1, 2],
GProps.LayerNumber: ["1", "2", "3"],
GProps.MaterialName: ["砂土", "黏性土", "粉土"],
GProps.UnitWeight: [17.0, 18.5, 19.0],
GProps.SaturateUnitWeight: [19.0, 20.0, 20.0],
GProps.Cohesion: [10.0, 15.0, 18.5],
GProps.InternalFrictionAngle: [20.0, 31.0, 35.0],
GProps.MeanLayerBottomElevation: [10.0, 11.0, 10.0],
}
)
mod = BearingCapacityByStrength(mname="BearingCapacityByStrength")
mod.f_width = 0.3
mod.anti_float_water_level = 9.5
mod.numeric_precision = 1
mod.InputMaterials = materials
mod.execute()
result = mod.OutputResults.data
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.converters import ConvertToMaterialTable
from gdisdk.modules.shallowFoundation import BearingCapacityByStrength
pipe = PipeLine(app_name="FaByStrengthDemo", app_title="强度指标计算地基承载力")
convert = ConvertToMaterialTable(mname="ConvertMaterial")
calc = BearingCapacityByStrength(mname="BearingCapacityByStrength")
calc.f_width = 0.3
# links = reader.OutputTable >> convert.InputTable
# links = convert.OutputMaterialTable >> calc.InputMaterials
# pipe.add_module(convert)
# pipe.add_module(calc)
# pipe.run()
# fa_table = calc.OutputResults.data
更多信息
材料表转换见 modules.converters 模块帮助 中的
ConvertToMaterialTable