Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#380 closed defect (fixed)

change how small distJB is handled in GriddedSurfaceUtilities

Reported by: Peter Powers Owned by: Peter Powers
Priority: major Milestone: OpenSHA 1.3
Component: sha Version:
Keywords: Cc:

Description

In the case of the Elsinore fault (and perhaps others), a >= 90 degree jog in the fault trace compounded with a steep dip results in a non-singular region being created from the gridded surface perimeter when trying to test if distJB is actually zero and the Region can not be created throwing an exception. P&K recommend porting region logic to GriddedSurfaceUtils?.

Attachments (1)

photo.JPG (19.4 KB) - added by Peter Powers 12 years ago.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 12 years ago by Peter Powers

Resolution: fixed
Status: newclosed

Added a new private method to GriddedRegionUtils? that uses java.awt.geom.Area to create a Shape from the perimeter of a GriddedSurface? in the same manner as done by a Region. No singularity checking is done and the method should always return. The method is adequite, but not perfect. See comments at GriddedSurfaceUtils?.isDjbZero() for more information.

Added in [8477]

Also privatized the Frankel version of the isDistJB_Zero method. This method could/should probably be changed to creating an area via unioning the Areas defined by the quads for each trace segment and then doing contains(). THis would elimiate the ~0.5km buffer around the surface projection of a source for which dJB=0 but shouldn't. Are Frankel surfaces even used anymore? Regardless, such an approach would be applicable to CompoundGriddedSurfaces? as well.

Changed 12 years ago by Peter Powers

Attachment: photo.JPG added

comment:2 Changed 12 years ago by Peter Powers

The attached photo illustrates the shortcoming of the modification/fix. For this geometry notice that there are some small areas for which the surface projection of the fault are being eliminated by virtue of the path that the perimeter follows.

Note: See TracTickets for help on using tickets.