makeCoaddTempExp's lowest-level work method createTempExp interacts with disk via the Butler. When building coadds in Spark, or example, this required us to re-write an implementation of createTempExp instead of reusing the stack. createTempExp currently takes a list of dataRefs corresponding to the calexps that overlap the patch for a particular visit. These reads could be pushed to the higher-level calling method at the expense of memory.
Making createTempExp more reusable would require either:
a) Making createTempExp able to accept either a list of dataRefs or just a list of calexps. This actually appears to be the intent of the docstring writer). <-- naively, I suspect this will win.
b) Holding 4 full calexps in memory (or 4 partial calexps in memory)
c) Easily reproducible container that can interact with the disk, database etc...
This ticket involve investigating the computational feasibility, and implementing best option.