#!/usr/bin/perl # Routine to fix the IUE general index table columns while ($line=<>) { chop $line; printf "iuecdb_xxxx/"; printf substr($line,0,42); printf "IUE-C-qqq-3-EDR-IUECDB-V1.0 "; printf substr($line,54,46); printf "qqq "; printf substr($line,100,13); printf "%6.2f ",fix(substr($line,113,6),0); # SLIT_POSITION_ANGLE printf "%6.2f ",fix(substr($line,120,6),0); # SOLAR_VECTOR_POS printf "%7.1f ",fix(substr($line,127,7),"-9999.9"); # SLIT_OFFSET_ARC printf "%3d ", fix(substr($line,134,3),"-99"); # SLIT_OFFSET_POSITIO printf substr($line,138,72); # times printf "%9.3f ",fix(substr($line,210,10),"-9999.999"); # EXPOSURE_DURATION printf "%7.4f ",fix(substr($line,220,7),"-9.9999"); # HELIOCENTRIC_DIS printf "%5.1f ",fix(substr($line,227,5),"999.9"); # HELIOCENTRIC_VELO printf "%7.4f ",fix(substr($line,233,7),"-9.9999"); # GEOCENTRIC_DIS printf "%5.1f ",fix(substr($line,241,5),"999.9"); # GEOCENTRIC_VEL printf "%9.3f ",fix(substr($line,247,9),"-9999.999"); # TIME_FROM_PERIHEL printf "%5.1f ",fix(substr($line,258,5),"-99.9"); # SOLAR_ELONGATION printf "%5.1f ",fix(substr($line,264,5),"-99.9"); # PHASE_ANGLE printf "%8.4f ",fix(substr($line,269,8),"-99.9999"); # RIGHT_ASCENSION printf "%8.4f",fix(substr($line,279,8),"-99.9999"); # DECLINATION printf "\r\n"; } #------------------------ sub fix # Apply the same adjustments to all number fields { local ($s,$def) = @_; # input string and default value $s =~ s/ //g; $s =~ s/<.*//; $s = $def if ($s =~ /UNK/ || $s =~ /N\/A/); return $s; }