comtec-dr 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80e24446a1bc5937c236b7a810ee53533695692e
4
- data.tar.gz: 76ae164fedf54aa09230b970b798e1128cd2ac2a
3
+ metadata.gz: 051d6576635668fdf33a0f1a7231cb83a26b3a83
4
+ data.tar.gz: 737e0cc7dccf246a8ea3442fb673ee1d3cfcb39e
5
5
  SHA512:
6
- metadata.gz: 87611f1a944be3c93b6d7c353f47241024fb09c7ef9b72b6a428814e55ce01709de7d435fe73fc025560a549227564e8f3b695a298e631744dac7f83d0f71bad
7
- data.tar.gz: 79f3d0e2c1991da3bef41180b5340a318f8f65087b816def1826ca26e2e5699c3d3769ae52ef4efe025aea6095922516bfa0f2c1058a6d12d6bc7e6a5feae5f8
6
+ metadata.gz: 3136dd1855c2d87de6d51f1c50fd790613cc595fd496cf5dcbae87a6f239f86ad3c42f92c20eca3b692e7e793277bb3f1613f96ab7dc0f377232263e78eb8c32
7
+ data.tar.gz: b603a1f6c69b49e25d08dfd3215b28fe9dc7d597d1e3bcaa62e83768889a6f6cb92f8dee27bafb050748a50bd1b711f0084c007a3e5507ff256c2fd70d984626
data/README.md CHANGED
@@ -21,24 +21,52 @@ Or install it yourself as:
21
21
 
22
22
  ## Usage
23
23
 
24
- movファイルもしくはディレクトリを引数に取ることが出来ます
25
24
 
26
25
  ### CSVデータで取り出し
27
26
 
27
+ movファイルもしくはディレクトリを引数に取ることが出来ます
28
+
28
29
  ```
29
30
  comtec_mov_to_csv /Volumes/NO\ NAME/DCIM/20171005_003/007_130755_G.MOV
31
+ comtec_mov_to_csv /Volumes/NO\ NAME/DCIM/20171005_003
30
32
  ```
31
33
 
34
+ CSVファイルの列には以下の情報が含まれています。
35
+ 緯度, 経度, 速度(km/h), 時刻, ミリ秒, X軸加速度, Y軸加速度, Z軸加速度, ファイル名
36
+
32
37
  ```
33
- comtec_mov_to_csv /Volumes/NO\ NAME/DCIM/20171005_003
38
+ 35.673485, 136.95376166666668, 67, 2017-10-04 10:48:54 +0900, 29160, 0.175, 0.052, 0.003, 000_104824_A.MOV
39
+ 35.673485, 136.95376166666668, 67, 2017-10-04 10:48:54 +0900, 29260, 0.184, 0.091, -0.009, 000_104824_A.MOV
40
+ 35.67357166666667, 136.95374833333332, 70, 2017-10-04 10:48:54 +0900, 29360, 0.188, 0.034, 0.021, 000_104824_A.MOV
41
+ 35.67357166666667, 136.95374833333332, 70, 2017-10-04 10:48:54 +0900, 29460, 0.184, 0.046, 0.047, 000_104824_A.MOV
42
+ 35.67357166666667, 136.95374833333332, 70, 2017-10-04 10:48:54 +0900, 29560, 0.146, 0.084, 0.005, 000_104824_A.MOV
43
+ 35.67357166666667, 136.95374833333332, 70, 2017-10-04 10:48:54 +0900, 29660, 0.164, 0.06, 0.001, 000_104824_A.MOV
44
+ 35.67357166666667, 136.95374833333332, 70, 2017-10-04 10:48:54 +0900, 29760, 0.17, 0.073, -0.029, 000_104824_A.MOV
45
+ 35.67366333333333, 136.953735, 72, 2017-10-04 10:48:54 +0900, 29860, 0.187, 0.069, 0.006, 000_104824_A.MOV
46
+ 35.67366333333333, 136.953735, 72, 2017-10-04 10:48:54 +0900, 29960, 0.154, 0.089, 0.048, 000_104824_A.MOV
47
+ 35.67366333333333, 136.953735, 72, 2017-10-04 10:48:54 +0900, 30060, 0.186, 0.064, -0.006, 000_104824_A.MOV
48
+ 35.67366333333333, 136.953735, 72, 2017-10-04 10:48:55 +0900, 30160, 0.16, 0.031, 0.006, 000_104824_A.MOV
49
+ 35.67366333333333, 136.953735, 72, 2017-10-04 10:48:55 +0900, 30260, 0.157, 0.036, 0.005, 000_104824_A.MOV
50
+ 35.67375666666667, 136.95372166666667, 75, 2017-10-04 10:48:55 +0900, 30360, 0.186, 0.043, 0.056, 000_104824_A.MOV
51
+ 35.67375666666667, 136.95372166666667, 75, 2017-10-04 10:48:55 +0900, 30460, 0.151, 0.067, 0.034, 000_104824_A.MOV
52
+ 35.67375666666667, 136.95372166666667, 75, 2017-10-04 10:48:55 +0900, 30560, 0.122, 0.034, -0.015, 000_104824_A.MOV
53
+ 35.67375666666667, 136.95372166666667, 75, 2017-10-04 10:48:55 +0900, 30660, 0.224, 0.046, 0.002, 000_104824_A.MOV
54
+ 35.67375666666667, 136.95372166666667, 75, 2017-10-04 10:48:55 +0900, 30760, 0.135, 0.081, -0.008, 000_104824_A.MOV
55
+ 35.673855, 136.95370833333334, 78, 2017-10-04 10:48:55 +0900, 30860, 0.142, 0.042, -0.008, 000_104824_A.MOV
56
+ 35.673855, 136.95370833333334, 78, 2017-10-04 10:48:55 +0900, 30960, 0.168, 0.033, 0.007, 000_104824_A.MOV
57
+ 35.673855, 136.95370833333334, 78, 2017-10-04 10:48:55 +0900, 31060, 0.134, 0.073, -0.003, 000_104824_A.MOV
34
58
  ```
