Class: PavementConditionIndex::SectionConditionSurvey
- Inherits:
-
Object
- Object
- PavementConditionIndex::SectionConditionSurvey
- Defined in:
- lib/pavement_condition_index/section_condition_survey.rb
Instance Attribute Summary collapse
-
#acceptable_error ⇒ Object
readonly
Returns the value of attribute acceptable_error.
-
#pci_standard_deviation ⇒ Object
readonly
Returns the value of attribute pci_standard_deviation.
-
#sample_unit_condition_surveys ⇒ Object
readonly
Returns the value of attribute sample_unit_condition_surveys.
-
#total_number_of_sample_units ⇒ Object
readonly
Returns the value of attribute total_number_of_sample_units.
Instance Method Summary collapse
-
#initialize(sample_unit_condition_surveys:, total_number_of_sample_units: nil, acceptable_error: 5, pci_standard_deviation: 10) ⇒ SectionConditionSurvey
constructor
A new instance of SectionConditionSurvey.
- #pavement_condition_index ⇒ Object (also: #pci)
- #required_number_of_sample_unit_condition_surveys ⇒ Object
- #sample_is_statistically_significant ⇒ Object
- #sample_spacing_interval ⇒ Object
- #sum_of_sample_unit_condition_survey_areas ⇒ Object
- #weighted_pci_scores ⇒ Object
Constructor Details
#initialize(sample_unit_condition_surveys:, total_number_of_sample_units: nil, acceptable_error: 5, pci_standard_deviation: 10) ⇒ SectionConditionSurvey
Returns a new instance of SectionConditionSurvey.
6 7 8 9 10 11 12 |
# 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 |
Instance Attribute Details
#acceptable_error ⇒ Object (readonly)
Returns the value of attribute acceptable_error.
4 5 6 |
# File 'lib/pavement_condition_index/section_condition_survey.rb', line 4 def acceptable_error @acceptable_error end |
#pci_standard_deviation ⇒ Object (readonly)
Returns the value of attribute pci_standard_deviation.
4 5 6 |
# File 'lib/pavement_condition_index/section_condition_survey.rb', line 4 def pci_standard_deviation @pci_standard_deviation end |
#sample_unit_condition_surveys ⇒ Object (readonly)
Returns the value of attribute sample_unit_condition_surveys.
4 5 6 |
# File 'lib/pavement_condition_index/section_condition_survey.rb', line 4 def sample_unit_condition_surveys @sample_unit_condition_surveys end |
#total_number_of_sample_units ⇒ Object (readonly)
Returns the value of attribute total_number_of_sample_units.
4 5 6 |
# File 'lib/pavement_condition_index/section_condition_survey.rb', line 4 def total_number_of_sample_units @total_number_of_sample_units end |
Instance Method Details
#pavement_condition_index ⇒ Object Also known as: pci
42 43 44 45 46 47 |
# 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 |
#required_number_of_sample_unit_condition_surveys ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# 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 ⇒ Object
26 27 28 |
# 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 ⇒ Object
30 31 32 |
# 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 ⇒ Object
38 39 40 |
# 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 ⇒ Object
34 35 36 |
# 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 |