Plot Earthquake Fault Trace into the earth

Hi All,

I am currently evaluation VisAD to incorporate into a major NSF 5-year
funded project for earthquake modeling. I am real excited with the
capabilities I have seen so far. I am having one problem starting out
with this product though. It is not clear when I should use the various
domain sets. Which is appropriate for what?

More specifically, I have a 3D set of data, (lat, lon, depth) that
represents locations in my fault trace surface. The structure is that
there are a surface trace of lat / lon locations at depth = 0. Then I
step a delta distance into the ground and get another trace of lat, lon
positions at this depth, then I keep stepping down till I reach the
bottom of the trace, about 12 km into the ground.

I wish to draw a 3D shaded surface of my earthquake fault trace as it
dips into the ground. I basically want to see a shape of a "wrinked
piece of paper" that juts into the ground. 

I did get a graph made using the Sierra Madre fault as an example. I
used a Gridded2DSet for my domain, but this draws a wire mesh continuous
line to outline my fault trace. 

If I can push this product through my group I would expect some major
support in the next year. The lead university is U of Southern
California and the Southern California Earthquake Center (SCEC). Thanks
for all your help.

Steven W. Rock
Software Engineer
Rock Technologies

Program snippet

        latitude = new RealType("latitude",SI.meter,null);
        longitude = new RealType("longitude",SI.meter,null);
        domain_tuple = new RealTupleType(latitude, longitude);

        // Create the range tuple ( altitude, temperature )
        // Use RealTupleType( RealType[] )
        altitude = new RealType("depth",SI.meter,null);

        // Create a FunctionType (domain_tuple -> range_tuple )
        // Use FunctionType(MathType domain, MathType range)
        func_domain_range = new FunctionType( domain_tuple, altitude);
        // int NCOLS = surface.getNumCols();
        // int NROWS = surface.getNumRows();

        // Create the domain set
        domain_set = new visad.Gridded2DSet(domain_tuple, loc_vals,

        // Create function mapping
        func_domain_range = new FunctionType(domain_tuple, altitude);

        // Create a FlatField
        // Use FlatField(FunctionType type, Set domain_set)
         vals_ff = new FlatField( func_domain_range, domain_set);

        // and put the y values above in it
        vals_ff.setSamples( depth_vals );

Example data - note this is not the full set

static float[][] loc_vals = new float[][]{
    {34.1231F, 34.12223841F, 34.12526393F, 34.13105451F, 34.13137804F,
34.13102671F, 34.13067443F, 34.1311967F, 34.13453044F, 34.13994589F
-117.73972F, -117.7505419F, -117.7599031F, -117.7682264F, -117.7788123F,
-117.7896769F, -117.8005414F, -117.8113153F, -117.8211464F,

static float[][] depth_vals = new float[][]{ {

    0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F, 0F

  • 2002 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: