This project now supports USNO Rise/Set/Transit Form B (Locations Worldwide). Notes on usage can be found below.
Installation
Add this line to your application's Gemfile:
gem 'usno-transit'
And then execute:
$ bundle
Or install it yourself as:
$ gem install usno-transit
Usage (US Locations)
require "usno/transit"
USNO::Transit::Sun.new(city: "Birmingham", state: "AL").call.data
the output of the above call will look something like the following
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Rise/Set/Transit Table</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<pre>
Sun
BIRMINGHAM, ALABAMA
Location: W 86°48'36.0", N33°31'48.0", 0m
(Longitude referred to Greenwich meridian)
Time Zone: 6h 00m west of Greenwich
Date Begin Rise Az. Transit Alt. Set Az. End
(Zone) Civil Civil
Twilight Twilight
h m h m ° h m ° h m ° h m
2013 Nov 17 (Sun) 05:54 06:21 113 11:32 37S 16:43 247 17:10
2013 Nov 18 (Mon) 05:55 06:22 113 11:33 37S 16:43 247 17:09
2013 Nov 19 (Tue) 05:56 06:23 113 11:33 37S 16:42 247 17:09
2013 Nov 20 (Wed) 05:57 06:24 113 11:33 37S 16:42 247 17:09
2013 Nov 21 (Thu) 05:58 06:25 114 11:33 36S 16:42 246 17:08
</pre>
<p><a href="javascript:history.go(-1)">Back to form</a></p>
</body>
</html>
Usage (US Locations)
require "usno/transit"
# Just override the default :request_class options and provide a longitude/latitude
# For a more precise location, you can provide :long_minutes, :lat_minutes,
# :long_seconds, and :lat_seconds
USNO::Transit::Sun.new(lat: 0, long: 0, request_class: USNO::Transit::WorldwideRequest).call.data
The output from the above command should return something like the following
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Rise/Set/Transit Table</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<pre>
Sun
Location: 0°00'00.0", 0°00'00.0", 0m
(Longitude referred to Greenwich meridian)
Time Zone: Greenwich
Date Begin Rise Az. Transit Alt. Set Az. End
(Zone) Civil Civil
Twilight Twilight
h m h m ° h m ° h m ° h m
2013 Nov 24 (Sun) 05:21 05:43 111 11:47 69S 17:50 249 18:12
2013 Nov 25 (Mon) 05:21 05:43 111 11:47 69S 17:51 249 18:13
2013 Nov 26 (Tue) 05:22 05:44 111 11:47 69S 17:51 249 18:13
2013 Nov 27 (Wed) 05:22 05:44 111 11:48 69S 17:51 249 18:14
2013 Nov 28 (Thu) 05:22 05:44 111 11:48 69S 17:52 249 18:14
</pre>
<p><a href="javascript:history.go(-1)">Back to form</a></p>
</body>
</html>
Other USNO libraries
usno-imagery builds URLs for consuming USNO's imagery data services. These services provide synthetic views of earth and other selected solar system bodies.
Contributing
If anyone wants to have a go at parsing the text/html output into JSON and/or CSV format (for graphing purposes), have at it! If not, I'll get to it soon enough :)
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request