rcarne1

04-21-2008, 04:32 PM

I am having no success trying to do the following and hope somebody more familiar with WAVE's rendering options can get me moving in the right direction.

I want to extract arrays of seafloor depths from the ETOPO2 database and then render these Mercator-like seafloor segments as 3-D curved surfaces as they would appear on the global sphere. The arrays of depth are 601 x 601 and represent 20 degrees of longitude and latitude. Getting the data from ETOPO2 is the easy part.

My approach has been -

POLY_SURF - obtain a vertex_list and polygon_list using the 2D array obtained from ETOPO2.

I then replace the x and y positions in the vertex_list (integers between 0 and 600) with actual longitudes and latitudes of the seafloor segment. That gives me a 3x 361201 array of longitudes, latitudes, and depths.

CONV_TO_RECT - I convert values in the vertex_list to rectangular values after scaling the ocean depths to an Earth with a radius of 1.0. I use the /Global, and /Degree keywords.

VTKSURFGEN - taking the 3 x 361201 array of points (aka vertex_list) I try to render it only to get various odd objects.

POLY_SPHERE - this looked hopeful and can produce nice sections of a globe but calls insuffient memory errors if the polygon diameter of the globe is more than a few hundred. The 601 x 601 resolution of the depth array is severly reduced when rendered at these lower resultions.

Thinking that I was making some type of error while dealing with the 601x601 array, I set up a simple 4 x 4 grid covering the same range of latitude and with a uniform z of 1. After conversion of the degrees to rectangular coordinates, VTKSURFGEN produces a square surface with a crumpled appearance ( inconsistent transformed z values). It should be trapezoidal and curved.

I'll close by mentioning that I get great 3D surfaces from the 601x601 arrays just using VTKSURFACE. But, I'd really like to get the actual spatial relationships and Earth curvature in my visualization.

Any suggestions?

Thanks.

I want to extract arrays of seafloor depths from the ETOPO2 database and then render these Mercator-like seafloor segments as 3-D curved surfaces as they would appear on the global sphere. The arrays of depth are 601 x 601 and represent 20 degrees of longitude and latitude. Getting the data from ETOPO2 is the easy part.

My approach has been -

POLY_SURF - obtain a vertex_list and polygon_list using the 2D array obtained from ETOPO2.

I then replace the x and y positions in the vertex_list (integers between 0 and 600) with actual longitudes and latitudes of the seafloor segment. That gives me a 3x 361201 array of longitudes, latitudes, and depths.

CONV_TO_RECT - I convert values in the vertex_list to rectangular values after scaling the ocean depths to an Earth with a radius of 1.0. I use the /Global, and /Degree keywords.

VTKSURFGEN - taking the 3 x 361201 array of points (aka vertex_list) I try to render it only to get various odd objects.

POLY_SPHERE - this looked hopeful and can produce nice sections of a globe but calls insuffient memory errors if the polygon diameter of the globe is more than a few hundred. The 601 x 601 resolution of the depth array is severly reduced when rendered at these lower resultions.

Thinking that I was making some type of error while dealing with the 601x601 array, I set up a simple 4 x 4 grid covering the same range of latitude and with a uniform z of 1. After conversion of the degrees to rectangular coordinates, VTKSURFGEN produces a square surface with a crumpled appearance ( inconsistent transformed z values). It should be trapezoidal and curved.

I'll close by mentioning that I get great 3D surfaces from the 601x601 arrays just using VTKSURFACE. But, I'd really like to get the actual spatial relationships and Earth curvature in my visualization.

Any suggestions?

Thanks.