AgWeather API blueprint:
FORMAT: 1A

# UW-Madison Agricultural Weather Service API


# Group Degree Days

## index [/degree_days]

### List degree days for location [GET /degree_days{?lat,long,start_date,end_date,base,upper,method,units}]

+ Parameters
    + lat: `45.0` (number) - north latitude
    + long: `-90.0` (number) - west longitude
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + base: `50` (number, optional) - base temperature, Fahrenheit
    + upper: `86` (number, optional) - upper temperature limit, Fahrenheit
    + method: `sine` (string, optional) - degree day calculation method
    + units: `F` (string, optional) - temperature units (f/F or c/C)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + status (string)
        + info (object)
            + lat (number) - latitude of the request
            + long (number) - longitude of the request
            + start_date (string) - start date of the request
            + end_date (string) - end date of the request
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + base (string) - degree days base temp
            + upper (string, optional) - degree days upper cutoff temp
            + method (string) - degree days calculation method
            + units (string) - temperature units
            + min_value (number, nullable) - min daily degree days
            + max_value (number, nullable) - max daily degree days
            + total (number) - total degree days
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string) - observation date
                + min_temp (number) - daily low temp
                + max_temp (number) - daily high temp
                + avg_temp (number) - daily average temp
                + value (number) - daily degree day accumulation
                + cumulative_value (number) - cumulative degree days


### Download as csv [GET /degree_days.csv{?lat,long,args}]

+ Parameters
    + lat: `45.0` (number) - north latitude
    + long: `-90.0` (number) - west longitude
    + args (optional) - other params

+ Response 200 (text/csv)


## dd_table [/degree_days/dd_table]

### List multiple dd models for location [GET /degree_days/dd_table{?lat,long,start_date,end_date,models,units}]

+ Parameters
    + lat: `45.0` (number) - north latitude
    + long: `-90.0` (number) - west longitude
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + models: `dd_32,dd_50_86` (string, optional) - degree day models separated by commas
    + units: `F` (string, optional) - temperature units (f/F or c/C)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + status (string)
        + info (object)
            + lat (number) - latitude of the request
            + long (number) - longitude of the request
            + start_date (string) - start date of the request
            + end_date (string) - end date of the request
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + models (array) - degree days models returned
            + units (string) - temperature units
        + data (object)
            + (object, optional)
                + min_temp (number) - daily low temp
                + max_temp (number) - daily high temp
                + dd_32_none (object) - daily degree day accumulation
                    + value (number) - daily dd accumulation for this model
                    + total (number) - cumulative dds for this model
                + dd_50_86 (object) - cumulative degree days
                    + value (number) - daily dd accumulation for this model
                    + total (number) - cumulative dds for this model


## grid [/degree_days/grid]

### Return hash grid of values keyed by lat/long [GET /degree_days/grid{?model,base,upper,units,start_date,end_date,lat_range,long_range}]

+ Parameters
    + model: `dd_50` (string, optional) - degree day table column name
    + base: `-90.0` (number, optional) - base degree day threshold
    + upper: `86.0` (number, optional) - upper degree day threshold
    + units: `F` (string, optional) - temperature units (f/F or c/C)
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string) - start date of the request
            + end_date (string) - end date of the request
            + days_requested (number) - number of days requested
            + grid_points (number) - number of grid points returned
            + model (string) - description of degree day model
            + units (string) - temperature/degree day units
            + min_value (number, nullable) - minimum degree day value across grid
            + max_value (number, nullable) - maximum degree day value across grid
            + compute_time (number)
        + data (object)


## Degree Day map image [GET /degree_days/map{?date}]

Retrieve the map for a given date.

+ Parameters
    + date: `2020-01-01` (string) - the desired date

+ Response 200 (application/json; charset=utf-8)
    + Attributes
        + map: `url/for/map.png` (string)


## Degree Day Info [GET /degree_days/info]

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + dd_methods (array)
        + lat_range (array)
        + long_range (array)
        + date_range (array)
        + expected_days (number)
        + actual_days (number)
        + missing_days (array)
        + compute_time (number)


# Group Evapotranspirations

## index [/evapotranspirations]

