I re-ran the D4 read noise tests, this time at 1/8000 second. I didn't want to do the whole 7x16 exposure series in RawDigger, although it would have been faster if I was only going to do it once, so I learned how to use ImagesPlus, and converted the D4 raw files to flat Tiff's. Then I wrote a Matlab program to load all 112 files and compute the read noise stats for each ISO.
[Non-programmers, avert your eyes] Today I banged my head against the wall trying to figure out why my results were 1/16 of what my spot checks in RawDigger indicated that they should be. After almost two hours of looking for the bug, I found an array assignment statement just below the end of the for loop that it was supposed to be inside of. Some programming languages restrict the scope of loop indices to the loops. Not Matlab; the index lives on with the last value it had in the loop. Some loosely-typed programming languages will complain if you try to assign a variable to the 16th entry of an undeclared array. Not Matlab; it will happily and silently create the array and make the first 15 entries zero. [end programmer alert]
Here are the new read noise model values:
And here's how they look plotted against the new data:
When fitting the curves, I decided that the ISO 6400 values weren't very important, since, based on what we've learned so far, we'll never use those ISOs.