suppressing data in "plot vd depth"

I have a plot vs depth for shear strength and would like to include the correlation to shear strength from an SPT N-value. Is there a way to suppress the result if say the lithology symbol/classification = or("XX", "YY", ...)? or some similar expression?

  • SZANG, this is perfect! It worked exactly how i wanted it to.

    Thank you so much for your detailed response. I was looking through the help manual yesterday and it did not state as clearly as you did that item 2 is the table you want to cross check against. All the code i had been evaluating was therefore crosschecking the depth versus the classification, which explains why it would suppress all the outputs.

    Thank you,

    george

  • Here is an example that I put together using my data structure and library.  Yours will vary so you will have to adapt it to your field names and conventions.

    I put together a simple log with a plot for shear strength vs depth and a plot of spt n vs depth.  Note that though my shear strength plot only plots your correlation to spt it is no problem that you have a report with multiple plot vs depth entities that plot shear strength in the same column.  It does not matter if the entity is the first or the last to plot.

    The plot vs depth entity for shear strength is shown in the picture below:

    Note that it is simply plotting the sum of blows 2 and 3 times your correlation and is plotting at the bottom depth of the sample.  Looking at your example, you have a field that appears to hold the SPT and you calculate the bottom depth as the top depth + the sample length. The data driving this is in the sample table, this is important.  You can add additional restrictions on this like hasdata but it is not necessary for this example.

    If we want to restrict this to output only for cohesive layers as identified by specific graphic codes in the lithology table  we have to ask gINT to look up what graphic code will apply to the depth that the sample actually is plotting at.  Note that the criteria we will use is NOT in the sample table on the same record as the data being plotted so we can not access it directly.  The SqlRange function does this for us.

    To restrict the output we have to put an expression that evaluates as true or false in the Body Data Output Condition property of the configuration tab of the entity.  This is shown in the picture below:

    The complete expression I have in the above is shown in the following code window below

    <<Calc(_
      (<<SqlRange(<<SAMPLE.Bottom>>,[LITHOLOGY].[Strata_ID],[LITHOLOGY].[Bottom],[LITHOLOGY].[Depth])>>="COE-CL") _
       Or _
      (<<SqlRange(<<SAMPLE.Bottom>>,[LITHOLOGY].[Strata_ID],[LITHOLOGY].[Bottom],[LITHOLOGY].[Depth])>>="COE-CH") _
       Or _
      (<<SqlRange(<<SAMPLE.Bottom>>,[LITHOLOGY].[Strata_ID],[LITHOLOGY].[Bottom],[LITHOLOGY].[Depth])>>="COE-OH") _
       Or _
      (<<SqlRange(<<SAMPLE.Bottom>>,[LITHOLOGY].[Strata_ID],[LITHOLOGY].[Bottom],[LITHOLOGY].[Depth])>>="COE-PT") _
    )>>

    The SqlRange function has the following arguments:

    1. The depth that you want to look up information on.  In this case it is the field/expression used to plot the data or <<Sample.Bottom>>.  Note that this is in gINT format.  In your case it appears that it will be <<Calc(<<Sample.depth>>+<<Sample.Driven>>)>>

    2. The table and field that you want to return.  In this case it is [Lithology].[Strata_ID].  Note this is in SQL format. In your case it seems to be [LITHOLOGY].[CLASSIFICATION].

    3. The field in the lookup table that defines the bottom depth.  In this case it is [Lithology].[Bottom].  Again this is in SQL format. If this argument is left blank, [Table].[Bottom] will be assumed so I didn't really need to include this.

    4. The field in the lookup table that defines the top depth.  In this case it is [Lithology].[Depth].  Again this is in SQL format. If this argument is left blank, [Table].[Depth] will be assumed so I didn't really need to include this.

    5. The include bounds parameter.  This determines how gINT interprets depth that fall right on the boundary between 2 layers.  I did not include it and it will assume the default.

    I then compare the looked up strata_ID to a literal value to see if the layer is cohesive.  You can add as many literal values as you want using Or connectors so any one of the the cohesive layers will evaluate as true.  if it is true the entity will plot the point.

    The results of this are shown below (yes I know the graphs aint pretty but this is just a brief example)

    Note that the shear strength correlation to spt did not plot for the 2 SPT's located in the silt layer but did plot for the spts in the upper CL and the lower OH layer as expected.

    Again I emphasis that your data structure and library is different than mine and the above will need to be modified for your case. Let me know if you have specific questions on how to adapt it.

    Answer Verified By: george segre 

  • Attached is a screenshot of the different items being plotted....are you saying it might be easier if i make the "main" plot carry the SPT correlation? (more screenshots below)

    below is the requested screenshot of the main tab of the plot entity (last plot entity in previous screenshot):

    Again, let me know if you need anything else, and thank you.

  • Could you post a screen grab of the main tab of the plot entity. I suspect it is not working because the plot depth is from a different table than the table with the criteria. I had tried to add this caveat but apparently it didnt post. 

    Not a problem, it just means that you have to use an SQL function to look up the pertinent data from the lithology table based on the current plot depth. SQL functions can be tricky cause you gave to use a mixture of gINT syntax and SQL syntax. I will post an example if you can get me the main tab. 

  • I just want to add, that i did read the linked post and tried some of the SQLRange() options and other methods, but could not get it to work.

    I also noticed one of my conditional statements in the post above may have an error when checking the depth, but i have fixed that, and still cannot obtain the outputs i am trying to achieve.