Read
Functions to create a Device from various data sources.
from_gds(gds_path, cell_name, gds_layer=(1, 0), bounds=None, **kwargs)
Create a Device from a GDS cell.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
gds_path
|
str
|
The file path to the GDS file. |
required |
cell_name
|
str
|
The name of the cell within the GDS file to be converted into a Device object. |
required |
gds_layer
|
tuple[int, int]
|
A tuple specifying the layer and datatype to be used from the GDS file. Defaults to (1, 0). |
(1, 0)
|
bounds
|
Optional[tuple[tuple[float, float], tuple[float, float]]]
|
A tuple specifying the bounds for cropping the cell before conversion, formatted as ((min_x, min_y), (max_x, max_y)), in units of the GDS file. If None, the entire cell is used. |
None
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the specified cell from the GDS file, after processing based on the specified layer. |
Source code in prefab/read.py
from_gdsfactory(component, **kwargs)
Create a Device from a gdsfactory component.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
component
|
Component
|
The gdsfactory component to be converted into a Device object. |
required |
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the gdsfactory component. |
Raises:
Type | Description |
---|---|
ImportError
|
If the gdsfactory package is not installed. |
Source code in prefab/read.py
from_gdstk(gdstk_cell, gds_layer=(1, 0), bounds=None, **kwargs)
Create a Device from a gdstk cell.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
gdstk_cell
|
Cell
|
The gdstk.Cell object to be converted into a Device object. |
required |
gds_layer
|
tuple[int, int]
|
A tuple specifying the layer and datatype to be used from the cell. Defaults to (1, 0). |
(1, 0)
|
bounds
|
tuple[tuple[float, float], tuple[float, float]]
|
A tuple specifying the bounds for cropping the cell before conversion, formatted as ((min_x, min_y), (max_x, max_y)), in units of the GDS cell. If None, the entire cell is used. |
None
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the gdstk.Cell, after processing based on the specified layer. |
Source code in prefab/read.py
from_img(img_path, img_width_nm=None, binarize=True, **kwargs)
Create a Device from an image file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
img_path
|
str
|
The path to the image file to be converted into a Device object. |
required |
img_width_nm
|
Optional[int]
|
The width of the image in nanometers. If specified, the Device will be resized to this width while maintaining aspect ratio. If None, no resizing is performed. |
None
|
binarize
|
bool
|
If True, the image will be binarized (converted to binary values) before conversion to a Device object. This is useful for processing grayscale images into binary masks. Defaults to True. |
True
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the processed image, after optional resizing and binarization. |
Source code in prefab/read.py
from_ndarray(ndarray, resolution=1.0, binarize=True, **kwargs)
Create a Device from an ndarray.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ndarray
|
ndarray
|
The input array representing the device geometry. |
required |
resolution
|
float
|
The resolution of the ndarray in nanometers per pixel, defaulting to 1.0 nm per pixel. If specified, the input array will be resized based on this resolution to match the desired physical size. |
1.0
|
binarize
|
bool
|
If True, the input array will be binarized (converted to binary values) before conversion to a Device object. This is useful for processing grayscale arrays into binary masks. Defaults to True. |
True
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the input array, after resizing and binarization. |
Source code in prefab/read.py
from_sem(sem_path, sem_resolution=None, sem_resolution_key=None, binarize=False, bounds=None, **kwargs)
Create a Device from a scanning electron microscope (SEM) image file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sem_path
|
str
|
The file path to the SEM image. |
required |
sem_resolution
|
Optional[float]
|
The resolution of the SEM image in nanometers per pixel. If not provided, it
will be extracted from the image metadata using the |
None
|
sem_resolution_key
|
Optional[str]
|
The key to look for in the SEM image metadata to extract the resolution.
Required if |
None
|
binarize
|
bool
|
If True, the SEM image will be binarized (converted to binary values) before conversion to a Device object. This is needed for processing grayscale images into binary masks. Defaults to False. |
False
|
bounds
|
Optional[tuple[tuple[int, int], tuple[int, int]]]
|
A tuple specifying the bounds in nm for cropping the image before conversion, formatted as ((min_x, min_y), (max_x, max_y)). If None, the entire image is used. |
None
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the processed SEM image. |
Raises:
Type | Description |
---|---|
ValueError
|
If neither |
Source code in prefab/read.py
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 |
|
from_tidy3d(tidy3d_sim, eps, z, freq, buffer_width=0.1, **kwargs)
Create a Device from a Tidy3D simulation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tidy3d_sim
|
Simulation
|
The Tidy3D simulation object. |
required |
eps
|
float
|
The permittivity of the layer to extract from the simulation. |
required |
z
|
float
|
The z-coordinate of the layer to extract from the simulation. |
required |
freq
|
float
|
The frequency at which to extract the permittivity. |
required |
buffer_width
|
float
|
The width of the buffer region around the layer to extract from the simulation. Defaults to 0.1 µm. This is useful for ensuring the inputs/outputs of the simulation are not affected by prediction. |
0.1
|
**kwargs
|
Additional keyword arguments to be passed to the Device constructor. |
{}
|
Returns:
Type | Description |
---|---|
Device
|
A Device object representing the permittivity cross-section at the specified z-coordinate for the Tidy3D simulation. |
Raises:
Type | Description |
---|---|
ImportError
|
If the tidy3d package is not installed. |
Source code in prefab/read.py
get_sem_resolution(sem_path, sem_resolution_key)
Extracts the resolution of a scanning electron microscope (SEM) image from its metadata.
Notes
This function is used internally and may not be useful for most users.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sem_path
|
str
|
The file path to the SEM image. |
required |
sem_resolution_key
|
str
|
The key to look for in the SEM image metadata to extract the resolution. |
required |
Returns:
Type | Description |
---|---|
float
|
The resolution of the SEM image in nanometers per pixel. |
Raises:
Type | Description |
---|---|
ValueError
|
If the resolution key is not found in the SEM image metadata. |