#!/usr/bin/env perl

# $Id: oid2obj 1197 2006-07-28 03:56:47Z fpierfed $
# Given an list of orbit IDs generated by LinkTracklets, fetch object
# names from a reference file.

use strict;
use warnings;

use Getopt::Long;
use Pod::Usage;
use File::Slurp;


my $help;
my $reffile;
GetOptions(
    'ref=s' => \$reffile,
    'cleanfile=s' => \$reffile,
    help => \$help,
) or pod2usage(2);
pod2usage(-verbose => 3) if $help;
pod2usage(3) unless $reffile;

# Create hash keyed by orbit ID
my @reffile = read_file($reffile) or die "can't open $reffile";
my %oid2obj;
my ($obj, $oid);
my $ref_fh;

foreach my $line (@reffile) {
    ($obj, $oid) = split /\s+/, $line;
    $oid2obj{$oid} = $obj;    
}

# Now read list of orbit IDs, and print out corresponding entry in object ID table.
my $infile = shift;
my @oids;
if ($infile) {
    @oids = read_file($infile) or die "can't open $infile";
    chomp @oids;
}
else {
    @oids = <>;
    chomp @oids;
}
foreach my $oid (@oids) {
    if (exists($oid2obj{$oid})) {
        print $oid2obj{$oid}, "\n";
    }
    else {
        print "ENOTFOUND $oid\n";
    }
}


=head1 NAME

oid2obj - List coarse ephemeris (CE) MJDs needed for this OC

=head1 SYNOPSIS

oid2obj --clean CLEANFILE file

  --clean CLEANFILE : required reference file to look up object names from orbit IDs.  This file should
    contain

      OBJECT_ID ORBIT_ID

    pairs, usually the output of analyzeTracklets --clean.

=head1 DESCRIPTION

Given an list of orbit IDs generated by LinkTracklets, fetch object
names from a reference file.

If file is not specified, get list from STDIN.

--clean used to be called --ref.

=head1 SEE ALSO

analyzeTracklets

PS::MOPS::MITI

=cut
