Linux/aarch64架构下安装Python的Orekit开发环境

news2025/5/26 4:55:46

1.背景

国产化趋势越来越强,从软件到硬件,从操作系统到CPU,甚至显卡,就产生了在国产ARM CPU和Kylin系统下部署Orekit的需求,且之前的开发是基于Python的,需要做适配。

2.X86架构下安装Python/Orekit开发环境

比较简单,参考Orekit官网介绍,通常通过conda建好Python虚拟环境后,直接通过 conda install conda-forge::orekit 命令一般就能顺利安装成功。建议选择Python3.9以上的版本。

参考:https://anaconda.org/conda-forge/orekit

3.Linux/aarch64架构下安装Python/Orekit开发环境

本人走了很多弯路,有尝试失败或耐心不足中途放弃等原因,仅作参考(重点在第4条,前面废话)。

(1)首先在linux/aarch64环境下执行conda install conda-forge::orekit,会提示找不到包的。
       基本符合预期,参考https://anaconda.org/conda-forge/orekit页面上介绍,只提供了linux-64、win-64、osx-arm64、osx-64这四种架构(2025年5月),后两个时苹果系统,前两个分别时Linux和windows的x64架构。

(2)在第(1)步失败后,了解到可以通过conda build命令自己本地编译,但是由于目前官方的代码没有适配linux/aarch64,还需要修改环境,且还有jcc、jdk等依赖需要安装和配置,折腾了大半天最终放弃。

(3)后来看到https://github.com/petrushy/orekit_python_artifacts这个链接,想着通过提示的“mvn -B package -Ppython-jar --file pom.xml”能够编译出安装包,由于对内容不熟悉,对Java不熟悉,瞎折腾后也放弃,没有找到pom.xml,从orekit的仓库下瞎拷贝过来的也不太行,编译不过...

(4)重点!!! 突然在anaconda.org还是在orekit.org搜索orekit看到了orekit_jpype这个包,特别是在https://gitlab.orekit.org/orekit/orekit_jpype/-/tree/master 还有详细示例,并且不限定架构,还能够通过conda安装,大喜! 遂尝试,且通过!于是,产生了这篇奔走相告的博客。总而言之,建议在Linux/aarch64架构通过“conda install conda-forge::orekit_jpype”命令安装,安装完成后参考https://gitlab.orekit.org/orekit/orekit_jpype/-/tree/master 仓库下的示例进行验证(如果偷懒的话,参考后面的简单验证代码)。

conda install conda-forge::orekit_jpype

4.Linux/aarch64架构下orekit_jpype环境验证代码

如果以下代码执行,没有报错或异常,那么恭喜你!

import orekit_jpype as orekit
orekit.initVM()

from orekit_jpype.pyhelpers import setup_orekit_data
"""需要提前安装orekit-data 或者通过setup_orekit_data('../orekit-data') 使用手工下载的数据路径"""
setup_orekit_data() 

from jpype import JImplements, JOverride

from org.hipparchus.geometry.euclidean.threed import RotationOrder
from org.hipparchus.geometry.euclidean.threed import Vector3D
from org.hipparchus.ode.events import Action

from org.orekit.attitudes import AttitudeProvider;
from org.orekit.attitudes import AttitudesSequence;
from org.orekit.attitudes import LofOffset;
from org.orekit.bodies import CelestialBodyFactory, OneAxisEllipsoid;
from org.orekit.errors import OrekitException;
from org.orekit.frames import FramesFactory;
from org.orekit.frames import LOFType;
from org.orekit.orbits import KeplerianOrbit;
from org.orekit.orbits import Orbit;
from org.orekit.propagation import Propagator;
from org.orekit.propagation import SpacecraftState;
from org.orekit.propagation.analytical import EcksteinHechlerPropagator;
from org.orekit.propagation.events import EclipseDetector;
from org.orekit.propagation.events import EventDetector;
from org.orekit.propagation.events.handlers import EventHandler
from org.orekit.propagation.sampling import OrekitFixedStepHandler
from org.orekit.time import AbsoluteDate;
from org.orekit.time import TimeScalesFactory;
from org.orekit.utils import Constants, IERSConventions, AngularDerivativesFilter
from org.orekit.utils import PVCoordinates;
from org.orekit.utils import PVCoordinatesProvider

