1
by Michael Lynch
Initial import |
1 |
SunViewer Version 0.1 |
2 |
7/25/07 |
|
3 |
NASA Goddard Space Flight Center, Greenbelt, MD |
|
4 |
||
5 |
Written By |
|
6 |
Patrick Schmiedel <patrick.schmiedel@gmx.net> |
|
7 |
University of Karlsruhe, Germany |
|
8 |
||
9 |
This software uses part of the code of the |
|
10 |
Giant Scalable Image Viewer (GSIV) 1.0 |
|
11 |
||
12 |
Written by |
|
13 |
Michal Migurski <mike-gsv@teczno.com> |
|
14 |
Dan Allen <dan.allen@mojavelinux.com> |
|
15 |
||
16 |
Extended by |
|
17 |
Shane Maloney <shane.maloney98@gmail.com> |
|
18 |
||
19 |
||
20 |
I. INTRODUCTION |
|
21 |
||
22 |
This software has been developed during an internship at the Solar |
|
23 |
Heliospheric Observatory (SOHO) at NASA GSFC from May 13 to July 27, 2007. |
|
24 |
||
25 |
It is based on the Giant Scalable Image Viewer (GSIV), but the code has been |
|
26 |
almost completely rewritten to allow for more modularity and extensibility. |
|
27 |
||
28 |
It has been tested on Mozilla Firefox and Safari on a Mac. |
|
29 |
||
30 |
||
31 |
II. FEATURES |
|
32 |
||
33 |
- Using existing technologies, no need to install further software. |
|
34 |
- Asynchronously loading content, improves user interface responsiveness. |
|
35 |
- Tiled images: Only loading the currently visible part of the complete image, |
|
36 |
thus reducing transferred data. |
|
37 |
- Allows easy browsing of large datasets. |
|
38 |
- Physical length-scales of several magnitudes can be displayed. |
|
39 |
||
40 |
||
41 |
III. FUNCTIONALITY |
|
42 |
||
43 |
- Viewing images of the sun in a browser |
|
44 |
- Zooming in |
|
45 |
- Panning in the viewport |
|
46 |
- Selecting the shown image |
|
47 |
- Overlaying multiple images |
|
48 |
- Showing NOAA Active Regions and info if clicked |
|
49 |
- A resizable and movable size indicator bar |
|
50 |
||
51 |
||
52 |
IV. FUTURE WORK |
|
53 |
||
54 |
- Develop a method to tile the images so that the sun always occupies the same |
|
55 |
percentage of the complete image. |
|
56 |
- Also retrieve meta data from the FITS files |
|
57 |
- Store the meta data and the image location in a database |
|
58 |
- Specify an interface for retrieving data from the database |
|
59 |
(e.g. client --Ajax(JSON/XML)-> server(PHP script) --SQL-> database) |
|
60 |
- Test and debug on different browsers (IE 5.x/6/7, Opera, Konqueror...) |
|
61 |
- Performance tuning: |
|
62 |
Change the tile algorithm, move the tile container (or the tile container |
|
63 |
container) instead of the tiles. Also allows for various different tile |
|
64 |
sizes (over-zooming...). (See Google Maps in the Firefox DOM inspector) |
|
65 |
- The application is really fast in Safari when started up but gets awfully |
|
66 |
slow after a long time browsing. Restarting Safari solves the problem. Check |
|
67 |
if there is a fix for that. |
|
68 |
- Measure the position of the viewer in world coordinates, not pixels => |
|
69 |
Easier zooming |
|
70 |
- Add/remove/configure Marker/Overlay layers in the Layer Manager. Make it |
|
71 |
possible to link them to Tile layers (use the date of their image). |
|
72 |
- Avoid "jumping" effect when zooming in Firefox (possibly solved by changes |
|
73 |
above) |
|
74 |
- Join and compress the JavaScript and CSS files for use on a web server (can |
|
75 |
be done in Aptana) |
|
76 |
- Generate HTML Documentation from ScriptDoc in JavaScript files. Wait for |
|
77 |
future Aptana versions to implement this. |
|
78 |
- Enable to show a grid overlay. Take angle towards the sun depending on time |
|
79 |
of year into account. Maybe create one grid for each month or so. |
|
80 |
- Limit the amount the user can move the viewport. |
|
81 |
||
82 |
||
83 |
V. REQUIREMENTS |
|
84 |
||
85 |
- Python (tested with 2.4) |
|
86 |
- Python MySQLdb |
|
87 |
- PHP 5 |
|
88 |
- MySQL |
|
89 |
- Any webserver configured to use PHP |
|
90 |
||
91 |
||
92 |
VI. INSTALLATION |
|
93 |
||
94 |
- In order for the AJAX and PHP to work a web server is required. |
|
95 |
- Configure /lib/HV_Database/database_functions.php for use with your database. |
|
96 |
- Configure dirwalk.py to tell it where the data you will be indexing is and set the database info. (a test dataset is not included) |
|
97 |
- Create the database (whatever you set it to in database_functions.php and dirwalk.py) in MySQL. No need to create any tables. |
|
98 |
- Index the data by running dirwalk.py |
|
99 |
- And you're good to go. Just open up index.html via your web browser (http://localhost/...wherever...) |
|
100 |