#!/usr/bin/perl # Routine to pull information out of the comments of the PDS labels to create # a general index for the NNSN images. # # Run this from the data/ directory. Format: makeidx # # 19 May 2006, acr. foreach $dir (sort @ARGV) { opendir (DIR, $dir) || die "Could not open $dir ($!)"; foreach $file (sort readdir(DIR)) { next if ($file !~ /\.lbl$/); $name = $file; $name =~ s/\.lbl//; open (LBL,"$dir/$file") || die "Could not open $dir/$file ($!)"; while ($line=) { if ($line =~ /OBSERVATION_TIME\s+= (\S+) /) { $obstime = $1; } elsif ($line =~ /OBSERVATION_ID *= "(.*)" /) { $obsid = $1; } elsif ($line =~ /FILTER_NAME *= *"(.*)"/) { $filter = $1; } elsif ($line =~ /EXPOSURE_DURATION *= *(\S+) /) { $exposure = $1; } elsif ($line =~ /AIRMASS *= *(\S+) /) { $airmass = $1; } elsif ($line =~ /DATA_QUALITY_DESC *= *"(.+)"/) { $quality = $1; } elsif ($line =~ / Name: (.*)$/) { $place = $1; chop $place; chop $place; $place =~ s/\s+$//; } elsif ($line =~ /Telescope: (.*)$/) { $telescope = $1; chop $telescope; chop $telescope; $telescope =~ s/\s+$//; } elsif ($line =~ / Detector: (.*)$/) { $detector = $1; chop $detector; chop $detector; $detector =~ s/\s+$//; } elsif ($line =~ /UNIT *= "(.*)" /) { $unit = $1; } elsif ($line =~ /PIXEL_ANGULAR_SCALE *= \((.*),/) { $pixscale = $1; } } printf "$name $obstime $obsid %-9.9s %6.1f %6.3f %-9.9s ", $filter, $exposure, $airmass, $quality; printf "%-18.18s %-17.17s %-16.16s %-17.17s %5.2f\r\n", $place, $telescope, $detector, $unit, $pixscale; # Next label: close(LBL); } # Next directory: closedir(DIR); } # Done.