Skip to content
Snippets Groups Projects
Commit d3ab67e6 authored by Luc Maisonobe's avatar Luc Maisonobe
Browse files

Initialized site documentation.

parent 9188977f
No related branches found
No related tags found
No related merge requests found
Showing
with 677 additions and 92 deletions
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<excludes>
<exclude>org.orekit:rugged</exclude>
</excludes>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<componentDescriptors>
<componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
<componentDescriptor>src/main/assembly/jar-files.xml</componentDescriptor>
</componentDescriptors>
</assembly>
<component>
<fileSets>
<fileSet>
<includes>
<include>pom.xml</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>src</directory>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
</component>
\ No newline at end of file
<component>
<fileSets>
<fileSet>
<directory>target</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</component>
\ No newline at end of file
<component>
<fileSets>
<fileSet>
<outputDirectory>/licenses</outputDirectory>
<includes>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
<include>Apache-Commons-Math-LICENSE.txt</include>
<include>Orekit-LICENSE.txt</include>
</includes>
</fileSet>
</fileSets>
</component>
<assembly>
<id>sources</id>
<formats>
<format>zip</format>
</formats>
<componentDescriptors>
<componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
<componentDescriptor>src/main/assembly/building-files.xml</componentDescriptor>
</componentDescriptors>
</assembly>
\ No newline at end of file
......@@ -297,6 +297,9 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${rugged.maven-surefire-report-plugin.version}</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
......
<assembly>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>bin</id>
<formats>
<format>zip</format>
......@@ -7,4 +9,12 @@
<componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
<componentDescriptor>src/main/assembly/jar-files.xml</componentDescriptor>
</componentDescriptors>
<moduleSets>
<moduleSet>
<includes>
<include>org.orekit:rugged-aster</include>
<include>org.orekit:rugged-core</include>
</includes>
</moduleSet>
</moduleSets>
</assembly>
\ No newline at end of file
......@@ -4,7 +4,6 @@
<includes>
<include>BUILDING.txt</include>
<include>pom.xml</include>
<include>build.xml</include>
<include>checkstyle.xml</include>
<include>findbugs-exclude-filter.xml</include>
<include>license-header.txt</include>
......
......@@ -2,7 +2,6 @@
<fileSets>
<fileSet>
<includes>
<include>README.txt</include>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
</includes>
......
<assembly>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>sources</id>
<formats>
<format>zip</format>
......@@ -7,4 +9,12 @@
<componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
<componentDescriptor>src/main/assembly/building-files.xml</componentDescriptor>
</componentDescriptors>
<moduleSets>
<moduleSet>
<includes>
<include>org.orekit:rugged-aster</include>
<include>org.orekit:rugged-core</include>
</includes>
</moduleSet>
</moduleSets>
</assembly>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2013-2014 CS Systèmes d'Information
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.
-->
<faqs title="Frequently Asked Questions" toplink="false">
<part id="references">
<title>References</title>
<faq id="projects">
<question>
Has Rugged already been used?
</question>
<answer>
<p>
Yes, it is used in successful operational missions.
</p>
<p>The first operational use of Rugged was Sentinel 2 ESA mission.
Rugged is used in the Image Processing Facility.
</p>
</answer>
</faq>
<faq id="validation">
<question>
Is Rugged validated?
</question>
<answer>
<p>
Yes, rugged has been validated, by comparison with other image
processing systems.
</p>
<p>
Note that as Rugged takes into account some effects that may not be considered
by other systems, validation implies careful configuration and analysis of
discrepancies. Some differences come from missing correction in other systems,
like the Δδψ and Δδε precession/nutation correction parameters, or the light time
correction, or the aberration of light correction, or the non-straight line nature
of line-of-sight in geodetic space ...). These differences are mostly dealt with
by disabling Rugged correction to match the other systems (only for test purposes,
of course, the corrections should be enabled for operational use!). Some differences
come from different models like precession and nutation compliant to latest IERS
conventions, or different Earth frames. These differences are mostly dealt with by
configuring Rugged to use the same legacy models (these legacy models like for example
TOD and MOD frames are available for consistency with existing systems).
</p>
</answer>
</faq>
</part>
<part id="installation">
<title>Installation</title>
<faq id="dependencies">
<question>
What are the dependencies for Rugged?
</question>
<answer>
<p>
Rugged core relies on the Orekit space flight dynamics library and on
Apache Commons Math mathematical libraries. Both libraries are free
software libraries distributed under the terms of the Apache Software
License version 2.0.
</p>
<p>
Rugged aster relies on Rugged core and on Apache Commons imaging libraries.
Both libraries are free software libraries distributed under the terms of
the Apache Software License version 2.0.
</p>
</answer>
</faq>
</part>
<part id="runtime">
<title>Runtime errors</title>
<faq id="orekit-data-zip-not-up-to-date">
<question>
I get an error "no IERS UTC-TAI history data loaded" (or something similar in another language). What does it mean?
</question>
<answer>
<p>
This error is probably the most frequent one, or at least it's the first one new users encounter.
</p>
<p>
Rugged relies on the Orekit library to perform all space flight related comupation (typically
frames transforms). This library in turn needs some external data to be loaded in order to run.
This includes UTC-TAI history for leap seconds handling, Earth Orientation Parameters for
transforms to and from Earth fixed frames, or planetar ephemerides for Sun direction, for example.
</p>
<p>
The error message "no IERS UTC-TAI history data loaded" means the UTC-TAI history file which is used for leap
seconds management was not found. As leap seconds are used each time a UTC date is used, this message is
often seen very early and is the first one unsuspecting users experience. It often means the user forgot
to configure Orekit to load data.
</p>
<p>
Configuring data loading is explained in the configuration page For a start, the simplest configuration
is to download the orekit-data.zip file from the download page and to either set the "orekit.data.path" Java
property to this file or to manually configure the DataProvidersManager to use it. This example archive file
contains the required UTC-TAI history file among others. Configuring Orekit to use this archive file can be done
by keeping the file as a zip archive and pointing to this archive, or by unzipping it and pointing to the unzipped folder.
</p>
<p>
Here is an example using the file in zip format:
</p>
<p>
DataProvidersManager.addProvider(new ZipJarCrawler(new File("/path/to/the/zip/file/orekit-data.zip")));
</p>
<p>
Here is an example using the folder resulting from expanding the archive:
</p>
<p>
DataProvidersManager.addProvider(new DirectoryCrawler(new File("/path/to/the/folder/orekit-data")));
</p>
<p>
Using a folder allows one to change the data in it, e.g., adding new EOP files as they are published by IERS.
</p>
</answer>
</faq>
</part>
</faqs>
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Building Rugged
===============
Rugged can be built from source using several different tools.
All these tools are Java based and can run on many different operating
systems, including Unix, GNU/Linux, Windows and Mac OS X. Some GNU/Linux
distributions provide these tools in their packages repositories.
Building with Maven 3
---------------------
[Maven](http://maven.apache.org/) is a build tool that goes far beyond
simply compiling and packaging a product. It is also able to resolve
dependencies (including downloading the appropriate versions from the public
repositories), to run automated tests, to launch various checking tools and
to create a web site for a project. It runs on any platform supporting Java.
For systems not providing maven as a package, maven can be
[downloaded](http://maven.apache.org/download.cgi) from its site at the
Apache Software Foundation. This site also explains the
installation procedure.
As with all maven enabled projects, building Rugged is straightforward, simply
run:
mvn assembly:single
The preceding command will perform all dependencies retrieval, compilation,
tests and packaging for you. At the end, it will create several files named
{module}/target/rugged-{module}-x.y.jar where {module} is the module name (aster,
core, ...) and x.y is the version number.
If you need to configure a proxy server for dependencies retrieval, see
the [Guide to using proxies](http://maven.apache.org/guides/mini/guide-proxies.html)
page at the maven site.
If you already use maven for your own projects (or simply eclipse, see
below), you may want to install rugged in your local repository. This is done
with the following command:
mvn install
For other commands like generating the site, or generating the
[checkstyle](http://checkstyle.sourceforge.net/),
[findbugs](http://findbugs.sourceforge.net/) or
[jacoco](http://www.eclemma.org/jacoco/) reports, see the maven
plugins documentation at [maven site](http://maven.apache.org/plugins/index.html).
Building with Eclipse
---------------------
[Eclipse](http://www.eclipse.org/) is a very rich Integrated Development
Environment (IDE). It is a huge product and not a simple build tool.
For systems not providing eclipse as a package, it can be downloaded from its
site at the [Eclipse Foundation](http://www.eclipse.org/downloads/).
The simplest way to use Rugged with Eclipse is to follow these steps:
* unpack the distribution inside your Eclipse workspace
* create a new java project from existing sources and direct Eclipse to the
directory where you unpacked Rugged
* set the source folders to
* core/src/main/java
* aster/src/main/java
* core/src/test/java
* aster/src/test/java
* core/src/main/resources
* aster/src/main/resources
* core/src/test/resources
* aster/src/test/resources
in the source tab of the Configure Build Path dialog
* set the external libraries to JRE system library (provided by Eclipse),
Junit 4.x (provided by Eclipse), Apache Commons Math (available at
Apache Software Foundation Commons Math
[downloads page](http://commons.apache.org/proper/commons-math/download_math.cgi)),
and Orekit (available at Orekit
[downloads page](https://www.orekit.org/forge/projects/orekit/files))
in the libraries tab of the Configure Build Path dialog
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Contacts
========
Mailing lists
-------------
Most discussions should occur on the public mailing lists.
|---------------|------------------------------|------------------------------------------------------------|-------------------------------------------------------|
| topic | post address | subscribe URL | archive URL |
|---------------|------------------------------|------------------------------------------------------------|-------------------------------------------------------|
| announces | orekit-announces@orekit.org | {{https://www.orekit.org/wws/subscribe/orekit-announces}} | {{https://www.orekit.org/wws/arc/orekit-announces}} |
|---------------|------------------------------|------------------------------------------------------------|-------------------------------------------------------|
| users | orekit-users@orekit.org | {{https://www.orekit.org/wws/subscribe/orekit-users}} | {{https://www.orekit.org/wws/arc/orekit-users}} |
|---------------|------------------------------|------------------------------------------------------------|-------------------------------------------------------|
| developers | orekit-developers@orekit.org | {{https://www.orekit.org/wws/subscribe/orekit-developers}} | {{https://www.orekit.org/wws/arc/orekit-developers}} |
|---------------|------------------------------|------------------------------------------------------------|-------------------------------------------------------|
Please register to these mailing lists before attempting to post!
We're preventing unregistered members from posting in order to prevent spam. Thank you.
Technical contact
-----------------
If for some reason you cannot use the public lists, you can reach the CS
Systèmes d'Information Rugged team for any question (either technically
oriented or administrative) at the following email address:
[orekit@c-s.fr](mailto:orekit@c-s.fr)
Administrative contact
----------------------
If you want to discuss with the space division staff at CS Systèmes d'Information,
please use the following address:
|:---------------------------------------------------------------------|
| CS Systèmes d'Information |
| Business Unit Espace et Renseignement |
| parc de la plaine - 5 rue Brindejonc des Moulinais |
| BP 15872 |
| 31506 Toulouse CEDEX 5 |
| FRANCE |
|:---------------------------------------------------------------------|
| phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Aude Espesset) |
| fax: +33 5-61-34-84-15 |
|:---------------------------------------------------------------------|
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Contributing to Ruggged
=======================
Rugged is free software, which means you can use the source code as you wish,
without charges, in your applications, and that you can improve it and have
your improvements included in the next mainstream release.
If you are interested in participating in the development effort,
subscribe to the mailing lists and step up to discuss it. The
larger the community is, the better Rugged will be. The main
rule is that everything intended to be included in Rugged core must
be distributed under the Apache License Version 2.0.
A First Level Header
====================
A Second Level Header
---------------------
Now is the time for all good men to come to
the aid of their country. This is just a
regular paragraph.
The quick brown fox jumped over the lazy
dog's back.
### Header 3
> This is a blockquote.
>
> This is the second paragraph in the blockquote.
>
> ## This is an H2 in a blockquote
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Global architecture
===================
Rugged is an intermediate level mission-independent library. It relies on
the Orekit library and on the Apache Commons Math library. It is itself
intended to be used from a mission-specific interface by one or more
image processing applications.
![architecture](../images/rugged-architecture.png)
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Downloads
=========
Development Library version
---------------------------
The development version of the Rugged library is always available to
download from our version control system. We use [ Git](http://git-scm.com/)
as our SCM. The anonymous read access to our Git repository allows users who
need the latest features and the latest bug fixes to get them even before an
official release.
The Git repository can be cloned using the following command, which can
be easily adapted if you are using one of the numerous Git graphical
user interface available or if Git is supported by you integrated
development environment:
git clone http://www.orekit.org/git/rugged
Released Library versions
-------------------------
Rugged is provided both in several packaging systems. You can pick up
the one that better suits your needs. Source packages are the most complete
ones since the other packages (binary jars, javadoc jars and even the bulk
of this site) are created from these sources.
Rugged is also available in maven central repository,
with groupID org.orekit and artifactId orekit, so maven internal mechanism
will download automatically all artifacts and dependencies as required.
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Development Guidelines
======================
The following guidelines are used for Rugged development.
Development
-----------
Rugged is an intermediate level library. It may be used in very different
contexts which cannot be foreseen, from quick studies up to critical
operations. The main driving goals are the following ones:
* validation
* robustness
* maintainability
* efficiency
The first goal, validation, implies tests must be as extensive as possible.
They should include realistic operational cases but also contingency cases.
The [jacoco](http://www.eclemma.org/jacoco/) tool must be used to
monitor test coverage. A very high level of coverage is desired. We do not
set up mandatory objective figures, but only guidelines here. However,a 60%
line coverage would clearly not be acceptable at all and 80% would be considered
deceptive.
The second goal, robustness, has some specific implications for a low level
component like Rugged. In some sense, it can be considered an extension of the
previous goal as it can also be improved by testing. It can also be improved
by automatic checking tools that analyze either source code or binary code. The
[findbugs](http://findbugs.sourceforge.net/) tool is already configured for
automatic checks of the library using a maven plugin.
This is however not sufficient. A library is intended to be used by applications
unknown to the library development team. The library development should be as
flexible as possible to be merged into an environment with specific constraints.
For example, perhaps an application should run 24/7 during months or years, so
caching all results to improve efficiency may prove disastrous in such a use case,
or it should be embedded in a server application, so printing to standard output
should never be done. Experience has shown that developing libraries is more
difficult than developing high level applications where most of the constraints
are known beforehand.
The third goal, maintainability, implies code must be readable, clear and
well documented. Part of this goal is enforced by the stylistic rules explained
in the next section, but this is only for the _automatic_ and simple checks. It
is important to keep a clean and extensible design. Achieving simplicity is
really hard, so this goal should not be taken too lightly. Good designs are a
matter of balance between two few objects that do too many things internally
an ignore each other and too many objects that do nothing alone and always need
a bunch of other objects to work. Always think in terms of balance, and check
what happens if you remove something from the design. Quite often, removing something
improves the design and should be done.
The fourth goal, efficiency, should be handled with care to not conflict with the
second and third goals (robustness and maintainability). Efficiency is necessary but
trying too much too achieve it can lead to overly complex unmaintainable code, to too
specific fragile code, and unfortunately too often without any gain after all because
of premature optimization and unfounded second-guess.
One surprising trick, that at first sight might seem strange and inappropriate has
been used in many part for Rugged and should be considered a core guideline. It
is the use of _immutable_ objects. This trick improves efficiency because many costly
copying operation are avoided, even unneeded one added for defensive programming. It
improves maintainability because both the classes themselves and the classes that use
them are much simpler. It also improves robustness because many (really many ...)
difficult to catch bugs are caused by mutable objects that are changed in some deeply
buried code and have an impact on user code that forgot to perform a defensive copy.
Orbits, dates, vectors, and rotations are all immutable objects.
Style
-----
For reading ease and consistency, the existing code style should be
preserved for all new developments. The rules are common ones, inherited
mainly from the Sun [Code Conventions for the Java
Programming Language](http://java.sun.com/docs/codeconv/) guide style and
from the default [checkstyle](http://checkstyle.sourceforge.net/) tool
configuration. A few of these rules are displayed below. The complete
definition is given by the checkstyle configuration file in the project
root directory.
*header rule*
: all source files start with the Apache license header,
*indentation rules*
: no tabs, 4 spaces indentation, no indentation for case statements,
*operators wrapping rules*
: lines are wrapped after operators (unlike Sun),
*whitespace rules*
: operators are surrounded by spaces, method parameters open parenthesis
is not preceded by space, lines do not end with white space,
*curly brace rules*
: open curly brace are at end of line, with the matching closing curly brace
aligned with the start of the corresponding keyword (_if_, _for_,
_while_, _case_ or _do_),
*encoding rules*
: characters encoding is _UTF8_, the git property _core.autocrlf_ should be
set to _input_ on Linux development machines and to _true_ on Windows
development machines (to ensure proper conversion on all operating systems),
*naming rules*
: classes names begin with upper case, instance methods and fields
names begin with lower case, class fields are all upper case with
words separated by underscores,
*ordering rules*
: class variables come first, followed by instance variables, followed
by constructors, and followed by methods, public modifiers come first,
followed by protected modifiers followed by private modifiers,
*javadoc rules*
: all elements have complete javadoc, even private fields and methods
(there are some rare exceptions, in case of code translated from
the fortran language and models with huge parameters sets),
*robustness rules*
: switch/case construct have a default argument, even when all possible
cases are already handled, as many classes as possible are immutable,
*miscellaneous rules*
: _star_ imports are forbidden, parameters and local variables are final
wherever possible.
Rules summary
-------------
|---|-----------------|----------------------------------------------------------------------------------|
| 1 | validation | seek for a line test coverage of at least 80% (more is better) |
|---|-----------------|----------------------------------------------------------------------------------|
| 2 | robustness | fix _all_ errors and warnings found by findbugs |
|---|-----------------|----------------------------------------------------------------------------------|
| 3 | robustness | do not make assumptions on the runtime environment of applications using Rugged |
| | | (they may be embedded with no console, no possible user interaction, no network, |
| | | no writable file system, no stoppable main program, have memory constraints, |
| | | time constraints, be run in different linguistic contexts ...) |
|---|-----------------|----------------------------------------------------------------------------------|
| 4 | maintainability | follow Occam's razor principle |
| | | or its declination in computer science: KISS (Keep It Simple, Stupid) |
|---|-----------------|----------------------------------------------------------------------------------|
| 5 | efficiency | seek efficiency, but do not overstep robustness and maintainability |
|---|-----------------|----------------------------------------------------------------------------------|
| 6 | robustness | use immutable objects as much as possible |
| | maintainability | |
| | efficiency | |
|---|-----------------|----------------------------------------------------------------------------------|
| 7 | style | fix _all_ errors and warnings found by checkstyle |
|---|-----------------|----------------------------------------------------------------------------------|
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Overview
========
Rugged is an add-on for Orekit handling Digital Elevation Models
contribution to line of sight computation. It is a free software
low-level library written in Java.
It mainly provides direct and inverse localization, i.e. it allows
to compute accurately which ground point is looked at from a specific
pixel in a spacecraft instrument, and conversely which pixel will
see a specified ground point.
Features
--------
* Direct localization
* Inverse localization
* Localized in several languages
* English
* French
* Galician
Free software
-------------
Rugged is freely available both in source and binary formats, with all related
documentation and tests.
It is distributed under the [Apache License Version 2.0](./license.html). This
is a well known business-friendly license. This means anybody can use it to build
any application, free or not. There are no strings attached to your own code.
Everybody is encouraged to use Orekit as a common low level layer to improve
interoperability in space systems.
Maintained library
------------------
Rugged has been in development since 2013 inside [CS Systèmes
d'Information](http://www.c-s.fr/) and is still used and maintained by its dual teams
of space dynamics and image processing experts.
Rugged is used for image processing of the Sentinel 2 missiong at European Space
Agency (ESA).
<!--- Copyright 2013-2014 CS Systèmes d'Information
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.
-->
Getting the sources
===================
Released versions
-----------------
In order to get the source for officially released versions, go to the
[Files](https://www.orekit.org/forge/projects/rugged/files) tab in Rugged
forge and select one of the rugged-{module}-x.y-src.zip files. The module
part is the module (you need at least the core module, but other modules
may be interesting for you too). The x.y part in the name specifies the version.
Development version
-------------------
The development of the Rugged project is done using the [Git](http://git-scm.com/)
source code control system. Rugged Git master repository is available online.
* you can browse it using the [Repository](https://www.orekit.org/forge/projects/rugged/repository)
tab in Rugged forge
* you can clone it anonymously with the command:
git clone http://www.orekit.org/git/rugged
** if you are a committer, you can clone it using your ssh credentials with the command:
git clone ssh://git@www.orekit.org/rugged.git
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment