geolib_plus.bro_xml_cpt package¶
Submodules¶
geolib_plus.bro_xml_cpt.bro_utils module¶
bro_utils :
Functions used in the reading of bro_xml cpts
- class geolib_plus.bro_xml_cpt.bro_utils.XMLBroCPTReader¶
Bases:
CptReader
- all_single_data_available() bool ¶
- are_all_required_data_available(avail_columns: List) None ¶
Determine if all data is available
- bro_data: XMLBroFullData = XMLBroFullData(penetrationLength=None, depth=None, elapsedTime=None, coneResistance=None, correctedConeResistance=None, netConeResistance=None, magneticFieldStrengthX=None, magneticFieldStrengthY=None, magneticFieldStrengthZ=None, magneticFieldStrengthTotal=None, electricalConductivity=None, inclinationEW=None, inclinationNS=None, inclinationX=None, inclinationY=None, inclinationResultant=None, magneticInclination=None, magneticDeclination=None, localFriction=None, poreRatio=None, temperature=None, porePressureU1=None, porePressureU2=None, porePressureU3=None, frictionRatio=None, id=None, location_x=None, location_y=None, offset_z=None, predrilled_z=None, a=0.8, vertical_datum=None, local_reference=None, quality_class=None, cone_penetrometer_type=None, cpt_standard=None, result_time=None, dataframe=None)¶
- bro_dataframe_map: Dict[str, str] = {'depth': 'depth', 'electric_cond': 'electricalConductivity', 'friction': 'localFriction', 'friction_nbr': 'frictionRatio', 'inclination_ew': 'inclinationEW', 'inclination_ns': 'inclinationNS', 'inclination_resultant': 'inclinationResultant', 'inclination_x': 'inclinationX', 'inclination_y': 'inclinationY', 'magnetic_declination': 'magneticDeclination', 'magnetic_inclination': 'magneticInclination', 'magnetic_strength_tot': 'magneticFieldStrengthTotal', 'magnetic_strength_x': 'magneticFieldStrengthX', 'magnetic_strength_y': 'magneticFieldStrengthY', 'magnetic_strength_z': 'magneticFieldStrengthZ', 'net_tip': 'netConeResistance', 'penetration_length': 'penetrationLength', 'pore_pressure_u1': 'porePressureU1', 'pore_pressure_u2': 'porePressureU2', 'pore_pressure_u3': 'porePressureU3', 'pore_ratio': 'poreRatio', 'qt': 'correctedConeResistance', 'temperature': 'temperature', 'time': 'elapsedTime', 'tip': 'coneResistance'}¶
- find_availed_data_columns(root: _Element) List ¶
Find which columns are not empty.
- get_all_data_from_bro(root: _Element) None ¶
Extract values from bro. From the xml elements.
- parse_bro_xml(xml: bytes)¶
Populates class with xml data. No interpretation of results occurs at this function. This is simply reading the xml. TODO Replace iter by single search as iter can give multiple results
- Parameters:
xml – XML bytes
- static parse_xml_location(tdata: bytes)¶
Return x y of location. TODO Don’t user iter :param tdata: XML bytes :returns: list – of x y string coordinates
Will transform coordinates not in EPSG:28992
- read_file(filepath: Path) dict ¶
- search_values_in_root(root: _Element, search_item: str) str ¶
- static transform_dict_fields_to_arrays(dictionary: Dict) Dict ¶
- water_measurement_type: List = []¶
- static xml_to_byte_string(fn: Path) bytes ¶
Opens an xml-file and returns a byte-string :param fn: xml file name :return: byte-string of the xml file
- class geolib_plus.bro_xml_cpt.bro_utils.XMLBroColumnValues(*, penetrationLength: Optional[Iterable] = None, depth: Optional[Iterable] = None, elapsedTime: Optional[Iterable] = None, coneResistance: Optional[Iterable] = None, correctedConeResistance: Optional[Iterable] = None, netConeResistance: Optional[Iterable] = None, magneticFieldStrengthX: Optional[Iterable] = None, magneticFieldStrengthY: Optional[Iterable] = None, magneticFieldStrengthZ: Optional[Iterable] = None, magneticFieldStrengthTotal: Optional[Iterable] = None, electricalConductivity: Optional[Iterable] = None, inclinationEW: Optional[Iterable] = None, inclinationNS: Optional[Iterable] = None, inclinationX: Optional[Iterable] = None, inclinationY: Optional[Iterable] = None, inclinationResultant: Optional[Iterable] = None, magneticInclination: Optional[Iterable] = None, magneticDeclination: Optional[Iterable] = None, localFriction: Optional[Iterable] = None, poreRatio: Optional[Iterable] = None, temperature: Optional[Iterable] = None, porePressureU1: Optional[Iterable] = None, porePressureU2: Optional[Iterable] = None, porePressureU3: Optional[Iterable] = None, frictionRatio: Optional[Iterable] = None)¶
Bases:
BaseModel
- coneResistance: Optional[Iterable]¶
- correctedConeResistance: Optional[Iterable]¶
- depth: Optional[Iterable]¶
- elapsedTime: Optional[Iterable]¶
- electricalConductivity: Optional[Iterable]¶
- frictionRatio: Optional[Iterable]¶
- inclinationEW: Optional[Iterable]¶
- inclinationNS: Optional[Iterable]¶
- inclinationResultant: Optional[Iterable]¶
- inclinationX: Optional[Iterable]¶
- inclinationY: Optional[Iterable]¶
- localFriction: Optional[Iterable]¶
- magneticDeclination: Optional[Iterable]¶
- magneticFieldStrengthTotal: Optional[Iterable]¶
- magneticFieldStrengthX: Optional[Iterable]¶
- magneticFieldStrengthY: Optional[Iterable]¶
- magneticFieldStrengthZ: Optional[Iterable]¶
- magneticInclination: Optional[Iterable]¶
- netConeResistance: Optional[Iterable]¶
- penetrationLength: Optional[Iterable]¶
- porePressureU1: Optional[Iterable]¶
- porePressureU2: Optional[Iterable]¶
- porePressureU3: Optional[Iterable]¶
- poreRatio: Optional[Iterable]¶
- temperature: Optional[Iterable]¶
- class geolib_plus.bro_xml_cpt.bro_utils.XMLBroFullData(*, penetrationLength: Optional[Iterable] = None, depth: Optional[Iterable] = None, elapsedTime: Optional[Iterable] = None, coneResistance: Optional[Iterable] = None, correctedConeResistance: Optional[Iterable] = None, netConeResistance: Optional[Iterable] = None, magneticFieldStrengthX: Optional[Iterable] = None, magneticFieldStrengthY: Optional[Iterable] = None, magneticFieldStrengthZ: Optional[Iterable] = None, magneticFieldStrengthTotal: Optional[Iterable] = None, electricalConductivity: Optional[Iterable] = None, inclinationEW: Optional[Iterable] = None, inclinationNS: Optional[Iterable] = None, inclinationX: Optional[Iterable] = None, inclinationY: Optional[Iterable] = None, inclinationResultant: Optional[Iterable] = None, magneticInclination: Optional[Iterable] = None, magneticDeclination: Optional[Iterable] = None, localFriction: Optional[Iterable] = None, poreRatio: Optional[Iterable] = None, temperature: Optional[Iterable] = None, porePressureU1: Optional[Iterable] = None, porePressureU2: Optional[Iterable] = None, porePressureU3: Optional[Iterable] = None, frictionRatio: Optional[Iterable] = None, id: Optional[str] = None, location_x: Optional[float] = None, location_y: Optional[float] = None, offset_z: Optional[float] = None, predrilled_z: Optional[float] = None, a: Optional[float] = 0.8, vertical_datum: Optional[str] = None, local_reference: Optional[str] = None, quality_class: Optional[str] = None, cone_penetrometer_type: Optional[str] = None, cpt_standard: Optional[str] = None, result_time: Optional[str] = None, dataframe: Optional[DataFrame] = None)¶
Bases:
XMLBroColumnValues
- a: Optional[float]¶
- property columns_string_list¶
- cone_penetrometer_type: Optional[str]¶
- cpt_standard: Optional[str]¶
- dataframe: Optional[DataFrame]¶
- id: Optional[str]¶
- local_reference: Optional[str]¶
- location_x: Optional[float]¶
- location_y: Optional[float]¶
- offset_z: Optional[float]¶
- predrilled_z: Optional[float]¶
- quality_class: Optional[str]¶
- result_time: Optional[str]¶
- vertical_datum: Optional[str]¶
geolib_plus.bro_xml_cpt.bro_xml_cpt module¶
- class geolib_plus.bro_xml_cpt.bro_xml_cpt.BroXmlCpt(*, penetration_length: ~typing.Optional[~typing.Iterable] = None, depth: ~typing.Optional[~typing.Iterable] = None, coordinates: ~typing.Optional[~typing.List] = None, local_reference_level: ~typing.Optional[float] = None, depth_to_reference: ~typing.Optional[~typing.Iterable] = None, tip: ~typing.Optional[~typing.Iterable] = None, friction: ~typing.Optional[~typing.Iterable] = None, friction_nbr: ~typing.Optional[~typing.Iterable] = None, a: ~typing.Optional[float] = None, name: ~typing.Optional[str] = None, rho: ~typing.Optional[~typing.Iterable] = None, total_stress: ~typing.Optional[~typing.Iterable] = None, effective_stress: ~typing.Optional[~typing.Iterable] = None, pwp: ~typing.Optional[~typing.Iterable] = None, qt: ~typing.Optional[~typing.Iterable] = None, Qtn: ~typing.Optional[~typing.Iterable] = None, Qtncs: ~typing.Optional[~typing.Iterable] = None, Fr: ~typing.Optional[~typing.Iterable] = None, IC: ~typing.Optional[~typing.Iterable] = None, n: ~typing.Optional[~typing.Iterable] = None, vs: ~typing.Optional[~typing.Iterable] = None, G0: ~typing.Optional[~typing.Iterable] = None, E0: ~typing.Optional[~typing.Iterable] = None, permeability: ~typing.Optional[~typing.Iterable] = None, poisson: ~typing.Optional[~typing.Iterable] = None, damping: ~typing.Optional[~typing.Iterable] = None, relative_density: ~typing.Optional[~typing.Iterable] = None, psi: ~typing.Optional[~typing.Iterable] = None, pore_pressure_u1: ~typing.Optional[~typing.Iterable] = None, pore_pressure_u2: ~typing.Optional[~typing.Iterable] = None, pore_pressure_u3: ~typing.Optional[~typing.Iterable] = None, water: ~typing.Optional[~typing.Iterable] = None, lithology: ~typing.Optional[~typing.Iterable] = None, litho_points: ~typing.Optional[~typing.Iterable] = None, lithology_merged: ~typing.Optional[~typing.Iterable] = None, depth_merged: ~typing.Optional[~typing.Iterable] = None, index_merged: ~typing.Optional[~typing.Iterable] = None, vertical_datum: ~typing.Optional[str] = None, local_reference: ~typing.Optional[str] = None, inclination_x: ~typing.Optional[~typing.Iterable] = None, inclination_y: ~typing.Optional[~typing.Iterable] = None, inclination_ns: ~typing.Optional[~typing.Iterable] = None, inclination_ew: ~typing.Optional[~typing.Iterable] = None, inclination_resultant: ~typing.Optional[~typing.Iterable] = None, time: ~typing.Optional[~typing.Iterable] = None, net_tip: ~typing.Optional[~typing.Iterable] = None, pore_ratio: ~typing.Optional[~typing.Iterable] = None, tip_nbr: ~typing.Optional[~typing.Iterable] = None, unit_weight_measured: ~typing.Optional[~typing.Iterable] = None, pwp_ini: ~typing.Optional[~typing.Iterable] = None, total_pressure_measured: ~typing.Optional[~typing.Iterable] = None, effective_pressure_measured: ~typing.Optional[~typing.Iterable] = None, electric_cond: ~typing.Optional[~typing.Iterable] = None, magnetic_strength_x: ~typing.Optional[~typing.Iterable] = None, magnetic_strength_y: ~typing.Optional[~typing.Iterable] = None, magnetic_strength_z: ~typing.Optional[~typing.Iterable] = None, magnetic_strength_tot: ~typing.Optional[~typing.Iterable] = None, magnetic_inclination: ~typing.Optional[~typing.Iterable] = None, magnetic_declination: ~typing.Optional[~typing.Iterable] = None, temperature: ~typing.Optional[~typing.Iterable] = None, predrilled_z: ~typing.Optional[float] = None, undefined_depth: ~typing.Optional[float] = None, cpt_standard: ~typing.Optional[str] = None, quality_class: ~typing.Optional[str] = None, cpt_type: ~typing.Optional[str] = None, result_time: ~typing.Optional[str] = None, water_measurement_type: ~typing.Optional[str] = None, litho_NEN: ~typing.Optional[~typing.Iterable] = None, E_NEN: ~typing.Optional[~typing.Iterable] = None, cohesion_NEN: ~typing.Optional[~typing.Iterable] = None, fr_angle_NEN: ~typing.Optional[~typing.Iterable] = None, plot_settings: ~geolib_plus.plot_settings.PlotSettings = <geolib_plus.plot_settings.PlotSettings object>, g: float = 9.81, Pa: float = 100.0)¶
Bases:
AbstractCPT
Class that contains gets the reader and contains pre-processing functions. That can be used to modify the raw data.
- drop_duplicate_depth_values()¶
Updates fields by removing penetration_length that are duplicate. This means that all the properties in __list_of_array_values will be updated.
- has_points_with_error() bool ¶
A routine which checks whether the data is free of points with error.
- Returns:
If the gef cpt data is free of error flags
- remove_points_with_error()¶
Updates fields by removing depths that contain nan values. This means that all the properties in __list_of_array_values will be updated.
geolib_plus.bro_xml_cpt.validate_bro module¶
- class geolib_plus.bro_xml_cpt.validate_bro.HTTPSResolver¶
Bases:
Resolver
- resolve(self, system_url, public_id, context)¶
Override this method to resolve an external source by
system_url
andpublic_id
. The third argument is an opaque context object.Return the result of one of the
resolve_*()
methods.
- class geolib_plus.bro_xml_cpt.validate_bro.ValidatePreProcessing¶
Bases:
object
- validate_length_and_samples_cpt(cpt: AbstractCPT, minimum_length: int = 5, minimum_samples: int = 50)¶
Performs initial checks regarding the availability of data in the cpt. Returns a string that contains all the error messages.
- geolib_plus.bro_xml_cpt.validate_bro.validate_bro(schema_url, bro_xml_file)¶
- geolib_plus.bro_xml_cpt.validate_bro.validate_bro_cpt(bro_xml_file)¶