<& /htmlheader, title => (sprintf "%s TJD %d, %d-%d", $submitter, ($nn + 1 - 50000), $offset + 1, $offset + $limit) &> <& modelheader &>

Submitted tracklets by user <% $submitter %>

All | Unknown | Unknown Pairs

TJD <% $nn + 1 - 50000 %> (MOPS Night Number <% $nn %>)
<% $utdate_str %>

<& stamp_pager, rooturi => "?nn=$nn&sort=$sort&submitter=$submitter&known=$known&pairs=$pairs", limit => $limit, offset => $offset, found => $found, nostamp => $nostamp &>
Check All | Uncheck All % foreach $href (@rows) { % my $trkId = $href->{tracklet_id}; % my $trk = modct_retrieve($inst, trackletId => $trkId); % if ($nostamp) { % }
Tracklet ID digest2
Sort
Source Chunk Vtot (deg/day)
Sort
Apparent Mag (V) Pos Ang (deg)
Sort
Known As Known q
GCR (arcsec)
Sort
Probability
Sort
Submission
Status
Stamps
<% $trkId %>
Review
<% sprintf "%.1f", $href->{digest} %> <% $href->{survey_mode} %> <% sprintf "%.3f °/day", $href->{v_tot} %> <% sprintf "%.1f V", $href->{ext_mag} %> <% sprintf "%.1f°", $href->{pos_ang_deg} %> <& /mpc_link, desig => $href->{known_name} &> {q} && $href->{q} <= 1.3) ? 'style="background:red"' : '' %> align="center"> <% $href->{q} ? sprintf("%.2f", $href->{q}) : 'N/A' %> <% sprintf "%.2f"", $href->{gcr_arcsec} %>
<% sprintf "%.2f", $href->{probability} %> % $substh->execute($dbname, $trkId) or die $substh->errstr; my @foo = $substh->fetchrow_array(); % if (@foo) { % my ($s1, $s2) = ('', ''); % if ($foo[0] eq 'J') { $s1 = ''; $s2 = ''; } <% $s1 %><% $foo[2] || $foo[1] %><% "
($foo[0], $foo[3])" %><% $s2 %> % } else { % if (!exists($OUTREACH_MAP{$href->{fpa_id}}) || $href->{digest} >= $MPC_DIGEST_THRESHOLD) { % if ($href->{known_name} && $href->{q} > $ISS_Q_THRESHOLD) { OSS % } % } else { OUTREACH % } % }
Hidden % } else {
Check All | Uncheck All

<& stamp_pager, rooturi => "?nn=$nn&sort=$sort&submitter=$submitter&known=$known&pairs=$pairs", limit => $limit, offset => $offset, found => $found, nostamp => $nostamp &>


<& /htmlfooter &> <%args> $nn $limit => 100 $sort => 'd' # 'd', 'v', 'q', 'p', 'g', 'prob', 'sub' allowed (digest, velocity, q, posang, gcr, probability, submitted+prob) $offset => 0 $found => undef $nostamp => undef # set to show no postage stamps $field_id => undef # single field_id $submitter $pairs => 0 $known => 'any' <%init> use List::Util qw(sum); use URI::Escape; use Astro::Time; use PS::MOPS::DC::Orbit; use PS::MOPS::Lib qw(:all); use PS::MOPS::Constants qw(:all); use PS::MOPS::DC::Field; use PS::MOPS::DC::Tracklet; use PS::MOPS::DC::Known; $submitter =~ s/[^\w]//g; # clean up #my $ISS_Q_THRESHOLD = 5.5; # don't submit anything with known q > this my $ISS_Q_THRESHOLD = 99; #my $MPC_DIGEST_THRESHOLD = 50; # NEO digest threshold my $MPC_DIGEST_THRESHOLD = 30; # NEO digest threshold # XXX LD Put IASC outreach exposure names here. my @OUTREACH_LIST = qw( ); my %OUTREACH_MAP; foreach (@OUTREACH_LIST) { $OUTREACH_MAP{$_} = 1; } # If $offset and $inc are defined, use them for the mysql query. # Otherwise use $limit, then as a last resort, all of em. my $limit_str = ''; my $sort_str = ''; my $found_str = ''; my $h_str = $pairs ? 'having count(ta.det_id)=2' : ''; my $k_str = ''; if ($known =~ /y/i) { $k_str = 'and t.known_id is not null'; } elsif ($known =~ /n/i) { $k_str = 'and t.known_id is null'; } if (defined($offset)) { $limit = 100 unless $limit; $limit_str = sprintf 'limit %d,%d', $offset, $limit; } else { $limit_str = $limit ? "limit $limit" : ''; } if ($sort eq 'q') { $sort_str = 'order by if(q is null,999,q)'; } elsif ($sort eq 'v') { $sort_str = 'order by v_tot desc'; } elsif ($sort eq 'va') { $sort_str = 'order by v_tot'; } elsif ($sort eq 'p') { $sort_str = 'order by pos_ang_deg'; } elsif ($sort eq 'g') { $sort_str = 'order by gcr_arcsec desc'; } elsif ($sort eq 'prob') { $sort_str = 'order by probability'; } elsif ($sort eq 'sub') { $sort_str = 'order by if(known_id is null, 0, 1) desc, probability desc'; } else { # $sort_str = 'order by digest desc, v_tot desc'; $sort_str = 'order by digest desc, t.gcr_arcsec'; } my $field_sel = ''; if ($field_id) { $field_sel = "and field_id=$field_id"; } my $utdate_str = mopslib_mjd2utctimestr($nn + 1); $utdate_str =~ s/T.*//; # trim everything after date $utdate_str .= 'UT'; my $prob_str = ''; if (!defined($found)) { $found_str = 'SQL_CALC_FOUND_ROWS'; } my $inst = $m->notes('INST'); my $dbname = $inst->dbname; my $model = $m->notes('MODEL'); my $dbh = $inst->dbh(); my $substh = $dbh->prepare(<<"SQL") or die $dbh->errstr; select disposition, desig, mpc_desig, submitter from export.mpc_sub where dbname=? and tracklet_id=? limit 1 SQL my $sql = <<"SQL"; select $found_str t.tracklet_id tracklet_id, group_concat(ta.det_id) det_ids, t.digest digest, t.v_tot v_tot, t.ext_mag ext_mag, t.pos_ang_deg pos_ang_deg, t.gcr_arcsec gcr_arcsec, t.probability probability, k.q q, k.known_name known_name, f.se_deg sol_elong, f.eb_deg ecl_lat, f.survey_mode, f.fpa_id from fields f join tracklets t ignore index(classification) using(field_id) join tracklet_attrib ta using(tracklet_id) left join known k using(known_id) join export.mpc_sub em where f.nn = $nn and t.classification='N' and em.dbname='$dbname' and em.tracklet_id=t.tracklet_id and em.det_id=ta.det_id and em.submitter='$submitter' $k_str $field_sel group by t.tracklet_id $h_str $sort_str $limit_str SQL my $sth = $dbh->prepare($sql) or die $dbh->errstr; $sth->execute() or die $sth->errstr; my @rows; my $href; while ($href = $sth->fetchrow_hashref()) { push @rows, $href; } $sth->finish(); if ($found_str) { ($found) = $dbh->selectrow_array("select FOUND_ROWS()"); } sub _avg { my (@vals) = @_; if (@_) { return sum(@_) / @_; } return 0; }