Installing Orekit Python wrapper manually into virtual environment
(OUTDATED, Needs an update, please see conda build scripts for latest version. Note, if you don't know that you need to build it manually, you should try the conda packages which is easier)
(Unknown if this step is required? Needs testing on clean VM machine) sudo apt-get install jcc
Firstly check openJDK version:
java -version
if OpenJDK not installed:
sudo apt-get install openjdk-7-jdk
or
sudo apt-get install openjdk-8-jdk
Then create a Python-2.7 environment in an appropriate folder:
virtualenv env
Activate the environment:
source env/bin/activate
Depending on your installation, make sure that the JCC_JDK
variable is set:
export JCC_JDK="/usr/lib/jvm/java-8-openjdk-amd64"
Again, this DOES NOT work with java-9, needs 8 or 7.
Then install JCC into the environment:
pip install jcc
go to: Hipparchus and download binary for version 1.3.
Extract the .jar files with some archive manager, e.g. tar
.
Clone the modified orekit including python package java classes: Orekit /w python
Follow the instructions in: Build orekit
Tested building on Ubuntu 16.04:
sudo apt install maven
mvn package
If you have problem with some tests failing when building orekit, make sure you check the petrushy/Orekit.git repository status and ensure that you have the correct branch checked out before compiling (as of writing, tested branch on Ubuntu 16.04 is cs_93).
After compilation is complete, go to "/Orekit/target/" and to find the orekit-x.jar
Clone the python wrapper repository: Orekit-python-wrapper
Copy the contents of the "python_files" folder (from the python wrapper repository) to the folder where you intend to build the python library.
Then place all the hipparchus-*.jar files and your modified compiled orekit-x.jar in your build folder.
More specifically these files are needed:
- orekit-x.jar
- hipparchus-core-1.3.jar
- hipparchus-filtering-1.3.jar
- hipparchus-fitting-1.3.jar
- hipparchus-geometry-1.3.jar
- hipparchus-ode-1.3.jar
- hipparchus-optim-1.3.jar
- hipparchus-stat-1.3.jar
Set the environment variable for building:
export SRC_DIR="my/orekit/build/folder"
In this folder create a build.sh file with the following contents (remember to replace the x'es with the correct version compiled):
#!/bin/bash
python -m jcc \
--use_full_names \
--python orekit \
--version x \
--jar $SRC_DIR/orekit-x.jar \
--jar $SRC_DIR/hipparchus-core-1.3.jar \
--jar $SRC_DIR/hipparchus-filtering-1.3.jar \
--jar $SRC_DIR/hipparchus-fitting-1.3.jar \
--jar $SRC_DIR/hipparchus-geometry-1.3.jar \
--jar $SRC_DIR/hipparchus-ode-1.3.jar \
--jar $SRC_DIR/hipparchus-optim-1.3.jar \
--jar $SRC_DIR/hipparchus-stat-1.3.jar \
--package java.io \
--package java.util \
--package java.text \
--package org.orekit \
java.io.BufferedReader \
java.io.FileInputStream \
java.io.FileOutputStream \
java.io.InputStream \
java.io.InputStreamReader \
java.io.ObjectInputStream \
java.io.ObjectOutputStream \
java.io.PrintStream \
java.io.StringReader \
java.io.StringWriter \
java.lang.System \
java.text.DecimalFormat \
java.text.DecimalFormatSymbols \
java.util.ArrayList \
java.util.Arrays \
java.util.Collection \
java.util.Collections \
java.util.Date \
java.util.HashMap \
java.util.HashSet \
java.util.List \
java.util.Locale \
java.util.Map \
java.util.Set \
java.util.TreeSet \
--module $SRC_DIR/pyhelpers.py \
--reserved INFINITE \
--reserved ERROR \
--reserved OVERFLOW \
--reserved NO_DATA \
--reserved NAN \
--reserved min \
--reserved max \
--reserved mean \
--build \
--install
This command is taken from the conda-recipe build.sh file.
Make the file executable
chmod +x build.sh
Run the build file
./build.sh
This may take some time
Check installation by
pip freeze
it should output:
JCC==3.4
orekit==9.2
Then install some additional libraries
pip install scipy
pip install matplotlib
pip install pytest
Make sure that you test that the installation and compilation worked. Enter into the "test" folder (should have been part of the "python_files" folder) and run:
python -m pytest