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 +4 -4
- data/README.md +33 -5
- data/exe/comtec_mov_demux +1 -2
- data/exe/comtec_mov_to_csv +5 -11
- data/exe/comtec_mov_to_gpx +5 -12
- data/lib/comtec-dr.rb +3 -0
- data/lib/comtec-dr/gps_track.rb +34 -0
- data/lib/comtec-dr/gpx_generator.rb +1 -7
- data/lib/comtec-dr/version.rb +1 -1
- metadata +3 -4
- data/exe/comtec_csv_to_gps +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 051d6576635668fdf33a0f1a7231cb83a26b3a83
|
|
4
|
+
data.tar.gz: 737e0cc7dccf246a8ea3442fb673ee1d3cfcb39e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
data/exe/comtec_mov_to_csv
CHANGED
|
@@ -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::
|
|
13
|
-
|
|
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::
|
|
22
|
-
|
|
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
|
data/exe/comtec_mov_to_gpx
CHANGED
|
@@ -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
|
-
|
|
12
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
data/lib/comtec-dr/version.rb
CHANGED
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.
|
|
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-
|
|
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
|
data/exe/comtec_csv_to_gps
DELETED
|
@@ -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
|