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 +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
|