Index
subsurfaceio.site_investigation.in_situ_tests
In-situ test models (CPT, DMT, borehole, IST, UDT).
Modules:
| Name | Description |
|---|---|
mixins |
In-situ test calculation mixins and result types. |
Classes:
| Name | Description |
|---|---|
BoreholeMetadata |
Borehole test-specific metadata (rig, water table, corrections). |
BoreholeTest |
Borehole with Standard Penetration Test support. |
CPTData |
CPT depth record (tip, sleeve, pore pressure). |
CPTFootingSettings |
CPT footing method selectors and capacity knobs. |
CPTInterpretationSettings |
CPT interpretation inputs and method selector. |
CPTLiquefactionSettings |
CPT liquefaction inputs and method selector. |
CPTMetadata |
CPT test-specific metadata (equipment, water table, cone factors). |
CPTPileSettings |
CPT pile method selector and capacity knobs. |
CPTTest |
Cone Penetration Test (CPT/CPTu). |
DMTData |
DMT depth record (raw A/B/C readings). |
DMTFootingSettings |
DMT footing method selector. |
DMTInterpretationSettings |
DMT interpretation inputs and method selector. |
DMTLiquefactionSettings |
DMT liquefaction inputs and method selector. |
DMTMetadata |
DMT test-specific metadata (equipment, water table, calibrations). |
DMTTest |
Flat Dilatometer Test. |
DataCustom |
Optional depth-aligned custom inputs for calculations. |
FootingSettings |
Shared footing geometry and load inputs across test types. |
ISTData |
In-situ seismic depth record (Vs/Vp). |
ISTMetadata |
In-situ seismic test metadata. |
ISTTest |
In-situ seismic test (Vs/Vp). |
InSituTestBase |
Base model for a single in-situ test. |
InSituTestMetadata |
Shared location and elevation metadata for an in-situ test. |
InSituTestPlotSettings |
Default Plotly styling for an in-situ test series. |
InterpretationSettings |
Per-type interpretation inputs (no shared CPT/DMT/SPT fields). |
LiquefactionSettings |
Shared liquefaction inputs across test types. |
LiquefactionShearInducedBuildingSettlementSettings |
Shared shear-induced building settlement inputs (independent of footing analysis). |
PileSettings |
Shared pile geometry inputs across test types. |
SPTData |
SPT depth record used for interpretation and liquefaction. |
SPTInterpretationSettings |
SPT interpretation inputs and method selector. |
SPTLiquefactionSettings |
SPT liquefaction inputs and method selector. |
SPTNHandler |
SPT N-value and refusal text from seating + main interval blows. |
SampleSPTRaw |
Standard Penetration Test (ASTM D1586). |
TestFootingSettings |
Per-type footing inputs (method selectors and test-specific knobs). |
TestLiquefactionSettings |
Per-type liquefaction inputs (method selector and test-specific knobs). |
TestPileSettings |
Per-type pile inputs (method selector and test-specific knobs). |
UDTData |
User-defined depth record of soil parameters. |
UDTMetadata |
User-defined test metadata. |
UDTTest |
User-defined in-situ test (arbitrary depth parameters). |
WaterTable |
Water-table measurement collection. |
WaterTableData |
Single water-table measurement. |
Attributes:
| Name | Type | Description |
|---|---|---|
DiscriminatedInSituTest |
TypeAlias
|
|
InSituTest |
TypeAlias
|
Any in-situ test model. |
InSituTestAdapter |
Pydantic adapter for a discriminated in-situ test payload. |
|
InSituTestWithCustomData |
TypeAlias
|
Tests that accept interpolated custom depth-series inputs. |
InSituTestWithFootingCapacity |
TypeAlias
|
Tests that run shallow-foundation capacity. |
InSituTestWithFootingSettlements |
TypeAlias
|
Tests that run shallow-foundation settlement. |
InSituTestWithInterpretation |
TypeAlias
|
Tests that run interpretation (SPT, CPT, DMT). |
InSituTestWithLiquefaction |
TypeAlias
|
Tests that run liquefaction triggering. |
InSituTestWithLogPlot |
TypeAlias
|
Tests that can build a graphical log ( |
InSituTestWithPile |
TypeAlias
|
Tests that run pile capacity. |
SPTDataDepth |
TypeAlias
|
Stored |
DiscriminatedInSituTest
module-attribute
InSituTest discriminated on type.
InSituTest
module-attribute
Any in-situ test model.
InSituTestAdapter
module-attribute
Pydantic adapter for a discriminated in-situ test payload.
InSituTestWithCustomData
module-attribute
Tests that accept interpolated custom depth-series inputs.
InSituTestWithFootingCapacity
module-attribute
Tests that run shallow-foundation capacity.
InSituTestWithFootingSettlements
module-attribute
Tests that run shallow-foundation settlement.
InSituTestWithInterpretation
module-attribute
Tests that run interpretation (SPT, CPT, DMT).
InSituTestWithLiquefaction
module-attribute
Tests that run liquefaction triggering.
InSituTestWithLogPlot
module-attribute
Tests that can build a graphical log (LogPlotMixin).
InSituTestWithPile
module-attribute
Tests that run pile capacity.
SPTDataDepth
module-attribute
Stored SPTData.depth for an inferred row.
main_drive_mid is the main-drive midpoint. interval_base is the
sample base when a sample is present, or the drive bottom for an unpaired
SPT. This does not change which specimen is joined.
BoreholeMetadata
pydantic-model
Bases: BaseModel
Borehole test-specific metadata (rig, water table, corrections).
Fields:
-
crew(str | None) -
method(str | None) -
date_start(datetime | None) -
date_end(datetime | None) -
remarks(str | None) -
borehole_diameter(NullableFloat) -
rod_length(NullableFloat) -
boring_type(str | None) -
rig_model(str | None) -
hammer_drop_system(str | None) -
associated_file(str | None) -
water_table_present(bool) -
water_table(NullableFloat) -
sampler_correction(NullableFloat)
BoreholeTest
pydantic-model
Bases: InSituTestBase[BoreholeMetadata, SPTData], CalculationDataMixin, InterpretationMixin, LiquefactionMixin, LiquefactionShearInducedBuildingSettlementMixin, LogPlotMixin, LaboratoryTestsReportMixin
Borehole with Standard Penetration Test support.
Fields:
-
metadata(InSituTestMetadata) -
water_table_measurements(WaterTable) -
type(Literal['BORH']) -
test_metadata(BoreholeMetadata) -
plot_settings(InSituTestPlotSettings) -
data(list[SPTData]) -
test_interpretation_settings(SPTInterpretationSettings) -
liquefaction_settings(LiquefactionSettings) -
test_liquefaction_settings(SPTLiquefactionSettings) -
liquefaction_shear_induced_building_settlement_settings(LiquefactionShearInducedBuildingSettlementSettings) -
samples(list[Sample]) -
spt(list[SampleSPTRaw]) -
strata(list[StrataData]) -
use_custom_data(bool) -
data_custom(list[DataCustom]) -
interpretation(SPTInterpretationResults | None) -
liquefaction(SPTLiquefactionCetin2004Results | SPTLiquefactionIdriss2008Results | SPTLiquefactionBoulanger2014Results | SPTLiquefactionCetin2018Results | None) -
liquefaction_shear_induced_building_settlement(LiquefactionShearInducedBuildingSettlementBray2017Results | None)
Validators:
-
_unique_sample_ids→samples
interpretation
pydantic-field
Calculation results
liquefaction
pydantic-field
liquefaction: (
SPTLiquefactionCetin2004Results
| SPTLiquefactionIdriss2008Results
| SPTLiquefactionBoulanger2014Results
| SPTLiquefactionCetin2018Results
| None
) = None
Calculation results
liquefaction_shear_induced_building_settlement
pydantic-field
liquefaction_shear_induced_building_settlement: (
LiquefactionShearInducedBuildingSettlementBray2017Results
| None
) = None
Calculation results
liquefaction_shear_induced_building_settlement_settings
pydantic-field
liquefaction_shear_induced_building_settlement_settings: (
LiquefactionShearInducedBuildingSettlementSettings
)
add_sample
Append a sample. sample_id must be unique on this site.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample
|
Sample
|
Sample to add. |
required |
Returns:
| Type | Description |
|---|---|
Self
|
This borehole test. |
Raises:
| Type | Description |
|---|---|
ValueError
|
When |
correlate_null_unit_weight
Fill missing SPT unit weights from the SPT correlation sequence.
Returns:
| Type | Description |
|---|---|
Self
|
This borehole test. |
get_sample_by_id
Return the sample with sample_id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sample_id
|
str
|
|
required |
Returns:
| Type | Description |
|---|---|
Sample
|
The matching sample. |
Raises:
| Type | Description |
|---|---|
KeyError
|
When no sample has that id. |
get_spt_for_sample
Return the SPT drive paired with sample (depth-only match).
Same drive start at logging precision (2 dp); positive overlap of
sample [depth_top, depth) with the drive when drive_length
is set. See sample_spt_pair.
infer_data
Build SPT data rows from samples, specimens, and matching drives.
One row per sample (including tubes with no N, so interpretation
correlations that use LL, PI, and water content still have a node)
plus one row per unpaired SPT drive. Lab fields come from the
specimen whose interval contains the join depth (main-drive mid
when a drive is paired, otherwise sample base). spt_data_depth
(SPTDataDepth)
only changes the stored SPTData.depth; it does not change
which specimen is joined. Rows are always sorted by depth
(None last).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
spt_data_depth
|
SPTDataDepth
|
Where to store |
'main_drive_mid'
|
Returns:
| Type | Description |
|---|---|
Self
|
This borehole test. |
CPTData
pydantic-model
Bases: BaseModel
CPT depth record (tip, sleeve, pore pressure).
Fields:
CPTFootingSettings
pydantic-model
Bases: TestFootingSettings
CPT footing method selectors and capacity knobs.
Fields:
-
function_sequence_footing_settlements(Literal['CPTFootingSettlementsRobertson']) -
function_sequence_footing_capacity(Literal['CPTFootingCapacityRobertson']) -
footing_influence_width_factor(NullableFloat) -
bearing_capacity_factor(NullableFloat)
CPTInterpretationSettings
pydantic-model
Bases: InterpretationSettings
CPT interpretation inputs and method selector.
Fields:
-
function_sequence(Literal['CPTInterpretationRobertson']) -
moving_average_window_size(NullableInt) -
is_fine_soil_criteria(IsFineSoilCriteria) -
soil_behavior_type_index_cutoff(NullableFloat) -
overburden_correction_limit(float) -
remove_loose_sand_criteria(bool) -
relative_density_constant(NullableFloat) -
sensitivity_constant(NullableFloat) -
constant_volume_friction_angle(NullableFloat) -
soil_transition_detection(bool) -
soil_transition_min_rate_of_change(NullableFloat) -
soil_transition_min_index(NullableFloat) -
soil_transition_max_index(NullableFloat) -
soil_transition_min_points(NullableInt)
function_sequence
pydantic-field
Function sequence used for interpretation
CPTLiquefactionSettings
pydantic-model
Bases: TestLiquefactionSettings
CPT liquefaction inputs and method selector.
Fields:
-
function_sequence(Literal['CPTLiquefactionRobertson', 'CPTLiquefactionIdriss2008', 'CPTLiquefactionBoulanger2014', 'CPTLiquefactionSaye2021']) -
void_redistribution_is_significant(bool)
CPTMetadata
pydantic-model
Bases: BaseModel
CPT test-specific metadata (equipment, water table, cone factors).
Fields:
-
penetration_rate(NullableFloat) -
crew(str | None) -
method(str | None) -
date_start(datetime | None) -
date_end(datetime | None) -
water_table_present(bool) -
water_table(NullableFloat) -
cone_area_ratio(NullableFloat) -
remarks(str | None) -
associated_file(str | None)
CPTPileSettings
pydantic-model
Bases: TestPileSettings
CPT pile method selector and capacity knobs.
Fields:
-
function_sequence(Literal['CPTPileBustamante1982', 'CPTPileBustamante1982Fellenius', 'CPTPileEslami1997']) -
pile_type_category(PileTypeCategory) -
careful_execution(bool) -
unit_side_friction_clip(bool) -
pile_toe_transition(PileToeTransition)
CPTTest
pydantic-model
Bases: InSituTestBase[CPTMetadata, CPTData], CalculationDataMixin, InterpretationMixin, LiquefactionMixin, LiquefactionShearInducedBuildingSettlementMixin, FootingSettlementsMixin, FootingCapacityMixin, PileMixin, LogPlotMixin
Cone Penetration Test (CPT/CPTu).
Fields:
-
metadata(InSituTestMetadata) -
water_table_measurements(WaterTable) -
plot_settings(InSituTestPlotSettings) -
type(Literal['CPT']) -
test_metadata(CPTMetadata) -
data(list[CPTData]) -
strata(list[StrataData]) -
test_interpretation_settings(CPTInterpretationSettings) -
liquefaction_settings(LiquefactionSettings) -
test_liquefaction_settings(CPTLiquefactionSettings) -
liquefaction_shear_induced_building_settlement_settings(LiquefactionShearInducedBuildingSettlementSettings) -
footing_settings(FootingSettings) -
test_footing_settings(CPTFootingSettings) -
pile_settings(PileSettings) -
test_pile_settings(CPTPileSettings) -
use_custom_data(bool) -
data_custom(list[DataCustom]) -
interpretation(CPTInterpretationRobertsonResults | None) -
liquefaction(CPTLiquefactionRobertsonResults | CPTLiquefactionIdriss2008Results | CPTLiquefactionBoulanger2014Results | CPTLiquefactionSaye2021Results | None) -
liquefaction_shear_induced_building_settlement(LiquefactionShearInducedBuildingSettlementBray2017Results | None) -
footing_settlements(CPTFootingSettlementsRobertsonResults | None) -
footing_capacity(CPTFootingCapacityRobertsonResults | None) -
pile_capacity(CPTPileBustamante1982Results | CPTPileBustamante1982FelleniusResults | CPTPileEslami1997Results | None)
footing_capacity
pydantic-field
Calculation results
footing_settlements
pydantic-field
Calculation results
interpretation
pydantic-field
Calculation results
liquefaction
pydantic-field
liquefaction: (
CPTLiquefactionRobertsonResults
| CPTLiquefactionIdriss2008Results
| CPTLiquefactionBoulanger2014Results
| CPTLiquefactionSaye2021Results
| None
) = None
Calculation results
liquefaction_shear_induced_building_settlement
pydantic-field
liquefaction_shear_induced_building_settlement: (
LiquefactionShearInducedBuildingSettlementBray2017Results
| None
) = None
Calculation results
liquefaction_shear_induced_building_settlement_settings
pydantic-field
liquefaction_shear_induced_building_settlement_settings: (
LiquefactionShearInducedBuildingSettlementSettings
)
pile_capacity
pydantic-field
pile_capacity: (
CPTPileBustamante1982Results
| CPTPileBustamante1982FelleniusResults
| CPTPileEslami1997Results
| None
) = None
Calculation results
create_dummy_u2
Fill pore pressure from hydrostatic profile and return self.
get_cross_correlation
Return tip/sleeve lag and a cross-correlation figure.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
plot_module
|
Literal['plotly', 'mpl']
|
Figure backend. |
'plotly'
|
Returns:
| Type | Description |
|---|---|
tuple[int, Any]
|
Integer lag (samples) and the backend figure. |
Raises:
| Type | Description |
|---|---|
ValueError
|
When |
DMTData
pydantic-model
Bases: BaseModel
DMT depth record (raw A/B/C readings).
Fields:
DMTFootingSettings
pydantic-model
Bases: TestFootingSettings
DMT footing method selector.
Fields:
-
function_sequence_footing_settlements(Literal['DMTFootingSettlementsRobertson'])
DMTInterpretationSettings
pydantic-model
Bases: InterpretationSettings
DMT interpretation inputs and method selector.
Fields:
-
function_sequence(Literal['DMTInterpretationMarchetti']) -
elasticity_to_constrained_modulus_ratio(NullableFloat)
DMTLiquefactionSettings
pydantic-model
Bases: TestLiquefactionSettings
DMT liquefaction inputs and method selector.
Fields:
-
function_sequence(Literal['DMTLiquefactionMarchetti'])
DMTMetadata
pydantic-model
Bases: BaseModel
DMT test-specific metadata (equipment, water table, calibrations).
Fields:
-
penetration_rate(NullableFloat) -
crew(str | None) -
method(str | None) -
date_start(datetime | None) -
date_end(datetime | None) -
water_table_present(bool) -
water_table(NullableFloat) -
free_air_correction_a_reading(NullableFloat) -
free_air_correction_b_reading(NullableFloat) -
vented_control_unit_reading_a(NullableFloat) -
vented_control_unit_reading_b(NullableFloat) -
remarks(str | None) -
associated_file(str | None)
DMTTest
pydantic-model
Bases: InSituTestBase[DMTMetadata, DMTData], CalculationDataMixin, InterpretationMixin, LiquefactionMixin, LiquefactionShearInducedBuildingSettlementMixin, FootingSettlementsMixin
Flat Dilatometer Test.
Fields:
-
metadata(InSituTestMetadata) -
water_table_measurements(WaterTable) -
plot_settings(InSituTestPlotSettings) -
type(Literal['DMT']) -
test_metadata(DMTMetadata) -
data(list[DMTData]) -
strata(list[StrataData]) -
test_interpretation_settings(DMTInterpretationSettings) -
liquefaction_settings(LiquefactionSettings) -
test_liquefaction_settings(DMTLiquefactionSettings) -
liquefaction_shear_induced_building_settlement_settings(LiquefactionShearInducedBuildingSettlementSettings) -
footing_settings(FootingSettings) -
test_footing_settings(DMTFootingSettings) -
use_custom_data(bool) -
data_custom(list[DataCustom]) -
interpretation(DMTInterpretationMarchettiResults | None) -
liquefaction(DMTLiquefactionMarchettiResults | None) -
liquefaction_shear_induced_building_settlement(LiquefactionShearInducedBuildingSettlementBray2017Results | None) -
footing_settlements(DMTFootingSettlementsRobertsonResults | None)
footing_settlements
pydantic-field
Calculation results
interpretation
pydantic-field
Calculation results
liquefaction
pydantic-field
Calculation results
liquefaction_shear_induced_building_settlement
pydantic-field
liquefaction_shear_induced_building_settlement: (
LiquefactionShearInducedBuildingSettlementBray2017Results
| None
) = None
Calculation results
DataCustom
pydantic-model
Bases: BaseModel
Optional depth-aligned custom inputs for calculations.
Fields:
FootingSettings
pydantic-model
Bases: BaseModel
Shared footing geometry and load inputs across test types.
Fields:
-
footing_shape(FootingShape) -
footing_width(NullableFloat) -
footing_length(NullableFloat) -
footing_embedment(NullableFloat) -
footing_applied_load(NullableFloat) -
apply_20_percent_rule(bool) -
consider_creep_settlement(bool) -
consolidation_time(NullableFloat) -
primary_consolidation_time(NullableFloat)
ISTData
pydantic-model
Bases: BaseModel
In-situ seismic depth record (Vs/Vp).
Fields:
ISTMetadata
pydantic-model
Bases: BaseModel
In-situ seismic test metadata.
Fields:
-
crew(str | None) -
method(str | None) -
date_start(datetime | None) -
date_end(datetime | None) -
ist_test_type(str | None) -
water_table_present(bool) -
water_table(NullableFloat) -
remarks(str | None) -
associated_file(str | None)
ISTTest
pydantic-model
Bases: InSituTestBase[ISTMetadata, ISTData]
In-situ seismic test (Vs/Vp).
Fields:
-
metadata(InSituTestMetadata) -
water_table_measurements(WaterTable) -
type(Literal['IST']) -
test_metadata(ISTMetadata) -
plot_settings(InSituTestPlotSettings) -
data(list[ISTData])
InSituTestBase
pydantic-model
Bases: Model, Generic[TTestMetadata, TData, T]
Base model for a single in-situ test.
Fields:
-
type(str) -
metadata(InSituTestMetadata) -
test_metadata(TTestMetadata) -
water_table_measurements(WaterTable) -
plot_settings(InSituTestPlotSettings) -
data(list[TData])
InSituTestMetadata
pydantic-model
Bases: BaseModel
Shared location and elevation metadata for an in-situ test.
Fields:
-
test_id(str) -
latitude(NullableFloat) -
longitude(NullableFloat) -
easting(NullableFloat) -
northing(NullableFloat) -
zone_number(NullableInt) -
zone_letter(str | None) -
surface_elevation(NullableFloat) -
final_depth(NullableFloat) -
remarks(str | None)
set_latitude_and_longitude_from_utm
Fill latitude and longitude from UTM fields.
InSituTestPlotSettings
pydantic-model
Bases: BaseModel
Default Plotly styling for an in-situ test series.
Fields:
-
mode(TraceMode) -
color(Color | None) -
marker_symbol(MarkerSymbol | None) -
line_width(NullableFloat) -
line_shape(LineShape | None)
InterpretationSettings
pydantic-model
Bases: BaseModel
Per-type interpretation inputs (no shared CPT/DMT/SPT fields).
Fields:
-
function_sequence(str | None)
LiquefactionSettings
pydantic-model
Bases: BaseModel
Shared liquefaction inputs across test types.
Fields:
-
moment_magnitude(NullableFloat) -
peak_ground_acceleration(NullableFloat) -
liquefaction_max_depth(NullableFloat) -
liquefaction_severity_number_max_depth(NullableFloat) -
liquefaction_potential_index_method(LiquefactionPotentialIndexMethod) -
lateral_displacement_min_thickness(NullableFloat) -
site_ground_condition(SiteGroundCondition) -
ground_slope(NullableFloat) -
free_face_height(NullableFloat) -
free_face_length(NullableFloat) -
stone_column_arrangement(StoneColumnArrangement | None) -
stone_column_diameter(NullableFloat) -
stone_column_spacing(NullableFloat) -
stone_column_top_depth(NullableFloat) -
stone_column_bottom_depth(NullableFloat) -
shear_modulus_ratio(NullableFloat)
lateral_displacement_min_thickness
pydantic-field
liquefaction_potential_index_method
pydantic-field
liquefaction_severity_number_max_depth
pydantic-field
stone_column_arrangement
pydantic-field
LiquefactionShearInducedBuildingSettlementSettings
pydantic-model
Bases: BaseModel
Shared shear-induced building settlement inputs (independent of footing analysis).
Fields:
-
function_sequence(Literal['LiquefactionShearInducedBuildingSettlementBray2017']) -
footing_width(NullableFloat) -
footing_embedment(NullableFloat) -
standardized_cumulative_absolute_velocity(NullableFloat) -
spectral_acceleration_at_1_sec(NullableFloat) -
foundation_contact_pressure(NullableFloat)
PileSettings
pydantic-model
Bases: BaseModel
Shared pile geometry inputs across test types.
Fields:
SPTData
pydantic-model
Bases: BaseModel
SPT depth record used for interpretation and liquefaction.
Fields:
-
depth(NullableFloat) -
sample_id(str | None) -
uscs_symbol(USCSSymbol | None) -
blow_count(NullableInt) -
energy_ratio(NullableFloat) -
unit_weight(NullableFloat) -
fines_content(NullableFloat) -
water_content(NullableFloat) -
liquid_limit(NullableFloat) -
plastic_limit(NullableFloat) -
plasticity_index(NullableFloat) -
uniformity_coefficient(NullableFloat) -
diameter_at_10_percent_finer(NullableFloat) -
diameter_at_50_percent_finer(NullableFloat)
SPTInterpretationSettings
pydantic-model
Bases: InterpretationSettings
SPT interpretation inputs and method selector.
Fields:
-
function_sequence(Literal['SPTInterpretation']) -
default_moist_unit_weight(NullableFloat) -
default_saturated_unit_weight(NullableFloat) -
shansep_method_m(NullableFloat) -
shansep_method_s(NullableFloat) -
use_simplified_blows_correction(bool)
function_sequence
pydantic-field
Function sequence used for interpretation
SPTLiquefactionSettings
pydantic-model
Bases: TestLiquefactionSettings
SPT liquefaction inputs and method selector.
Fields:
-
function_sequence(Literal['SPTLiquefactionCetin2004', 'SPTLiquefactionIdriss2008', 'SPTLiquefactionBoulanger2014', 'SPTLiquefactionCetin2018']) -
exclude_clay_like_sands(bool) -
void_redistribution_is_significant(bool) -
average_shear_velocity_12m(NullableFloat) -
site_to_seismic_source_distance(NullableFloat)
SPTNHandler
pydantic-model
Bases: BaseModel
SPT N-value and refusal text from seating + main interval blows.
Interval penetrations and drive_length are in metres.
refusal_length is the refusing increment (m), e.g. /0.10.
When that pen is missing, it may be inferred from drive_length and
SPT_INTERVAL_LENGTH_M for completed intervals (report-time only).
Fields:
-
seating_blow_count(NullableFloat) -
main_blow_count_1(NullableFloat) -
main_blow_count_2(NullableFloat) -
main_blow_count_3(NullableFloat) -
summary_blow_count(NullableFloat) -
seating_penetration(NullableFloat) -
main_penetration_1(NullableFloat) -
main_penetration_2(NullableFloat) -
main_penetration_3(NullableFloat) -
drive_length(NullableFloat)
refusal_length
property
Refusing-interval penetration (m).
Prefer measured interval pen. Else, if drive_length is known, subtract
prior logged intervals (measured pen or SPT_INTERVAL_LENGTH_M).
Never raises; returns None when length cannot be justified.
SampleSPTRaw
pydantic-model
Bases: BaseModel
Standard Penetration Test (ASTM D1586).
depth_top is AGS-like top of test (sampler start), metres.
drive_length is total sampler drive (seating + main), metres.
Interval pens sync drive_length when present; sparse imports (NGL) may
set drive_length without per-main pens.
Field order: blow counts then blow_count; penetrations then
drive_length; then energy/method/remarks (AGS/RSLog-style grouping).
Fields:
-
depth_top(NullableFloat) -
seating_blow_count(NullableInt) -
main_blow_count_1(NullableInt) -
main_blow_count_2(NullableInt) -
main_blow_count_3(NullableInt) -
blow_count(NullableInt) -
seating_penetration(NullableFloat) -
main_penetration_1(NullableFloat) -
main_penetration_2(NullableFloat) -
main_penetration_3(NullableFloat) -
drive_length(NullableFloat) -
energy_ratio(NullableFloat) -
method(str | None) -
remarks(str | None)
Validators:
main_drive_mid_depth
property
Mid-depth of the main drive (m).
Requires explicit seating_penetration. When drive is longer than
seating, mid of the main portion; otherwise mid of the full drive.
reported_blow_count
property
N string for logs: interval text, else the stored blow_count.
TestFootingSettings
pydantic-model
Bases: BaseModel
Per-type footing inputs (method selectors and test-specific knobs).
TestLiquefactionSettings
pydantic-model
Bases: BaseModel
Per-type liquefaction inputs (method selector and test-specific knobs).
Fields:
-
function_sequence(str)
TestPileSettings
pydantic-model
Bases: BaseModel
Per-type pile inputs (method selector and test-specific knobs).
Fields:
-
function_sequence(str)
UDTData
pydantic-model
Bases: BaseModel
User-defined depth record of soil parameters.
Fields:
-
depth(NullableFloat) -
fines_content(NullableFloat) -
unit_weight(NullableFloat) -
undrained_shear_strength(NullableFloat) -
plasticity_index(NullableFloat) -
overconsolidation_ratio(NullableFloat) -
uniformity_coefficient(NullableFloat) -
diameter_at_50_percent_finer(NullableFloat) -
peak_friction_angle(NullableFloat) -
friction_angle(NullableFloat) -
relative_density(NullableFloat) -
shear_velocity(NullableFloat) -
coefficient_of_earth_pressure_at_rest(NullableFloat) -
uscs_symbol(USCSSymbol | None)
coefficient_of_earth_pressure_at_rest
pydantic-field
UDTMetadata
pydantic-model
Bases: BaseModel
User-defined test metadata.
Fields:
-
crew(str | None) -
date_start(datetime | None) -
date_end(datetime | None) -
water_table_present(bool) -
water_table(NullableFloat) -
remarks(str | None) -
associated_file(str | None)
UDTTest
pydantic-model
Bases: InSituTestBase[UDTMetadata, UDTData]
User-defined in-situ test (arbitrary depth parameters).
Fields:
-
metadata(InSituTestMetadata) -
water_table_measurements(WaterTable) -
type(Literal['UDT']) -
test_metadata(UDTMetadata) -
plot_settings(InSituTestPlotSettings) -
data(list[UDTData])
WaterTable
pydantic-model
WaterTableData
pydantic-model
Bases: BaseModel
Single water-table measurement.
Fields:
-
water_table(NullableFloat) -
date(datetime | None) -
remarks(str | None)