Module: Usgs::DailyValues

Includes:
Utils
Included in:
Client
Defined in:
lib/usgs/daily_values.rb

Instance Method Summary collapse

Methods included from Utils

#format_date, #format_datetime, #resolve_parameter_codes

Instance Method Details

#get_dv(sites:, parameter_cd: nil, start_date: nil, end_date: nil) ⇒ Array<Usgs::Models::Reading>

Fetch daily values (DV) from USGS NWIS

Examples:

Most recent year

Usgs.client.get_dv(sites: "06754000", parameter_cd: :discharge)

Full POR

Usgs.client.get_dv(sites: "06754000", parameter_cd: :discharge, start_date: "1900-01-01")

Parameters:

  • sites (String, Array<String>)

    USGS site ID(s)

  • parameter_cd (Symbol, String, Array) (defaults to: nil)

    e.g. :discharge

  • start_date (Date, String, nil) (defaults to: nil)

    Start date — defaults to 10 years ago if omitted

  • end_date (Date, String, nil) (defaults to: nil)

    End date — defaults to today

Returns:



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/usgs/daily_values.rb', line 22

def get_dv(sites:, parameter_cd: nil, start_date: nil, end_date: nil)
  site_list  = Array(sites).join(",")
  param_list = resolve_parameter_codes(parameter_cd)

  query = {
    format: "json",
    sites: site_list,
    parameterCd: param_list,
    startDT: format_date(start_date || (Time.now.utc - (48 * 60 * 60))),
    endDT: format_date(end_date || Time.now.utc)
  }.compact

  response = api_get("/dv/", query)
  Parser.parse_time_series_values(JSON.parse(response.body))
end