Cameron & Matt, What it's called isn't a big concern to me, but I see what you're saying, Cameron.
The issue about field detector is an interesting one. I guess I don't understand why asking for 'x' is a problem. Your solution sounds good to me.
When I wasn't looking for the field detector as I am now, what was happening is data['x' or 'y' or 'z'] would return some values that weren't cell centers, which when passed to the interpolation stuff would not work. So asking for 'x' wasn't a problem, but the values it returned were not what I wanted.
How fast is the code? It looks to me like it probably does quite a few expensive operations
Running on a 40^3 dataset on my 2.0Ghz i7 lappy on battery power gives about 300,000 cells/second for the whole process (HEALPix with 5 surfaces + interpolation). I think I'm close to making it parallel, but some weird stuff is popping up that I don't quite understand just yet.
... would you be willing at some point in the future to explore replacing it with an actual adaptive healpix operation?
Perhaps. It seems to me before you said that that would be quite a bit more difficult, which looking at the source is true. Everything in this current attempt is using numpy vectorization, so I don't know how much more speed can be squeezed out of this method. -- Stephen Skory s@skory.us http://stephenskory.com/ 510.621.3687 (google voice)