Grid#
- class acoular.grids.Grid
Bases:
ABCHasStrictTraitsAbstract base class for grid geometries.
This class defines a common interface for all grid geometries and provides tools to query grid properties and related data. It is intended to serve as a base class for specialized grid implementations and should not be instantiated directly as it lacks concrete functionality.
Unit of length
The source code is agnostic to the unit of length. The positions’ coordinates are assumed to be in meters. This is consistent with the standard
Environmentclass which uses the speed of sound at 20°C at sea level under standard atmosphere pressure in m/s. If the positions’ coordinates are provided in a unit other than meter, it is advisable to change thecattribute to match the given unit.- size = Property()
The total number of grid points. This property is automatically calculated based on other defining attributes of the grid. (read-only)
- shape = Property()
The shape of the grid, represented as a tuple. Primarily useful for Cartesian grids. (read-only)
- pos = Property()
The grid positions represented as a (3,
size) array offloats. (read-only) All positions’ coordinates are in meters by default (see here).
- digest = Property
A unique identifier for the grid, based on its properties. (read-only)
- subdomain(sector)
Return the indices for a subdomain in the grid.
Allows arbitrary subdomains of type
Sector.- Parameters:
- sector
Sectorobject Sector describing the subdomain.
- sector
- Returns:
Notes
The
numpy.where()method is used to determine the the indices.
- export_gpos(filename)
Export the grid positions to an XML file.
This method generates an XML file containing the positions of all grid points. Each point is represented by a
<pos>element withName,x,y, andzattributes. The generated XML is formatted to match the structure required for importing into theImportGridclass.- Parameters:
- filename
str The path to the file to which the grid positions will be written. The file extension must be
.xml.
- filename
- Raises:
OSErrorIf the file cannot be written due to permissions issues or invalid file paths.
Notes
The file will be saved in UTF-8 encoding.
The
Nameattribute for each point is set as"Point {i+1}", whereiis the index of the grid point.If subgrids are defined, they will be included as the
subgridattribute.
Examples
Export a grid with 100 points to an XML file:
>>> import acoular as ac >>> import numpy as np >>> grid = ac.ImportGrid() >>> # Create some grid points >>> points = np.arange(9).reshape(3, 3) >>> grid.pos = points >>> grid.export_gpos('grid_points.xml')
The generated
grid_points.xmlfile will look like this:<?xml version="1.1" encoding="utf-8"?><Grid name="grid_points"> <pos Name="Point 1" x="0" y="1" z="2"/> <pos Name="Point 2" x="3" y="4" z="5"/> <pos Name="Point 3" x="6" y="7" z="8"/> </Grid>