Can cumulative sky matrix be stored in a data component?

I got the following error when reading from a data component with one set of cumulative sky matrix data “internalized”:

Does this mean cumulative sky matrix cannot be stored?

Appreciate your kind advice.

  • Ji

unable to store sky matrix data.gh (363 KB)

Hi Ji,

The component that creates the cumulative sky returns a Python Class. And the component that receives the cumulative sky needs that Python class as input. I don’t think native python components can be internalized and retrieved inside Grasshopper. The error you are getting can be traced back to this line in the code where the script expects a class with a ‘d’ attribute.

So, to answer your question, cumulative matrix cannot be internalized.

(There is a slight chance that I might be incorrect about this. If so, I hope someone would provide the right answer.)

Hi,

Probably Sarith is right.

The only reason i can think about of internalizing the data is to transfer it to someone else. Otherwise i’m not sure it makes much sense. My understanding is that the genCumSky creates the mtx files the FIRST time it was asked for, for the EPW. It checks if those files exist already. If so, it only reads them (which takes some time because they are big files), if no it calculates them.

So, just for my curiosity, why you want to internalize them, Ji?

-A.

Thank you both, Sarith and Abraham.

To Ahbraham, the reason to store sky matrix is because it takes a while to generate the matrix every time a new weather file is used, especially when higher resolution of the sky subdivision is used.

Nevertheless, it’s still ok as it takes less than 30 seconds to generate the sky matrix for the default 145-patch Tregenza sky subdivision…

Sarith is right. Grasshopper is incapable of loading internalized python objects so it cast the “unknown type” to a string. There might be a way to internalize them if we wrap them in a grasshopper object but I have never tested it.

We can also enhance the performance of the current parser to load the matrix faster. I re-wrote the parser for the new ladybug but that one should also be improved. It’s just a matter of time! :slight_smile:

Thanks, Mostapha, for the clarification.

I noticed that in your youtube tutorial video on gendaymtx, you have two components indicated as TregenzaSky and ReinhartSkyMtx, respectively. Are these components valid only during that particular GH session? i.e. once that GH file is closed and reopen, the two sky matrix need to be re-created?

Exactly! I just internalized them for the video and that was it. Once the file is closed it needs to be recreated.

Hi,

My understanding was that once the MTX files are created for the first time they not need to be recreated but just read from those files.

Am i wrong?

-A.

You’re right. By “recreate” I mean recreating the object from the mtx files.