Annual Solar Radiation

Hello all,

I’m trying to compute the annual solar radiation on a outdoor surface.
The only way I found to do it was to follow the steps in this post: Modified Three phase Odd radiation levels
The method looks something like:

rfluxmtx -v -n 6 -I+ -ab 12 -ad 10000 -lw 1e-4 -w- < sensors.pts - sky_white.sky material.mat objects.rad > photocells.vmx
epw2wea weather.epw weather.wea
gendaymtx -m 1 -O1 weather.wea > matrix.smx
dctimestep photocells.vmx matrix.smx | rmtxop -fa -c 1 1 1 res.dat

I noticed this method does not involve generating a octree. Do anyone know the reason for that?
Could I replace the rfluxmtx command with:

ocovn -f material.mat objects.rad > model.oct
rfluxmtx -v -n 6 -I+ -ab 12 -ad 10000 -lw 1e-4 -w- < sensors.pts - sky_white.sky -i model.oct > photocells.vmx

Would there be be any difference in the result or simulation time between the original command and one including the octree?

The rfluxmtx includes a “-w-” flag. I couldn’t find what it does in the documentation?
The rfluxmtx command also doesn’t include a “-y” flag as in the matrix based documentation is it because the example in the previous post only uses one sensor point?

rmtxop is used to turn the result from dctimestep into W/m2. Is the results point-in-time values so I need to multiply with 3600 to get Wh/m2 or are they the sum of radiation received in that time step, so the result actually is in Wh/m2?

Thanks alot!

The rfluxmtx command calls oconv along with rcontrib, so the command where you give it the octree with the -i option should work about the same. It will be no slower and no faster.

The rfluxmtx command in pass-through mode (’-’ specification) should handle the -y option properly, and it can be set to -y 1 if you have just a single point.

The “-w-” option turns warnings off, as might be desirable if your geometry has a lot of non-planar polygons or exhibits other minor errors.

If your weather file is already in per-hour time steps, then a simple sum should give you Wh/m^2. Otherwise, you’ll need to multiply the result by whatever fraction of an hour is used.

I do not think you want to use “rmtxop -c 1 1 1” as this adds your three channels together and creates a matrix with one long row rather than a sum. Better to use dctimestep with the -of option and pass it to total like so:

dctimestep -of photocells.vmx matrix.smx | total -if3

This will also be slightly faster, as it doesn’t have to convert back-and-forth between ASCII and binary floats. A similar -ff option can be used with rfluxmtx to create floating-point matrix output.

These tools are rather complicated and confusing.
-Greg

Hi Greg,

Thank you for the answers! It solved my issues

/Christian