On a recent project involving the removal of a platform in the North Sea, the mechanical properties of the pile-sleeve grout was required. The existing grout piping in the vicinity of the pile and sleeves was removed by an ROV and brought to the surface. Grout testing specimens were cut and the compressive strength and the tensile strength measured. The tensile strength was indirectly measured using the Brazil Test.
The following is the measured data. This is a nice demonstration of the pandas package.
import math
import numpy as np
data = [
['B1 1P','UCT 651',97.219999999999999,11.34,85.719999999999999,6.4500000000000002],
['B1 1P','UCT 652',84.75,11.34,74.730000000000004,5.4199999999999999],
['B1 1P','UCT 653',89.900000000000006,11.34,79.280000000000001,6.4400000000000004],
['B1 1P','UCT 654',92.75,11.34,81.790000000000006,8.3599999999999994],
['B1 2P','UCT 655',75.629999999999995,11.34,66.689999999999998,5.5599999999999996],
['B1 2P','UCT 656',102.67,11.34,90.540000000000006,6.5800000000000001],
['B1 2P','UCT 657',85.5,11.34,75.400000000000006,6.6500000000000004],
['B3 1P','UCT 658',43.450000000000003,11.34,38.32,5.29],
['B3 1P','UCT 659',60.229999999999997,11.34,53.109999999999999,4.9299999999999997],
['B3 1P','UCT 660',101.47,11.34,89.480000000000004,6.9800000000000004],
['B1 3P','UCT 661',70.890000000000001,11.34,62.509999999999998,3.8799999999999999],
['B1 3P','UCT 662',33.219999999999999,11.34,29.289999999999999,4.9299999999999997],
['B1 3P','UCT 663',65.200000000000003,11.34,57.5,5.9199999999999999],
['B1 4P','UCT 664',76.879999999999995,11.34,67.799999999999997,6.3499999999999996],
['B1 4P','UCT 665',58.530000000000001,11.34,51.609999999999999,3.4700000000000002],
['B1 4P','UCT 666',48.030000000000001,11.34,42.350000000000001,4.1699999999999999],
['B3 2P','UCT 667',121.0,11.34,106.7,7.6399999999999997],
['B3 2P','UCT 668',112.0,11.34,98.769999999999996,8.7300000000000004],
['B3 2P','UCT 669',99.170000000000002,11.34,87.450000000000003,6.6799999999999997],
['B3 3P','UCT 670',113.55,11.34,100.13,7.4199999999999999],
['B3 3P','UCT 671',82.459999999999994,11.34,72.719999999999999,5.8899999999999997],
['B3 3P','UCT 672',95.159999999999997,11.34,83.920000000000002,6.6299999999999999],
['B3 4P','UCT 673',101.72,11.34,89.700000000000003,5.0800000000000001],
['B3 4P','UCT 674',118.95999999999999,11.34,104.90000000000001,7.9000000000000004],
['B3 4P','UCT 675',83.219999999999999,11.34,73.390000000000001,5.1399999999999997],
['D3 1P','UCT 676',109.65000000000001,11.34,96.689999999999998,6.4400000000000004],
['D3 1P','UCT 677',117.67,11.34,103.77,7.4900000000000002],
['D3 1P','UCT 678',106.47,11.34,93.890000000000001,7.54],
['D3 2P','UCT 679',96.769999999999996,11.34,85.340000000000003,7.2699999999999996],
['D3 2P','UCT 680',43.060000000000002,11.34,37.969999999999999,4.5700000000000003],
['D3 2P','UCT 681',58.75,11.34,51.810000000000002,6.4100000000000001],
['D3 3P','UCT 682',82.219999999999999,11.34,72.5,5.9699999999999998],
['D3 3P','UCT 683',75.129999999999995,11.34,66.25,4.96],
['D3 4P','UCT 684',38.740000000000002,11.34,34.159999999999997,5.54],
['D3 4P','UCT 685',50.780000000000001,11.34,44.780000000000001,5.4500000000000002],
['D1 1P','UCT 686',41.799999999999997,11.34,36.859999999999999,7.2599999999999998],
['D1 1P','UCT 687',55.259999999999998,11.34,48.729999999999997,4.2400000000000002],
['D1 2P','UCT 688',113.69,11.34,100.26000000000001,6.2300000000000004],
['D1 2P','UCT 689',84.200000000000003,11.34,74.25,4.9500000000000002],
['D1 3P','UCT 690',96.510000000000005,11.34,85.109999999999999,5.96],
['D1 3P','UCT 691',108.89,11.34,96.019999999999996,6.9199999999999999],
['D1 4P','UCT 692',103.48999999999999,11.34,91.260000000000005,6.5800000000000001],
['D1 4P','UCT 693',125.23,11.34,110.43000000000001,8.2300000000000004],
['TP A1 1P','UCT 694',133.22,11.34,117.48,8.1500000000000004],
['TP A1 1P','UCT 695',130.30000000000001,11.34,114.90000000000001,8.4100000000000001],
['TP A1 2P','UCT 696',123.53,11.34,108.93000000000001,8.5299999999999994],
['TP A1 2P','UCT 697',135.87,11.34,119.81,9.6699999999999999],
['TP A3 1P','UCT 698',84.900000000000006,11.34,74.870000000000005,4.9299999999999997],
['TP A3 1P','UCT 699',16.52,11.34,14.57,7.5899999999999999],
['TP A3 2P','UCT 700',72.170000000000002,11.34,63.640000000000001,5.0899999999999999],
['TP A3 2P','UCT 701',87.790000000000006,11.34,77.420000000000002,7.5099999999999998],
['TP B2 1P','UCT 702',35.159999999999997,11.34,31.010000000000002,6.6399999999999997],
['TP B2 1P','UCT 703',39.57,11.34,34.890000000000001,4.9900000000000002],
['TP B2 2P','UCT 704',28.530000000000001,11.34,25.16,3.1699999999999999],
['TP B2 2P','UCT 705',41.170000000000002,11.34,36.310000000000002,3.9399999999999999]]
import pandas as pd
df = pd.DataFrame(data = data, columns = ['Plugg',
'Test ID',
'Peak load (kN)',
'Initial area (cm2)',
'Uniaxial strength (MPa)',
'Strain at peak (mS)'])
pd.set_option('line_width', 120)
print(df)
Various statistical measures of data
df['Uniaxial strength (MPa)'].min()
df['Uniaxial strength (MPa)'].max()
df['Uniaxial strength (MPa)'].mean()
mean = df['Uniaxial strength (MPa)'].mean()
print("Mean of uniaxial strength: {0:0.2f}".format(mean))
std_dev = math.sqrt(df['Uniaxial strength (MPa)'].var())
print("Standard deviation of uniaxial strength: {0:0.2f}".format(std_dev))
print("Mean - 1.0*std_dev: {0:0.2f}".format(mean-std_dev))
df['Uniaxial strength (MPa)'].var()
Locations from which the test samples were cut
print df['Plugg']
Variance of B1 sample data
criterion = df['Plugg'].map(lambda x: x.startswith('B1'))
df[criterion].var()
Variance of B3 sample data
criterion = df['Plugg'].map(lambda x: x.startswith('B3'))
df[criterion].var()
Variance of D3 sample data
criterion = df['Plugg'].map(lambda x: x.startswith('D3'))
df[criterion].var()
Variance of D1 sample data
criterion = df['Plugg'].map(lambda x: x.startswith('D1'))
df[criterion].var()
Variance of TP sample data
criterion = df['Plugg'].map(lambda x: x.startswith('TP'))
df[criterion].var()
from pandas.tools.plotting import bootstrap_plot
Histogram of uniaxial strength
count,division = np.histogram(df['Uniaxial strength (MPa)'])
print('count: {0} division: {1}'.format(count, division))
df['Uniaxial strength (MPa)'].hist()
plt.xlabel(r"$f^\prime_c$")
plt.ylabel("frequency")
plot()
Bootstrap plot (see http://www.itl.nist.gov/div898/handbook/eda/section3/bootplot.htm)
bootstrap_plot(df['Uniaxial strength (MPa)'], size=10, samples=40, color='grey')
plot()
Plot of uniaxial strength color coded by sample location with plots of \(\mu\), \(\mu + \sigma\), and \(\mu - \sigma\)
color_map = dict([(item,i) for i, item in enumerate(set(df['Plugg']))])
color_list = [color_map[sample] for sample in df['Plugg']]
plt.plot([0,60],[mean,mean],'r--')
plt.plot([0,60],[mean-std_dev,mean-std_dev],'b--')
plt.plot([0,60],[mean+std_dev,mean+std_dev],'b--')
plt.scatter(range(len(df)),list(df['Uniaxial strength (MPa)']),c=color_list)
x1,x2,y1,y2 = plt.axis()
plt.xlim((0,60))
plt.ylabel(r"$f^\prime_c$")
plot()
Plot of uniaxial strength color coded byfirst letter of sample location
color_map = dict([(item[0],i) for i, item in enumerate(set(df['Plugg']))])
color_list = [color_map[sample[0]] for sample in df['Plugg']]
plt.scatter(range(len(df)),list(df['Uniaxial strength (MPa)']),c=color_list)
plt.ylabel(r"$f^\prime_c$")
plot()