New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

knmi

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

knmi

  • 0.3.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

knmi

Ruby API to access Royal Netherlands Meteorological Institute daily climate data Access climatological data as provided by the Royal Netherlands Meteorological Institute through the http get forms for daily and hourly data

  • http://www.knmi.nl/climatology/daily_data/getdata_day.cgi
  • http://www.knmi.nl/klimatologie/uurgegevens/getdata_uur.cgi

This gem was constructed using information from the KNMI climate data pages here.

Installation

gem install httparty
gem install geokit

gem install knmi

Example Usage

Launch console e.g. irb at the command line

Quick Script

require 'knmi'

station = KNMI.station_by_id(235)
parameters = KNMI.parameters(period = "daily", params = nil, categories = ["TEMP", "WIND"])
starts = Time.utc(2010, 6, 28) # 2010 April 28th
ends = Time.utc(2010, 6, 29) # 2010 April 29th
request = KNMI.get_data(station, parameters, starts, ends)
data = KNMI.convert(parameters, request)

Elaborated Script

require 'knmi'

# Get station object by station ID
station = KNMI.station_by_id(235)

station
#=> #<KNMI::Station:0x0000010133c938> # A struct object

# Available Instance Variables
station.instance_variables
#=> [:@id, :@name, :@elevation, :@photo, :@map, :@web, :@instrumentation, :@coordinates]
station.id
#=> 235
station.name
#=>"De kooy"
station.coordinates
#=> 52.924,4.785


# Get parameter object at the time interval you wish to use "hourly" or "daily"
# Params can be a single term or an array of terms such as "TG" or ["TG", TX]
# Categories can be a single term or an array of terms such as "WIND" or ["WIND", "TEMP"]
parameters = KNMI.parameters(period = "daily", params = nil, categories = ["TEMP", "WIND"])

parameters # returns an array of parameter objects
#=> [#<KNMI::Parameters:0x000001011387e0 @parameter="TX", @category="TEMP", @description="Maximum Temperature", @validate="n.integer?", @conversion="n / 10", @units="C", @period="daily">]

# Available Instance Variables
parameters[0].instance_variables
#=>[:@parameter, :@category, :@description, :@validate, :@conversion, :@units, :@period]

parameters[0].parameter
#=> "TX"


# Define Time period of interest
starts = Time.utc(2010, 6, 28) 	# 2010 April 28th
ends = Time.utc(2010, 7, 01) 		# 2010 April 29th

# Get Data using previously retrieved objects
request = KNMI.get_data(station, parameters, starts, ends)

# Available Instance Variables
request.instance_variables
#=> [:@query, :@data]

request.query
#=>["stns=235", "vars=TX", "start=20100628", "end=20100629"]

request.data
#=>[{:STN=>"235", :YYYYMMDD=>"20100628", :TX=>"263"}, {:STN=>"235", :YYYYMMDD=>"20100629", :TX=>"225"}]

request.data[0]
#=>{:STN=>"235", :YYYYMMDD=>"20100628", :TX=>"263"}


# Convert data from storage format to operating format
data = KNMI.convert(parameters, request)

Available Parameters

All available recorded parameters can be found in the file .data/data_key.yml This file contains the parameter name, category, description, a script to validate the data, a script to convert the data to to appropriate units, units, and the appropriate period.

Daily Data

ParameterCategoryDescription
YYYYMMDDTime Stamp
DDVECWINDWind Direction
FHVECWINDVector Mean Wind Speed
FGWINDDaily Mean Wind Speed
FHXWINDMaximum Hourly Mean Windspeed
FHXHWINDHourly Division at Which Maximum Wind Speed Was Measured
FHNWINDMinimum Hourly Mean Windspeed
FHNHWINDHourly Division at Which Minimum Wind Speed Was Measured
FXXWINDMaximum Instantaneous Wind Speed
FXXHWINDHourly Division at Which Maximum Instantaneous Wind Speed Was Measured
TGTEMPDaily Mean Temperature
TNTEMPMinimum Temperature
TNHTEMPHourly Division in Which Minimum Temperature Was Measured
TXTEMPMaximum Temperature
TXHTEMPHourly Division in Which Maximum Temperature Was Measured
T10NTEMPMinimum Temperature at 10 Cm Above Surface
T10NHTEMPSix Hourly Division at Which Minimum Temperature at 10 Cm Above Surface Was Measured
SQRADTSunshine Duration
SPRADTPercent of Maximum Sunshine Duration
QRADTGlobal Radiation
DRPRCPPrecipitation Duration
RHPRCPDaily Precipitation
RHXPRCPMaximum Hourly Precipitation
RHXHPRCPHourly Division in Which Maximum Hourly Precipitation Was Measured
EV24ATMSPotential Evapotranspiration
PGATMSDaily Mean Sea Level Pressure
PXATMSMaximum Hourly Sea Level Pressure
PXHATMSHourly Division on Which Maximum Hourly Sea Level Pressure Was Measured
PNATMSMinimum Hourly Sea Level Pressure
PNHATMSHourly Division in Which Minimum Hourly Sea Level Pressure Was Measured
VVNVISBMinimum Visibility
VVNHVISBHourly Division in Which Minimum Visibility Was Measured
VVXVISBMaximum Visibility
VVXHVISBHourly Division in Which Maximum Visibility Was Measured
NGVISBMean Daily Cloud Cover
UGATMSDaily Mean Relative Humidity
UXATMSMaximum Relative Humidity
UXHATMSHourly Division in Which Maximum Relative Humidity Was Measured
UNATMSMinimum Relative Humidity
UNHATMSHourly Division in Which Minimum Relative Humidity Was Measured

Hourly Data

ParameterCategoryDescription
YYYYMMDDTime Stamp
HHHour
DDWINDMean wind direction during the 10-minute period preceding the time of observation
FHWINDHourly mean wind speed
FFWINDMean wind speed
FXWINDMaximum wind gust
TTEMPAir Temperature at 1.5 m
T10NTEMPMinimum Air Temperature at 10 cm in the preceding 6 hours
TDTEMPDew Point Temperature
SQRDTNSunshine Duration
QRDTNGolbal Radiation
DRPRCPPrecipitation Duration
RHPRCPPrecipitation
PATMSAir Pressure
VVVISBVisibility
NVISBCloud Cover
UATMSRelative Humidity
MWTHRFog
RWTHRRainfall
SWTHRSnow
OWTHRThunder
YWTHRIce
WWWTHRWeather Code

TODO

Write unit tests for lib/calculations/calculations.rb

Please Note the license included in the header source header

# DEZE GEGEVENS MOGEN VRIJ WORDEN GEBRUIKT MITS DE VOLGENDE BRONVERMELDING WORDT GEGEVEN:
# KONINKLIJK NEDERLANDS METEOROLOGISCH INSTITUUT (KNMI)
#
# THESE DATA CAN BE USED FREELY PROVIDED THAT THE FOLLOWING SOURCE IS ACKNOWLEDGED:
# ROYAL NETHERLANDS METEOROLOGICAL INSTITUTE

Copyright (c) 2011 Patrick Galvin Schmitz p.schmitz@gmail.com. See LICENSE.txt for further details.

FAQs

Package last updated on 19 May 2011

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc