1 <% #include "html.h" %>
3 <% /* Global functions */ %>
4 <% void print_header(void) { %>
5 Content-Type: text/html; charset=UTF-8
9 <% void print_nav(const page_t *page, const page_t *cur) { %>
10 <% const char *class = page == cur ? " class=\"cur\"" : ""; %>
11 <a href="<%= page->link %>"<%= class %>><%= page->name %></a>
14 <% void print_screen(char *name) { %>
15 <a href="screens/<%= name %>.png">
16 <img src="screens/<%= name %>_s.jpg" alt="<%= name %>" class="screen" />
20 <% void print_page(const page_t *page) { %>
21 <?xml version="1.0" encoding="UTF-8"?>
22 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
23 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
25 <title>AWeather<% if (page->name) printf(" - %s", page->name); %></title>
26 <link rel="shortcut icon" href="images/aweather.ico" />
27 <link href="data/global.css" rel="stylesheet" type="text/css" />
28 <meta http-equiv="X-UA-Compatible" content="IE=9" />
29 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
30 <meta name="keywords" content="weather, radar, nexrad, level-ii, virtual globe, grits, rsl" />
31 <% if (page->desc) { %>
32 <meta name="description" content="<%= page->desc %>" />
34 <meta name="google-site-verification" content="-SZkTpNRWHrpESTGNZ8Pshnz4zKbwfKv54NoavUKK_Y" />
35 <meta name="y_key" content="abe8287921b25151" />
39 <a href="."><img class="logo" src="images/logo.png" alt="AWeather" /></a>
40 <h1 class="title"><a href=".">AWeather</a></h1>
42 <% for (int i = 0; header[i].link; i++) print_nav(&header[i], page); %>
43 <span class="sep"></span>
44 <% for (int i = 0; other[i].link; i++) print_nav(&other[i], page); %>
49 <p class="msg">This site is currently under construction.</p>
50 <p class="msg" style="font-size:8pt; font-weight:normal;">
51 If I had an animated GIF of a guy with a shovel, I would put it here.</p>
54 <div style="clear:both;"></div>
57 Copyright © 2011 Andy Spencer
58 <% for (int i = 0; footer[i].link; i++) { %>
59 | <% print_nav(&footer[i], page); %>
66 <% /* Normal Pages */ %>
67 <% void print_about(void) { %>
69 AWeather is a free/open source application which has been
70 designed to integrate and visualize high-quality meteorological
71 data using an interactive Virtual Globe interface suitable for
72 a wide range of users including weather enthusiasts, academics,
75 It is designed to provide more information than is typically
76 available from weather widgets and simple desktop applications.
77 At the same time, it strives to be simpler and easier to use
78 than existing meteorological software packages such as GEMPAK
87 <li>High quality data sources<ul>
88 <li>Level-II archives</li>
89 <li>Conus NEXRAD imagery</li>
90 <li>Volume display of dBZ iso surfaces</li>
92 <li>Virtual Globe base rendering<ul>
93 <li>Including terrain, satellite, and map imagery</li>
95 <li>Real-time and offline mode</li>
96 <li>Auto-updating</li>
97 <li>Fullscreen mode</li>
103 <li>Additional data sources<ul>
104 <li>Watch/warning/advisory boxes</li>
105 <li>Surface data (temp., humidity, etc)</li>
107 <li>Derived NEXRAD data<ul>
108 <li>Storm relative motion</li>
109 <li>Compost reflective</li>
112 <li>Vertical cross sections</li>
117 <div style="clear:both;"></div>
119 <p>AWeather is free software licensed under the terms of the
120 <a href="http://www.gnu.org/licenses/gpl.html">GNU GPL</a>.
121 As such, it can be used by any individuals or organizations
122 without any license fees or royalties.</p>
125 <% void print_news(void) { %>
126 <!-- It's not really spring anymore :/ -->
127 <!-- <p class="quote">Now that it's spring again, progress on AWeather is continuing.</p> -->
131 AWeather 0.5.2 released: <ul>
132 <li>Added new desktop icons</li>
133 <li>Miscellaneous bug fixes</li>
135 Improved organization of the <a href="<%= WIKI_INDEX %>">Wiki</a>
140 AWeather 0.5.1 released: <ul>
141 <li>Bugfix release</li>
142 <li>Updated sat/map/elev to provide better data</li>
143 <li>First release with <a href="<%= DEBIAN_HOME %>">Debian</a>,
144 and <a href="<%= UBUNTU_HOME %>">Ubuntu</a> packages</li>
150 AWeather 0.5 released: <ul>
151 <li>Support for volume rendering (isosurfaces)</li>
152 <li>Automatic updating</li>
153 <li>Fullscreen mode</li>
154 <li>Dropped GtkGLExt</li>
157 <li>Added additional radars</li>
158 <li>Fixed lots of bugs</li>
159 <li>General code cleanup</li>
160 <li>Available from <a href="files/">files</a> directory
161 and <a href="<%= GW_RSL %>">git</a></li>
163 <b>Update:</b> AWeather 0.5 is also compatible with the
164 newly released RSL v1.41
168 <dd>Started work on this new website. Lots of progress in AWeather as well:<ul>
169 <li>Merged support for isosurfaces to the main branch (Finally!)</li>
170 <li>Added an option to automatically refresh after a timeout</li>
171 <li>New fullscreen mode</li>
174 <p class="note">See also: <a href="oldnews">Older news</a>,
175 <a href="<%= GW_AWEATHER %>">gitweb</a></p>
178 <% void print_oldnews(void) { %>
179 < <a href="news">News</a>
182 <dd>AWeather 0.4.1:<ul>
183 <li>Win32 fixes and improved debug support</li>
184 <li>Fix bug with daylight savings time</li>
185 <li>Function to clear old cache entries</li>
189 <dd>AWeather 0.4:<ul>
190 <li>Conus radar images</li>
191 <li>Multiple radars support</li>
192 <li>Gentoo, Ubuntu, MS Windows and source packages are available</li>
196 <dd>AWeather 0.3.0 released, based on libgis but still rather
200 <dd>AWeather 0.2.3 (maintenance release).<br/>
201 Added a Application menu entry and a few build/runtime fixes.</dd>
204 <dd>The source repository has been migrated to Git. A lot of
205 progress is being made on libgis, which is now able to display
206 a virtual globe using data from NASA servers.</dd>
210 <% void print_screenshots(void) { %>
212 AWeather provides a consistent user interface that allows the
213 user to zoom in from a high level view of the entire Earth down
214 to regional and mesoscale views.
219 <% print_screen("synop"); %>
220 High level view using Grits
223 <% print_screen("region"); %>
224 Regional view over the midwest
227 <% print_screen("meso"); %>
228 Mesoscale view of a tornadic system
231 <% print_screen("iso"); %>
232 Close up showing a 52.5 dBZ isosurface
237 <% void print_download(void) { %>
238 <h2>Stable releases</h2>
240 While AWeather won't be considered stable until version 1.0,
241 these are as close to stable as you can get until then
244 <li class="linux"><dl class="inline">
247 <a href="files/aweather-<%= VERSION %>.tar.gz">aweather-<%= VERSION %>.tar.gz</a>,
248 <a href="../grits/grits-<%= VERSION %>.tar.gz">grits-<%= VERSION %>.tar.gz</a>,
249 <a href="files/rsl-1.40.tar.gz">rsl-1.40.tar.gz</a>
253 <dd><span class="code">emerge sci-geosciences/aweather</span> from the sunrise overlay</dd>
256 <dd><span class="code">apt-get install aweather</span> from Debian sid</dd>
259 <dd><span class="code">apt-get install aweather</span> from Ubuntu Oneiric</dd>
261 (Arch packages still have bugs)
263 <dd>Available from the AUR</dd>
266 <li class="windows"><dl class="inline">
268 <dd><a href="files/aweather-<%= VERSION_WIN32 %>-gtk.exe">aweather-<%= VERSION_WIN32 %>-gtk.exe</a>
269 (Use this unless you know what you're doing)</dd>
272 <dd><a href="files/aweather-<%= VERSION_WIN32 %>.exe">aweather-<%= VERSION_WIN32 %>.exe</a></dd>
274 <li class="macos" style="padding-top: .8em; padding-bottom: .8em"><dl class="inline">
276 <dd>Coming soon (Mac OS developer? <a href="/code/issues/1">Help out</a>)</dd>
280 <h2>Unstable releases</h2>
281 <p class="note">Pre-releases, betas, and other hazardous software</p>
282 <div style="margin-left: 30px;">
283 <p>Check out the <a href="files">files</a> directory for any potential updates</p>
284 <p>Pre-releases are labeled with a -p0 and are mainly built for testing the Windows packages</p>
287 <h2>Development code</h2>
289 Development code is available from Git
291 <a href="<%= GW_AWEATHER %>">AWeather</a>,
292 <a href="<%= GW_GRITS %>">Grits</a>,
293 <a href="<%= GW_RSL %>">RSL</a>)
295 <div style="margin-left: 30px;">
296 <div class="code">git clone <%= GIT_AWEATHER %></div>
297 <div class="code">git clone <%= GIT_GRITS %></div>
298 <div class="code">git clone <%= GIT_RSL %></div>
302 <% void print_development(void) { %>
303 <!-- Open source mumbo jumbo.. -->
305 <p class="note" style="clear: both;">
306 The AWeather <a href="<%= WIKI_INDEX %>">development wiki</a>
307 is the main resource for development material.
310 <h2>Bug report and feature requests</h2>
311 <div style="margin-left: 30px;">
312 <p><a href="<%= BUG_LIST %>">List of current issues</a></p>
313 <p><a href="<%= BUG_NEW %>">Add a new issue</a></p>
316 <h2>How to contribute?</h2>
318 <li>Locate or host Meteorological and Geospatial data feeds</li>
319 <li>Maintain a Mac OS, Windows, or Linux installer</li>
320 <li>Test AWeather and submit bug reports</li>
321 <li>Make better logo!</li>
324 <h2>Architecture Overview</h2>
326 <li>Built on top of GObject and GTK+</li>
327 <li>Uses the <a href="grits">Grits</a> "Virtual Globe" library<ul>
328 <li>Handles most of the graphics work using OpenGL for rendering</li>
329 <li>Provides some other generic functionality, such as data access</li>
330 <li>Also provides the plugins API used by AWeather</li>
332 <li>AWeather itself is a front-end for Grits along with a
333 bundle of weather related plugins</li>
336 <h2>Building AWeather</h2>
337 <p class="note">See the <a href="<%= WIKI_INSTALL %>">install</a>
338 wiki page for more details</p>
340 <li>AWeather has direct dependencies on Grits, RSL, among other things</li>
341 <li>Currently building and running AWeather requires the
342 exact same version of Grits to be installed<br />
343 (This may change in the near future as the software stabilizes)</li>
347 <% void print_grits(void) { %>
349 Grits is a Virtual Globe library developed along side AWeather,
350 but desigend to be usable by other program as well.
352 It is differentiated from other Virtual Globes such as Google
353 Earth, NASA World Wind, and KDE Marble in that it is developed
354 primairily as a library that is used by other programs, such as
355 AWeather, rather than providing it's own user interface.
360 <% print_screen("grits"); %>
361 Grits without any plugins
365 <% print_screen("plugins"); %>
366 Satellite and Environment plugins
369 <% print_screen("terrain"); %>
370 Elevation plugin showing a mountain
375 <% void print_rsl(void) { %>
376 <h2>Radar Software Library</h2>
377 AWeather has at times needed a custom version of the
378 <a href="<%= RSL_WEB %>">TRMM Radar Software Library</a>
379 for accessing Level-II radar files. However, most of the changes have
380 since been incorporated into RSL Version 1.41, which can also be used
381 with AWeather. Some remaining changes exist though and are mostly
382 related to code organization and compiler warnings.
386 <h3>NASA/TRMM version</h3>
388 <li><a href="<%= RSL_WEB %>">TRMM RSL Website</a></li>
389 <li><a href="<%= RSL_FTP RSL_TAR %>"><%= RSL_TAR %></a></li>
393 <h3>AWeather's version</h3>
395 <li><a href="files/rsl-1.40.tar.gz">rsl-1.40.tar.gz</a></li>
396 <li><a href="<%= GW_RSL %>">Gitweb</a></li>
397 <li><div class="code">git clone <%= GIT_RSL %></div></li>
402 <% /* Footer Pages */ %>
403 <% void print_contact(void) { %>
405 <p class="note">Questions? Comments? Trouble compiling AWeather?</p>
406 <dl class="inline small">
407 <dt>Bugs</dt> <dd><a href="<%= BUG_LIST %>">Issue Tracker</a> (sign in to add a new issue)</dd>
408 <dt>Email</dt><dd><a href="mailto:andy753421@gmail.com">Andy Spencer</a></dd>
409 <dt>IRC</dt> <dd>#rhlug@irc.freenode.net</dd>
413 <% /* Special Pages */ %>
414 <% void print_index(void) { %>
416 AWeather is a free real-time weather data viewer designed for weather enthusiasts.
417 AWeather is not a weather widget/dockapp that displays a pre-computed forecast.
418 It is designed to be an easy to use program that integrates a
419 variety of meteorological data in simple unified interface;
420 see the <a href="about">about</a> page for more details.
423 <ul style="float: left;">
424 <li>Detailed Level-II NEXRAD radar<ul>
425 <li>3D volume rendering</li>
426 <li>Dual-pole support</li>
428 <li>Online and offline modes<ul>
429 <li>Data caching</li>
430 <li>Automatic updating</li>
432 <li>Surface and map overlays</li>
433 <li>Terrain rendering</li>
435 <div style="float: left; margin-left: 20px;">
436 <% print_screen("meso"); %>
438 <a href="download" class="download" style="float: right;">
439 <span>Download</span>
440 <span>AWeather <%= VERSION %></span>
441 <img src="images/dl-arrow.png" alt="Download" />
443 <p style="text-align: center;"><%= VERSION_DESC %></p>
446 <% void print_notfound(void) { %>
447 <h1>Error 404 - Page Not found!</h1>
449 <p>This page does not exist!
450 <p>If Andy screwed up, feel free to <a href="contact">tell him</a>,
451 otherwise, go away</p>
454 <% void print_sitemap(const page_t **pages) { %>
455 <?xml version='1.0' encoding='UTF-8'?>
456 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
457 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
458 xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
459 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
460 <% for (int i = 0; pages[i]; i++) { %>
461 <% for (int j = 0; pages[i][j].link; j++) { %>
462 <% if (pages[i][j].prio >= 0) { %>
464 <loc><%% "%s%s", PREFIX, pages[i][j].link %></loc>
465 <priority><%% "%3.1f", pages[i][j].prio %></priority>