noether.data.schemas

Classes

FieldDimSpec

A specification for a group of named data fields and their dimensions.

DomainDataSpec

Data specification for a single domain (e.g., surface, volume, wake).

ModelDataSpecs

Base data specification for models that operate on arbitrary named domains.

FileMap

File mapping schema for aerodynamic datasets.

AeroStatsSchema

Unified statistics dataclass for aerodynamics datasets such as AhmedML, and DrivAerML, DrivAerNet++,

Module Contents

class noether.data.schemas.FieldDimSpec

Bases: pydantic.RootModel[collections.OrderedDict[str, int]]

A specification for a group of named data fields and their dimensions.

property field_slices: dict[str, slice]

Calculates slice indices for each field in concatenation order.

Return type:

dict[str, slice]

property total_dim: int

Calculates the total dimension of all fields combined.

Return type:

int

keys()
values()
items()
class noether.data.schemas.DomainDataSpec(/, **data)

Bases: pydantic.BaseModel

Data specification for a single domain (e.g., surface, volume, wake).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

output_dims: FieldDimSpec

1, “velocity”: 3}.

Type:

Output fields and their dimensions for this domain, e.g. {“pressure”

feature_dim: FieldDimSpec | None = None

Input feature fields and their dimensions for this domain.

class noether.data.schemas.ModelDataSpecs(/, **data)

Bases: pydantic.BaseModel

Base data specification for models that operate on arbitrary named domains.

This is the minimal interface that model configs need from data specifications: position dimensions, available conditioning, and per-domain data descriptions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

position_dim: int = None

Dimension of the input position vectors.

conditioning_dims: FieldDimSpec | None = None

Available conditioning features and their dimensions.

domains: dict[str, DomainDataSpec] = None

Per-domain data specifications keyed by domain name.

use_physics_features: bool = True

Whether physics features are used as input.

property total_output_dim: int

Calculates the total output dimension across all domains.

Return type:

int

property all_targets: set[str]

Returns all target field names across all domains, prefixed by domain name.

Return type:

set[str]

property all_features: set[str]

Returns all feature field names across all domains.

Return type:

set[str]

remove_feature_fields()
class noether.data.schemas.FileMap(/, **data)

Bases: pydantic.BaseModel

File mapping schema for aerodynamic datasets.

Maps field names to their corresponding file names in the dataset directory. This allows different datasets to use different file naming conventions while maintaining a unified interface.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

surface_position: str | None = None
surface_pressure: str | None = None
surface_friction: str | None = None
surface_normals: str | None = None
surface_area: str | None = None
volume_position: str | None = None
volume_pressure: str | None = None
volume_velocity: str | None = None
volume_vorticity: str | None = None
volume_normals: str | None = None
surface_position_stl: str | None = None
surface_position_stl_resampled: str | None = None
volume_friction: str | None = None
volume_distance_to_surface: str | None = None
design_parameters: str | None = None
class noether.data.schemas.AeroStatsSchema(/, **data)

Bases: pydantic.BaseModel

Unified statistics dataclass for aerodynamics datasets such as AhmedML, and DrivAerML, DrivAerNet++, ShapeNet-Car, and Wing.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

surface_domain_min: tuple[float, float, float] | None = None
surface_domain_max: tuple[float, float, float] | None = None
surface_pos_mean: tuple[float, float, float] | None = None
surface_pos_std: tuple[float, float, float] | None = None
surface_pressure_mean: tuple[float] | None = None
surface_pressure_std: tuple[float] | None = None
surface_friction_mean: tuple[float, float, float] | None = None
surface_friction_std: tuple[float, float, float] | None = None
volume_pos_mean: tuple[float, float, float] | None = None
volume_pos_std: tuple[float, float, float] | None = None
volume_pressure_mean: tuple[float] | None = None
volume_pressure_std: tuple[float] | None = None
volume_velocity_mean: tuple[float, float, float] | None = None
volume_velocity_std: tuple[float, float, float] | None = None
volume_vorticity_mean: tuple[float, float, float] | None = None
volume_vorticity_std: tuple[float, float, float] | None = None
volume_vorticity_logscale_mean: tuple[float, float, float] | None = None
volume_vorticity_logscale_std: tuple[float, float, float] | None = None
volume_vorticity_magnitude_mean: float | None = None
volume_vorticity_magnitude_std: float | None = None
volume_domain_min: tuple[float, float, float] | None = None
volume_domain_max: tuple[float, float, float] | None = None
volume_sdf_mean: tuple[float] | None = None
volume_sdf_std: tuple[float] | None = None
inflow_design_parameters_min: collections.abc.Sequence[float] | None = None
inflow_design_parameters_max: collections.abc.Sequence[float] | None = None
inflow_design_parameters_mean: collections.abc.Sequence[float] | None = None
inflow_design_parameters_std: collections.abc.Sequence[float] | None = None
geometry_design_parameters_min: collections.abc.Sequence[float] | None = None
geometry_design_parameters_max: collections.abc.Sequence[float] | None = None
geometry_design_parameters_mean: collections.abc.Sequence[float] | None = None
geometry_design_parameters_std: collections.abc.Sequence[float] | None = None
raw_pos_min: tuple[float] | None = None
raw_pos_max: tuple[float] | None = None