logo

1 303 279 1021

Loading

Live Chat

All Issues

Golden Software Newsletter

Our newsletters are filled with interesting technical tips, news of how people are using Surfer, Grapher, Voxler, MapViewer, Didger and Strater, and (of course!) great illustrations.

Subscribe to Our Newsletter

Issue 65

Transforming Data in Voxler 2

Sometimes it is necessary to rescale the models you create in Voxler so that they display with more vertical exaggeration. You will find that this is necessary when the range of the X and Y extents are much greater than the range of the Z extents of your data. You can add a touch of vertical exaggeration by adding a Transform module to your dataset in Voxler. However, when you add the Transform module, the transformation does not always apply in the same way to all data sets. The transformation of data in Voxler originates from the center of the dataset and spans outward in both directions equally; which can be different for each data set. Therefore the same transform applied to one data set may not give you identical results as when it is applied to a different data set.

So the trick to get the Transform to behave the same for two different data sets is to transform one data set, then calculate the scale and translation you need to use to get the same results for the other data set.


Setting up the network

For this article I am going to use an example of a topography surface (displayed as a ScatterPlot) and some well data(displayed with a ScatterPlot). To load either data set, click the File | Load Data command. Step through the import process, using the defaults for all options. After the data is imported, right click on the data module and choose Graphics Output | Scatter Plot. For both data files, the XY coordinates are in UTM meters and the Z range is in meters. This produces a very flat graphic because the range in the XY coordinates (UTM) is much larger than the range of the data’s Z values, similar to the wells being modeled under a large surface shown in the image below.

h
A flat Voxler model in UTM coordinates that is displaying a surface and underlying wells.


Determining transform values

For this model to appear meaningful, the Z data will need to be transformed so that the scale of the Z is increased to a reasonable size relative to the X and Y data. The following steps detail this process.

  1. First we will need to find some of the Z statistics from both of the datasets we are using. You will need to find the Z min, Z max, Z range, and Z midpoint of both of the datasets you are using.
    1. You can find this information in Voxler by attaching Info modules to the data. Right click on each data module and choose General Modules | Info.
    2. Click on the Info module to select it and look at the Z Limits in the Properties window.
      1. The Z Limits lists the Z min and Z max values.
      2. The Z range is the difference between the two values.
      3. The Z Midpoint is Z min + 0.5 * Z range.
      4. Please refer to the information found in our KB article #326 for more information on finding these values.
    3. Let’s start by transforming the Example_Well_Data.csv by using a transform Z Scale of 10. We will be using the following equations to calculate what the “new” transformed Z min and Z max should be:
    4. Z min (ScatterPlot_transform) = Z midpoint(original)-[(Transform Scale*Range)/2]
      Z max (ScatterPlot_transform) = Z midpoint (original)+[(Transform Scale*Range)/2]

    5. You will need these values for subsequent calculations. For the Example_Well_Data.csv:
      • Z min is 709.0896359
      • Z max is 719.3740115
      • Z range is Z max – Z min is 10.28437.
      • Z midpoint is 714.231825
    6. So the calculated transformed Z min and Z max values would be:
      • Z min(ScatterPlot_transform) = 714.231825 – [(10*10.28437)/2] = 622.809975
      • Z max(ScatterPlot_transform) = 714.231825 + [(10*10.28437)/2] = 765.653675
  2. You will use these values in a ratio with the original values to calculate the transformed Zmin and the transform scale for the surface dataset.
    1. First, let’s find the current values for the Example_Surface_Data.csv from the Info module:
      • Z min is 713.692633
      • Z max is 723.818976
      • Z range is Z max – Z min is 10.126343.
      • Z midpoint is 718.7558045
    2. Use the ratio between the original Z min and new Z min for the Example_Well_Data.csv to calculate the new Z min for the Example_Surface_Data.csv surface dataset:
    3. (Zmin(original ScatterPlot)) = (Zmin(orginial Surface))


      (Zmin(transformed ScatterPlot)) (Zmin(transformed Surface))

      709.08964/662.809975 = 713.692633/Zmin(trans_map2)
      Z min(transformed Surface) = 667.112536

    4. Find the new scale for the surface using a rearranged version of the equation in part c of Step 1.

    Scale(Surface) = [Z min(transformed Surface) – Z midpoint(transformed Surface)]*2/Range(Surface)
    Scale(Surface) = [667.1125366 – 718.7558]*2/10.12636
    Scale(Surface) = 10.201768


Connecting the transforms to the data

So this is good. For the Example_Well_Data.csv set, we are using a Z Scale of 10. For the Example_Surface_Data.csv, we calculated that we will use a Z Scale of 10.201768. In the Voxler network window, you add this information toTransform modules to both datasets by:

  1. Select the data module in the network window.
  2. Right-click on the module and choose Computational | Transform.
  3. Click on the connector on the right side of the Transform module and choose Connect Output Data and drag the connector to the existing ScatterPlot module.
  4. Click on the Transform module.
  5. Open the Scale section in the Properties window.
  6. Enter the Z value as determined above (10 for the well data and 10.201768 for the surface data).
  7. h
    This is the rescaled model that is more readable. Notice that the wells now pierce the surface and are not
    displayed in their true location. This is due to the transform occurring at the midpoints.


    Translating transformed points

    You will notice the wells in the model and the surface are scaled to display better, but don’t line up correctly. This is due to the transform occurring about the Z midpoint values. We will need to use a few more steps to get all of the data to display in the proper locations in the model.

  8. You will need to add a translation in the Z direction to the Example_Surface_Data.csv.
    1. Use the second equation from http://www.goldensoftware.com/activekb/questions/297:
    2. Ztransform = (Zcenter - Zreference) * (Zscale - 1), where
      Zcenter = Z midpoint (transformed Surface)
      Zreference = Z midpoint (original Surface)
      Ztransform = the Z Translation value we are trying to calculate.
      Ztransform = (718.7558045 - 714.2318237) * (10.201768 – 1)
      Ztransform = 4.5239808 * 9.201768
      Ztransform = 41.6286217580544

    3. In the Voxler model, select the Transform module connected to Example_Surface_Data.csv in the network window.
    4. In the properties window, open the Translation section and enter the 41.62862 value next to Z .

Now the model looks correct!

h
The wells and the surface are now modeled with an exaggerated Z and are displayed in their correct locations.

 

Trusted by over 10,000 Companies and Schools


Label Your 3D Point Cloud with Voxler 3

Image Voxler 3 has added the ability to label your 3D point cloud. You can use numbers or text to label your scatter plot, apply a uniform offset in the X... Read More

Subscribe to Our Newsletter

Enter your email address below to receive email notifications of product updates and our newsletter, filled with helpful technical tips and case studies.