Parser for data from geotechnical field investigations in the data format specified in Report 3:2012E from the Swedish Geotechnical Society / Svenska Geotekniska Föreningen (SGF).
This package is inspired by the libsgfdata package by EMerald Geomodelling.
Latest releases see CHANGES.md
pip install sgf-parser
from sgf_parser import Parser
with open("tests/data/cpt-test-3.cpt", "rt") as file:
# The test file only contains one method
[method] = Parser().parse(file)
print(repr(method))
# <MethodCPT CPT method_data=[<MethodCPTData 1.000>, <MethodCPTData 1.020>, <MethodCPTData 1.040>,
# <MethodCPTData 1.060>, <MethodCPTData 1.080>, <MethodCPTData 1.100>, <MethodCPTData 1.120>, ...,
# <MethodCPTData 24.940>, <MethodCPTData 24.960>, <MethodCPTData 24.980>]>
method.model_dump(exclude={'method_data'}, exclude_defaults=True)
# {'location_name': 'Test', 'project_number': '1234', 'method_type_string': '107A',
# 'conducted_at': datetime.datetime(2019, 9, 5, 11, 5), 'predrilling_depth': Decimal('1.00'),
# 'cone_reference': '5349', 'cone_area_ratio': Decimal('0.844'), 'sleeve_area_ratio': Decimal('0'),
# 'application_class_depth': <ApplicationClass.ONE: 1>, 'application_class_resistance': <ApplicationClass.ONE: 1>,
# 'application_class_friction': <ApplicationClass.ONE: 1>, 'application_class_pressure': <ApplicationClass.ONE: 1>,
# 'depth_top': Decimal('1.000'), 'depth_base': Decimal('24.980'), 'stopcode': 90}
method.stopcode
# 90
len(method.method_data)
# 1200
-
Software dependencies
- Python 3.11 or higher
- Poetry
- ruff code formatter
-
Clone this repository
-
Install
poetry install
Run in the project root folder:
poetry shell pytest
Build the package wheel:
poetry build
- Implement everything
- Do the rest
Please start by adding an issue before submitting any pull requests.