class PavementConditionIndex::SectionConditionSurvey
Attributes
acceptable_error[R]
pci_standard_deviation[R]
sample_unit_condition_surveys[R]
total_number_of_sample_units[R]
Public Class Methods
new(sample_unit_condition_surveys:,total_number_of_sample_units:nil,acceptable_error:5,pci_standard_deviation:10)
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 6 def initialize(sample_unit_condition_surveys:,total_number_of_sample_units:nil,acceptable_error:5,pci_standard_deviation:10) @sample_unit_condition_surveys = sample_unit_condition_surveys @total_number_of_sample_units = total_number_of_sample_units @acceptable_error = acceptable_error @pci_standard_deviation = pci_standard_deviation @number_of_sample_units = @sample_unit_condition_surveys.length end
Public Instance Methods
pavement_condition_index()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 42 def pavement_condition_index @pavement_condition_index ||= begin pci_score = weighted_pci_scores / sum_of_sample_unit_condition_survey_areas PavementConditionIndex::PCI.new(score: pci_score) end end
Also aliased as: pci
required_number_of_sample_unit_condition_surveys()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 14 def required_number_of_sample_unit_condition_surveys @required_number_of_sample_unit_condition_surveys ||= begin if @total_number_of_sample_units t = (@total_number_of_sample_units * @pci_standard_deviation**2) b = (@acceptable_error**2/4) * (@total_number_of_sample_units - 1) + @pci_standard_deviation**2 (t/b.to_f).ceil else 1 end end end
sample_is_statistically_significant()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 26 def sample_is_statistically_significant @sample_is_statistically_significant ||= @number_of_sample_units >= required_number_of_sample_unit_condition_surveys end
sample_spacing_interval()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 30 def sample_spacing_interval @sample_spacing_interval ||= (@number_of_sample_units/required_number_of_sample_unit_condition_surveys.to_f).floor end
sum_of_sample_unit_condition_survey_areas()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 38 def sum_of_sample_unit_condition_survey_areas @sum_of_sample_unit_condition_survey_areas ||= @sample_unit_condition_surveys.map{|sample_unit_condition_survey| sample_unit_condition_survey.area}.reduce(:+).to_f end
weighted_pci_scores()
click to toggle source
# File lib/pavement_condition_index/section_condition_survey.rb, line 34 def weighted_pci_scores @weighted_pci_scores ||= @sample_unit_condition_surveys.map{|sample_unit_condition_survey| sample_unit_condition_survey.pavement_condition_index.score * sample_unit_condition_survey.area}.reduce(:+) end