initial structure implemented

docs -> _docs
This commit is contained in:
Oleksandr Bezdieniezhnykh
2025-12-01 14:20:56 +02:00
parent 9134c5db06
commit abc26d5c20
360 changed files with 3881 additions and 101 deletions
+14
View File
@@ -0,0 +1,14 @@
from .gps_point import GPSPoint
from .camera_parameters import CameraParameters
from .pose import Pose
from .polygon import Polygon
from .validation_result import ValidationResult
__all__ = [
"GPSPoint",
"CameraParameters",
"Pose",
"Polygon",
"ValidationResult",
]
+18
View File
@@ -0,0 +1,18 @@
from typing import Optional
from pydantic import BaseModel
class CameraParameters(BaseModel):
focal_length: float
sensor_width: float
sensor_height: float
resolution_width: int
resolution_height: int
principal_point: tuple[float, float] | None = None
distortion_coefficients: list[float] | None = None
def get_principal_point(self) -> tuple[float, float]:
if self.principal_point:
return self.principal_point
return (self.resolution_width / 2.0, self.resolution_height / 2.0)
+21
View File
@@ -0,0 +1,21 @@
from pydantic import BaseModel, field_validator
class GPSPoint(BaseModel):
lat: float
lon: float
@field_validator("lat")
@classmethod
def validate_lat(cls, v: float) -> float:
if not -90 <= v <= 90:
raise ValueError("Latitude must be between -90 and 90")
return v
@field_validator("lon")
@classmethod
def validate_lon(cls, v: float) -> float:
if not -180 <= v <= 180:
raise ValueError("Longitude must be between -180 and 180")
return v
+8
View File
@@ -0,0 +1,8 @@
from pydantic import BaseModel
from .gps_point import GPSPoint
class Polygon(BaseModel):
north_west: GPSPoint
south_east: GPSPoint
+15
View File
@@ -0,0 +1,15 @@
from datetime import datetime
from typing import Optional
import numpy as np
from pydantic import BaseModel, ConfigDict
class Pose(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
frame_id: int
position: np.ndarray
orientation: np.ndarray
timestamp: datetime
covariance: Optional[np.ndarray] = None
+7
View File
@@ -0,0 +1,7 @@
from pydantic import BaseModel
class ValidationResult(BaseModel):
valid: bool
errors: list[str] = []