Class: KNMI::HttpService

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/knmi/httpservice.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(properties) ⇒ HttpService

Returns a new instance of HttpService.



144
145
146
147
148
# File 'lib/knmi/httpservice.rb', line 144

def initialize(properties)
  @query, @data = %w(query data).map do |p|
    properties[p]
  end
end

Instance Attribute Details

#dataArray<Hash> (readonly)

Parsed HTTP request

Examples:

KNMI::HttpService.get_daily(station, parameter).data
=>[{:STN=>"235", :YYYYMMDD=>"20100628", :TX=>"263"}, {:STN=>"235", :YYYYMMDD=>"20100629", :TX=>"225"}]

Returns:

  • (Array<Hash>)
    • array of hashes which contains climate data in storage(integer) format



142
143
144
# File 'lib/knmi/httpservice.rb', line 142

def data
  @data
end

#queryArray<string> (readonly)

Returns query string used in HTTP get request

Examples:

KNMI::HttpService.get_daily(station, parameter).query
=>[ "stns=210", "vars=ALL", "start=2011051500", "end=2011051613"]

Returns:

  • (Array<string>)
    • array of strings which contains the components used in the HTTP request



134
135
136
# File 'lib/knmi/httpservice.rb', line 134

def query
  @query
end

Class Method Details

.get_daily(station_object, parameters_object, starts = nil, ends = nil, seasonal = false) ⇒ KNMI::HttpService

Requests Daily data

Parameters:

  • station_object (KNMI::Station)
    • Station Object

  • parameter_object (KNMI::Parameters)
    • Parameter Object

  • starts (Time) (defaults to: nil)
    • Time Object

  • ends (Time) (defaults to: nil)
    • Time Object

  • seasonal (Boolean) (defaults to: false)

Returns:



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/knmi/httpservice.rb', line 17

def get_daily(station_object, parameters_object, starts = nil, ends = nil, seasonal = false)
  # select YYYYMMDD (drops hour term)
  query = [station(station_object),  parameters(parameters_object), 
           start_date(starts)[0..13], end_date(ends)[0..11],
           seasonal(seasonal)].compact
  result = get('http://www.knmi.nl/climatology/daily_data/getdata_day.cgi', { :query => "#{query * "&"}" } )
  
  data = parse(station_object, parameters_object, result)
  
  return new({"query" => query, "data" => data})
end

.get_hourly(station_object, parameters_object, starts = nil, ends = nil, seasonal = false) ⇒ KNMI::HttpService

Requests Hourly data

Parameters:

  • station_object (KNMI::Station)
    • Station Object

  • parameter_object (KNMI::Parameters)
    • Parameter Object

  • starts (Time) (defaults to: nil)
    • Time Object

  • ends (Time) (defaults to: nil)
    • Time Object

  • seasonal (Boolean) (defaults to: false)

Returns:



38
39
40
41
42
43
44
45
46
47
# File 'lib/knmi/httpservice.rb', line 38

def get_hourly(station_object, parameters_object, starts = nil, ends = nil, seasonal = false)
  query = [station(station_object),  parameters(parameters_object), 
           start_date(starts), end_date(ends),
           seasonal(seasonal)].compact
  result = get('http://www.knmi.nl/klimatologie/uurgegevens/getdata_uur.cgi', { :query => "#{query * "&"}" } )
  
  data = parse(station_object, parameters_object, result)
  
  return new({"query" => query, "data" => data})
end