#!/usr/local/bin/perl #use lib '/home/aaossl/hmj/LIB/perl5'; #push @INC,"/local/www/hmj/perl5"; use lib '/local/www/hmj/perl5'; use CGI ':standard'; ## Now the results: ta da! require '6dfcalc.pl'; ($SNR,$nobj,$nsky,$n_dn,$eff) = signal_to_noise( param('ccd'), param('speed'), param('grating'), param('zd'), param('moon'), param('mag'), param('wavel'), param('exptime') ) unless not defined param('ccd'); # Define all our queries $ccd = "Detector: ". popup_menu(-name=>'ccd', -values=>['EEV'], -default=>'EEV'); $speed = "Readout speed: ". popup_menu(-name=>'speed', -values=>['XTRASLOW','SLOW','NORMAL','FAST'], -default=>'NORMAL'); $grating = "Grating: ". popup_menu(-name=>'grating', -values=>['270R','316R','300B','600R','600V','600U','1200I','1200R','1200V','1200B'], -default=>'300B'); $zd = "Zenith distance (degrees): ". textfield(-name=>'zd', -default=>'30', -size=>2, -maxlength=>2); $moon = "Phase of moon: ". popup_menu(-name=>'moon', -values=>['Dark','Grey','Bright'], -default=>'Dark'); $mag = "Magnitude: ". textfield(-name=>'mag', -default=>'16', -size=>4, -maxlength=>4); $wavel = "Wavelength (Å): ". popup_menu(-name=>'wavel', -values=>['4000','4500','5000','5500','6000','6500','8000'], -default=>'5000'); $exptime = "Exposure time (s): ". textfield(-name=>'exptime', -default=>'3600', -size=>6, -maxlength=>6); # Set up the tables $specttable = table({-cellpadding=>2}, Tr({-align=>'left'}, [ td({-align=>'right'},$ccd) . td($speed) . td($grating) ] ) ); $sitetable = table({-cellpadding=>2}, Tr({-align=>'left'}, [ td({-align=>'right'},$zd) . td($moon) ] ) ); $asttable = table({-cellpadding=>2}, Tr({-align=>'left'}, [ td({-align=>'right'},$mag) . td($wavel) . td($exptime) ] ) ); $input_table = table({-border=>undef,-cellpadding=>5, -bgcolor=>'#CCCCFF'}, Tr( [ td($specttable), td($sitetable), td($asttable) ] ), ); $submit_table = table({-border=>undef,-cellpadding=>5, -valign=>'top'}, Tr( td(strong(submit(-label=>'Calculate')) .td(defaults('Reset form'))) ) ); $results_table = table({-border=>undef,-cellpadding=>5, -bgcolor=>'#CCCCFF'}, Tr( [ td(b(font({size=>"+1"},"SNR"))) . td(b(font({size=>"+1"},sprintf "%6.1f",$SNR))), td(sprintf "Nobj") . td(sprintf "%6.1f",$nobj), td(sprintf "Nsky") . td(sprintf "%6.1f",$nsky), td(sprintf "Nrn") . td(sprintf "%6.1f",$n_dn), td(sprintf "Sys effy") . td(sprintf "%6.2f",$eff) ] ), ); if (not defined param('ccd')) { $output_table = table({-border=>undef,-cellpadding=>5, -bgcolor=>'#CCCCFF'}, Tr({align=>"center"}, [ td($results_table), td($submit_table) ] ), ); } else { $output_table = table({-border=>undef,-cellpadding=>5, -bgcolor=>'#CCCCFF'}, Tr({align=>"center"}, [ td($results_table), td($submit_table) ] ), ) }; # Now print the form print header; print start_html({-title=>' 6dF Spectrograph SNR Calculator', -bgcolor=>'white'}), h1('6dF Signal-to-Noise Calculator'), em('IMPORTANT: Please read the notes below before using'), p; print start_form; print table({-cellpadding=>2}, Tr( td($input_table) . td($output_table) ) ); print "
\n
\n