NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

RE: Plot Earthquake Fault Trace into the earth

Hi,

Thanks for the leads. I have a couple of followup questions. I'm still
not clear on how my data array should be structured. As you mention my
lat/lon data do have the same number of (lat, lon) locations at each
depth, and they can be placed in one-to-one correspondence with each
other. I assume I should then do:

domain_set = new visad.Gridded3DSet(domain_tuple, loc_vals, 19, 58);

My question is, how to I assemble the domain_tuple. Should this be
flattend out for each dimension. Should my depth values be included in
this? Thanks for your help with this.

Sincerely,
Steven W. Rock
Rock Technologies
516-897-7289


-----Original Message-----
From: owner-visad-list@xxxxxxxxxxxxx
[mailto:owner-visad-list@xxxxxxxxxxxxx] On Behalf Of Bill Hibbard
Sent: Wednesday, May 08, 2002 9:57 PM
To: Steven W. Rock
Subject: Re: Plot Earthquake Fault Trace into the earth

Hi Steven,

Your Gridded2DSet has manifold dimension = 1 since you
only gave one array length (1102). To draw a surface in
3-D, try a Gridded3DSet with manifold dimension = 2 or an
Irregular3DSet with manifold dimension = 2. You'd use the
Gridded3DSet if you have the same number of (lat, lon)
locations at each depth, and if they can be placed in
one-to-one correspondence with each other (then you'd
supply two array lengths: number_levels & n_points_per_level).
That is, use Gridded3DSet if your (lat, lon) locations form
awarped 2-D checkerboard. Otherwise, use an Irregular3DSet
where your (lat, lon) locations are organized into triangles.
It may be complex to define the triangles. Note you'd define
the triangles with a DelaunayCustom that you'd pass to the
Irregular3DSet constructor.

Good luck,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html


On Wed, 8 May 2002, Steven W. Rock wrote:

> 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
> 516-897-7289
>
>
> ---------------------------------
> 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,
> 1102);
>
>         // 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,
> -117.8298314F}};
>
>
> 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: