2024-04-10
396 字
1 分钟
Python跨模块依赖处理
Python跨模块依赖处理总会有些特殊原因导致我们的项目需要跨模块依赖,就拿我这次的项目结构来说
123456- pyproject - app #后端模块 - batch #大数据、批处理模块 - script #脚本 - test #测试 - ……
在项目编写的过程中,app与batch需要频繁地使用某些自定义的算法或程序,且这类算法或程序高度重复,我这里倾向于再写一个模块封装这类算法。但这样处理,会导致在app或batch内import包时,需要使用sys.path.append(“..”)这样的方法导包。不利于解耦。我更倾向于类似maven的处理方式,将子模块打包成jar包跨模块引用。
2024-04-10
108 字
1 分钟
Python后端构建回顾
架构总结:python后端这次主要采用的gunicorn+flask+flagssger。ng及其他框架为运维处理,这里便不再赘述了。flask为标准的http后端框架,gunicorn的作用提供了程序保活和再拉起功能,flassger则是swagger的python实现,用来生成api文档。
这篇文章主要阐述一些比较重要的技术点。
1.Python跨模块依赖处理Python跨模块依赖处理
2024-04-10
912 字
4 分钟
Python轨迹抽稀
道格拉斯普克算法道格拉斯普克算法通常用于将轨迹保留大致形状的同时,减少轨迹的点个数。也可用来做基于关键点的轨迹分段。
大致原理如下:给定一条轨迹计算切割点:0.定义切割阈值d1.将起点和终点连接起来,构成一条线段a。2.遍历计算除起点终点外所有点到这条直线的距离,直到点到线的距离b≥d,这个点就是需要保留的关键点。以上图为例:这里从点1开始遍历,发现点c到线段a的距离b大于阈值,则c点就为切割垫。以c点为切割点,将整个轨迹分为两个子轨迹.对两个子轨迹重复上述操作,若在遍历过程所有点<d,则只保留起点与终点即可。若发现有点到线的距离≥d,则继续切割。Python代码:
1234567891011