Skip to main content
. 2016 Nov 23;16(11):1962. doi: 10.3390/s16111962
Algorithm 4 Rules for segment merging
  •   1:

    INPUT All the atomic segments in a given trajectory (seglist), temporal threshold: Ψ

  •   2:

    OUPUT a set of merged segments (mergedSeglist)

  •   3:

    PROCEDURE Segment_Merging()

  •   4:

    seglist.size()=k

  •   5:

    boolean flag=false

  •   6:

    for i=0 to k−2 do

  •   7:

      current_seg=seglist.get(i)

  •   8:

      next_seg=seglist.get(i+1)

  •   9:

      RULE 1:

  • 10:

      if current_seg.mode_type==next_seg.mode_type&&next_seg.durationΨ then

  • 11:

          merge_seg=merging(current_seg,next_seg)

  • 12:

          mergedSeglist.add(merge_seg)

  • 13:

          flag=true

  • 14:

      end if

  • 15:

      RULE 2:

  • 16:

      if current_seg.mode_type==next_seg.mode_type&&next_seg.duration>Ψ then

  • 17:

          merge_seg=merging(current_seg,next_seg)

  • 18:

          mergedSeglist.add(merge_seg)

  • 19:

          flag=true

  • 20:

      end if

  • 21:

      RULE 3:

  • 22:

      if current_seg.mode_type!=next_seg.mode_type&&next_seg.durationΨ then

  • 23:

          merge_seg=merging(current_seg,next_seg)

  • 24:

          mergedSeglist.add(merge_seg)

  • 25:

          flag=true

  • 26:

      end if

  • 27:

      RULE 4:

  • 28:

      if flag==false then

  • 29:

          mergedSeglist.add(current_seg)

  • 30:

          mergedSeglist.add(next_seg)

  • 31:

      end if

  • 32:

    end for

  • 33:

    END PROCEDURE