### List evapotranspiration data for point and date range [GET /evapotranspirations{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number) - north latitude
    + long: `-90.0` (number) - west longitude
    + start_date: `2020-01-01` (string, optional) - start date, default 1st of year
    + end_date: `2020-10-10` (string, optional) - end date
    + units: `in` (string, optional) - either in or mm

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string)
            + lat (number)
            + long (number)
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + days_returned (number)
            + units (string)
            + min_value (number, nullable)
            + max_value (number, nullable)
            + total (number, nullable)
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string)
                + value (number)
                + cumulative_value (number)


### Download csv [GET /evapotranspirations.csv{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number) - north latitude
    + long: `-90.0` (number) - west longitude
    + start_date: `2020-01-01` (string) - start date
    + end_date: `2020-10-10` (string, optional) - end date
    + units: `in` (string, optional) - either in or mm

+ Response 200 (text/csv)


## grid [/evaptranspirations/grid]

### Return hash grid of values keyed by lat/long [GET /evapotranspirations/grid{?units,start_date,end_date,lat_range,long_range}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `in` (string, optional) - either in or mm

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string, optional) - start date of the data
            + end_date (string, optional) - end date of the data
            + date (string, optional) - date of the data (for single day)
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + grid_points (number) - number of grid points returned
            + units (string) - value units
            + min_value (number, nullable) - minimum value across grid
            + max_value (number, nullable) - maximum value across grid
            + compute_time (number)
        + data (object)

### Return csv of grid [GET /evapotranspirations/grid.csv{?units,start_date,end_date,lat_range,long_range}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `in` (string, optional) - either in or mm

+ Response 200 (text/csv)


## map [/evapotranspirations/map]

### Get map image url [GET /evapotranspirations/map{?date}]

Retrieve the ET map for a given date.

+ Parameters
    + date: `2020-01-01` (string) - the desired date

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
        + filename: `map.png` (string, nullable)
        + url: `url/for/map.png` (string, nullable)


## Evapotranspiration database info [GET /evapotranspirations/info]

Get parameter ranges available in the database

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + data_cols (array) - column names in database
        + lat_range (array) - min, max
        + long_range (array) - min, max
        + date_range (array) - min, max
        + expected_days (number)
        + actual_days (number)
        + missing_days (array)
        + compute_time (number)


# Group Insolations

## index [/insolations]

### Get insolation data for point and date range [GET /insolations{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `MJ` (string) - units, either MJ or KWh

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string, optional) - start date of the data
            + end_date (string, optional) - end date of the data
            + date (string, optional) - date of the data (for single day)
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + grid_points (number) - number of grid points returned
            + units (string) - value units
            + min_value (number, nullable) - minimum value across grid
            + max_value (number, nullable) - maximum value across grid
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string)
                + value (number)
                + cumulative_value (number)

### Download csv [GET /insolations.csv{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `MJ` (string) - units, either MJ or KWh

+ Response 200 (text/csv)


## grid [/insolations/grid]

### Return hash grid of values keyed by lat/long [GET /insolations/grid{?units,start_date,end_date,lat_range,long_range}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `MJ` (string, optional) - either MJ or KWh

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string, optional) - start date of the data
            + end_date (string, optional) - end date of the data
            + date (string, optional) - date of the data (for single day)
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + grid_points (number) - number of grid points returned
            + units (string) - value units
            + min_value (number, nullable) - minimum value across grid
            + max_value (number, nullable) - maximum value across grid
            + compute_time (number)
        + data (object)

### Return csv of grid [GET /insolations/grid.csv{?units,start_date,end_date,lat_range,long_range}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `MJ` (string, optional) - either MJ or KWh

+ Response 200 (text/csv)


## map [/insolations/map]

### Get map image url [GET /insolations/map{?date}]

+ Parameters
    + date: `2020-01-01` (string)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
        + filename: `map.png` (string, nullable)
        + url: `path/to/map.png` (string, nullable)


## Insolation database info [GET /insolations/info]

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + data_cols (array) - column names in database
        + lat_range (array) - min, max
        + long_range (array) - min, max
        + date_range (array) - min, max
        + expected_days (number)
        + actual_days (number)
        + missing_days (array)
        + compute_time (number)


# Group Pest Forecasts

## index [/pest_forecasts]

### Get data for point [GET /pest_forecasts{?lat,long,pest,start_date,end_date,units}]

+ Parameters
    + pest: potato_blight_dsv (string) - column name of pest data
    + lat: `45.0` - decimal latitude
    + long: `-89.0` - decimal longitude
    + start_date: `2020-01-01` (string, optional) - defaults to 7 days ago
    + end_date: `2020-10-10` (string, optional) - defaults to today
    + units: `f` (string, optional) - temperature units, either f/F or c/C

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string)
            + lat (number)
            + long (number)
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + days_returned (number)
            + pest (string)
            + units (object)
                + temp (string)
            + min_value (number, nullable)
            + max_value (number, nullable)
            + total (number, nullable)
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string)
                + min_temp (number)
                + max_temp (number)
                + avg_temp (number)
                + avg_temp_hi_rh (number, nullable)
                + hours_hi_rh (number)
                + value (number)
                + cumulative_value (number)

### Download csv [GET /pest_forecasts.csv{?lat,long,pest,start_date,end_date,units}]

+ Parameters
    + pest: `potato_blight_dsv` (string) - column name of pest data
    + lat: `45.0` - decimal latitude
    + long: `-89.0` - decimal longitude
    + start_date: `2020-01-01` (string, optional) - defaults to 7 days ago
    + end_date: `2020-10-10` (string, optional) - defaults to today
    + units: `f` (string, optional) - temperature units, either f/F or c/C

+ Response 200 (text/csv)


## grid [/pest_forecasts/grid]

### Return hash grid of values keyed by lat/long [GET /pest_forecasts/grid{?pest,start_date,end_date,lat_range,long_range}]

+ Parameters
    + pest: `potato_blight_dsv` (string) - column name of pest data
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string, optional) - start date of the data
            + end_date (string, optional) - end date of the data
            + date (string, optional) - date of the data (for single day)
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + grid_points (number) - number of grid points returned
            + pest (string) - name of data column
            + units (object)
                + temp (string) - weather units
            + min_value (number, nullable) - minimum value across grid
            + max_value (number, nullable) - maximum value across grid
            + compute_time (number)
        + data (object)

### Return csv of grid [GET /pest_forecasts/grid.csv{?pest,start_date,end_date,lat_range,long_range}]

+ Parameters
    + pest: `potato_blight_dsv` (string) - column name of pest data
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response

+ Response 200 (text/csv)


## map [/pest_forecasts/map]

### Get map image url [GET /pest_forecasts/map{?date}]

+ Parameters
    + date: `2020-01-01` (string)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
        + filename: `map.png` (string, nullable)
        + url: `path/to/map.png` (string, nullable)


## pvy [/pest_forecasts/pvy]

### Get pvy degree day model [GET /pest_forecasts/pvy{?lat,long,end_date}]

Returns total degree days for pvy model plus one week forecast

+ Parameters
    + lat: `45` (number) - north latitude
    + long: `-90` (number) - west longitude
    + end_date: `2020-10-10` (string, optional) - defaults to today

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + model (string)
            + lat (number)
            + long (number)
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + days_returned (number)
            + status (string)
            + compute_time (number)
        + current_dds (number, nullable)
        + future_dds (number, nullable)
        + data (array)
            + (object, optional)
                + date (string)
                + dd (number)
                + cum_dd (number)
        + forecast (array)
            + (object, optional)
                + date (string)
                + dd (number)
                + cum_dd (number)

## Pest forecast database info [GET /pest_forecasts/info]

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + pest_names (array) - list available pest names
        + lat_range (array) - min, max
        + long_range (array) - min, max
        + date_range (array) - min, max
        + actual_days (number) - days in database
        + missing_days (array)
        + compute_time (number)


# Group Precipitations

## index [/precips]

### Get precip data for point and date range [GET /precips{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `mm` (string, optional) - units, either mm or in

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string)
            + lat (number)
            + long (number)
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + days_returned (number)
            + units (string)
            + min_value (number, nullable)
            + max_value (number, nullable)
            + total (number, nullable)
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string)
                + value (number)
                + cumulative_value (number)

### Download csv [GET /precips.csv{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `mm` (string, optional) - units, either mm or in

+ Response 200 (text/csv)


## grid [/precips/grid]

### Return hash grid of values keyed by lat/long [GET /precips/grid{?start_date,end_date,lat_range,long_range,units}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `mm` (string, optional) - units, either mm or in

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string, optional) - start date of the data
            + end_date (string, optional) - end date of the data
            + date (string, optional) - date of the data (for single day)
            + days_requested (number) - number of days requested
            + days_returned (number) - number of days of data returned
            + grid_points (number) - number of grid points returned
            + units (string) - value units
            + min_value (number, nullable) - minimum value across grid
            + max_value (number, nullable) - maximum value across grid
            + compute_time (number)
        + data (object)

