comtec-dr 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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