Reference

Application programming interface (API)

pyvibracore.api.get_impact_force_report(client, payload)[source]

Wrapper around the VibraCore endpoint “/impact-force/report”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_multi_cpt_impact_force_report_payload()

Return type:

bytes

pyvibracore.api.get_impact_force_calculation(client, payload)[source]

Wrapper around the VibraCore endpoint “/impact-force/calculation/multi”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_multi_cpt_impact_force_payload()

Return type:

bytes

pyvibracore.api.get_prepal_calculation(client, payload)[source]

Wrapper around the VibraCore endpoint “/prepal/validation/multi”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_prepal_payload()

Return type:

bytes

pyvibracore.api.get_cur166_calculation(client, payload)[source]

Wrapper around the VibraCore endpoint “/cur166/validation/multi”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_cur166_payload()

Return type:

bytes

pyvibracore.api.get_cur166_report(client, payload)[source]

Wrapper around the VibraCore endpoint “/cur166/report”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_vibration_report_payload()

Return type:

bytes

pyvibracore.api.get_prepal_report(client, payload)[source]

Wrapper around the VibraCore endpoint “/cur166/report”.

Parameters:
  • client (NucleiClient) – client object created by [nuclei](https://github.com/cemsbv/nuclei)

  • payload (dict) – the payload of the request, can be created by calling create_vibration_report_payload()

Return type:

bytes

Impact Force

Input

pyvibracore.input.impact_force_properties.create_multi_cpt_impact_force_payload(cptdata_objects, classify_tables, vibration_source, friction_strategy, drive_strategy, installation_level_offset, groundwater_level_offset=None, zeta=0.6)[source]

Creates a dictionary with the payload content for the VibraCore endpoint “/impact-force/calculation/multi”

This dictionary can be passed directly to nuclei.client.call_endpoint().

Parameters:
  • cptdata_objects (List[CPTData]) – A list of pygef.CPTData objects

  • classify_tables (Dict[str, dict]) –

    A dictionary, mapping CPTData.alias values to dictionary with the resulting response of a call to CPTCore classify/* information, containing the following keys:

    • geotechnicalSoilName: Sequence[str]

      Geotechnical Soil Name related to the ISO

    • lowerBoundary: Sequence[float]

      Lower boundary of the layer [m]

    • upperBoundary: Sequence[float]

      Upper boundary of the layer [m]

    • color: Sequence[str]

      Hex color code

    • mainComponent: Sequence[Literal[“rocks”, “gravel”, “sand”, “silt”, “clay”, “peat”]]

      Main soil component

    • cohesion: Sequence[float]

      Cohesion of the layer [kPa]

    • gamma_sat: Sequence[float]

      Saturated unit weight [kN/m^3]

    • gamma_unsat: Sequence[float]

      Unsaturated unit weight [kN/m^3]

    • phi: Sequence[float]

      Phi [degrees]

    • undrainedShearStrength: Sequence[float]

      Undrained shear strength [kPa]

  • vibration_source (VibrationSource) – Vibration source object

  • friction_strategy (Literal["CPTFrictionStrategy", "SlipFrictionStrategy"]) –

    Defines the strategy on how to compute the sleeve friction:

    • CPTFrictionStrategy

    The CPT Friction Strategy takes the sleeve friction provided by the cpt. Note that this method is only valid when the sleeve friction is provided within the cpt object.

    • SlipFrictionStrategy

    The Slip Friction Strategy calculated the sleeve friction based on the gamma, gamma saturation, phi and the undrained shear strength. To use this methode the values must be provided within the cpt object.

  • drive_strategy (Literal["vibrate", "push"]) –

    Defines the strategy on how to compute the impact force:

    • vibrate

    The vibration strategy calculates the impact force based on a vibration installation method.

    • push

    The push strategy calculates the impact force based on a push installation method.

  • installation_level_offset (float) – Installation level of the sheet pile [m w.r.t REF]

  • groundwater_level_offset (float, optional) – Groundwater level for all cpts. if None groundwater level of cpt is used. if no groundwater level is set in the cpt we will take one meter below surface level [m w.r.t REF]

  • zeta (float = 0.6) – verknedingsfactor [-], used in the push drive strategy based on CUR 166 6th edition.

Returns:

payload

Return type:

dict

pyvibracore.input.impact_force_properties.create_multi_cpt_impact_force_report_payload(multi_cpt_payload, project_name, project_id, author)[source]

Creates a dictionary with the payload content for the VibraCore endpoint “/impact-force/report”

This dictionary can be passed directly to nuclei.client.call_endpoint().

Parameters:
  • multi_cpt_payload (dict) – The result of a call to create_multi_cpt_impact_force_payload()

  • project_name (str) – The name of the project.

  • project_id (str) – The identifier (code) of the project.

  • author (str) – The author of the report.

Returns:

payload

Return type:

dict

pyvibracore.input.impact_force_properties.create_single_cpt_impact_force_payload(multi_cpt_payload, name)[source]

Creates a dictionary with the payload content for the VibraCore endpoint “/impact-force/calculation/single”

This dictionary can be passed directly to nuclei.client.call_endpoint().

Parameters:
  • multi_cpt_payload (dict) – The result of a call to create_multi_cpt_impact_force_payload()

  • name (str) – CPT name

Returns:

payload

Return type:

dict

Result

class pyvibracore.results.impact_force_result.MultiCalculationData(gdf)[source]

Dataclass that holds the information from /impact-force/multi

gdf
Type:

gpd.GeoDataFrame

__init__(gdf)
classmethod from_api_response(response_dict)[source]

Stores the response of the VibraCore endpoint

Parameters:

response_dict (dict) – The resulting response of a call to /impact-force/multi

Return type:

MultiCalculationData

plot(figsize=(10.0, 12.0), settings=None, **kwargs)[source]

Plots the CPT and soil table data.

Parameters:
  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • settings (dict | None) –

    Plot settings used in plot: default settings are:

    {
        "hue": "max",
        "title": "Maximale slagkracht [kN]",
        "xlabel": "X-coördinaat",
        "ylabel": "Y-coördinaat"
    }
    

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Returns:

The matplotlib Figure

Return type:

fig

class pyvibracore.results.impact_force_result.SingleCalculationData(table, installationLevel, maximumForce, pointForce)[source]

Object that contains the impact force related data.

Attributes:

table: ImpactForceTable

table object

installationLevel: float

installation level [m w.r.t. Reference]

maximumForce: float

total resistance [kN]

pointForce: float

resistance at the base [kN]

__init__(table, installationLevel, maximumForce, pointForce)
classmethod from_api_response(response_dict)[source]

Stores the response of the VibraCore endpoint

Parameters:

response_dict (dict) – The resulting response of a call to impact-force/calculation/single

Return type:

SingleCalculationData

plot(figsize=(10.0, 12.0), **kwargs)[source]

Plots the resistance data.

Parameters:
  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Returns:

The matplotlib Figure

Return type:

fig

SBR-A

Input

pyvibracore.input.vibration_properties.get_buildings_geodataframe(west, south, east, north, category='two', monumental=False, structural_condition='normal', vibration_sensitive=False, thickness=8.0, foundation_element='shallow foundation', material_floor='concrete', feature='bag:pand', pagesize='1000')[source]

Get a GeoDataFrame with the default values for CUR166 and PrePal methode.

Parameters:
  • west (float) – west coordinate in rd new (EPSG:28992)

  • south (float) – south coordinate in rd new (EPSG:28992)

  • east (float) – east coordinate in rd new (EPSG:28992)

  • north (float) – north coordinate in rd new (EPSG:28992)

  • category (Literal['one', 'two']) – Building category based on the SBR A table 10.1.

  • monumental (bool) – Has the building structure a monumental status. Based on the SBR A table 10.3.

  • structural_condition (Literal['sensitive', 'normal']) – Based on the SBR A table 10.2.

  • vibration_sensitive (bool) – Has the building structure a vibration sensitive foundation. Based on the SBR A chapter 10.2.5.

  • thickness (float) – Layer thickness settlement-sensitive layer [m]

  • foundation_element (Literal['shallow foundation', 'concrete piles', 'timber piles', 'steel piles']) – Based on CUR 166 3rd edition table 5.19

  • material_floor (Literal['concrete', 'wood']) – Based on CUR 166 3rd edition table 5.20

  • feature (Literal['bag:pand', 'bag:ligplaats', 'bag:verblijfsobject', 'bag:woonplaats', 'bag:standplaats']) – default is bag:pand item in the BAG, see https://www.nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/1c0dcc64-91aa-4d44-a9e3-54355556f5e7

  • pagesize (Literal['10', '20', '50', '100', '1000']) – Results per page

Returns:

gdf

Return type:

gpd.GeoDataFrame

pyvibracore.input.vibration_properties.get_normative_building(buildings, location, category)[source]

Get the name of the closest building

Parameters:
  • buildings (gpd.GeoDataFrame) – GeoDataFrame that holds the building information

  • location (Polygon | LineString | Point) – Geometry of the source location

  • category (Literal['one', 'two']) – building category based on the SBR A table 10.1.

Returns:

name

Return type:

str

pyvibracore.input.vibration_properties.create_single_payload(multi_vibration_payload, name)[source]

Create payload for VibraCore call cur166/validation/single or prepal/validation/single

Parameters:
  • multi_vibration_payload (dict) – result from create_cur166_payload or create_prepal_payload

  • name (str) – building name

Returns:

payload

Return type:

dict

pyvibracore.input.vibration_properties.create_vibration_report_payload(multi_vibration_payload, project_name, project_id, author)[source]

Creates a dictionary with the payload content for the VibraCore endpoint “/cur166/report” or “/prepal/report”

This dictionary can be passed directly to nuclei.client.call_endpoint().

Parameters:
  • vibration_payload – The result of a call to create_cur166_payload() or create_prepal_payload()

  • project_name (str) – The name of the project.

  • project_id (str) – The identifier (code) of the project.

  • author (str) – The author of the report.

Returns:

payload

Return type:

dict

PerPal

pyvibracore.input.vibration_properties.create_prepal_payload(buildings, location, pile_shape, pile_size, cone_resistance, reduction=0.0, unit_weight=20, elastic_modulus_factor=15, poisson_ratio=0.2, frequency=20.0, vibration_type='continuous', frequency_vibration_sensitive=40.0, measurement_type='extensive', hysteretic_damping_barkan=-0.05)[source]

Create payload for VibraCore call cur166/validation/multi

Parameters:
  • buildings (gpd.GeoDataFrame) –

    GeoDataFrame that holds teh building information. Must have the following columns:
    • buildingDepth: The minimum building depth [m]

    • buildingDepthVibrationSensitive: The minimum building depth [m]

    • category Based on the SBR A table 10.1.

    • monumental Has the building structure a monumental status. Based on the SBR A table 10.3.

    • structuralCondition Based on the SBR A table 10.2.

    • thickness Layer thickness settlement-sensitive layer [m]

    • vibrationSensitive Has the building structure a vibration sensitive foundation. Based on the SBR A chapter 10.2.5.

  • location (Polygon | LineString | Point) – Location of the source

  • poisson_ratio (float) – Poisson’s ratio of the soil [-]

  • elastic_modulus_factor (float) – Elastic modulus factor of the soil [-].

  • unit_weight (float) – Volume weight of the soil [kN/m^3]

  • cone_resistance (float) – Cone resistance [MPa]

  • reduction (float) – Reduction of the cone resistance [%]

  • pile_size (float) – Size of the pile [m]

  • pile_shape (Literal['square', 'round']) – Shape of the pile.

  • frequency (float) – The dominate frequency [Hz]

  • vibration_type (Literal['short-term', 'repeated-short-term', 'continuous']) – Based on the SBR A table 10.4.

  • frequency_vibration_sensitive (float) – The dominate frequency for vibration sensitive building [Hz].

  • measurement_type (Literal['indicative', 'limited', 'extensive']) – Type of measurement based on the SBR A table 9.2.

  • hysteretic_damping_barkan (float) – hysteretic damping barkan [m^-1]

Returns:

payload

Return type:

dict

Raises:

KeyError: – Missing column names in GeoDataFrame

CUR166

pyvibracore.input.vibration_properties.create_cur166_payload(buildings, location, force, reduction=0, installation_type='vibrate', building_part='floor', safety_factor=0.05, vibration_direction='vertical', frequency=30.0, vibration_type='continuous', frequency_vibration_sensitive=40.0, reference_location='Amsterdam', measurement_type='extensive', methode_safety_factor='exact')[source]

Create payload for VibraCore call cur166/validation/multi

Parameters:
  • buildings (gpd.GeoDataFrame) –

    GeoDataFrame that holds teh building information. Must have the following columns:
    • foundationElement Based on CUR 166 3rd edition table 5.19

    • material Based on CUR 166 3rd edition table 5.20

    • category Based on the SBR A table 10.1.

    • monumental Has the building structure a monumental status. Based on the SBR A table 10.3.

    • structuralCondition Based on the SBR A table 10.2.

    • thickness Layer thickness settlement-sensitive layer [m]

    • vibrationSensitive Has the building structure a vibration sensitive foundation. Based on the SBR A chapter 10.2.5.

  • location (Polygon | LineString | Point) – Location of the source

  • force (float) – Impact force of the pile [kN]

  • reduction (float) – Reduction of impact [%]

  • installation_type (Literal['vibrate', 'driving']) – Based on CUR 166 3rd edition table 5.20 or 5.21

  • building_part (Literal['floor', 'wall']) – Based on CUR 166 3rd edition table 5.20 or 5.21

  • safety_factor (float) – Based on CUR 166 3rd edition table 5.22

  • vibration_direction (Literal['vertical', 'horizontal']) – Based on CUR 166 3rd edition table 5.22

  • frequency (float) – The dominate frequency [Hz]

  • vibration_type (Literal['short-term', 'repeated-short-term', 'continuous']) – Based on the SBR A table 10.4.

  • frequency_vibration_sensitive (float) – The dominate frequency for vibration sensitive building [Hz]. If not provided the frequency of 20 Hz is used for PrePal and 40 for CUR 166 3rd edition high frequency vibration calculation.

  • reference_location (Literal['Amsterdam', 'Maasvlakte', 'Rotterdam', 'Groningen', 'Den Haag', 'Tiel', 'Eindhoven']) – Based on CUR 166-1997 table 5.16 and 5.17

  • measurement_type (Literal['indicative', 'limited', 'extensive']) – Type of measurement based on the SBR A table 9.2.

  • methode_safety_factor (Literal['CUR', 'exact']) – Parameter that indicated how the safety factor is calculated. Find more info about the exact method here -> https://issuu.com/uitgeverijeducom/docs/geo_okt2014_totaal_v4_klein/36

Returns:

payload

Return type:

dict

Raises:
  • ValueError: – No reference values found for reference location

  • KeyError: – Missing column names in GeoDataFrame

Result

class pyvibracore.results.vibration_result.VibrationResults(gdf)[source]

Dataclass that holds the information from /cur166/validation/multi or /prepal/validation/multi

gdf
Type:

gpd.GeoDataFrame

__init__(gdf)
classmethod from_api_response(response_dict)[source]

Stores the response of the VibraCore endpoint

Parameters:

response_dict (dict) – The resulting response of a call to /cur166/validation/multi or /prepal/validation/multi

Return type:

VibrationResults

map(source_location, title='Legend:', figsize=(10.0, 12.0), settings=None, **kwargs)[source]

Create map plot of the results

Parameters:
  • source_location (Point | LineString | Polygon) – location of the vibration source

  • title (str) – Legend title

  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • settings (dict | None) –

    Plot settings used in plot: default settings are:

    {
        "source_location": {"label": "Trillingsbron", "color": "black"},
        "insufficient_cat1": {
            "label": "Voldoet Niet - Cat.1",
            "color": "orange",
        },
        "insufficient_cat2": {"label": "Voldoet Niet - Cat.2", "color": "red"},
        "sufficient": {"label": "Voldoet", "color": "green"},
    }
    

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Return type:

Figure

pyvibracore.results.vibration_result.map_payload(gdf, source_location, title='Legend:', figsize=(10.0, 12.0), settings=None, **kwargs)[source]

Create map of the input building settings.

Parameters:
  • gdf (gpd.GeoDataFrame) – GeoDataFrame of the input buildings

  • source_location (Point | LineString | Polygon) – location of the vibration source

  • title (str) – Legend title

  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • settings (dict | None) –

    Plot settings used in plot: default settings are:

    {
        "source_location": {"label": "Trillingsbron", "color": "black"},
        "sensitive_cat1": {
            "label": "Monumentaal/ gevoelig - Cat.1",
            "color": "blue",
        },
        "sensitive_cat2": {
            "label": "Monumentaal/ gevoelig - Cat.2",
            "color": "cyan",
        },
        "normal_cat1": {"label": "Normaal - Cat.1", "color": "orange"},
        "normal_cat2": {"label": "Normaal - Cat.2", "color": "olive"},
    }
    

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Return type:

Figure

pyvibracore.results.vibration_result.plot_reduction(response_dict, sensitive=False, figsize=(8, 8), **kwargs)[source]

PLot single vibration prediction reduction plot

Parameters:
  • response_dict (dict) – response of the single prepal or cur166 endpoint.

  • sensitive (bool) – Default is False Flag that indicates if vibration sensitive results are included

  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Return type:

Figure

Sound

pyvibracore.results.sound_result.get_normative_building(buildings, location)[source]

Get the name of the closest building with one of the follwing category:

  • “woonfunctie”,

  • “gezondheidsfunctie”,

  • “onderwijsfunctie”

Parameters:
  • buildings (gpd.GeoDataFrame) – GeoDataFrame that holds the building information

  • location (Polygon | LineString | Point) – Geometry of the source location

Returns:

name

Return type:

str

pyvibracore.results.sound_result.map_sound(buildings, source_location, building_name, power, k2, period, title='Legend:', figsize=(10.0, 12.0), settings=None, **kwargs)[source]

Create map of the input building settings.

Parameters:
  • buildings (gpd.GeoDataFrame) – GeoDataFrame of the input buildings

  • source_location (Point | LineString | Polygon) – location of the vibration source

  • building_name (str) – name of the building

  • power (float) – source power [dB]

  • k2 (float) – Correction term [dB]

  • period (float) – Operating period of the building code [hours]

  • title (str) – Legend title

  • figsize (Tuple[float, float]) – Size of the activate figure, as the plt.figure() argument.

  • settings (dict | None) –

    Plot settings used in plot: default settings are:

    {
        "source_location": {"label": "Trillingsbron", "color": "blue"},
        "levels": [
            {
                "label": ">80 db [0 dagen]",
                "level": 80,
                "color": "darkred",
            },
            {
                "label": ">75 db [5 dagen]",
                "level": 75,
                "color": "red",
            },
            {
                "label": ">70 db [15 dagen]",
                "level": 70,
                "color": "orange",
            },
            {
                "label": ">65 db [30 dagen]",
                "level": 65,
                "color": "darkgreen",
            },
            {
                "label": ">60 db [50 dagen]",
                "level": 60,
                "color": "green",
            },
        ],
    }
    

  • **kwargs (Any) – All additional keyword arguments are passed to the pyplot.subplots() call.

Return type:

Figure