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
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