class PavementConditionIndex::SampleUnitConditionSurvey::BaseSurvey
Attributes
area[R]
distresses[R]
identifier[R]
pavement_type[R]
size_of_sample_unit[R]
Public Instance Methods
allowable_number_of_deduct_values()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 37 def allowable_number_of_deduct_values @allowable_number_of_deducts ||= begin m = 1 + ((9/98.0) * (100-highest_deduct_value)) [m,10.0].min end end
allowed_deduct_values()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 28 def allowed_deduct_values @allowed_deduct_values ||= begin dvs = deduct_values.clone adv = dvs.shift(allowable_number_of_deduct_values.floor) adv << (allowable_number_of_deduct_values % 1).to_f * dvs[0].to_f if dvs.any? adv end end
cdv_iterations()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 18 def cdv_iterations @cdv_iterations ||= begin r = [] (1..q).each do |q| r << PavementConditionIndex::CdvIteration.new(deduct_values: deduct_values, pavement_type: @pavement_type, q: q) end r.reverse end end
deduct_values()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 48 def deduct_values @deduct_values ||= begin dvs = distress_groups.map(&:deduct_value).sort {|x,y| y <=> x}.take(10) # Max of 10 a = dvs.shift(allowable_number_of_deduct_values.floor) a << dvs.shift * (allowable_number_of_deduct_values%1) unless dvs.empty? a end end
distress_groups()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 11 def distress_groups @distress_groups ||= begin grouped_distresses = @distresses.group_by{|distress| [distress[:type],distress[:severity]]} grouped_distresses.map{|key,value| PavementConditionIndex::DistressGroup.new(type: key[0],severity: key[1],distresses: value,size_of_sample_unit: @size_of_sample_unit,pavement_type: @pavement_type)} end end
highest_deduct_value()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 44 def highest_deduct_value @highest_deduct_value ||= distress_groups.map(&:deduct_value).max || 0 end
maximum_corrected_deduct_value()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 57 def maximum_corrected_deduct_value @maximum_corrected_deduct_value ||= cdv_iterations.map(&:corrected_deduct_value).max|| 0 end
pavement_condition_index()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 61 def pavement_condition_index @pavement_condition_index ||= begin pci_score = 100 - maximum_corrected_deduct_value PavementConditionIndex::PCI.new(score: pci_score) end end
Also aliased as: pci
q()
click to toggle source
# File lib/pavement_condition_index/sample_unit_condition_survey/base_survey.rb, line 7 def q deduct_values.select {|dv| dv > 2.0}.length end