argos-ruby 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -11,7 +11,9 @@ spec/reports
11
11
  test/tmp
12
12
  test/version_tmp
13
13
  tmp
14
-
14
+ Gemfile.lock
15
+ buffer.txt
16
+ todo.txt
15
17
  # YARD artifacts
16
18
  .yardoc
17
19
  _yardoc
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "yajl-ruby", git: "git://github.com/brianmario/yajl-ruby.git"
4
+ gem "uuidtools"
5
+ gem "hashie", git: "git://github.com/intridea/hashie.git"
6
+ #gem "json-schema", git: "git://github.com/hoxworth/json-schema.git"
7
+
8
+
9
+ group :development, :test do
10
+ gem "thin"
11
+ gem "shotgun"
12
+ gem "rspec"
13
+ gem "simplecov"
14
+ gem "ruby-prof"
15
+ end
data/README.md CHANGED
@@ -1,60 +1,91 @@
1
1
  # argos-ruby
2
2
 
3
- A Ruby library for parsing Argos tracking data
3
+ A Ruby library and command-line tool for parsing Argos tracking data files.
4
4
 
5
- [argos-ruby](https://github.com/npolar/argos-ruby) is used to parse [Argos](http://www.argos-system.org)
6
- satellite tracking data files collected at the [Norwegian Polar Institute]
7
- (http://npolar.no/en) since 1989.
8
-
9
- Be warned, the Argos file formats have changed over time. No promises are
10
- made that the library will work outside of Norway :).
11
-
12
- Currently, the library parses Argos DS/DIAG files dating from August 1990
13
- and onwards.
14
-
15
- ## Install
16
- $ gem install argos-ruby
17
-
18
- ## Command-line usage
5
+ ## Usage
6
+ ### DS/DIAG to JSON
19
7
 
8
+ ```argos-ruby``` converts Argos files to JSON. DS header data is repeated in each message
20
9
  ```sh
21
- $ curl "https://raw.github.com/npolar/argos-ruby/master/spec/argos/_ds/990660_A.DAT" > /tmp/990660_A.DAT
22
- $ ./bin/argos-ruby /tmp/990660_A.DAT
10
+ curl "https://raw.github.com/npolar/argos-ruby/master/spec/argos/_ds/fragment.ds" > /tmp/fragment.ds
11
+ argos-ruby /tmp/fragment.ds
23
12
  ```
24
- JSON output (shortened)
25
-
26
13
  ```json
27
- [ { .. },
14
+ [
15
+ {
16
+ "program": 9660,
17
+ "platform": 10783,
18
+ "lines": 3,
19
+ "sensors": 3,
20
+ "satellite": "K",
21
+ "lc": "3",
22
+ "positioned": "1999-12-30T17:58:26Z",
23
+ "latitude": 79.824,
24
+ "longitude": 22.363,
25
+ "altitude": 0.0,
26
+ "headers": 12,
27
+ "measured": "1999-12-30T17:56:30Z",
28
+ "identical": 2,
29
+ "sensor_data": [
30
+ "78",
31
+ "00",
32
+ "00"
33
+ ],
34
+ "technology": "argos",
35
+ "type": "ds",
36
+ "location": "file:///tmp/fragment.ds",
37
+ "source": "a9c02cf81978a9fafecac582309c7c8161e5a76c",
38
+ "parser": "argos-ruby-1.0.4",
39
+ "id": "2d833010d13714dfb771f73470417405b887e8f4",
40
+ "bundle": "bc30f5e5733087f730202bea53fa730092a192e3"
41
+ },
28
42
  {
29
43
  "program": 9660,
30
- "platform": 2173,
44
+ "platform": 10783,
31
45
  "lines": 3,
32
46
  "sensors": 3,
33
47
  "satellite": "K",
34
- "lc": "B",
35
- "positioned": "1999-12-31T19:18:58Z",
36
- "latitude": 77.562,
37
- "longitude": 40.341,
48
+ "lc": "3",
49
+ "positioned": "1999-12-30T17:58:26Z",
50
+ "latitude": 79.824,
51
+ "longitude": 22.363,
38
52
  "altitude": 0.0,
39
53
  "headers": 12,
40
- "measured": "1999-12-31T19:19:28Z",
41
- "identical": 1,
54
+ "measured": "1999-12-30T18:01:20Z",
55
+ "identical": 5,
42
56
  "sensor_data": [
43
- "18729",
44
- "17",
45
- "149"
57
+ "78",
58
+ "00",
59
+ "00"
46
60
  ],
47
61
  "technology": "argos",
48
62
  "type": "ds",
49
- "location": "file:///tmp/990660_A.DAT",
50
- "source": "3a39e0bd0b944dca4f4fbf17bc0680704cde2994",
51
- "parser": "argos-ruby-1.0.3",
52
- "id": "5185906d06859457786753459894bd33fdd8cd0a"
63
+ "location": "file:///tmp/fragment.ds",
64
+ "source": "a9c02cf81978a9fafecac582309c7c8161e5a76c",
65
+ "parser": "argos-ruby-1.0.4",
66
+ "id": "26af9092d01fbd49ff8cb9041e63df352886dba6",
67
+ "bundle": "bc30f5e5733087f730202bea53fa730092a192e3"
53
68
  }
54
69
  ]
55
70
 
56
71
  ```
57
- Links
72
+
73
+ ## About
74
+
75
+ [argos-ruby](https://github.com/npolar/argos-ruby) has been developed to parse [Argos](http://www.argos-system.org)
76
+ satellite tracking data files collected by the [Norwegian Polar Institute]
77
+ (http://npolar.no/en) since 1989.
78
+
79
+ Be warned, the Argos file formats have changed over time. No promises are
80
+ made that the library will work outside of Norway :).
81
+
82
+ Currently, the library parses Argos DS/DIAG files dating from August 1990
83
+ and onwards.
84
+
85
+ ## Install
86
+ $ gem install argos-ruby
87
+
88
+ ## Links
58
89
  * [http://api.npolar.no/tracking/?q=&filter-technology=argos](http://api.npolar.no/tracking/?q=&filter-technology=argos)
59
90
  * [Argos users manual v1.5](http://www.argos-system.org/files/pmedia/public/r363_9_argos_users_manual-v1.5.pdf) (PDF)
60
91
  * http://alaska.usgs.gov/science/biology/spatial/
data/bin/argos-ruby CHANGED
@@ -89,6 +89,7 @@ Dir[glob].reject {|f| File.directory? f}.select {|f|
89
89
  argos = Argos.factory(Argos.type(filename))
90
90
  argos.filename = filename
91
91
  argos.filter = param[:filter]
92
+ argos.bundle = bundle
92
93
  argos.log = log
93
94
 
94
95
  case param[:action]
data/lib/argos.rb CHANGED
@@ -17,7 +17,7 @@ require_relative "argos/diag"
17
17
  #
18
18
  # For information about Argos, see: http://www.argos-system.org
19
19
  module Argos
20
- VERSION = "1.0.3"
20
+ VERSION = "1.0.4"
21
21
  # Detect Argos type ("ds" or "diag" or nil)
22
22
  #
23
23
  # @param filename [String] Argos (DS or DIAG) file
data/lib/argos/command.rb CHANGED
@@ -19,6 +19,12 @@ module Argos
19
19
  def param(argv=ARGV)
20
20
  optparser = OptionParser.new(ARGV) do |opts|
21
21
 
22
+ opts.banner = "argos-ruby [OPTIONS] {filename|glob}
23
+ For more information and source: https://github.com/npolar/argos-ruby
24
+
25
+ Options:\n
26
+ "
27
+
22
28
  opts.on_tail("--version", "-v", "Library version") do
23
29
  puts Argos.library_version
24
30
  exit
data/lib/argos/diag.rb CHANGED
@@ -17,9 +17,9 @@ module Argos
17
17
 
18
18
  LOCATION_CLASS = ["3", "2", "1", "0", "A", "B", "Z"]
19
19
 
20
- attr_accessor :log, :filename, :programs
20
+ attr_accessor :log, :filename, :programs, :bundle
21
21
 
22
- attr_reader :filename, :filter, :filtername, :sha1, :valid, :filesize, :updated, :multiplicates, :errors
22
+ attr_reader :bundle, :filename, :filter, :filtername, :sha1, :valid, :filesize, :updated, :multiplicates, :errors
23
23
 
24
24
  START_REGEX = /^\s*\d{5,6}\s+Date : \d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2}/
25
25
  $start_diag ='^\s*\d{5,6}\s+Date : \d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2}'
@@ -224,7 +224,7 @@ module Argos
224
224
  technology: "argos",
225
225
  type: type,
226
226
  location: "file://"+filename,
227
- source: "#{sha1}"
227
+ source: "#{sha1}",
228
228
  }
229
229
 
230
230
  idbase = diag.clone
@@ -233,6 +233,7 @@ module Argos
233
233
 
234
234
  diag[:parser] = Argos.library_version
235
235
  diag[:id] = id
236
+ diag[:bundle] = bundle
236
237
  diag
237
238
  end
238
239
 
data/lib/argos/ds.rb CHANGED
@@ -17,9 +17,9 @@ module Argos
17
17
  class Ds < Array
18
18
  include Argos
19
19
 
20
- attr_writer :log, :filename
20
+ attr_writer :log, :filename, :bundle
21
21
 
22
- attr_reader :filename, :filter, :filtername, :valid, :filesize, :updated, :sha1, :messages, :multiplicates, :errors
22
+ attr_reader :bundle, :filename, :filter, :filtername, :valid, :filesize, :updated, :sha1, :messages, :multiplicates, :errors
23
23
 
24
24
  START_REGEX = /^\d{5} \d{5,6} +\d+ +\d+/
25
25
 
@@ -361,6 +361,7 @@ module Argos
361
361
 
362
362
  m[:parser] = Argos.library_version
363
363
  m[:id] = id
364
+ m[:bundle] = bundle
364
365
  m
365
366
  end
366
367
 
@@ -0,0 +1,3 @@
1
+ 09660 10783 3 3 K 3 1999-12-30 17:58:26 79.824 22.363 0.000 401649712
2
+ 1999-12-30 17:56:30 2 78 00 00
3
+ 1999-12-30 18:01:20 5 78 00 00
@@ -62,6 +62,7 @@ module Argos
62
62
  :location=>"file://"+VALID_DIAG,
63
63
  :id => "ea2243d95df7d70a02a4fb66bc8876f10fdabf12",
64
64
  :parser => "argos-ruby-#{Argos::VERSION}",
65
+ :bundle => nil,
65
66
  :source =>"f53ae3ab454f3e210347439aa440c084f775f9a4"}
66
67
  end
67
68
  end
@@ -64,7 +64,8 @@ module Argos
64
64
  :location,
65
65
  :source,
66
66
  :parser,
67
- :id]}
67
+ :id,
68
+ :bundle]}
68
69
  end
