pavement_condition_index 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +100 -0
- data/Rakefile +7 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/pavement_condition_index/cdv_iteration.rb +30 -0
- data/lib/pavement_condition_index/core_ext/numeric.rb +5 -0
- data/lib/pavement_condition_index/distress_group.rb +37 -0
- data/lib/pavement_condition_index/lookups/calculated_corrected_deduct_coefficients.rb +50 -0
- data/lib/pavement_condition_index/lookups/calculated_deduct_coefficients.rb +568 -0
- data/lib/pavement_condition_index/lookups/corrected_deduct_values.rb +23 -0
- data/lib/pavement_condition_index/lookups/deduct_values.rb +27 -0
- data/lib/pavement_condition_index/lookups/observed_corrected_deduct_values.rb +65 -0
- data/lib/pavement_condition_index/lookups/observed_deduct_values.rb +446 -0
- data/lib/pavement_condition_index/pci.rb +42 -0
- data/lib/pavement_condition_index/sample_unit_condition_survey/asphalt_survey.rb +15 -0
- data/lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb +71 -0
- data/lib/pavement_condition_index/sample_unit_condition_survey/concrete_survey.rb +15 -0
- data/lib/pavement_condition_index/section_condition_survey.rb +51 -0
- data/lib/pavement_condition_index/version.rb +3 -0
- data/lib/pavement_condition_index.rb +23 -0
- data/lib/tasks/regression.rake +121 -0
- data/pavement_condition_index.gemspec +24 -0
- metadata +114 -0
@@ -0,0 +1,568 @@
|
|
1
|
+
# generate this whole file by running the following command:
|
2
|
+
# rake regression:generate_calculated_deduct_coefficients_file > lib/pavement_condition_index/lookups/calculated_deduct_coefficients.rb
|
3
|
+
|
4
|
+
module PavementConditionIndex
|
5
|
+
module Lookups
|
6
|
+
class CalculatedDeductCoefficients
|
7
|
+
|
8
|
+
# Output of `rake regression:generate_deduct_coefficients`
|
9
|
+
COEFFICIENTS =
|
10
|
+
{:asphalt=>
|
11
|
+
{:alligator_cracking=>
|
12
|
+
{:valid_min=>0.1,
|
13
|
+
:valid_max=>100.0,
|
14
|
+
:chart_type=>:log,
|
15
|
+
:coefficients=>
|
16
|
+
{:low=>[11.81030706543641, 14.716555458137659, 5.254969146645571],
|
17
|
+
:medium=>[21.641468980402742, 19.850106754347717, 4.129291159183641],
|
18
|
+
:high=>
|
19
|
+
[30.698348853111792,
|
20
|
+
26.819142548270502,
|
21
|
+
5.653897800825902,
|
22
|
+
-2.0562458038186975]}},
|
23
|
+
:bleeding=>
|
24
|
+
{:valid_min=>0.1,
|
25
|
+
:valid_max=>100.0,
|
26
|
+
:chart_type=>:log,
|
27
|
+
:coefficients=>
|
28
|
+
{:low=>
|
29
|
+
[0.322105531453021,
|
30
|
+
-0.174525478036764,
|
31
|
+
1.504981533364469,
|
32
|
+
1.7947851128512355],
|
33
|
+
:medium=>
|
34
|
+
[3.3241213258799234,
|
35
|
+
4.4914393599717854,
|
36
|
+
3.3913394399693146,
|
37
|
+
1.7791635264801178],
|
38
|
+
:high=>
|
39
|
+
[5.739963736596728,
|
40
|
+
7.319479502282341,
|
41
|
+
7.086578195546586,
|
42
|
+
3.075398183100246]}},
|
43
|
+
:block_cracking=>
|
44
|
+
{:valid_min=>0.1,
|
45
|
+
:valid_max=>100.0,
|
46
|
+
:chart_type=>:log,
|
47
|
+
:coefficients=>
|
48
|
+
{:low=>[-0.24506618985589634, 3.5865225127793514, 4.864809264954378],
|
49
|
+
:medium=>[2.0044867717721253, 7.656841349922775, 6.197308536458376],
|
50
|
+
:high=>[6.054836363905478, 14.23908143225682, 9.26078972426816]}},
|
51
|
+
:bumps_and_sags=>
|
52
|
+
{:valid_min=>0.1,
|
53
|
+
:valid_max=>10.0,
|
54
|
+
:chart_type=>:log,
|
55
|
+
:coefficients=>
|
56
|
+
{:low=>
|
57
|
+
[7.432162927047138,
|
58
|
+
13.039704473951343,
|
59
|
+
12.681378093050206,
|
60
|
+
5.724727901683913],
|
61
|
+
:medium=>
|
62
|
+
[24.0510616920146,
|
63
|
+
24.990801854094467,
|
64
|
+
17.775330890078287,
|
65
|
+
10.801916366371941],
|
66
|
+
:high=>[53.60256635094115, 38.448582442650476, 6.043250542072165]}},
|
67
|
+
:corrugation=>
|
68
|
+
{:valid_min=>0.1,
|
69
|
+
:valid_max=>100.0,
|
70
|
+
:chart_type=>:log,
|
71
|
+
:coefficients=>
|
72
|
+
{:low=>[2.079645270606063, 6.171432244797827, 6.315591279321682],
|
73
|
+
:medium=>[16.00629930412681, 17.42721794385406, 5.877793175640937],
|
74
|
+
:high=>[33.3926340071105, 25.16870941731629, 2.8124490453717783]}},
|
75
|
+
:depression=>
|
76
|
+
{:valid_min=>0.1,
|
77
|
+
:valid_max=>100.0,
|
78
|
+
:chart_type=>:log,
|
79
|
+
:coefficients=>
|
80
|
+
{:low=>
|
81
|
+
[3.289661412212115,
|
82
|
+
0.6252836980242593,
|
83
|
+
10.964451357494776,
|
84
|
+
6.985101871322738,
|
85
|
+
-3.5060456381316634],
|
86
|
+
:medium=>
|
87
|
+
[7.614400618717246,
|
88
|
+
3.769091495110122,
|
89
|
+
15.559272647446328,
|
90
|
+
7.4759184063961435,
|
91
|
+
-4.844857281255507],
|
92
|
+
:high=>
|
93
|
+
[15.948684201140967,
|
94
|
+
9.394030228694518,
|
95
|
+
15.510038701741792,
|
96
|
+
6.024061067798476,
|
97
|
+
-4.422031207577385]}},
|
98
|
+
:edge_cracking=>
|
99
|
+
{:valid_min=>0.1,
|
100
|
+
:valid_max=>20.0,
|
101
|
+
:chart_type=>:log,
|
102
|
+
:coefficients=>
|
103
|
+
{:low=>[3.211409886900335, 4.962171357579026, 2.4025247047022504],
|
104
|
+
:medium=>[9.38292671744566, 9.608124129013511, 4.3396040463768015],
|
105
|
+
:high=>[15.664668848033116, 15.377839697997818, 7.293639747414968]}},
|
106
|
+
:joint_reflection_cracking=>
|
107
|
+
{:valid_min=>0.1,
|
108
|
+
:valid_max=>30.0,
|
109
|
+
:chart_type=>:log,
|
110
|
+
:coefficients=>
|
111
|
+
{:low=>[2.599637864741199, 7.548320214895041, 6.035620574755107],
|
112
|
+
:medium=>
|
113
|
+
[7.381829148226155,
|
114
|
+
13.409513965059839,
|
115
|
+
14.487037415701224,
|
116
|
+
2.604980254156252,
|
117
|
+
-4.850878879939305],
|
118
|
+
:high=>
|
119
|
+
[15.708313735606989,
|
120
|
+
21.751135896400438,
|
121
|
+
22.35224402708013,
|
122
|
+
12.321810537440612,
|
123
|
+
-6.404620335343928,
|
124
|
+
-4.635950974262599]}},
|
125
|
+
:lane_shoulder_drop_off=>
|
126
|
+
{:valid_min=>0.5,
|
127
|
+
:valid_max=>15.0,
|
128
|
+
:chart_type=>:log,
|
129
|
+
:coefficients=>
|
130
|
+
{:low=>[1.7330434661503789, 2.2479876898054147, 8.492414136167602],
|
131
|
+
:medium=>[3.1018055744999637, 0.9748217115112947, 15.880585262031168],
|
132
|
+
:high=>[5.588313880268777, 5.140183474398842, 22.853461108687]}},
|
133
|
+
:longitudinal_transverse_cracking=>
|
134
|
+
{:valid_min=>0.1,
|
135
|
+
:valid_max=>30.0,
|
136
|
+
:chart_type=>:log,
|
137
|
+
:coefficients=>
|
138
|
+
{:low=>[2.1831950830355784, 8.216281290902756, 6.454535216997481],
|
139
|
+
:medium=>[8.67907975505781, 15.31510859022643, 6.266899017617167],
|
140
|
+
:high=>
|
141
|
+
[17.723256518500968,
|
142
|
+
24.494224894065376,
|
143
|
+
19.119102009732657,
|
144
|
+
4.182799471044728,
|
145
|
+
-4.54528270804704]}},
|
146
|
+
:patching_and_utility_cut_patching=>
|
147
|
+
{:valid_min=>0.1,
|
148
|
+
:valid_max=>50.0,
|
149
|
+
:chart_type=>:log,
|
150
|
+
:coefficients=>
|
151
|
+
{:low=>[1.8384973325128793, 7.632382033226324, 6.507032451977727],
|
152
|
+
:medium=>[8.929258996532853, 14.056348057074333, 8.632199015982204],
|
153
|
+
:high=>
|
154
|
+
[18.05379050800971,
|
155
|
+
18.570848940912526,
|
156
|
+
15.195881745184764,
|
157
|
+
4.634730303593308,
|
158
|
+
-4.282412070934171]}},
|
159
|
+
:polished_aggregate=>
|
160
|
+
{:valid_min=>0.1,
|
161
|
+
:valid_max=>100.0,
|
162
|
+
:chart_type=>:log,
|
163
|
+
:coefficients=>
|
164
|
+
{:low=>
|
165
|
+
[0.16789523734739448,
|
166
|
+
-0.1540196727901293,
|
167
|
+
1.3119789947979732,
|
168
|
+
1.8893029190226103],
|
169
|
+
:medium=>
|
170
|
+
[0.16789523734739448,
|
171
|
+
-0.1540196727901293,
|
172
|
+
1.3119789947979732,
|
173
|
+
1.8893029190226103],
|
174
|
+
:high=>
|
175
|
+
[0.16789523734739448,
|
176
|
+
-0.1540196727901293,
|
177
|
+
1.3119789947979732,
|
178
|
+
1.8893029190226103]}},
|
179
|
+
:potholes=>
|
180
|
+
{:valid_min=>0.01,
|
181
|
+
:valid_max=>10.0,
|
182
|
+
:chart_type=>:log,
|
183
|
+
:coefficients=>
|
184
|
+
{:low=>
|
185
|
+
[58.574736886209024,
|
186
|
+
41.33443795417745,
|
187
|
+
2.307796828048822,
|
188
|
+
-2.1009955078236295],
|
189
|
+
:medium=>
|
190
|
+
[91.64010353001909,
|
191
|
+
65.40209466565399,
|
192
|
+
5.262639941411422,
|
193
|
+
-3.0315939096971647],
|
194
|
+
:high=>
|
195
|
+
[109.3323221736685,
|
196
|
+
56.29275767507379,
|
197
|
+
-0.3934988005267144,
|
198
|
+
-3.0772594822340906]}},
|
199
|
+
:railroad_crossing=>
|
200
|
+
{:valid_min=>1.0,
|
201
|
+
:valid_max=>40.0,
|
202
|
+
:chart_type=>:log,
|
203
|
+
:coefficients=>
|
204
|
+
{:low=>[0.5029257285845483, 5.749904110236876, 3.9821246564884927],
|
205
|
+
:medium=>
|
206
|
+
[5.254000147362391,
|
207
|
+
11.422544085878982,
|
208
|
+
37.11519773645627,
|
209
|
+
-16.910805393020667],
|
210
|
+
:high=>
|
211
|
+
[19.340445737998966,
|
212
|
+
18.23862361469355,
|
213
|
+
53.47893872454435,
|
214
|
+
-25.833753655092053]}},
|
215
|
+
:raveling=>
|
216
|
+
{:valid_min=>0.1,
|
217
|
+
:valid_max=>100.0,
|
218
|
+
:chart_type=>:log,
|
219
|
+
:coefficients=>
|
220
|
+
{:low=>[1.3364599508023929, 2.5381741896122354, 2.2521180739800015],
|
221
|
+
:medium=>
|
222
|
+
[8.547489838241672,
|
223
|
+
5.50999488268751,
|
224
|
+
2.8976928296955693,
|
225
|
+
1.6574499250743635],
|
226
|
+
:high=>
|
227
|
+
[15.287212880590612,
|
228
|
+
12.713212203226831,
|
229
|
+
11.470876324575428,
|
230
|
+
5.038585870016526,
|
231
|
+
-3.053732169374685]}},
|
232
|
+
:rutting=>
|
233
|
+
{:valid_min=>0.1,
|
234
|
+
:valid_max=>100.0,
|
235
|
+
:chart_type=>:log,
|
236
|
+
:coefficients=>
|
237
|
+
{:low=>
|
238
|
+
[7.166892989037484,
|
239
|
+
15.480212329682374,
|
240
|
+
7.204541988003889,
|
241
|
+
-2.056356612335577],
|
242
|
+
:medium=>
|
243
|
+
[17.07939650585985,
|
244
|
+
23.042120387468632,
|
245
|
+
7.267187817332259,
|
246
|
+
-2.992255156045317],
|
247
|
+
:high=>
|
248
|
+
[26.55168225206831,
|
249
|
+
25.25096737467123,
|
250
|
+
9.616695504985966,
|
251
|
+
2.709242740203141,
|
252
|
+
-2.9515698599184823]}},
|
253
|
+
:shoving=>
|
254
|
+
{:valid_min=>0.1,
|
255
|
+
:valid_max=>50.0,
|
256
|
+
:chart_type=>:log,
|
257
|
+
:coefficients=>
|
258
|
+
{:low=>[4.413031420403843, 10.016571238629226, 5.535372489599174],
|
259
|
+
:medium=>[9.294794348392088, 16.13985140155734, 10.13135831372187],
|
260
|
+
:high=>
|
261
|
+
[17.76171628163815,
|
262
|
+
19.396982653439373,
|
263
|
+
15.785981300450224,
|
264
|
+
3.016185582467493,
|
265
|
+
-3.721051791249142]}},
|
266
|
+
:slippage_cracking=>
|
267
|
+
{:valid_min=>0.1,
|
268
|
+
:valid_max=>100.0,
|
269
|
+
:chart_type=>:log,
|
270
|
+
:coefficients=>
|
271
|
+
{:low=>
|
272
|
+
[4.248092940884805,
|
273
|
+
14.667313248550373,
|
274
|
+
9.293396804566436,
|
275
|
+
-2.1419610585945215],
|
276
|
+
:medium=>
|
277
|
+
[10.838179259718574,
|
278
|
+
20.247013730206078,
|
279
|
+
13.130140952344512,
|
280
|
+
-0.24505223183555103,
|
281
|
+
-2.039447457156605],
|
282
|
+
:high=>
|
283
|
+
[17.75416989366112,
|
284
|
+
32.470845743485654,
|
285
|
+
29.87775942697452,
|
286
|
+
-5.259819524132407,
|
287
|
+
-13.039225691175872,
|
288
|
+
4.346079607761759]}},
|
289
|
+
:swell=>
|
290
|
+
{:valid_min=>1.0,
|
291
|
+
:valid_max=>30.0,
|
292
|
+
:chart_type=>:log,
|
293
|
+
:coefficients=>
|
294
|
+
{:low=>[0.2776553410390519, 12.183535319307815],
|
295
|
+
:medium=>[9.7262404794108, 26.04919313918952],
|
296
|
+
:high=>[33.021164499056795, 9.27090451459351, 10.656396250845475]}},
|
297
|
+
:weathering=>
|
298
|
+
{:valid_min=>0.1,
|
299
|
+
:valid_max=>100.0,
|
300
|
+
:chart_type=>:log,
|
301
|
+
:coefficients=>
|
302
|
+
{:low=>[1.3364599508023929, 2.5381741896122354, 2.2521180739800015],
|
303
|
+
:medium=>
|
304
|
+
[8.547489838241672,
|
305
|
+
5.50999488268751,
|
306
|
+
2.8976928296955693,
|
307
|
+
1.6574499250743635],
|
308
|
+
:high=>
|
309
|
+
[15.287212880590612,
|
310
|
+
12.713212203226831,
|
311
|
+
11.470876324575428,
|
312
|
+
5.038585870016526,
|
313
|
+
-3.053732169374685]}}},
|
314
|
+
:concrete=>
|
315
|
+
{:blow_ups=>
|
316
|
+
{:valid_min=>0.0,
|
317
|
+
:valid_max=>100.0,
|
318
|
+
:chart_type=>:linear,
|
319
|
+
:coefficients=>
|
320
|
+
{:low=>
|
321
|
+
[-0.13356643356627984, 0.9327226107226047, -0.0049254079254079045],
|
322
|
+
:medium=>
|
323
|
+
[2.4678321678324604, 1.7452051282051162, -0.009509324009323961],
|
324
|
+
:high=>
|
325
|
+
[16.460695189802276,
|
326
|
+
6.6234309223033865,
|
327
|
+
-0.32266835566470364,
|
328
|
+
0.00886184309861393,
|
329
|
+
-0.00012927981986135247,
|
330
|
+
9.488216405626576e-07,
|
331
|
+
-2.75408495568297e-09]}},
|
332
|
+
:durability_cracking=>
|
333
|
+
{:valid_min=>0.0,
|
334
|
+
:valid_max=>100.0,
|
335
|
+
:chart_type=>:linear,
|
336
|
+
:coefficients=>
|
337
|
+
{:low=>[-0.4342657342656646, 0.4144662004661978, -0.0018228438228438133],
|
338
|
+
:medium=>
|
339
|
+
[1.162237762237912, 0.8913053613053554, -0.0047948717948717735],
|
340
|
+
:high=>
|
341
|
+
[1.078321678321716,
|
342
|
+
2.3633139083138457,
|
343
|
+
-0.030009906759907102,
|
344
|
+
0.00013358585858586812]}},
|
345
|
+
:corner_break=>
|
346
|
+
{:valid_min=>0.0,
|
347
|
+
:valid_max=>100.0,
|
348
|
+
:chart_type=>:linear,
|
349
|
+
:coefficients=>
|
350
|
+
{:low=>[-0.3293706293704677, 0.9791701631701566, -0.004722610722610701],
|
351
|
+
:medium=>
|
352
|
+
[-0.2783216783214355,
|
353
|
+
1.7891647241646425,
|
354
|
+
-0.018065268065267835,
|
355
|
+
6.592851592852108e-05],
|
356
|
+
:high=>
|
357
|
+
[1.288811188811378,
|
358
|
+
2.4348756798755913,
|
359
|
+
-0.027701631701631733,
|
360
|
+
0.00011231546231547056]}},
|
361
|
+
:faulting=>
|
362
|
+
{:valid_min=>0.0,
|
363
|
+
:valid_max=>100.0,
|
364
|
+
:chart_type=>:linear,
|
365
|
+
:coefficients=>
|
366
|
+
{:low=>
|
367
|
+
[-0.3461538461541296,
|
368
|
+
0.1409790209795434,
|
369
|
+
0.017863053613043127,
|
370
|
+
-0.00030944055944033804,
|
371
|
+
1.4743589743585815e-06],
|
372
|
+
:medium=>
|
373
|
+
[-0.41468531468475955,
|
374
|
+
0.8501670551669466,
|
375
|
+
0.00022144522144634804,
|
376
|
+
-3.360528360528539e-05],
|
377
|
+
:high=>
|
378
|
+
[0.3237762237764841, 1.5706270396270294, -0.007441724941724908]}},
|
379
|
+
:divided_slab=>
|
380
|
+
{:valid_min=>0.0,
|
381
|
+
:valid_max=>100.0,
|
382
|
+
:chart_type=>:linear,
|
383
|
+
:coefficients=>
|
384
|
+
{:low=>[0.05061547720434412, 1.0602363029053457, -0.005630494431710011],
|
385
|
+
:medium=>
|
386
|
+
[0.03647951619436718,
|
387
|
+
3.3746231782018343,
|
388
|
+
-0.1114761630583947,
|
389
|
+
0.0021410940640768225,
|
390
|
+
-1.957710432519595e-05,
|
391
|
+
6.694382078015655e-08],
|
392
|
+
:high=>
|
393
|
+
[0.46219912502630667,
|
394
|
+
3.7822323563200992,
|
395
|
+
-0.07844357814094624,
|
396
|
+
0.000796815874702947,
|
397
|
+
-2.9932729934080204e-06]}},
|
398
|
+
:joint_seal_damage=>
|
399
|
+
{:valid_min=>0.0,
|
400
|
+
:valid_max=>100.0,
|
401
|
+
:chart_type=>:linear,
|
402
|
+
:coefficients=>
|
403
|
+
{:low=>[1.9999999999999998, 1.734723475976807e-17],
|
404
|
+
:medium=>[3.9999999999999996, 3.469446951953614e-17],
|
405
|
+
:high=>[7.999999999999999, 6.938893903907228e-17]}},
|
406
|
+
:lane_shoulder_drop_off=>
|
407
|
+
{:valid_min=>0.0,
|
408
|
+
:valid_max=>100.0,
|
409
|
+
:chart_type=>:linear,
|
410
|
+
:coefficients=>
|
411
|
+
{:low=>[0.8045454545454546, 0.05318181818181822],
|
412
|
+
:medium=>[1.0020979020979717, 0.412799533799531, -0.002383449883449871],
|
413
|
+
:high=>
|
414
|
+
[1.5426573426574572, 0.6763379953379907, -0.003817016317016299]}},
|
415
|
+
:patching_small=>
|
416
|
+
{:valid_min=>0.0,
|
417
|
+
:valid_max=>100.0,
|
418
|
+
:chart_type=>:linear,
|
419
|
+
:coefficients=>
|
420
|
+
{:low=>[0.290909090909091, 0.04890909090909093],
|
421
|
+
:medium=>
|
422
|
+
[-0.9902097902097355, 0.3280745920745899, -0.0015571095571095491],
|
423
|
+
:high=>
|
424
|
+
[-0.0433566433565602, 0.5040722610722577, -0.002474358974358961]}},
|
425
|
+
:linear_cracking=>
|
426
|
+
{:valid_min=>0.0,
|
427
|
+
:valid_max=>100.0,
|
428
|
+
:chart_type=>:linear,
|
429
|
+
:coefficients=>
|
430
|
+
{:low=>[0.5398601398602301, 0.540675990675987, -0.003179487179487164],
|
431
|
+
:medium=>
|
432
|
+
[1.3741258741259887, 0.6791188811188766, -0.0031748251748251613],
|
433
|
+
:high=>
|
434
|
+
[0.42867132866409063,
|
435
|
+
2.1563908313932947,
|
436
|
+
-0.044027972028047216,
|
437
|
+
0.00047105672105791094,
|
438
|
+
-1.8181818181858345e-06]}},
|
439
|
+
:polished_aggregate=>
|
440
|
+
{:valid_min=>0.0,
|
441
|
+
:valid_max=>100.0,
|
442
|
+
:chart_type=>:linear,
|
443
|
+
:coefficients=>
|
444
|
+
{:low=>[1.6272727272727279, 0.09527272727272733],
|
445
|
+
:medium=>[1.6272727272727279, 0.09527272727272733],
|
446
|
+
:high=>[1.6272727272727279, 0.09527272727272733]}},
|
447
|
+
:patching_large_and_utility_cuts=>
|
448
|
+
{:valid_min=>0.0,
|
449
|
+
:valid_max=>100.0,
|
450
|
+
:chart_type=>:linear,
|
451
|
+
:coefficients=>
|
452
|
+
{:low=>[-1.3692307692306875, 0.4911305361305329, -0.001952214452214441],
|
453
|
+
:medium=>
|
454
|
+
[-1.6265734265732865, 0.8520745920745864, -0.003466200466200449],
|
455
|
+
:high=>
|
456
|
+
[0.31328671328703894,
|
457
|
+
1.736814296814201,
|
458
|
+
-0.017210372960372575,
|
459
|
+
7.107614607615057e-05]}},
|
460
|
+
:popouts=>
|
461
|
+
{:valid_min=>0.0,
|
462
|
+
:valid_max=>100.0,
|
463
|
+
:chart_type=>:linear,
|
464
|
+
:coefficients=>
|
465
|
+
{:low=>[0.959090909090909, 0.163909090909091],
|
466
|
+
:medium=>[0.959090909090909, 0.163909090909091],
|
467
|
+
:high=>[0.959090909090909, 0.163909090909091]}},
|
468
|
+
:pumping=>
|
469
|
+
{:valid_min=>0.0,
|
470
|
+
:valid_max=>100.0,
|
471
|
+
:chart_type=>:linear,
|
472
|
+
:coefficients=>
|
473
|
+
{:low=>
|
474
|
+
[-0.21048951048939823, 0.6700326340326295, -0.0028857808857808715],
|
475
|
+
:medium=>
|
476
|
+
[-0.21048951048939823, 0.6700326340326295, -0.0028857808857808715],
|
477
|
+
:high=>
|
478
|
+
[-0.21048951048939823, 0.6700326340326295, -0.0028857808857808715]}},
|
479
|
+
:punchouts=>
|
480
|
+
{:valid_min=>0.0,
|
481
|
+
:valid_max=>100.0,
|
482
|
+
:chart_type=>:linear,
|
483
|
+
:coefficients=>
|
484
|
+
{:low=>
|
485
|
+
[0.23916083916105269,
|
486
|
+
1.5800194250193544,
|
487
|
+
-0.015674825174824977,
|
488
|
+
5.3302253302257776e-05],
|
489
|
+
:medium=>
|
490
|
+
[0.39300699299788633,
|
491
|
+
2.807282439785469,
|
492
|
+
-0.05446882284391663,
|
493
|
+
0.0005626068376083245,
|
494
|
+
-2.281468531473641e-06],
|
495
|
+
:high=>
|
496
|
+
[0.41538461537338645,
|
497
|
+
3.5455419580456358,
|
498
|
+
-0.07212266899778302,
|
499
|
+
0.0007346736596754574,
|
500
|
+
-2.8175990676052593e-06]}},
|
501
|
+
:railroad_crossing=>
|
502
|
+
{:valid_min=>0.0,
|
503
|
+
:valid_max=>60.0,
|
504
|
+
:chart_type=>:linear,
|
505
|
+
:coefficients=>
|
506
|
+
{:low=>[0.6833333333333371, 0.8607142857142842, -0.006476190476190441],
|
507
|
+
:medium=>
|
508
|
+
[0.1285714285707984,
|
509
|
+
2.2037301587302798,
|
510
|
+
-0.04358333333333836,
|
511
|
+
0.0003472222222222999],
|
512
|
+
:high=>
|
513
|
+
[0.33809523809302156,
|
514
|
+
8.013373015879024,
|
515
|
+
-0.3216250000004167,
|
516
|
+
0.005897222222234228,
|
517
|
+
-3.8750000000108535e-05]}},
|
518
|
+
:scaling_map_cracking_crazing=>
|
519
|
+
{:valid_min=>0.0,
|
520
|
+
:valid_max=>100.0,
|
521
|
+
:chart_type=>:linear,
|
522
|
+
:coefficients=>
|
523
|
+
{:low=>[-0.06853146853142666, 0.248659673659672, -0.001327505827505821],
|
524
|
+
:medium=>
|
525
|
+
[0.46013986013996666,
|
526
|
+
0.8226573426573058,
|
527
|
+
-0.008888694638694558,
|
528
|
+
3.712121212121473e-05],
|
529
|
+
:high=>
|
530
|
+
[0.29160839160132745,
|
531
|
+
2.0888636363660593,
|
532
|
+
-0.04204050116557495,
|
533
|
+
0.00045110722610839597,
|
534
|
+
-1.7511655011694358e-06]}},
|
535
|
+
:shrinkage_cracks=>
|
536
|
+
{:valid_min=>0.0,
|
537
|
+
:valid_max=>100.0,
|
538
|
+
:chart_type=>:linear,
|
539
|
+
:coefficients=>
|
540
|
+
{:low=>[-0.17727272727272714, 0.045727272727272755],
|
541
|
+
:medium=>[-0.17727272727272714, 0.045727272727272755],
|
542
|
+
:high=>[-0.17727272727272714, 0.045727272727272755]}},
|
543
|
+
:spalling_corner=>
|
544
|
+
{:valid_min=>0.0,
|
545
|
+
:valid_max=>100.0,
|
546
|
+
:chart_type=>:linear,
|
547
|
+
:coefficients=>
|
548
|
+
{:low=>[0.5636363636363639, 0.16127272727272735],
|
549
|
+
:medium=>
|
550
|
+
[-1.039160839160767, 0.44085314685314403, -0.002013986013986005],
|
551
|
+
:high=>[0.945454545454647, 0.605181818181814, -0.003136363636363623]}},
|
552
|
+
:spalling_joint=>
|
553
|
+
{:valid_min=>0.0,
|
554
|
+
:valid_max=>100.0,
|
555
|
+
:chart_type=>:linear,
|
556
|
+
:coefficients=>
|
557
|
+
{:low=>
|
558
|
+
[-0.2825174825174346, 0.28762237762237564, -0.0015944055944055865],
|
559
|
+
:medium=>
|
560
|
+
[-0.09580419580411226, 0.5094778554778521, -0.0025547785547785406],
|
561
|
+
:high=>
|
562
|
+
[1.0006993006994707,
|
563
|
+
1.482397047396983,
|
564
|
+
-0.016978438228438142,
|
565
|
+
7.73698523698574e-05]}}}}
|
566
|
+
end
|
567
|
+
end
|
568
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PavementConditionIndex
|
2
|
+
module Lookups
|
3
|
+
class CorrectedDeductValues
|
4
|
+
|
5
|
+
def initialize(pavement_type:nil, q:nil)
|
6
|
+
@pavement_type = pavement_type
|
7
|
+
@q = "q#{q}".to_sym
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(total_deduct_value)
|
11
|
+
coefficients = PavementConditionIndex::Lookups::CalculatedCorrectedDeductCoefficients::COEFFICIENTS[@pavement_type][:coefficients][@q]
|
12
|
+
total_deduct_value = total_deduct_value.clamp(0.0,200.0)
|
13
|
+
return evaluate_polynomial(*coefficients).call(total_deduct_value).clamp(0.0,100.0)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def evaluate_polynomial(*coefficients)
|
19
|
+
Proc.new {|x| coefficients.map.with_index{|c,i| c*(x**i)}.reduce(:+)}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module PavementConditionIndex
|
2
|
+
module Lookups
|
3
|
+
class DeductValues
|
4
|
+
|
5
|
+
def initialize(pavement_type:nil,severity:nil,distress_type:nil)
|
6
|
+
@pavement_type = pavement_type
|
7
|
+
@severity = severity
|
8
|
+
@distress_type = distress_type
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(value)
|
12
|
+
deduct = PavementConditionIndex::Lookups::CalculatedDeductCoefficients::COEFFICIENTS[@pavement_type][@distress_type]
|
13
|
+
coefficients = deduct[:coefficients][@severity]
|
14
|
+
value = value.clamp(deduct[:valid_min],deduct[:valid_max])
|
15
|
+
# Asphalt charts use logarithmic scale, concrete uses linear
|
16
|
+
value = deduct[:chart_type] == :log ? Math.log10(value.to_f) : value.to_f
|
17
|
+
return evaluate_polynomial(*coefficients).call(value).clamp(0.0,100.0)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def evaluate_polynomial(*coefficients)
|
23
|
+
Proc.new {|x| coefficients.map.with_index{|c,i| c*(x**i)}.reduce(:+)}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module PavementConditionIndex
|
2
|
+
module Lookups
|
3
|
+
class ObservedCorrectedDeductValues
|
4
|
+
|
5
|
+
X_VALUES = [30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0, 180.0, 190.0, 200.0]
|
6
|
+
|
7
|
+
# The reference charts do not actually include these lines,
|
8
|
+
# so this is what we think they would be.
|
9
|
+
# How the interpolated values were determined [concrete: q5, q7, q8]:
|
10
|
+
# Average (or weighted average) of the lines surrounding it.
|
11
|
+
# This should be a good estimate.
|
12
|
+
# How the extrapolated values were determined [asphalt: q8, q9, q10; concrete: q10]:
|
13
|
+
# Took the difference between the last two known, observed q-value arrays, and added that difference
|
14
|
+
# to the last known q-value array. (Asphalt Ex: q8 = q7 + (q7 - q6), q9 = q7 + 2(q7 - q6), etc.)
|
15
|
+
# This estimate may be less accurate.
|
16
|
+
ESTIMATED_VALUES = {
|
17
|
+
asphalt: {
|
18
|
+
q8: [6.1, 13.1, 19.8, 25.6, 31.7, 37.6, 43.0, 48.1, 53.3, 58.7, 63.1, 66.8, 69.8, 72.4, 73.1, 74.2, 74.6, 74.2],
|
19
|
+
q9: [6.1, 13.1, 19.8, 25.6, 31.7, 37.6, 43.0, 48.1, 53.3, 58.7, 63.1, 66.2, 68.3, 70.0, 69.0, 69.0, 68.1, 66.2],
|
20
|
+
q10: [6.1, 13.1, 19.8, 25.6, 31.7, 37.6, 43.0, 48.1, 53.3, 58.7, 63.1, 65.6, 66.8, 67.6, 64.9, 63.8, 61.6, 58.2]
|
21
|
+
},
|
22
|
+
concrete: {
|
23
|
+
q5: [14.6, 20.5, 26.1, 32.0, 37.6, 43.3, 48.7, 54.1, 59.2, 64.2, 68.8, 73.6, 77.9, 82.2, 86.2, 90.1, 94.0, 97.4],
|
24
|
+
q7: [10.9, 16.8, 22.5, 28.1, 33.3, 38.5, 43.8, 48.9, 53.9, 58.6, 63.2, 67.9, 72.1, 76.4, 80.1, 84.0, 87.6, 90.6],
|
25
|
+
q8: [9.5, 15.5, 21.2, 26.7, 31.9, 36.7, 41.6, 46.5, 51.5, 56.0, 60.5, 65.3, 69.4, 73.6, 77.5, 81.4, 84.8, 88.2],
|
26
|
+
q10: [6.5, 13.1, 18.8, 24.1, 28.9, 32.9, 37.0, 41.7, 46.7, 51.0, 55.1, 60.3, 64.0, 68.2, 72.1, 76.0, 79.2, 83.2]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
OBSERVED_VALUES = {
|
31
|
+
asphalt: {
|
32
|
+
x_values: X_VALUES,
|
33
|
+
expected_y_values: {
|
34
|
+
q1: [30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0, 180.0, 190.0, 200.0],
|
35
|
+
q2: [21.9, 29.3, 36.9, 43.7, 50.4, 57.4, 63.7, 69.8, 75.4, 80.7, 85.6, 90.0, 93.9, 97.6, 101.3, 104.3, 106.7, 108.9],
|
36
|
+
q3: [16.7, 24.3, 31.1, 37.8, 44.8, 50.7, 56.9, 63.0, 68.3, 73.1, 78.3, 83.3, 88.0, 92.0, 96.3, 99.8, 103.0, 105.0],
|
37
|
+
q4: [12.4, 19.3, 26.3, 33.0, 39.4, 45.6, 51.1, 56.7, 62.4, 67.8, 73.1, 78.5, 82.8, 86.9, 90.4, 93.3, 95.9, 98.1],
|
38
|
+
q5: [9.3, 16.3, 22.8, 28.9, 35.2, 40.9, 46.7, 51.9, 57.0, 62.4, 67.2, 72.2, 76.7, 80.9, 84.8, 88.1, 91.1, 93.3],
|
39
|
+
q6: [6.1, 13.1, 19.8, 25.6, 31.7, 37.6, 43.0, 48.1, 53.3, 58.7, 63.1, 68.0, 72.8, 77.2, 81.3, 84.6, 87.6, 90.2],
|
40
|
+
q7: [6.1, 13.1, 19.8, 25.6, 31.7, 37.6, 43.0, 48.1, 53.3, 58.7, 63.1, 67.4, 71.3, 74.8, 77.2, 79.4, 81.1, 82.2],
|
41
|
+
q8: ESTIMATED_VALUES[:asphalt][:q8],
|
42
|
+
q9: ESTIMATED_VALUES[:asphalt][:q9],
|
43
|
+
q10: ESTIMATED_VALUES[:asphalt][:q10]
|
44
|
+
}
|
45
|
+
},
|
46
|
+
concrete: {
|
47
|
+
x_values: X_VALUES,
|
48
|
+
expected_y_values: {
|
49
|
+
q1: [30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0, 180.0, 190.0, 200.0],
|
50
|
+
q2: [24.8, 32.2, 39.1, 45.9, 51.7, 57.4, 63.3, 69.1, 75.0, 80.2, 85.7, 90.6, 95.2, 99.8, 104.1, 108.1, 111.7, 114.6],
|
51
|
+
q3: [18.7, 25.7, 32.0, 38.1, 44.4, 50.7, 56.5, 62.0, 67.4, 72.4, 77.6, 82.8, 88.0, 92.8, 97.4, 101.7, 105.6, 108.5],
|
52
|
+
q4: [16.7, 23.0, 28.5, 34.6, 40.4, 46.1, 51.3, 56.9, 62.0, 67.2, 71.7, 76.7, 80.9, 85.2, 89.6, 93.5, 97.6, 101.7],
|
53
|
+
q5: ESTIMATED_VALUES[:concrete][:q5],
|
54
|
+
q6: [12.4, 18.0, 23.7, 29.4, 34.8, 40.4, 46.1, 51.3, 56.3, 61.1, 65.9, 70.4, 74.8, 79.1, 82.8, 86.7, 90.4, 93.1],
|
55
|
+
q7: ESTIMATED_VALUES[:concrete][:q7],
|
56
|
+
q8: ESTIMATED_VALUES[:concrete][:q8],
|
57
|
+
q9: [8.0, 14.3, 20.0, 25.4, 30.4, 34.8, 39.3, 44.1, 49.1, 53.5, 57.8, 62.8, 66.7, 70.9, 74.8, 78.7, 82.0, 85.7],
|
58
|
+
q10: ESTIMATED_VALUES[:concrete][:q10]
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|