initialDate =  AbsoluteDate(2004, 1, 1, 23, 30, 00.000, TimeScalesFactory.getUTC())
position  = Vector3D(-6142438.668, 3492467.560, -25767.25680);
velocity  = Vector3D(505.8479685, 942.7809215, 7435.922231);
initialOrbit =  KeplerianOrbit(PVCoordinates(position, velocity),
                                                          FramesFactory.getEME2000(), initialDate,
                                                          Constants.EIGEN5C_EARTH_MU); 
print(initialOrbit)

5.参考链接

1、orekit_jpype示例

https://gitlab.orekit.org/orekit/orekit_jpype/-/blob/master/examples/Example_EarthObservation_-_Attitude_Sequence-jpype.ipynb

2、orekit-feedstock
https://github.com/petrushy/orekit-feedstock
https://github.com/conda-forge/orekit-feedstock
https://anaconda.org/conda-forge/orek


3、orekit_jpype-feedstock
https://anaconda.org/conda-forge/orekit_jpype  //for conda
https://gitlab.orekit.org/orekit/orekit_jpype/-/tree/master   //官网
https://github.com/conda-forge/orekit_jpype-feedstock   //fork

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全-等级保护(等保) 3-2-1 GB/T 28449-2019 第6章 方案编制活动

################################################################################ GB/T 28449-2019《信息安全技术 网络安全等级保护测评过程指南》是规定了等级测评过程,是纵向的流程,包括:四个基本测评活动:测评准备活动、方案编制活…

【免费使用】剪Y专业版 8.1/CapCut 视频编辑处理,素材和滤镜

—————【下 载 地 址】——————— 【​本章下载一】:https://pan.xunlei.com/s/VOQxk38EUe3_8Et86ZCH84JsA1?pwdkp7h# 【​本章下载二】:https://pan.quark.cn/s/388008091ab4 【​本章下载三】:https://drive.uc.cn/s/d5ae5c725637…

实现rpc通信机制(待定)

一、概述 (1)rpc(remote procedure call, 远程接口调用),就像在本地调用函数一样,是应用组成服务内部分布式的基础功能。应用场景是在内网中的计算,比如:(a) 为上传的一张图片加水印、&#xf…

代码随想录打卡|Day45 图论(孤岛的总面积 、沉没孤岛、水流问题、建造最大岛屿)

图论part03 孤岛的总面积 代码随想录链接 题目链接 视频讲解链接 思路:既然某个网格在边界上的岛屿不是孤岛,那么就把非 孤岛的所有岛屿变成海洋,最后再次统计还剩余的岛屿占据的网格总数即可。 dfs: import java.util.Scanner…

SpringCloud实战:使用Sentinel构建可靠的微服务熔断机制

上篇文章简单介绍了SpringCloud系列Gateway的基本用法以及Demo搭建,今天继续讲解下SpringCloud Gateway实战指南!在分享之前继续回顾下本次SpringCloud的专题要讲的内容: 本教程demo源码已放入附件内 技术准备 读者须知: 本教程…

张 Prompt Tuning--中文数据准确率提升:理性与冲动识别新突破

Prompt Tuning–中文数据准确率提升:理性与冲动识别新突破 中文数据,准确率 数据标签三类:冲动21,理性21,(中性设为理性40:说明prompt 修正的有效性) 测试数据:冲动4,理性4,中性设为理性10 为了可视化做了 词嵌入 空间的相似文本计算,但是实际当loss 比较小的时…

深入解析 MySQL 中的 SHOW_ROUTINE 权限

目录 前言 权限作用 授权方法 MySQL8.0.20以上 MySQL8.0.20以下 总结 前言 SHOW_ROUTINE 是 MySQL 中用于控制用户查看存储过程和函数定义的权限。拥有该权限的用户可以通过 SHOW CREATE PROCEDURE 和 SHOW CREATE FUNCTION 等语句查看存储过程和函数的详细定义&#xff…

电脑网络如何改ip地址?ip地址改不了怎么回事

在日常使用电脑上网时,我们有时会遇到需要更改IP地址的情况,比如访问某些受限制的网站、解决网络冲突问题,或者出于隐私保护的需求。然而,许多用户在尝试修改IP地址时可能会遇到各种问题,例如IP地址无法更改、修改后无…

打开小程序提示请求失败(小程序页面空白)

1、小程序代码是商城后台下载的还是自己编译的 (1)要是商城后台下载的,检查设置里面的域名是不是https的 (2)要是自己编译的,检查app.js里面的接口域名是不是https的,填了以后有没有保存 注&a…

一张纸决定的高度

从我捧起《格局》这个本书开始,转眼间两个月过去了。 回头望一望,好似还在昨天。 这两个月,心态在变,前进的方向在变,但唯一不变的就是每天晚上睡前,留给自己十分钟的读书时光。 我也从来没想过&#xf…

IP查询基础介绍

IP 查询原理 IP 地址是网络设备唯一标识,IP 查询通过解析 IP 地址获取地理位置、运营商等信息。目前主流的 IPv4(32 位)与 IPv6(128 位)协议,前者理论提供约 43 亿地址,后者地址空间近乎无限。…

常见的gittee开源项目推荐

https://gitee.com/macrozheng/mall https://doc.ruoyi.vip/ https://eladmin.vip/ https://gitee.com/dromara/RuoYi-Cloud-Plus https://gitee.com/dromara/RuoYi-Vue-Plus https://gitee.com/ZhongBangKeJi/crmeb_java

日常效率工具【Tools】【持续更新】

日常效率工具【Tools】 VScodevscode原理(居然和Chrome同源)Chromium(Chrome开源版)node.js:让JavaScript可以运行在wab之外的环境 配置文件setting.jesn vscode快捷键万事不求人(Ctrl K,Ctrl S)vscode修改光标所在行的背景色Gene…

数据结构与算法——链式二叉树

链式二叉树 遍历方式与其规则代码的实现递归的复习前,中,后序遍历的实现二叉树结点个数二叉树叶子结点个数二叉树第k层结点个数二叉树的深度/高度二叉树查找值为x的结点二叉树销毁层序遍历 遍历方式与其规则 前序遍历:访问根结点的操作发⽣在…

Android12 launcher3修改App图标白边问题

Android12 launcher3修改App图标白边问题 1.前言: 今天在Android12 Rom定制客制化系统应用时发现改变系统App图标的形状会出现一个问题,那就是图标被缩小了,没有显示完整,有一个白边,这在普通的App开发很少遇到&…

【iOS】分类、扩展、关联对象

分类、扩展、关联对象 前言分类扩展扩展和分类的区别关联对象key的几种用法流程 总结 前言 最近的学习中笔者发现自己对于分类、扩展相关知识并不是很熟悉,刚好看源码类的加载过程中发现有类扩展与关联对象详解。本篇我们来探索一下这部分相关知识,首先…

内蒙古工程系列建设工程技术人才评审条件

关于印发《内蒙古自治区工程系列建设工程专业技术人才职称评审条件》的通知 内蒙古工程系列建设工程技术人才评审条件适用范围 内蒙古工程系列建设工程技术人才评审条件之技术员评审要求 内蒙古工程系列建设工程技术人才评审条件之助理工程师评审要求 内蒙古工程系列建设工程技…

目标检测DINO-DETR(2023)详细解读

文章目录 对比去噪训练混合查询选择look forward twice 论文全称为:DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 提出了三个新的方法: 首先,为了改进一对一的匹配效果,提出了一种对比去噪训练方法…

SGlang 推理模型优化(PD架构分离)

一、技术背景 随着大型语言模型(LLM)广泛应用于搜索、内容生成、AI助手等领域,对模型推理服务的并发能力、响应延迟和资源利用效率提出了前所未有的高要求。与模型训练相比,推理是一个持续进行、资源消耗巨大的任务,尤…

Vue语法【2】

1.插值表达式&#xff1a; 语法规则&#xff1a; {{Vue实例中data的变量名}}使用场景&#xff1a; 插值表达式一般使用在文本内容中&#xff0c;如果是元素的属性内容中则无法使用&#xff1b; 案例&#xff1a; <!DOCTYPE html> <html lang"en"> &l…