Probably!
But it has been a good learning process.
I had written my kernels and a bunch of data structures to parallelize over the number of elevations and the number of azimuths, assuming that the number of azimuths was the same per elevation. Oops. I figured it would be an easier fix to just create a meridinal scheme for the sky… at least it forced me to learn a bit more about sky patches!
I do realize now from looking at the function that you linked that it might be simpler to keep the rays as they currently are, but then compute the the sky patch bin that their azimuth/angle would correspond to within a reinhart sky, instead of having a unique sky patch for each ray… I guess I will implement that too now as a little validation check for my subdivision/regrouping.
Ah, I think I missed the -c flag. I thought that the three channels were somehow being computed separately from data in the EPW/WEA files, but it sounds like there is really only a single value derived from the provided data; then the -c flag provides the weights which you can set as desired to correspond to some frequency response of whatever system it is you might be interested in, etc. I guess since I am just interested in clustering regions of facades based off of their solar exposure for the purposes of thermal/energy modeling (for use in an UMI style shoeboxer, or for use as part of an input vector for a CNN), it sounds like just setting -c 1 1 1 and then taking the first channel will work for me!
Part of my motivation of writing my own engine for the ray tracing step was the assumption that all geometry is 2.5D and starts on the ground, which at least somewhat simplifies some of the ray tracing I think.