LB_IncidentRadiation - int mtx output

Checking the values of the int_mtx output of the IncidentRadiation component i get that for each sensor i get 290 values instead of the expected 145 (as Tragenza number of patches), like this:


The hint of the output says:

Each sub-list of the matrix (aka. branch of the Data Tree) represents one of the points used for analysis. The length of each sub-list matches the number of sky patches in the input sky matrix (145 for the default Tregenza sky and 577 for the high_density Reinhart sky).

This is not a critical question but will be nice to understand if i’m missing something or there is a bug in the output.


Hi @AbrahamYezioro,

I’m fairly sure that the first 145 is for the sky and the second 145 is for the “ground” (a reflection of the sky with a modifier of 0.2)

I haven’t checked it though!

Hi @charlie.brooker ,
Thanks for answering. I don’t believe the second results relates to ground. At least, for some sample results, they all look the same. I’m wondering …

Hey @AbrahamYezioro

My python isn’t the best, but from what I can tell all_vecs is a list 290 long made up of sky and ground vectors.

int_mtx is then generated from int_mtx_init taking all_vecs as an input, so I assume the length of int_mtx should be based on the sky and ground vectors.

Here’s a snippet from

for vec in lb_vecs)
    all_vecs = [from_vector3d(vec) for vec in lb_vecs + lb_grnd_vecs]

    # intersect the rays with the mesh
    normals = [from_vector3d(vec) for vec in study_mesh.face_normals]
    int_matrix_init, angles = intersect_mesh_rays(
        shade_mesh, points, all_vecs, normals, cpu_count=workers)

    # compute the results
    results = []
    int_matrix = []
    for int_vals, angles in zip(int_matrix_init, angles):
        pt_rel = [ival * math.cos(ang) for ival, ang in zip(int_vals, angles)]


1 Like

Hi @charlie.brooker ,
You are right. Checked the code and the sun vectors are duplicated and their direction reversed. I’m assuming here that some diffused radiation is included in the calculation (the one from the ground).

What confused me at the beginning is the hint explanation of int_max output. I believe it is not correct.

Thanks for looking into it. Good eye.


1 Like

Happy to help - agree that the description would benefit from some tweaking :slight_smile: