class Overlap::Analysis

Attributes

intersection_quantity[R]
intersections[R]
quantities[R]
quantities_with_intersections[R]
quantity[R]
quantity_with_intersections[R]
segments[R]
unions[R]

Public Class Methods

new(input_data, options={}) click to toggle source
# File lib/overlap/analysis.rb, line 7
def initialize(input_data, options={})
  @input_data = input_data
  @options = options
  build!
end

Private Instance Methods

build!() click to toggle source
# File lib/overlap/analysis.rb, line 15
def build!
  @unions = Detect.new(
    Collection.new(@input_data, @options).collection
  ).overlaps.map do |overlapped_segments|
    Union.new(overlapped_segments)
  end
  @segments = unions.map { |union| union.segment.to_a }
  @intersections = unions.map { |union| union.intersection_quantity }
  @intersection_quantity = intersections.reduce(:+)
  @quantities_with_intersections = unions.map { |union| union.quantity_with_intersections }
  @quantity_with_intersections = quantities_with_intersections.reduce(:+)
  @quantities = unions.map { |union| (union.quantity&.round(3) || 0) }
  @quantity = quantities.reduce(:+)&.round(3) || 0
end