35
59
 
60
+ 上記の例は2秒間のログを抜粋したもので、
61
+ 緯度,経度,速度は秒間2回、加速度は秒間10回センシングされているようです。
62
+
36
63
  ### GPXデータで取り出し
37
64
 
38
- ```
39
- comtec_mov_to_gpx /Volumes/NO\ NAME/DCIM/20171005_003/007_130755_G.MOV
40
- ```
65
+ movファイルもしくはディレクトリを引数に取ることが出来ます
41
66
 
42
67
  ```
68
+ comtec_mov_to_gpx /Volumes/NO\ NAME/DCIM/20171005_003/007_130755_G.MOV
43
69
  comtec_mov_to_gpx /Volumes/NO\ NAME/DCIM/20171005_003
44
70
  ```
71
+
72
+ GPXデータ生成時には重複した位置情報は取り除きます。
data/exe/comtec_mov_demux CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
- require 'pathname'
5
4
  require 'comtec-dr'
6
5
 
7
6
  ARGV.each do |arg|
@@ -9,7 +8,7 @@ ARGV.each do |arg|
9
8
  if path.file? && path.basename.to_s.end_with?('.MOV')
10
9
  puts ComtecDR::MovDemuxer.demux path.to_s
11
10
  elsif path.directory?
12
- path.children.each do |child_path|
11
+ path.children(with_directory: false).each do |child_path|
13
12
  if child_path.file? && child_path.basename.to_s.end_with?('.MOV')
14
13
  puts ComtecDR::MovDemuxer.demux child_path.to_s
15
14
  end
@@ -1,27 +1,21 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
- require 'pathname'
5
- require 'csv'
6
4
  require 'comtec-dr'
7
5
 
8
6
  ARGV.each do |arg|
9
7
  path = Pathname arg
10
8
  if path.file? && path.basename.to_s.end_with?('.MOV')
11
9
  CSV.open("#{path.basename.to_s.gsub('.MOV','')}.csv",'w') do |csv|
12
- ComtecDR::UdatAnalyzer.analyze(ComtecDR::MovDemuxer.demux path.to_s).each do |line|
13
- log = ComtecDR::GpsLog.new *line
14
- csv << [*log.csv_line, path.basename.to_s]
15
- end
10
+ track = ComtecDR::GpsTrack.analyze path.to_s
11
+ track.track.each{|t| csv << t}
16
12
  end
17
13
  elsif path.directory?
18
14
  CSV.open("#{path.basename.to_s}.csv",'w') do |csv|
19
- path.children.each do |child_path|
15
+ path.children(with_directory: false).each do |child_path|
20
16
  if child_path.file? && child_path.basename.to_s.end_with?('.MOV')
21
- ComtecDR::UdatAnalyzer.analyze(ComtecDR::MovDemuxer.demux child_path.to_s).each do |line|
22
- log = ComtecDR::GpsLog.new *line
23
- csv << [*log.csv_line, child_path.basename.to_s]
24
- end
17
+ track = ComtecDR::GpsTrack.analyze child_path.to_s
18
+ track.track.each{|t| csv << t}
25
19
  end
26
20
  end
27
21
  end
@@ -1,29 +1,22 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
- require 'pathname'
5
4
  require 'comtec-dr'
6
5
 
7
6
  ARGV.each do |arg|
8
7
  path = Pathname arg
9
8
  if path.file? && path.basename.to_s.end_with?('.MOV')
10
9
  gpx = ComtecDR::GpxGenerator.new "#{path.basename.to_s.gsub('.MOV','')}.gpx"
11
- csv = ComtecDR::UdatAnalyzer.analyze(ComtecDR::MovDemuxer.demux path.to_s).map do |line|
12
- log = ComtecDR::GpsLog.new *line
13
- log.csv_line
14
- end
15
- gpx.add_track csv
10
+ track = ComtecDR::GpsTrack.analyze path.to_s
11
+ gpx.add_track track.compress.track
16
12
  gpx.write
17
13
  elsif path.directory?
18
14
  gpx = ComtecDR::GpxGenerator.new "#{path.basename.to_s}.gpx"
19
15
  gpx.add_track