### Return csv of grid [GET /precips/grid.csv{?start_date,end_date,lat_range,long_range,units}]

+ Parameters
    + pest: `potato_blight_dsv` (string) - column name of pest data
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `mm` (string, optional) - units, either mm or in

+ Response 200 (text/csv)


## map [/precips/map]

### Get map image url [GET /precips/map{?date}]

+ Parameters
    + date: `2020-01-01` (string)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
        + filename: `map.png` (string, nullable)
        + url: `path/to/map.png` (string, nullable)


## Precipitation database info [GET /precips/info]

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + data_cols (array) - column names in database
        + lat_range (array) - min, max
        + long_range (array) - min, max
        + value_range (array) - min, max
        + date_range (array) - min, max
        + expected_days (number)
        + actual_days (number)
        + missing_days (array)
        + compute_time (number)


# Group Weather

## index [/weather]

### Get precip data for point and date range [GET /weather{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `f` (string, optional) - units, either f/F or c/C

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string)
            + lat (number)
            + long (number)
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + days_returned (number)
            + units (object)
                + temp (string)
                + pressure (string)
                + rh (string)
            + compute_time (number)
        + data (array)
            + (object, optional)
                + date (string)
                + min_temp (number)
                + max_temp (number)
                + avg_temp (number)
                + dew_point (number)
                + vapor_pressure (number)
                + min_rh (number)
                + max_rh (number)
                + avg_rh (number)
                + hours_rh_over_90 (number)
                + avg_temp_rh_over_90 (number)
                + frost (boolean)
                + freezing (boolean)


### Download csv [GET /weather.csv{?lat,long,start_date,end_date,units}]

+ Parameters
    + lat: `45.0` (number)
    + long: `-90.0` (number)
    + start_date: `2021-01-01`
    + end_date: `2021-10-10`
    + units: `f` (string, optional) - units, either f/F or c/C

+ Response 200 (text/csv)


## grid [/weather/grid]

### Return hash grid of values keyed by lat/long [GET /weather/grid{?date,lat_range,long_range,units}]

+ Parameters
    + date: `2020-10-10` (string, optional) - default: current date
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `f` (string, optional) - units, either f or c

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + date (string) - date of the data
            + days_requested (number) - number of days requested
            + lat_range (string) - latitude range given
            + long_range (string) - longitude range given
            + grid_points (number) - number of grid points returned
            + units (object)
                + temp (string)
                + pressure (string)
                + rh (string)
            + compute_time (number)
        + data (object)

### Return csv of grid [GET /weather/grid.csv{?start_date,end_date,lat_range,long_range,units}]

+ Parameters
    + date: `2020-10-10` (string, optional) - default: current date
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response
    + units: `f` (string, optional) - units, either f or c

+ Response 200 (text/csv)


## grid [/weather/freeze_grid]

### Return hash grid of values keyed by lat/long [GET /weather/freeze_grid{?start_date,end_date,lat_range,long_range}]

+ Parameters
    + start_date: `2020-01-01` (string, optional) - the start date (default: first of year)
    + end_date: `2020-10-10` (string, optional) - end date (default: current date)
    + lat_range: `45.0,50.0` (string, optional) - rescrict latitude range in response
    + long_range: `-90.0,-85.0` (string, optional) - restrict longitude range in response

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
            + status (string) - status of request
            + start_date (string)
            + end_date (string)
            + days_requested (number)
            + lat_range (string)
            + long_range (string)
            + grid_points (number)
            + units (string)
            + compute_time (number)
        + data (object)


## map [/weather/map]

### Get map image url [GET /weather/map{?date}]

+ Parameters
    + date: `2020-01-01` (string)

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + info (object)
        + filename: `map.png` (string, nullable)
        + url: `path/to/map.png` (string, nullable)


## Weather database info [GET /precips/info]

+ Response 200 (application/json; charset=utf-8)
    + Attributes (object)
        + data_cols (array) - column names in database
        + lat_range (array) - min, max
        + long_range (array) - min, max
        + value_range (array) - min, max
        + date_range (array) - min, max
        + expected_days (number)
        + actual_days (number)
        + missing_days (array)
        + compute_time (number)