#!/usr/bin/perl #----------------------------------------------------------------- # USAGE: getgrid.pl in=file.info out=file.elev # # in - dem2ppm info file. # out - parse info file to get geospatial grid infomation and output. # #----------------------------------------------------------------- for ($i=0; $i<=$#ARGV; $i++) { $pair = $ARGV[$i]; # Get this parameter/value pair ($param, $value) = split("=", $pair); # Split pair at = if( $param =~ /\bin\b/) { $infofile = $value; if( -e $infofile) { print "dem2ppm info file: $infofile \n"; } else { print STDERR "Input file does not exist!\n"; exit(0); } } elsif( $param =~ /\bout\b/) { $elevfile = $value; } else { print STDERR "ERROR: Specified Illegal command-line option!\n"; exit( 0); } } open( INFILE, "$infofile"); while( $this_line = ) { if( $this_line =~ /\bElevation Units=(\d).*/ ) { $elevunits = $1; if( $elevunits==1) { $elevconv = 0.305; } else { $elevconv = 1.0; } } elsif( $this_line =~ /Coordinates:.*/ ) { for( $icoord=0; $icoord<4; $icoord++) { $this_line = ; if( $this_line =~ /\D+(\d+\.\d+),(\d+\.\d+).*/ ) { $xcoord[$icoord] = $1; $ycoord[$icoord] = $2; } } } elsif( $this_line =~ /Min\/Max Elevation:\D+(\d+\.\d+)\/(\d+\.\d+).*/ ) { $minelev = $1; $maxelev = $2; } } $minelev = $minelev*$elevconv; $maxelev = $maxelev*$elevconv; close( INFILE); open( OUTFILE, "> $elevfile"); print OUTFILE "@xcoord\n"; print OUTFILE "@ycoord\n"; print OUTFILE "$minelev $maxelev"; close( OUTFILE); exit(0);