69
70
 
70
71
  it "should sort ascending on positioned, measured" do
@@ -91,7 +92,8 @@ module Argos
91
92
  :longitude=>22.319, :altitude=>0.0, :headers=>12,
92
93
  :measured=>"1999-12-30T18:43:52Z", :identical=>3, :sensor_data=>["78", "00", "00"],
93
94
  :technology=>"argos", :type=>"ds", :location=>"file://"+VALID_DS, :parser => "argos-ruby-#{Argos::VERSION}",
94
- :source=>"3a39e0bd0b944dca4f4fbf17bc0680704cde2994", :id=>"c78642c2bbfd4188df8940cd966b40cef33f2881"}]
95
+ :source=>"3a39e0bd0b944dca4f4fbf17bc0680704cde2994", :id=>"c78642c2bbfd4188df8940cd966b40cef33f2881",
96
+ :bundle=>nil}]
95
97
  end
96
98
  end
97
99
  end
@@ -114,6 +116,7 @@ module Argos
114
116
  :source=>"3a39e0bd0b944dca4f4fbf17bc0680704cde2994",
115
117
  :warn=>["missing-position", "sensors-count-mismatch"],
116
118
  :parser=>"argos-ruby-#{Argos::VERSION}",
119
+ :bundle=>nil,
117
120
  :id=>"e81e2f255b62fa88e20351de8d5b2de9bf6b3028"}]
118
121
  end
119
122
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: argos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-01-09 00:00:00.000000000 Z
13
+ date: 2014-01-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -37,6 +37,7 @@ extensions: []
37
37
  extra_rdoc_files: []
38
38
  files:
39
39
  - .gitignore
40
+ - Gemfile
40
41
  - LICENSE
41
42
  - README.md
42
43
  - argos-ruby.gemspec
@@ -52,6 +53,7 @@ files:
52
53
  - spec/argos/_diag/valid_2009-03-02_DB_DIAG.txt
53
54
  - spec/argos/_ds/990660_A.DAT
54
55
  - spec/argos/_ds/dup.ds
56
+ - spec/argos/_ds/fragment.ds
55
57
  - spec/argos/_ds/sensor_mismatch_ds.txt
56
58
  - spec/argos/diag_spec.rb
57
59
  - spec/argos/ds_spec.rb
@@ -83,4 +85,3 @@ signing_key:
83
85
  specification_version: 3
84
86
  summary: Argos satellite tracking data parsers
85
87
  test_files: []
86
- has_rdoc: