最近公司有个卫星的项目。实现轨迹预测。也就是说在一定时间内。某个区域中,卫星画过的轨迹

这是一个星期内算出的预测轨迹 。在区域内的点数然后进行连线并生成响应缓冲区效果如下图

上图是计算的北京2022-06-02到 2022-06-09一个星期内经过的点位。

其中做到上图效果要首先根据6根数。计算出一个经纬度点位信息。然后根据某个时间段,迭代生成点位。生成的点位过境的(在区域内的)要进行加密处理。然后对相近时间段的数据进行连线处理。如果在相近时间段(30s)生成的点位,只有一个的情况下。要根据一定角度和距离。预测另个点的位置。然后再进行相连。然后返给前端。进行渲染。前端要实现的是。根据线数据进行缓冲区处理。也就实现了上图的效果。前端用的是openlayers实现的。需要注意的是,多普段:降轨 微光:升轨。然后根据极区66-90维度范围内,来判断选择区域大小。目前极区范围内的不做区域面积限制。

部分代码截图如下。

以下代码判断点是否在多边形内/*** 判断点是否在多边形内** @param point 检测点* @param pts   多边形的顶点* @return 点在多边形内返回true, 否则返回false*/
public static boolean IsPtInPoly(Point2D.Double point, List<Point2D.Double> pts) {int N = pts.size();boolean boundOrVertex = true; //如果点位于多边形的顶点或边上,也算做点在多边形内,直接返回trueint intersectCount = 0;//cross points count of xdouble precision = 2e-10; //浮点类型计算时候与0比较时候的容差Point2D.Double p1, p2;//neighbour bound verticesPoint2D.Double p = point; //当前点p1 = pts.get(0);//left vertexfor (int i = 1; i <= N; ++i) {//check all raysif (p.equals(p1)) {return boundOrVertex;//p is an vertex}p2 = pts.get(i % N);//right vertexif (p.x < Math.min(p1.x, p2.x) || p.x > Math.max(p1.x, p2.x)) {//ray is outside of our interestsp1 = p2;continue;//next ray left point}if (p.x > Math.min(p1.x, p2.x) && p.x < Math.max(p1.x, p2.x)) {//ray is crossing over by the algorithm (common part of)if (p.y <= Math.max(p1.y, p2.y)) {//x is before of rayif (p1.x == p2.x && p.y >= Math.min(p1.y, p2.y)) {//overlies on a horizontal rayreturn boundOrVertex;}if (p1.y == p2.y) {//ray is verticalif (p1.y == p.y) {//overlies on a vertical rayreturn boundOrVertex;} else {//before ray++intersectCount;}} else {//cross point on the left sidedouble xinters = (p.x - p1.x) * (p2.y - p1.y) / (p2.x - p1.x) + p1.y;//cross point of yif (Math.abs(p.y - xinters) < precision) {//overlies on a rayreturn boundOrVertex;}if (p.y < xinters) {//before ray++intersectCount;}}}} else {//special case when ray is crossing through the vertexif (p.x == p2.x && p.y <= p2.y) {//p crossing over p2Point2D.Double p3 = pts.get((i + 1) % N); //next vertexif (p.x >= Math.min(p1.x, p3.x) && p.x <= Math.max(p1.x, p3.x)) {//p.x lies between p1.x & p3.x++intersectCount;} else {intersectCount += 2;}}}p1 = p2;//next ray left point}if (intersectCount % 2 == 0) {//偶数在多边形外return false;} else { //奇数在多边形内return true;}}
极区范围:66-90
												

java 卫星轨道6根数实现轨道预测相关推荐

  1. 轨道六根数 matlab,轨道六根数

    在二体问题中,轨道根数(orbital factors)是描述物体运动轨迹的简便形式.三维空间中,唯一确定物体轨迹需要六个参数,如位置矢量和速度矢量(均为三维)可共同确定物体轨迹.此外,用六个轨道根数 ...

  2. java版通过轨道6根数实现计算出经纬度坐标

    近期公司有个项目,实现卫星六根数实现计算出经纬度坐标,因为在网上找不到java资源.翻阅了大量的文章.然后自己着手去根据matlab代码实现了java语言的转换. 卫星轨道6根数主要有半长轴a.离心率 ...

  3. 用c++根据轨道六根数计算卫星位置

    轨道六根数是描述卫星轨道的一组参数,包括: 轨道长半径(a):卫星轨道的半径,表示卫星到地球中心的平均距离. 轨道偏心率(e):卫星轨道的偏心率,表示轨道的椭圆程度. 轨道倾角(i):卫星轨道与地球赤 ...

  4. 轨道六根数的含义汇总

    文章目录 轨道六根数 概述 其他表示 (1)半长轴 椭圆 抛物线 双曲线 与速度位置的转化 椭圆 双曲线 (2)离心率 离心率标量 椭圆 抛物线 双曲线 离心率矢量 (3)轨道倾角 (4)近心点辐角 ...

  5. TLE两行数与轨道六根数转换

    TLE与轨道六根数转换方法 一.TLE格式讲解 二.轨道六根数 三.TLE与六根数转换 1."每天环绕地球的圈数"与"轨道半长轴"转换 2.平近点角与真近点角的 ...

  6. 人造地球卫星轨道外推Matlab,一种适用于圆轨道卫星的星上自主轨道外推方法

    一种适用于圆轨道卫星的星上自主轨道外推方法 [专利摘要]本发明公开了一种适用于圆轨道卫星的星上自主轨道外推方法,其利用地面注入的平根数,采用简化的外推模型,由星载计算机轨道处理模块根据该简化的外推模型 ...

  7. GNSS之轨道六根数及常见轨道类型

    文章目录 GNSS之轨道六根数及常见轨道类型 一.轨道六根数 二.轨道类型 1.与赤道面成64°角的椭圆轨道 2.圆形LEO 3.圆形MEO 4.地球同步轨道 5.临界倾斜轨道 Critically ...

  8. cesium中轨道六根数的参数命名

    cesium中轨道六根数的参数命名: Semimajor Axis(SMA) 半长轴:是椭圆长轴的一半.对于圆,也就是半径,另外根据开普勒第三定律,半长轴与运行周期之间有确定的换算关系. Eccent ...

  9. 铁路轨道不平顺数据分析与预测

    铁路轨道不平顺数据分析与预测 1.引言 铁路轨道作为铁行车的基础设施,是铁路线路的重要组成部分.随着经济和交通运输业的发展,我国的铁路运输正朝着高速和重载方向迅速发展,与此同时,轨道结构承受来自列车荷 ...

  10. 轨道六根数(开普勒六参数)

    名称 描述 半长轴 椭圆轨道长轴的一半,有时可视作平均轨道半径. 离心率 椭圆轨道两焦点距离与长轴长度的比值,是椭圆轨道扁平程度的一种量度. 轨道倾角 行星轨道面与黄道面的倾角. 升交点赤经 / 黄经 ...

最新文章

  1. 机器学习算法库scikit-learn的安装
  2. hybrid开发调试记录
  3. 01-gt;选中UITableViewCell后,Cell中的UILabel的背景颜色变成透明色
  4. 让cp显示进度的脚本
  5. windows server2012在已有.net4.5框架的基础上安装.net3.5的方法
  6. Restarting ..Terminated
  7. opencv 车牌识别---新能源车牌处理(二值化后按位取反)
  8. 笔记本HDMI1.4 1080p下外接高刷显示器的实现方法之一
  9. Vue3关于页面跳转(push)的时候,并传递数据过去
  10. 8.4 Hyperplanes (超平面)
  11. Dubbo入门到实战(一)
  12. xiaopiu怎么导出html,xiaopiu原型工具
  13. 高等数学一:函数与极限二:对数列极限定义的理解
  14. 故障分析 | Cassandra 用户信息 list Error
  15. 什么是BCD码?BCD码编码规则
  16. proteus学习笔记一:点亮LED
  17. 【转】DRY原则的误区
  18. 深度学习-Resolution-robust Large Mask Inpainting with Fourier Convolutions基于傅里叶卷积的对分辨率鲁棒的掩模修复
  19. 石河子全国计算机报名系统入口,石河子雅思考试报名入口
  20. Logback 为日志配置颜色搭配(彩色搭配日志-搭配方案)

热门文章

  1. Parsed mapper file:项目启动不起来
  2. L2-特立独行的幸福
  3. 阿尔伯塔大学计算机科学的申请条件,阿尔伯塔大学计算机科学硕士专业
  4. 造DPU芯片,如梦幻泡影?丨虚构短篇小说
  5. 天津大学计算机学院2019夏令营,天津大学环境学院2019年全国优秀大学生夏令营顺利举行...
  6. 数字电路实验 01 - | TTL门电路的逻辑功能测试
  7. python——金融商品多种均线指标综合运用模拟实现(MACD模型)
  8. EEE(Energy Efficient Ethernet)-节能以太网
  9. 7月11日自助装机配置专家点评
  10. linux下的chm阅读器?