Linux/aarch64架构下安装Python的Orekit开发环境
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, JOverridefrom org.hipparchus.geometry.euclidean.threed import RotationOrder
from org.hipparchus.geometry.euclidean.threed import Vector3D
from org.hipparchus.ode.events import Actionfrom 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 PVCoordinatesProviderinitialDate = 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
相关文章:
Linux/aarch64架构下安装Python的Orekit开发环境
1.背景 国产化趋势越来越强,从软件到硬件,从操作系统到CPU,甚至显卡,就产生了在国产ARM CPU和Kylin系统下部署Orekit的需求,且之前的开发是基于Python的,需要做适配。 2.X86架构下安装Python/Orekit开发环…...

网络安全-等级保护(等保) 3-2-1 GB/T 28449-2019 第6章 方案编制活动
################################################################################ GB/T 28449-2019《信息安全技术 网络安全等级保护测评过程指南》是规定了等级测评过程,是纵向的流程,包括:四个基本测评活动:测评准备活动、方案编制活…...
Oracle Enqueue Names
Oracle Enqueue Names Enqueue(排队锁)是Oracle数据库中用于协调多进程并发访问共享资源的锁机制。 This appendix lists Oracle enqueues. Enqueues are shared memory structures (locks) that serialize access to database resources. They can be…...

【免费使用】剪Y专业版 8.1/CapCut 视频编辑处理,素材和滤镜
—————【下 载 地 址】——————— 【本章下载一】:https://pan.xunlei.com/s/VOQxk38EUe3_8Et86ZCH84JsA1?pwdkp7h# 【本章下载二】:https://pan.quark.cn/s/388008091ab4 【本章下载三】:https://drive.uc.cn/s/d5ae5c725637…...
【DCGMI专题1】---DCGMI 在 Ubuntu 22.04 上的深度安装指南与原理分析(含架构图解)
目录 一、DCGMI 概述与应用场景 二、Ubuntu 22.04 系统准备 2.1 系统要求 2.2 环境清理(可选) 三、DCGMI 安装步骤(详细图解) 3.1 安装流程总览 3.2 分步操作指南 3.2.1 系统更新与依赖安装 3.2.2 添加 NVIDIA 官方仓库 3.2.3 安装数据中心驱动与 DCGM 3.2.4 服务…...
道德经总结
道德经 《道德经》是中国古代伟大哲学家老子所著,全书约五千字,共81章,分为“道经”(1–37章)和“德经”(38–81章)两部分。 《道德经》是一部融合哲学、政治、人生智慧于一体的经典著作。它提…...

实现rpc通信机制(待定)
一、概述 (1)rpc(remote procedure call, 远程接口调用),就像在本地调用函数一样,是应用组成服务内部分布式的基础功能。应用场景是在内网中的计算,比如:(a) 为上传的一张图片加水印、…...
MATLAB 2023b 配电柜温度报警系统仿真
MATLAB 2023b 配电柜温度报警系统仿真 下面是一个配电柜温度报警系统的MATLAB仿真代码,包含温度监测、断路器控制和声光报警功能。 classdef ElectricalPanelTemperatureAlertSystem < handleproperties% 系统参数TemperatureThreshold = 94; % 温度阈值(摄氏度)Simulati…...

代码随想录打卡|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 中 information_schema.processlist 使用原理
一、概念篇:深入理解 processlist 1.1 什么是 information_schema.processlist information_schema.processlist 是 MySQL 提供的一个非常重要的系统视图,它展示了当前 MySQL 服务器中所有正在运行的线程(连接)信息。这个视图对…...
微信小程序学习基础:从入门到精通
文章目录 第一章:微信小程序概述1.1 什么是微信小程序1.2 小程序与原生APP、H5的区别1.3 小程序的发展历程与现状 第二章:开发环境搭建2.1 注册小程序账号2.2 安装开发者工具2.3 开发者工具界面介绍2.4 第一个小程序项目 第三章:小程序框架与…...
如何使用redis做限流(golang实现小样)
在实际开发中,限流(Rate Limiting)是一种保护服务、避免接口被恶意刷流的常见技术。常用的限流算法有令牌桶、漏桶、固定窗口、滑动窗口等。由于Redis具备高性能和原子性操作,常常被用来实现分布式限流。 下面给出使用Golang结合Redis实现简单限流的几种常见方式(以“固定…...
lanqiaoOJ 4185:费马小定理求逆元
【题目来源】 https://www.lanqiao.cn/problems/4185/learning/ 【题目描述】 给出 n,p,求 。其中, 指存在某个整数 0≤a<p,使得 na mod p1,此时称 a 为 n 的逆元,即 。数据保证 p 是质数且 n mod p≠0…...
深度剖析ZooKeeper
1. ZooKeeper架构总览 ZooKeeper 是一个分布式协调服务,广泛用于分布式系统中的配置管理、命名服务、分布式锁和领导选举等场景。以下是对 ZooKeeper 架构、通信机制、容错处理、数据一致性与可靠性等方面的详细剖析。 一、ZooKeeper 主从集群 ZooKeeper 采用 主从…...

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

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

打开小程序提示请求失败(小程序页面空白)
1、小程序代码是商城后台下载的还是自己编译的 (1)要是商城后台下载的,检查设置里面的域名是不是https的 (2)要是自己编译的,检查app.js里面的接口域名是不是https的,填了以后有没有保存 注&a…...
C语言速成12之指针:程序如何在内存迷宫里找宝藏?
程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前! 0. 前言:程序如何在内存迷宫里找宝藏? 想象内存是一个巨…...

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

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…...
PyTorch中TensorBoardX模块与torch.utils.tensorboard模块的对比分析
文章目录 说明1. 模块起源与开发背景2. 功能特性对比3. 安装与依赖关系4. 性能与使用体验5. 迁移与兼容性策略6. 最佳实践与建议7. 未来展望8. 结论实际相关信息推荐资源 说明 TensorBoard:独立工具,只需安装tensorboard。TensorFlow:非必需…...

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

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

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

内蒙古工程系列建设工程技术人才评审条件
关于印发《内蒙古自治区工程系列建设工程专业技术人才职称评审条件》的通知 内蒙古工程系列建设工程技术人才评审条件适用范围 内蒙古工程系列建设工程技术人才评审条件之技术员评审要求 内蒙古工程系列建设工程技术人才评审条件之助理工程师评审要求 内蒙古工程系列建设工程技…...
Elasticsearch超详细安装部署教程(Windows Linux双系统)
文章目录 一、前言二、Windows系统安装部署2.1 环境准备2.2 Elasticsearch安装2.3 安装为Windows服务2.4 Head插件安装2.5 Kibana集成(可选) 三、Linux系统安装部署3.1 环境准备3.2 Elasticsearch安装3.3 系统优化3.4 启动服务3.5 安全配置(可…...