mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-23 00:36:37 +00:00
initial structure implemented
docs -> _docs
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
from .system_config import SystemConfig
|
||||
from .flight_config import FlightConfig
|
||||
from .database_config import DatabaseConfig
|
||||
from .model_config import ModelConfig
|
||||
from .rotation_config import RotationConfig
|
||||
from .recovery_config import RecoveryConfig
|
||||
|
||||
__all__ = [
|
||||
"SystemConfig",
|
||||
"FlightConfig",
|
||||
"DatabaseConfig",
|
||||
"ModelConfig",
|
||||
"RotationConfig",
|
||||
"RecoveryConfig",
|
||||
]
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class DatabaseConfig(BaseModel):
|
||||
host: str = "localhost"
|
||||
port: int = 5432
|
||||
database: str = "gps_denied"
|
||||
username: str = "postgres"
|
||||
password: str = ""
|
||||
pool_size: int = 50
|
||||
max_overflow: int = 50
|
||||
pool_timeout: int = 30
|
||||
pool_recycle: int = 3600
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
from ..core.camera_parameters import CameraParameters
|
||||
from ..core.gps_point import GPSPoint
|
||||
|
||||
|
||||
class OperationalArea(BaseModel):
|
||||
name: str = "Eastern Ukraine"
|
||||
min_lat: float = 45.0
|
||||
max_lat: float = 52.0
|
||||
min_lon: float = 22.0
|
||||
max_lon: float = 40.0
|
||||
|
||||
|
||||
class FlightConfig(BaseModel):
|
||||
camera_params: CameraParameters
|
||||
altitude: float
|
||||
operational_area: OperationalArea = OperationalArea()
|
||||
frame_spacing: float = 100.0
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class ModelConfig(BaseModel):
|
||||
model_name: str
|
||||
model_path: str
|
||||
format: str = "tensorrt"
|
||||
precision: str = "fp16"
|
||||
warmup_iterations: int = 3
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class RecoveryConfig(BaseModel):
|
||||
search_grid_sizes: list[int] = [1, 4, 9, 16, 25]
|
||||
min_chunk_frames_for_matching: int = 5
|
||||
max_chunk_frames_for_matching: int = 20
|
||||
user_input_threshold_tiles: int = 25
|
||||
chunk_matching_interval_seconds: float = 5.0
|
||||
confidence_threshold_good: float = 0.7
|
||||
confidence_threshold_degraded: float = 0.5
|
||||
min_inlier_count_good: int = 50
|
||||
min_inlier_count_tracking: int = 20
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class RotationConfig(BaseModel):
|
||||
step_angle: float = 30.0
|
||||
sharp_turn_threshold: float = 45.0
|
||||
confidence_threshold: float = 0.7
|
||||
history_size: int = 10
|
||||
|
||||
@property
|
||||
def rotation_iterations(self) -> int:
|
||||
return int(360 / self.step_angle)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
from pydantic import BaseModel
|
||||
from ..core.camera_parameters import CameraParameters
|
||||
from .database_config import DatabaseConfig
|
||||
from .flight_config import OperationalArea
|
||||
|
||||
|
||||
class ModelPaths(BaseModel):
|
||||
superpoint: str = "models/superpoint.engine"
|
||||
lightglue: str = "models/lightglue.engine"
|
||||
dinov2: str = "models/dinov2.engine"
|
||||
litesam: str = "models/litesam.engine"
|
||||
|
||||
|
||||
class APIConfig(BaseModel):
|
||||
host: str = "0.0.0.0"
|
||||
port: int = 8000
|
||||
debug: bool = False
|
||||
|
||||
|
||||
class SystemConfig(BaseModel):
|
||||
camera: CameraParameters
|
||||
operational_area: OperationalArea = OperationalArea()
|
||||
models: ModelPaths = ModelPaths()
|
||||
database: DatabaseConfig = DatabaseConfig()
|
||||
api: APIConfig = APIConfig()
|
||||
|
||||
Reference in New Issue
Block a user