From 9def8e318ab47b80e2f61e6c0452cead2d945c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petrus=20Hyv=C3=B6nen?= <petrus.hyvonen@gmail.com> Date: Tue, 13 May 2014 11:04:14 +0200 Subject: [PATCH] Added build files --- wrapper-build/bld.bat | 42 ++++++++++++++++++ wrapper-build/build.sh | 42 ++++++++++++++++++ wrapper-build/pyhelpers.py | 87 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 171 insertions(+) create mode 100644 wrapper-build/bld.bat create mode 100644 wrapper-build/build.sh create mode 100644 wrapper-build/pyhelpers.py diff --git a/wrapper-build/bld.bat b/wrapper-build/bld.bat new file mode 100644 index 0000000..cb26440 --- /dev/null +++ b/wrapper-build/bld.bat @@ -0,0 +1,42 @@ +python -m jcc ^ +--use_full_names ^ +--python orekit ^ +--version 6.1.0 ^ +--jar orekit-6.1.jar ^ +--jar commons-math3-3.2.jar ^ +--package java.io ^ +--package java.util ^ +--package java.text ^ +java.util.Arrays ^ +java.util.HashMap ^ +java.util.HashSet ^ +java.util.List ^ +java.util.Locale ^ +java.util.ArrayList ^ +java.util.Collection ^ +java.util.Collections ^ +java.util.Date ^ +java.util.Map ^ +java.util.TreeSet ^ +java.util.Set ^ +java.io.InputStream ^ +java.io.InputStreamReader ^ +java.io.PrintStream ^ +java.io.FileInputStream ^ +java.io.StringWriter ^ +java.io.StringReader ^ +java.lang.System ^ +java.text.DecimalFormat ^ +java.text.DecimalFormatSymbols ^ +--module pyhelpers ^ +--reserved INFINITE ^ +--reserved ERROR ^ +--reserved NAN ^ +--reserved OVERFLOW ^ +--reserved NO_DATA ^ +--reserved min ^ +--reserved max ^ +--reserved mean ^ +--build ^ +--bdist_wininst + diff --git a/wrapper-build/build.sh b/wrapper-build/build.sh new file mode 100644 index 0000000..6114bf0 --- /dev/null +++ b/wrapper-build/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +python -m jcc \ +--use_full_names \ +--python orekit \ +--version 6.1.0 \ +--jar orekit-6.1.jar \ +--jar commons-math3-3.2.jar \ +--package java.io \ +--package java.util \ +--package java.text \ +java.util.Arrays \ +java.util.HashMap \ +java.util.HashSet \ +java.util.List \ +java.util.Locale \ +java.util.ArrayList \ +java.util.Collection \ +java.util.Collections \ +java.util.Date \ +java.util.Map \ +java.util.TreeSet \ +java.util.Set \ +java.io.StringReader \ +java.io.InputStream \ +java.io.InputStreamReader \ +java.io.PrintStream \ +java.io.FileInputStream \ +java.lang.System \ +java.text.DecimalFormat \ +java.text.DecimalFormatSymbols \ +--module pyhelpers \ +--reserved INFINITE \ +--reserved ERROR \ +--reserved OVERFLOW \ +--reserved NO_DATA \ +--reserved NAN \ +--reserved min \ +--reserved max \ +--reserved mean \ +--build \ +--install diff --git a/wrapper-build/pyhelpers.py b/wrapper-build/pyhelpers.py new file mode 100644 index 0000000..e589d68 --- /dev/null +++ b/wrapper-build/pyhelpers.py @@ -0,0 +1,87 @@ +# encoding: utf-8 + +# Copyright 2014 SSC +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" This document contains classes that are useful for using the orekit +library in Python. """ + +# Set up the orekit namespace +import orekit + +from java.io import File + +from org.orekit.data import DataProvidersManager, ZipJarCrawler +from org.orekit.time import TimeScalesFactory, AbsoluteDate +from org.orekit.utils import ElevationMask +from orekit import JArray + +import math +from datetime import datetime + + +def setup_orekit_curdir(): + '''Setup the java engine with orekit. + + This functionsand loads the orekit-data.zip from the current directory + and sets up the orekit DataProviders to access it. + + The JVM needs to be initiated prior to calling this function: + + orekit.initVM() + + ''' + + DM = DataProvidersManager.getInstance() + datafile = File('orekit-data.zip') + if not datafile.exists(): + print 'File :', datafile.absolutePath, ' not found' + + crawler = ZipJarCrawler(datafile) + DM.clearProviders() + DM.addProvider(crawler) + + +def absolutedate_to_datetime(orekit_absolutedate): + ''' Converts between orekit.AbsoluteDate objects + and python datetime objects (utc)''' + + utc = TimeScalesFactory.getUTC() + or_comp = orekit_absolutedate.getComponents(utc) + or_date = or_comp.getDate() + or_time = or_comp.getTime() + seconds = or_time.getSecond() + return datetime(or_date.getYear(), + or_date.getMonth(), + or_date.getDay(), + or_time.getHour(), + or_time.getMinute(), + int(math.floor(seconds)), + int(1000.0 * (seconds - math.floor(seconds)))) + + +def to_elevationmask(az, el): + ''' Converts an array of azimuths and elevations to a + orekit ElevationMask object. All unts in degrees. + + mask = to_elevationmask([0, 90, 180, 270], [5,10,8,5]) + + ''' + + mask = JArray('object')(len(az)) + + for i in range(len(az)): + mask[i] = JArray('double')([math.radians(az[i]), + math.radians(el[i])]) + + return ElevationMask(mask) -- GitLab