How are the logarithmically scaled node values in Surfer's Colormap dialog calculated?

The new nodal values in a logarithmically scaled colormap are calculated by taking the log of the current extents (the minimum and maximum of the colormap), calculating the log value of the node in the same position along the colormap as it was originally, and then taking the antilog of that value. 


For example:

  1. Open Logarithmic.srf, from the Surfer Samples folder.
  2. Select the map in the lower right.
  3. In the Properties window, click the Levels tab and click the (...) button to the right of Fill colors. This opens the Colormap dialog.
  4. Uncheck Logarithmic scaling (to see how the log values are calculated from the linear values).
  5. Let's look at the yellow node. Select the yellow node and you can see that the Value is 2625.406. Now let's calculate what value this would be on the logarithmic scale. It is not as simple as just taking the log of 2625.406.
  6. First, calculate the log of the current extents. The data extents of the colormap are 0.007299754353 to 4375.671427. Take the log of both these values to calculate the log extents of -2.136691754 to 3.641044703.
  7. Find the % position of the yellow node along the colormap for the new extents. You can find this out by looking at the CLR file (if you saved the colormap to a file) or by simply calculating it. To calculate it, take the existing node value, 2625.406, and divide it by the range of data (4375.671427 - 0.007299754353), and multiply by 100. The yellow node is at the 60% position. 
  8. Find the new value at the 60% position. The 60% position between the calculated log extents (-2.136691754 to 3.641044703) is 1.3299485.
  9. The antilog of 1.3299485 is 21.377. This is the new node value on the log scaled colormap.
  10. Check Logarithmic scaling and you can see that the Value for the yellow node is 21.377.


Updated January 26, 2017


Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.