[Shake-dev] Image clickmap problem

Bill Gustafson billg at ess.washington.edu
Wed Aug 1 22:23:34 GMT 2007


Hi All,

I have a special shakemap product that is a high-resolution shakemap of 
the Seattle Metropolitan area.  The area that we have selected is narrow 
and tall relative to the defaults that shakemap usually selects.  You 
can look at an example here:

http://www.pnsn.org/seashake/shake/0701260923/intensity.html

It's not very interesting but it gets the main idea across.

To get it to fit nicely onto the webpage I have fiddled with the width, 
xorig, and yorig parameters in mapping.conf.  I have the feeling that 
this is not the recommended approach (is there one?), because that 
appears to mess up the clickmaps for the stations.

Here are the values I used:

xorig        : 1.12
yorig        : 0.6
width        : 6.25

and here are the defaults:
xorig        : 1.0
yorig        : 1.0
width        : 6.5

Here is a code snippet from ClickMaps.pm that sets up the image clickmaps:

sub imagemap_prep {
  my $par  = shift;
  my($fh, at lines,$line,%stas,$sta,$x,$y, at evt,$status,$array,
     $height_ps,$height);

  my $geom = $par->{'geom'};

  $fh = new IO::File;
  $fh->open($STATION_LOC_FILE,'r') || Die;
  @lines = <$fh>;
  $fh->close;
  @lines = grep($_ !~ /^\#/, at lines);   # get rid of comment lines
  @lines = grep($_ !~ /^\s*$/, at lines); # get rid of blank lines
  chomp(@lines);

  # get some geometry info
  $height_ps = $geom->{'h'};
  $height = $height_ps + $JPG_MARGIN{bottom} + $JPG_MARGIN{top};
 
  foreach $line (@lines) {
    ($sta,$x,$y) = split(' ',$line);
   
    # add gif/jpg margins
    $x += $JPG_MARGIN{'left'};
    $y += $JPG_MARGIN{'bottom'};

    # flip $y (0 at top in gif/jpg)
    $y = $height - $y;

    # convert from inches to 72 dpi
    $x = int($x * 72 + 0.5);
    $y = int($y * 72 + 0.5);

    $stas{$sta} = [$x,$y];
  }

The critical bits are the JPG_MARGINS, which are set to 1 in 
Constants.pm, rather than being read from a configuration file.  If I 
force the left and bottom margins to match those set in mapping.conf, 
then the clickmaps for the PGA and PGV are correct.  There is still the 
issue of the scalebar height for the intensity.html file, but I think 
that there is a workaround that is acceptable (I haven't figured it out 
exactly yet though).

My questions:

Is there a better way to get the images to fit on the web page than 
fiddling with the xorig, yorig, and width (the issue is that the top of 
the images are cut off on the intensity.html)?  Should I change the GMT 
page size (I know very little about GMT), so that it's taller? 

It seems like the JPG_MARGIN values should reflect the xorig and yorig 
values from mapping, but I'm not sure how to go about that in a general 
way.  I suppose they could be set as parameters in genex.conf, but it's 
generally bad form to set the same value in two places, although I would 
think having the genex program read the mapping.conf file would also be 
bad form.  I'm happy to work with whoever is now responsible for this 
code to come up with a fix, but am not sure who I should be talking with.

Thanks,

Bill



-- 
Bill Gustafson          Res Eng/Sr Comp Spc
KSRSL/PNSN              Phone: (206)685-8266/(206)543-8928
Dept. of Earth and Space Sciences
Box 351310, UW, Seattle, WA  98195-1310
http://alumnus.caltech.edu/~billg/bill.htm





More information about the Shake-dev mailing list