Chris is right about messing with invalids being a tricky process. He gave me
quite useful help long ago. But even now after years of tinkering, I still
stumble across surprising results, things I didn't know, and cases that "break"
my algorithm (i.e. it was proven to work only most of the time). You might look
to a safer method. Here's a couple of options I've used to do similar thing (I
think of it as "masking") - I hope one of them works for you.

1. Use compute to set the data in your field to an out of range value (-999)
based on the value of the secondary integer field (the "mask"). Then do an
include on the field to remove all the -999's e.g.,

        Compute:   mask==subdomain1_value?mydata:-999
        Include (set min and max to eliminate -999)
        ShowBoundary

2. Use Replace to create a "mask" component to your "real" field. Then on the
resulting field,

       Mark ("mask")
       Include (set min and max to isolate subdomain of interest)
       Unmark ("mask")
       Showboundary


Note: You have to be careful if you have done any other Includes on your field
prior to the masking. Better to to it after.

Also, I do think your specific problem in your method can be pinpointed, but
the explanation is ugly (having to do with the relationship among invalids,
ShowBoundary, and the default "cull" setting for Include). I suspect that if
cull=1, you have no invalids to Replace (surprisingly, dx gives no error).

Reply via email to