| .. | ||
| __pycache__ | ||
| app | ||
| beidou | ||
| coords | ||
| geohash | ||
| target | ||
| uav | ||
| __init__.py | ||
| config.py | ||
| planning.py | ||
| process.py | ||
| ReadMe.md | ||
空天快响算法库
- V1.0 - 2025/03/24: 添加北斗编码模块, 目标区域网格模块, 无人机任务规划模块
北斗编码 ktkx.beidou
-
GBT+39409-2020 北斗网格位置码, 实现非两级区域10级网格编解码, 两级区域3级网格编解码, 全区域10级高度码
网格层级 网格码长度 网格大小 高度码长度 网格高度 总长度 1 4 6\degree\times4\degree3 445.28km7 2 6 55.66km\times55.66km4 55.66km10 3 7 27.83km\times18.55km5 27.83km12 4 9 1.85km\times1.85km6 1.85km15 5 11 123.69m\times123.69m7 123.69m18 6 12 61.84m\times61.84m8 61.84m20 7 14 7.73m\times7.73m9 7.73m23 8 16 0.97m\times0.97m10 0.97m26 9 18 12cm\times12cm11 12.1cm29 10 20 1.5cm\times1.5cm12 1.5cm32 -
V1.0 - 2025/03/24:
- 新增:
- 实现非两级区域10级网格编解码, 两级区域3级网格编解码
- 全区域10级高度码
- 新增:
北斗区域网格码 ktkx.beidou.LocationCode
编码 ktkx.beidou.LocationCode.to_code()
-
Args:
lon(SupportsFloat): 经度(deg), Range: [-180, 180]
lat(SupportsFloat): 纬度(deg), Range: [-90, 90]
alt(SupportsFloat): 高程(m), Range: [-6378137, inf], Defaults: None
level(int): 网格层级, Range: [1, 10], Defaults: 10
dimension(int): 网格维度, Range: 2 or 3, Defaults: 2 -
Returns:
str: 二/三维网格码
解码 ktkx.beidou.LocationCode.to_coordinate()
-
Args:
code(str): 二/三维网格码 dimension(int): 网格码维度, Range: 2 or 3, Defaults: 2 -
Returns:
NDArray:
NDArray[float, float]: 经度(deg), 纬度(deg)
NDArray[float, float, float]: 经度(deg), 纬度(deg), 高程(m)
区域 ktkx.region
-
将二维区域目标按照指定的网格层级进行离散化, 储存区域和网格信息
-
V1.0 - 2025/03/24:
- 新增:
- 将二维区域目标按照指定的网格层级进行离散化
- 待解决:
- 由于进程竞争锁, 并行计算速度远低于但进程计算, 后续用Cyhton进行并行计算
- 点和线目标的区域类
- 新增:
区域类 ktkx.region.Region
初始化区域 ktkx.region.Region()
- Args:
coordinates(List[Tuple[float, float]]): 区域顶点经纬度坐标(deg)
level(int): 北斗网格层级
workers(int): 并行数量
区域离散化层级 ktkx.region.Region.level: int
区域多边形 ktkx.region.Region.polygon: Polygon
网格数组 ktkx.region.Region.grid_array: NDArray
网格位置码数组 ktkx.region.Region.grid_code_array: NDArray
网格中心数组 ktkx.region.Region.grid_center_array: NDArray
网格面积数组 ktkx.region.Region.grid_area_array: NDArray
网格 ktkx.region.Grid
初始化网格 ktkx.region.Grid()
-
Args:
code(str): 北斗二维地理网格码
center(NDArray): 网格中心点, Defaults: None
full_grid(bool): 网格是否完整, Defaults: True
polygon(Polygon): 网格多边形, Defaults: None -
Examples:
- 创建完整网格
Grid(code = code)
- 创建不完整网格
Grid(code = code, polygon = polygon, full_grid = False)
网格码 ktkx.region.Grid.code: str
网格层级 ktkx.region.Grid.level: int
网格经度差 ktkx.region.Grid.delta_lon: float
网格纬度差 ktkx.region.Grid.delta_lat: float
网格中心 ktkx.region.Grid.center: NDArray
网格多边形 ktkx.region.Grid.polygon: Polygon
网格是否完整 ktkx.region.Grid.full_grid: bool
无人机 ktkx.uav
-
V1.0 - 2025/03/24:
- 新增:
- 实现无人机类, 包含无人机开始结束位置, 无人机续航约束
- 使用贪心算法对进行任务规划首层网格规划
- 使用ortools中启发式算法进行优化
- 待实现
- 距离矩阵并行计算
- 网格内任务规划
- 多目标任务规划
- 新增:
无人机类 ktkx.uav.Uav
初始化无人机 ktkx.uav.Uav()
- Args:
id(int): 无人机ID
start_coordinate(NDArray): 无人机起始经纬度坐标(deg)
end_coordinate(NDArray): 无人机结束经纬度坐标(deg)
endurance(SupportsFloat): 无人机续航里程(m)
无人机ID ktkx.uav.Uav.id (int)
起始坐标 ktkx.uav.Uav.start_coordinate: NDArray
起始网格码 ktkx.uav.Uav.start_code: str
结束坐标 ktkx.uav.Uav.end_coordinate: NDArray
结束网格码 ktkx.uav.Uav.end_code: str
续航里程 ktkx.uav.Uav.endurance: SupportsFloat
无人机任务规划类 ktkx.uav.UavPlanning
初始化任务规划 ktkx.uav.UavPlanning()
- Args:
region(ktkx.region.Region): 目标区域
uav_list(list[ktkx.uav.Uav]): 无人机列表
规划初始解 ktkx.uav.UavPlanning.init_solve
- Returns:
list[list[int]]: 无人机节点规划结果
list(i): 第i架无人机规划结果
list(i)(j): 第i架无人机经过的第j个节点
规划优化解 ktkx.uav.UavPlanning.solve
- Args:
time(SupportsFloat): 最长优化时间
