argos-ruby 1.0.3 → 1.0.4

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.
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: