module BomRadarSites
BomRadarSites — Australian BOM weather radar catalog and nearest-site lookup. Public: SITES, nearest, find Depends: geo_lookup Tests: test/lib/bom_radar_sites_test.rb
Constants
- SITES
Public Instance Methods
Source
# File lib/bom_radar_sites.rb, line 147 def find(product_id) SITES.find { |site| site[:product_id] == product_id.to_s } end
Source
# File lib/bom_radar_sites.rb, line 151 def nearest(lat, lon) query = [lat.to_f, lon.to_f] covering = SITES.select do |site| GeoLookup.distance_km([site[:lat], site[:lon]], query) <= site[:range_km] end if covering.any? site = covering.min_by do |s| [GeoLookup.distance_km([s[:lat], s[:lon]], query), -s[:range_km], s[:product_id]] end return { site: site, edge: false } end site = SITES.min_by { |s| GeoLookup.distance_km([s[:lat], s[:lon]], query) } { site: site, edge: true } end