Method: Argos::Ascii.source

Defined in:
lib/argos/ascii.rb

.source(argos) ⇒ Hash

Source fingerprint of Argos file (sha1 hash, segment and document counts, etc.)



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/argos/ascii.rb', line 70

def self.source(argos)
  
  argos.parse(argos.filename)
  
  latitude_mean = longitude_mean = nil
  if argos.latitudes.any?
    latitude_mean = (argos.latitudes.inject{ |sum, latitude| sum + latitude } / argos.latitudes.size).round(3)
  end
  if argos.longitudes.any?
    longitude_mean = (argos.longitudes.inject{ |sum, longitude| sum + longitude } / argos.latitudes.size).round(3)
  end
  
  
  source = {
    id: argos.source,
    technology: "argos",
    collection: "tracking",
    type: argos.type,
    programs: argos.programs,
    platforms: argos.platforms,
    start: argos.start,
    stop: argos.stop,
    north: argos.latitudes.max,
    east: argos.longitudes.max,
    south: argos.latitudes.min,
    west: argos.longitudes.min,
    latitude_mean: latitude_mean,
    longitude_mean: longitude_mean,
    file: "file://"+argos.filename,
    bytes: argos.filesize,
    modified: argos.updated.utc.iso8601,
    messages: argos.messages.size,
    filter: argos.filtername.nil? ? argos.filter : argos.filtername,
    size: argos.size,
    parser: Argos.library_version
  }
  if argos.multiplicates.any?
    source[:multiplicates] = argos.multiplicates.map {|a| a[:id]}
  end
  if argos.errors.any?
    source[:errors] = argos.errors
  end
  source
  
end