20
- path.children.each do |child_path|
16
+ path.children(with_directory: false).each do |child_path|
21
17
  if child_path.file? && child_path.basename.to_s.end_with?('.MOV')
22
- csv = ComtecDR::UdatAnalyzer.analyze(ComtecDR::MovDemuxer.demux child_path.to_s).map do |line|
23
- log = ComtecDR::GpsLog.new *line
24
- log.csv_line
25
- end
26
- gpx.add_trkseg csv
18
+ track = ComtecDR::GpsTrack.analyze child_path.to_s
19
+ gpx.add_trkseg track.compress.track
27
20
  end
28
21
  end
29
22
  gpx.write
data/lib/comtec-dr.rb CHANGED
@@ -1,10 +1,13 @@
1
1
  require "time"
2
2
  require 'rexml/document'
3
+ require 'pathname'
4
+ require 'csv'
3
5
  require "comtec-dr/version"
4
6
  require "comtec-dr/gps_log"
5
7
  require "comtec-dr/mov_demuxer"
6
8
  require "comtec-dr/udat_analyzer"
7
9
  require "comtec-dr/gpx_generator"
10
+ require "comtec-dr/gps_track"
8
11
 
9
12
  module ComtecDR
10
13
  end
@@ -0,0 +1,34 @@
1
+ module ComtecDR
2
+ class GpsTrack
3
+ attr_reader :track
4
+ def initialize
5
+ @track = []
6
+ end
7
+
8
+ def << log
9
+ @track << log
10
+ end
11
+
12
+ # 位置情報を圧縮
13
+ def compress
14
+ new_track = self.class.new
15
+ prev = []
16
+ self.track.each do |t|
17
+ new_track << t unless t[0..2] == prev[0..2]
18
+ prev = t
19
+ end
20
+ new_track
21
+ end
22
+
23
+ class << self
24
+ def analyze file_path
25
+ self.new.tap do |track|
26
+ ComtecDR::UdatAnalyzer.analyze(ComtecDR::MovDemuxer.demux file_path).each do |line|
27
+ log = ComtecDR::GpsLog.new *line
28
+ track << [*log.csv_line, Pathname.new(file_path).basename.to_s]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -19,13 +19,7 @@ module ComtecDR
19
19
  @trk = REXML::Element.new('trk')
20
20
  @gpx.add_element(@trk)
21
21
 
22
- trkseg = REXML::Element.new('trkseg')
23
- @trk.add_element(trkseg)
24
- csv.each do |line|
25
- trkpt = REXML::Element.new('trkpt')
26
- trkpt.add_attributes({'lat' => line[0], 'lon' => line[1]})
27
- trkseg.add_element(trkpt)
28
- end if !csv.nil?
22
+ add_trkseg csv if !csv.nil?
29
23
  end
30
24
 
31
25
  def add_trkseg csv
@@ -1,6 +1,6 @@
1
1
  module ComtecDR
2
2
  MAJOR = 0
3
- MINOR = 8
3
+ MINOR = 9
4
4
  PATCH = 0
5
5
  VERSION = [MAJOR, MINOR, PATCH].compact.join('.')
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comtec-dr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shogo Kawaguchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-07 00:00:00.000000000 Z
11
+ date: 2017-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,7 +56,6 @@ description: comtec drive recorder analyzer
56
56
  email:
57
57
  - platycod0n.ramosa@gmail.com
58
58
  executables:
59
- - comtec_csv_to_gps
60
59
  - comtec_mov_demux
61
60
  - comtec_mov_to_csv
62
61
  - comtec_mov_to_gpx
@@ -72,12 +71,12 @@ files:
72
71
  - bin/console
73
72
  - bin/setup
74
73
  - comtec-dr.gemspec
75
- - exe/comtec_csv_to_gps
76
74
  - exe/comtec_mov_demux
77
75
  - exe/comtec_mov_to_csv
78
76
  - exe/comtec_mov_to_gpx
79
77
  - lib/comtec-dr.rb
80
78
  - lib/comtec-dr/gps_log.rb
79
+ - lib/comtec-dr/gps_track.rb
81
80
  - lib/comtec-dr/gpx_generator.rb
82
81
  - lib/comtec-dr/mov_demuxer.rb
83
82
  - lib/comtec-dr/udat_analyzer.rb
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'pathname'
5
- require 'csv'
6
- require 'comtec-dr'
7
-
8
- ARGV.each do |arg|
9
- path = Pathname arg
10
- if path.file? && path.basename.to_s.end_with?('.csv')
11
- gpx = ComtecDR::GpxGenerator.new "#{path.basename.to_s.gsub('.csv','')}.gpx"
12
- csv = CSV.read path.to_s
13
- gpx.add_track csv
14
- gpx.write
15
- elsif path.directory?
16
- gpx = ComtecDR::GpxGenerator.new "#{path.basename.to_s}.gpx"
17
- csvs = []
18
- path.children.each do |child_path|
19
- if child_path.file? && child_path.basename.to_s.end_with?('.csv')
20
- csv = CSV.read child_path.to_s
21
- csvs << csv
22
- end
23
- end
24
- csvs.each do |csv|
25
- gpx.add_track csv
26
- end
27
- gpx.write
28
- end
29
- end