eol engineering internship final report · pdf fileeol engineering internship final report dan...
TRANSCRIPT
EOL Engineering Internship Final Report
Dan Lagreca NCAR/EOL
Summer 2009
Tasks
Firewire Cameras
OpenStreetmaps
Display Webpage
Controls Webpage
RPM Packaging
Features
Expands to accommodate multiple cameras
Reads and applies parameters from config file
Compression method/quality
Night time auto disable
Embeds meta-data into images (XMP format)
Camera information
Flight number
Implementation
C program, “capture”
Runs in background (daemon)
Reads raw data from camera, compresses, then stores image on server
Updates database
Web Viewer
Reads database
Displays latest image(s)
Software Data Flow
Web Server
Camera Server
Capture Program
Firewire Stack
httpd (php)
User (browser)
httpd (php)
PostgreSQL Images
Viewer Page Firewire Cameras
Controls Page
Cameras
IEEE1394 Bus (Firewire)
Bus powered
Optional external trigger
1-2 Megapixel Sensors
Viewer - Screenshot
Features
Display street map in web browser
Easy to use
Nothing to install on personal laptops
Shows current position of plane – live updating
Shows path history of plane
Shows satellite image overlays
Map database is local (no need to use expensive satcom link)
Implementation
Server
User (browser)
httpd
PostGIS
Tiles
OpenLayers
Renderd
Mod_tile
User (Openlayers) requests tiles
Apache (mod_tile) checks for rendered tile.
Tile can be queue to be rendered.
PostGIS database holds all maping information.
OSM - Screenshot
Features
Browse to single address (http://acserver/)
Easy access to frequently used websites
Map: shows current/past location of plane.
Cameras: shows current/past view outside of plane.
Visible/IR: shows current/past satellite images.
AC Status: shows status of server processes
Downloads: Download common programs from local server (avoid using expensive satcom link)
Wiki: access local copy of the SEW wiki
Implementation
Button bar created with css/html
html <iframe> holds page content
Buttons call JavaScript which load in new pages
Features
Nagios:
Great for getting data to the user
No good way to send commands back to server
Control page:
Send commands back to server
Send XMLRPC queries to status-listener
Ping individual hosts (DSM’s)
Implementation
Nagios back end for status
Control page uses JavaScript to send commands to server
PHP scripts (server-side):
Execute commands: i.e. start Nimbus
Query XMLRPC: i.e. refresh DSM timetag
Ping a host: i.e. ping a DSM to check it’s connection
Detailed info for DSM-Server
Pinging all of the DSM’s
Features
Package vs. Compile From Source
Greatly simplifies distribution and installation of software
Ship pre-compiled binaries
Let YUM handle dependencies
RPM package can include all necessary config files, executables, and file structure
Thank You
Any Questions?