Hi Ian —
As discussed earlier, here is a small review. PR is here:
Jenkins is here:
(Note that the failures on Linux systems seem to be due to Docker Hub problems; I'm optimistic that all is fine given the success on macOS).
I am reluctant to get into the details of the measurement algorithm on this ticket. It may be that SdssCentroid should never produce NaN errors (although the code seems to expect it...), but I think that's out of scope here: all we're interested in is are those NaNs being properly flagged when they occur. (If you'd like, we can make a ticket to follow up on the algorithmic details later.)
Unfortunately, the algorithmic code is rather involved. That makes it very hard to produce a good test case for this — I can't easily generate synthetic data which will cause the algorithm to succeed in all ways except that it generates NaNs for xErr and/or yErr. Given time constraints, and that the changes here are modest, I'd prefer to get this merged as-is rather than spend a long time examining the algorithm and agonizing over how to test it. If you think that attitude is unsustainable, let's discuss. (Even better, if you can suggest a way to test this without pulling the algorithm apart, please do let me know!!!)