Edges - Attributes
There are few edge attributes implemented in the anemoi-graphs package:
Edge length
The edge length is a scalar value representing the distance between the source and target nodes. This attribute is calculated using the Haversine formula, which is a method of calculating the distance between two points on the Earth’s surface given their latitude and longitude coordinates.
edges:
- source_name: ...
target_name: ...
edge_builders: ...
attributes:
edge_length:
_target_: anemoi.graphs.edges.attributes.EdgeLength
Edge direction
The edge direction is a 2D vector representing the direction of the edge. This attribute is calculated from the difference between the latitude and longitude coordinates of the source and target nodes.
edges:
- source_name: ...
target_name: ...
edge_builders: ...
attributes:
edge_length:
_target_: anemoi.graphs.edges.attributes.EdgeDirection
Attribute from Node
Attributes can also be copied from nodes to edges. This is done using the AttributeFromNode base class, with specialized versions for source and target nodes.
From Source
This attribute copies a specific property of the source node to the edge. Example usage for copying the cutout mask from nodes to edges in the encoder:
edges:
# Encoder
- source_name: data
target_name: hidden
edge_builders: ...
attributes:
comes_from_cutout: # Assigned name to the edge attribute, can be different than node_attr_name
_target_: anemoi.graphs.edges.attributes.AttributeFromSourceNode
node_attr_name: cutout
From Target
This attribute copies a specific property of the target node to the edge. Example usage for copying the coutout mask from nodes to edges in the decoder:
edges:
# Decoder
- source_name: hidden
target_name: data
edge_builders: ...
attributes:
comes_from_cutout: # Assigned name to the edge attribute, can be different than node_attr_name
_target_: anemoi.graphs.edges.attributes.AttributeFromTargetNode
node_attr_name: cutout