matrix
Frads Matrix class simply encapsulate the components necessary to generate a matrix, such as ray sender and receiver. The matrix data is by default store as numpy array in memory for later access.
frads.Matrix
Base Matrix object.
Attributes:
Name | Type | Description |
---|---|---|
sender |
Sender object |
|
receivers |
List of receiver objects |
|
array |
Matrix array, this is usually where the matrix data is stored |
|
ncols |
Number of columns |
|
nrows |
int
|
Number of rows |
dtype |
Matrix data type |
|
ncomp |
Number of components |
|
octree |
Octree file used to generate the matrix |
|
surfaces |
List of environment surface primitives |
Initialize a matrix.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sender
|
Union[SensorSender, ViewSender, SurfaceSender]
|
Sender object |
required |
receivers
|
Union[List[SkyReceiver], List[SurfaceReceiver], List[SunReceiver]]
|
List of receiver objects |
required |
octree
|
Optional[str]
|
Octree file used to generate the matrix |
None
|
surfaces
|
Optional[List[Primitive]]
|
List of environment surface file paths |
None
|
generate
Call rfluxmtx to generate the matrix.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
params
|
List[str]
|
List of rfluxmtx parameters |
required |
nproc
|
int
|
Number of processes to use |
1
|
sparse
|
bool
|
Use sparse matrix format |
False
|
to_file
|
bool
|
Indicate the matrix will be written to file directly as specified by rfluxmtx markup. As a result, the matrix will not be stored in memory as numpy array. |
False
|
memmap
|
bool
|
Use memory mapping (out-of-core) to store the matrix, which is useful for large matrices. |
False
|
frads.SensorSender
Sender object as a list of sensors.
Attributes:
Name | Type | Description |
---|---|---|
sensors |
A list of sensors, each sensor is a list of 6 numbers |
|
content |
Sensor encoded for Radiance |
|
yres |
Number of sensors |
Initialize a sender object with a list of sensors:
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sensors
|
List[List[float]]
|
A list of sensors, each sensor is a list of 6 numbers |
required |
ray_count
|
int
|
Number of rays per sensor |
1
|
frads.ViewSender
Sender object as a view.
Attributes:
Name | Type | Description |
---|---|---|
view |
A view object |
|
content |
View encoded for Radiance |
|
xres |
x resolution |
|
yres |
y resolution |
frads.SurfaceSender
Sender object as a list of surface primitives.
Attributes:
Name | Type | Description |
---|---|---|
surfaces |
A list of surface primitives |
|
basis |
Sender sampling basis |
|
content |
Surface encoded for Radiance |
Instantiate a SurfaceSender object.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
surfaces
|
List[Primitive]
|
A list of surface primitives |
required |
basis
|
str
|
Sender sampling basis |
required |
left_hand
|
bool
|
Whether to use left-hand coordinate system |
False
|
offset
|
bool
|
Offset of the sender surface |
None
|
frads.SkyReceiver
Bases: Receiver
Sky as receiver object.
Attributes:
Name | Type | Description |
---|---|---|
basis |
Receiver sampling basis |
|
content |
Sky encoded for Radiance |
frads.SurfaceReceiver
Bases: Receiver
Receiver object as a list of surface primitives.
Attributes:
Name | Type | Description |
---|---|---|
surfaces |
A list of surface primitives |
|
basis |
Receiver sampling basis |
|
content |
Surface encoded for Radiance |
frads.SunMatrix
Bases: Matrix
Sun Matrix object, specialized for sun-only matrices.
Attributes:
Name | Type | Description |
---|---|---|
sender |
Sender object |
|
receiver |
Receiver object |
|
octree |
Octree file |
|
surfaces |
List of surface files |
|
array |
Matrix array |
|
nrows |
Number of rows |
|
ncols |
Number of columns |
|
dtype |
Data type |
|
ncomp |
Number of components |
generate
Call rcontrib to generate a matrix and store it in memory as a numpy array.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
parameters
|
List[str]
|
List of rcontrib parameters |
required |
nproc
|
int
|
Number of processes to use |
1
|
radmtx
|
bool
|
If true, return the matrix bytes from rcontrib directly |
False
|
sparse
|
bool
|
Use sparse matrix format, this is usually a good idea given the nature of sun-only matrices. |
False
|
frads.SunReceiver
Bases: Receiver
Sun as receiver object. The number of suns is reduced depending on the input. If an annual sun_matrix is provided, only the non-zero solar position is used. If window_normals are provided, only the suns that are visible through the window are used.
Attributes:
Name | Type | Description |
---|---|---|
basis |
Receiver sampling basis |
|
content |
Sun encoded for Radiance |
|
modifiers |
Sun modifier names |
Initialize a sun receiver.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
basis
|
str
|
Sampling basis |
required |
sun_matrix
|
Optional[ndarray]
|
Annual sun matrix |
None
|
window_normals
|
Optional[List[ndarray]]
|
List of window normals |
None
|
full_mod
|
bool
|
Use full set of sun modifiers |
False
|
frads.load_matrix
Load a Radiance matrix file into numpy array.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file
|
Union[bytes, str, Path]
|
a file path |
required |
dtype
|
str
|
data type |
'float'
|
Returns:
Type | Description |
---|---|
ndarray
|
A numpy array |
frads.load_binary_matrix
Load a matrix in binary format into a numpy array.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
buffer
|
bytes
|
buffer to read from |
required |
nrows
|
int
|
number of rows |
required |
ncols
|
int
|
number of columns |
required |
ncomp
|
int
|
number of components |
required |
dtype
|
str
|
data type |
required |
header
|
bool
|
if True, strip header |
False
|
Returns:
Type | Description |
---|---|
ndarray
|
The matrix as a numpy array |
frads.surfaces_view_factor
Calculate surface to surface view factor using rfluxmtx.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
surfaces
|
List[Primitive]
|
list of surface primitives that we want to calculate view factor for. Surface normal needs to be facing outward. |
required |
env
|
List[Primitive]
|
list of environment primitives that our surfaces will be exposed to. Surface normal needs to be facing inward. |
required |
ray_count
|
int
|
number of rays spawned for each surface. |
10000
|
Returns:
Type | Description |
---|---|
Dict[str, Dict[str, List[float]]]
|
A dictionary of view factors, where the key is the surface identifier. |