tassivSeed.pl
application/octet-stream
Filename: tassivSeed.pl
Type: application/octet-stream
Part: 0
#!/usr/bin/perl -w
use lib "/tass/src/perl";
use TASSIV;
use strict;
use Pg;
use IO::Socket;
autoflush STDOUT;
my $tass = Pg::connectdb( "dbname=$db_name" );
die "Could not connect to database $db_name"
unless PGRES_CONNECTION_OK eq $tass->status;
open( FILE, "< /tass/catalogs/Tycho-2/data/catalog.dat" );
my $sql = <<__END_COPY__;
COPY composit
FROM stdin
__END_COPY__
my ( $result, $magv, $ra, $dec );
my $count = 1;
$result = $tass->exec( $sql );
die $sql . $tass->errorMessage
unless PGRES_COPY_IN eq $result->resultStatus;
while( <FILE> )
{
my @line = split( '\|', $_ );
next unless ( ( $line[17] =~ /[\d.-]+/o ) && ( $line[19] =~ /[\d.-]+/o ) );
if ( $line[ 1 ] eq "X" )
{
$ra = $line[24];
$dec = $line[25];
}
else
{
$ra = $line[2];
$dec = $line[3];
}
$magv = $line[ 19 ] + 0.008 - 0.0988 * ($line[ 17 ] - $line[ 19 ]);
$tass->putline( join( "\t", $count, $ra, $dec, 0, 0, 0, 0, 0, 0, $magv ) . "\n" );
print "." if !($count % 1000);
printf( "%7d\n", $count ) if !($count % 70000);
++$count;
}
close( FILE );
$tass->putline( "\\.\n" );
print "\n";
die $tass->errorMessage unless 0 eq $tass->endcopy;
$sql = "SELECT setval( 'composit_id_seq', 10000000 )\n";
print $sql;
$tass->exec( $sql );
$sql = "CREATE INDEX c_index ON composit USING BTREE( ra, decl)\n";
print $sql;
$tass->exec( $sql );
$sql = "VACUUM analyze\n";
print $sql;
$tass->exec( $sql );