vertiport_autonomy.config package

Submodules

vertiport_autonomy.config.loader module

vertiport_autonomy.config.loader.load_scenario_config(path: str) ScenarioConfig[source]

vertiport_autonomy.config.schema module

class vertiport_autonomy.config.schema.TrafficProfileType(value)[source]

Bases: str, Enum

STEADY_FLOW = 'steady_flow'
SUDDEN_INFLUX = 'sudden_influx'
PEAK_HOURS = 'peak_hours'
class vertiport_autonomy.config.schema.Point3D(*, x: float, y: float, z: float)[source]

Bases: BaseModel

x: float
y: float
z: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.FATO(*, id: str, position: Point3D, approach_path: List[Point3D])[source]

Bases: BaseModel

id: str
position: Point3D
approach_path: List[Point3D]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.HoldingPoint(*, id: str, position: Point3D, associated_fato: str)[source]

Bases: BaseModel

id: str
position: Point3D
associated_fato: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.Gate(*, id: str, position: Point3D, is_entry: bool, is_exit: bool)[source]

Bases: BaseModel

id: str
position: Point3D
is_entry: bool
is_exit: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.TrafficProfile(*, profile_type: TrafficProfileType, arrival_rate: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None], max_drones: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None], spawn_interval: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None])[source]

Bases: BaseModel

profile_type: TrafficProfileType
arrival_rate: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None]
max_drones: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None]
spawn_interval: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.VertiportLayout(*, fatos: List[FATO], holding_points: List[HoldingPoint], gates: List[Gate], operational_altitude: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None] = 50.0)[source]

Bases: BaseModel

fatos: List[FATO]
holding_points: List[HoldingPoint]
gates: List[Gate]
operational_altitude: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vertiport_autonomy.config.schema.ScenarioConfig(*, vertiport: VertiportLayout, traffic: TrafficProfile, simulation: Dict[str, float] = {'drone_radius': 0.5, 'drone_speed': 5.0, 'min_separation': 6.0, 'time_step': 0.1})[source]

Bases: BaseModel

vertiport: VertiportLayout
traffic: TrafficProfile
simulation: Dict[str, float]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Module contents

Configuration management.

class vertiport_autonomy.config.ScenarioConfig(*, vertiport: VertiportLayout, traffic: TrafficProfile, simulation: Dict[str, float] = {'drone_radius': 0.5, 'drone_speed': 5.0, 'min_separation': 6.0, 'time_step': 0.1})[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

vertiport: VertiportLayout
traffic: TrafficProfile
simulation: Dict[str, float]
class vertiport_autonomy.config.VertiportLayout(*, fatos: List[FATO], holding_points: List[HoldingPoint], gates: List[Gate], operational_altitude: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None] = 50.0)[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

fatos: List[FATO]
holding_points: List[HoldingPoint]
gates: List[Gate]
operational_altitude: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None]
class vertiport_autonomy.config.TrafficProfile(*, profile_type: TrafficProfileType, arrival_rate: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None], max_drones: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None], spawn_interval: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None])[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

profile_type: TrafficProfileType
arrival_rate: Annotated[float, None, Interval(gt=0, ge=None, lt=None, le=None), None, None]
max_drones: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None]
spawn_interval: Annotated[int, None, Interval(gt=0, ge=None, lt=None, le=None), None]
class vertiport_autonomy.config.Point3D(*, x: float, y: float, z: float)[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

x: float
y: float
z: float
class vertiport_autonomy.config.FATO(*, id: str, position: Point3D, approach_path: List[Point3D])[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
position: Point3D
approach_path: List[Point3D]
class vertiport_autonomy.config.HoldingPoint(*, id: str, position: Point3D, associated_fato: str)[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
position: Point3D
associated_fato: str
class vertiport_autonomy.config.Gate(*, id: str, position: Point3D, is_entry: bool, is_exit: bool)[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
position: Point3D
is_entry: bool
is_exit: bool
vertiport_autonomy.config.load_scenario_config(path: str) ScenarioConfig[source]