Module: Cdss::WaterRights

Includes:
Utils
Included in:
Client
Defined in:
lib/cdss/water_rights.rb

Overview

Provides methods for accessing water rights data from the CDSS API.

This module includes functionality for retrieving water rights net amounts and transactions data based on various spatial and attribute-based searches.

Instance Method Summary collapse

Methods included from Utils

#batch_dates, #build_query, #fetch_paginated_data, #format_date, #format_query_param, #parse_timestamp, #safe_float, #safe_integer

Instance Method Details

#get_water_rights_net_amounts(aoi: nil, radius: nil, county: nil, division: nil, water_district: nil, wdid: nil) ⇒ Array<WaterRight>

Fetches water rights net amounts data based on various filtering criteria.

Parameters:

  • aoi (Hash, Array, nil) (defaults to: nil)

    Area of interest for spatial searches. If hash, must contain :latitude and :longitude keys. If array, must contain [longitude, latitude].

  • radius (Integer, nil) (defaults to: nil)

    Radius in miles for spatial search around aoi. Defaults to 20 if aoi is provided.

  • county (String, nil) (defaults to: nil)

    County name to filter rights.

  • division (Integer, nil) (defaults to: nil)

    Water division number to filter rights.

  • water_district (Integer, nil) (defaults to: nil)

    Water district number to filter rights.

  • wdid (String, nil) (defaults to: nil)

    WDID code of water right.

Returns:

  • (Array<WaterRight>)

    Array of water right objects with net amounts.

Raises:

  • (ArgumentError)

    If aoi parameter is provided but invalid.



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

def get_water_rights_net_amounts(aoi: nil, radius: nil, county: nil, division: nil, water_district: nil, wdid: nil)
  query = {
    format: "json",
    dateFormat: "spaceSepToSeconds",
    units: "miles",
    county: county,
    division: division,
    waterDistrict: water_district,
    wdid: wdid
  }
  query.merge!(process_aoi(aoi, radius)) if aoi
  fetch_paginated_data(
    endpoint: "/waterrights/netamount/",
    query: query
  ) { |data| Parser.parse_water_rights(data, type: :net_amount) }
end

#get_water_rights_transactions(aoi: nil, radius: nil, county: nil, division: nil, water_district: nil, wdid: nil) ⇒ Array<WaterRight>

Fetches water rights transactions data based on various filtering criteria.

Parameters:

  • aoi (Hash, Array, nil) (defaults to: nil)

    Area of interest for spatial searches. If hash, must contain :latitude and :longitude keys. If array, must contain [longitude, latitude].

  • radius (Integer, nil) (defaults to: nil)

    Radius in miles for spatial search around aoi. Defaults to 20 if aoi is provided.

  • county (String, nil) (defaults to: nil)

    County name to filter transactions.

  • division (Integer, nil) (defaults to: nil)

    Water division number to filter transactions.

  • water_district (Integer, nil) (defaults to: nil)

    Water district number to filter transactions.

  • wdid (String, nil) (defaults to: nil)

    WDID code of water right.

Returns:

  • (Array<WaterRight>)

    Array of water right objects with transactions.

Raises:

  • (ArgumentError)

    If aoi parameter is provided but invalid.



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/cdss/water_rights.rb', line 50

def get_water_rights_transactions(aoi: nil, radius: nil, county: nil, division: nil, water_district: nil, wdid: nil)
  query = {
    format: "json",
    dateFormat: "spaceSepToSeconds",
    units: "miles",
    county: county,
    division: division,
    waterDistrict: water_district,
    wdid: wdid
  }
  query.merge!(process_aoi(aoi, radius)) if aoi
  fetch_paginated_data(
    endpoint: "/waterrights/transaction/",
    query: query
  ) { |data| Parser.parse_water_rights(data, type: :transaction) }
end