diff --git a/aster/src/main/assembly/binary-assembly.xml b/aster/src/main/assembly/binary-assembly.xml deleted file mode 100644 index f4f0121b73ea24cfad693dcd7fe4ebb4ce2d489e..0000000000000000000000000000000000000000 --- a/aster/src/main/assembly/binary-assembly.xml +++ /dev/null @@ -1,20 +0,0 @@ -<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> - diff --git a/aster/src/main/assembly/building-files.xml b/aster/src/main/assembly/building-files.xml deleted file mode 100644 index c44724029af0274e241708e32017e5ff5afbcafc..0000000000000000000000000000000000000000 --- a/aster/src/main/assembly/building-files.xml +++ /dev/null @@ -1,14 +0,0 @@ -<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 diff --git a/aster/src/main/assembly/jar-files.xml b/aster/src/main/assembly/jar-files.xml deleted file mode 100644 index e89c65b097dd78d33278f95331d4781b238c5b19..0000000000000000000000000000000000000000 --- a/aster/src/main/assembly/jar-files.xml +++ /dev/null @@ -1,11 +0,0 @@ -<component> - <fileSets> - <fileSet> - <directory>target</directory> - <outputDirectory></outputDirectory> - <includes> - <include>*.jar</include> - </includes> - </fileSet> - </fileSets> -</component> \ No newline at end of file diff --git a/aster/src/main/assembly/misc-files.xml b/aster/src/main/assembly/misc-files.xml deleted file mode 100644 index f1bf4a5f7d4f2d0e6c71beb391f75c49ef9e4577..0000000000000000000000000000000000000000 --- a/aster/src/main/assembly/misc-files.xml +++ /dev/null @@ -1,13 +0,0 @@ -<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> diff --git a/aster/src/main/assembly/source-assembly.xml b/aster/src/main/assembly/source-assembly.xml deleted file mode 100644 index d68ffcb21a892551c5042ba2fa9bb67fcc4c3f8f..0000000000000000000000000000000000000000 --- a/aster/src/main/assembly/source-assembly.xml +++ /dev/null @@ -1,10 +0,0 @@ -<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 diff --git a/pom.xml b/pom.xml index ab3fa52f25b8f5ad701ef8e00b6574f14040e2d5..f5148eeb4933ae26880d5d2f0e68e2fbcf4ef4ca 100644 --- a/pom.xml +++ b/pom.xml @@ -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> diff --git a/src/main/assembly/binary-assembly.xml b/src/main/assembly/binary-assembly.xml index a18df15b0ebdc094dff9886a4067cc9dbb87be0e..64f01be1c54a9327877d050c61aba6f8b3c2699f 100644 --- a/src/main/assembly/binary-assembly.xml +++ b/src/main/assembly/binary-assembly.xml @@ -1,4 +1,6 @@ -<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 diff --git a/src/main/assembly/building-files.xml b/src/main/assembly/building-files.xml index 9c3f9cbf56b3008b5f69dd8497fbe72286f98a5b..9eb2f438fcbd322e82cde58245ce28fbd107977e 100644 --- a/src/main/assembly/building-files.xml +++ b/src/main/assembly/building-files.xml @@ -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> diff --git a/src/main/assembly/misc-files.xml b/src/main/assembly/misc-files.xml index 8e5657554a6cf2f3bd391d5f4d4005cd09eba70f..b6666a6c5d1b35a39ae80be5640f1e1d2309d810 100644 --- a/src/main/assembly/misc-files.xml +++ b/src/main/assembly/misc-files.xml @@ -2,7 +2,6 @@ <fileSets> <fileSet> <includes> - <include>README.txt</include> <include>LICENSE.txt</include> <include>NOTICE.txt</include> </includes> diff --git a/src/main/assembly/source-assembly.xml b/src/main/assembly/source-assembly.xml index d68ffcb21a892551c5042ba2fa9bb67fcc4c3f8f..bb6574c4900865452ead604d2dadc99261e4420a 100644 --- a/src/main/assembly/source-assembly.xml +++ b/src/main/assembly/source-assembly.xml @@ -1,4 +1,6 @@ -<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 diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml new file mode 100644 index 0000000000000000000000000000000000000000..28a2154d908197fcd6cb66e1cb26a4e5bd2f62fb --- /dev/null +++ b/src/site/fml/faq.fml @@ -0,0 +1,129 @@ +<?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> diff --git a/src/site/markdown/building.md b/src/site/markdown/building.md new file mode 100644 index 0000000000000000000000000000000000000000..b75c3bf05e62315be4e0417e07f9b9344efafd4a --- /dev/null +++ b/src/site/markdown/building.md @@ -0,0 +1,97 @@ +<!--- 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 diff --git a/src/site/markdown/contact.md b/src/site/markdown/contact.md new file mode 100644 index 0000000000000000000000000000000000000000..93545a6aa97718109ad9f28a02c0defb09d4047c --- /dev/null +++ b/src/site/markdown/contact.md @@ -0,0 +1,61 @@ +<!--- 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 | +|:---------------------------------------------------------------------| diff --git a/src/site/markdown/contributing.md b/src/site/markdown/contributing.md new file mode 100644 index 0000000000000000000000000000000000000000..7e3caea85d66b069597dbbf872db700816ad4993 --- /dev/null +++ b/src/site/markdown/contributing.md @@ -0,0 +1,26 @@ +<!--- 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. diff --git a/src/site/markdown/design.md b/src/site/markdown/design.md deleted file mode 100644 index 2e897d8e91903a070de692fbd74eb4c5ded7fc2e..0000000000000000000000000000000000000000 --- a/src/site/markdown/design.md +++ /dev/null @@ -1,20 +0,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 diff --git a/src/site/markdown/design/overview.md b/src/site/markdown/design/overview.md new file mode 100644 index 0000000000000000000000000000000000000000..8011c568c6806bcf2f2df0ef010d3317b59910dc --- /dev/null +++ b/src/site/markdown/design/overview.md @@ -0,0 +1,23 @@ +<!--- 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. + + diff --git a/src/site/markdown/downloads.md b/src/site/markdown/downloads.md new file mode 100644 index 0000000000000000000000000000000000000000..c3fecbf661e6e56659f13f447a91b63e8fc9899b --- /dev/null +++ b/src/site/markdown/downloads.md @@ -0,0 +1,44 @@ +<!--- 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. diff --git a/src/site/markdown/guidelines.md b/src/site/markdown/guidelines.md new file mode 100644 index 0000000000000000000000000000000000000000..b1c879c323bee6bc3a258e9dea2e570b5ec84d4b --- /dev/null +++ b/src/site/markdown/guidelines.md @@ -0,0 +1,168 @@ +<!--- 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 | +|---|-----------------|----------------------------------------------------------------------------------| diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md new file mode 100644 index 0000000000000000000000000000000000000000..45133c77139f0543d0daeed76eb2308899abd5e0 --- /dev/null +++ b/src/site/markdown/index.md @@ -0,0 +1,63 @@ +<!--- 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). diff --git a/src/site/markdown/sources.md b/src/site/markdown/sources.md new file mode 100644 index 0000000000000000000000000000000000000000..9191a4cf5b35c393404b596178c67a5b71a3346a --- /dev/null +++ b/src/site/markdown/sources.md @@ -0,0 +1,41 @@ +<!--- 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 diff --git a/src/site/resources/images/rugged-architecture.png b/src/site/resources/images/rugged-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..0edec0097fdac59551fde9731f48623a034eedac Binary files /dev/null and b/src/site/resources/images/rugged-architecture.png differ diff --git a/src/site/resources/images/rugged-logo.png b/src/site/resources/images/rugged-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..55e0717ed58d522ffe9b76d6e038968dc8fa50ce Binary files /dev/null and b/src/site/resources/images/rugged-logo.png differ diff --git a/src/site/site.xml b/src/site/site.xml index 718a808fdf96f46bdfd64a7c50761762726f7ac6..8641773014df59d25e94fcca035841aa021e17a2 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -16,12 +16,12 @@ <project name="Rugged"> <bannerLeft> <name>CS Systèmes d'Information</name> - <src>/images/logo_cs_2008_ang.jpg</src> - <href>http://uk.c-s.fr/</href> + <src>/images/cs_logiciel_dev_32pixelsgri.png</src> + <href>http://www.c-s.fr/</href> </bannerLeft> <bannerRight> <name>Rugged</name> - <src>/images/orekit-logo.png</src> + <src>/images/rugged-logo.png</src> <href>/index.html</href> </bannerRight> <body> @@ -29,33 +29,15 @@ <item name="Overview" href="/index.html" /> <item name="Getting the sources" href="/sources.html" /> <item name="Building" href="/building.html" /> - <item name="Configuration" href="/configuration.html" /> <item name="FAQ" href="/faq.html" /> <item name="License" href="/license.html" /> <item name="Downloads" href="/downloads.html" /> <item name="Changes" href="/changes-report.html" /> - <item name="Training" href="/training.html" /> <item name="Contact" href="/contact.html" /> </menu> - <menu name="Architecture"> - <item name="Attitudes" href="/architecture/attitudes.html" /> - <item name="Bodies" href="/architecture/bodies.html" /> - <item name="Errors" href="/architecture/errors.html" /> - <item name="Forces" href="/architecture/forces.html" /> - <item name="Frames" href="/architecture/frames.html" /> - <item name="Orbits" href="/architecture/orbits.html" /> - <item name="Propagation" href="/architecture/propagation.html" /> - <item name="Time" href="/architecture/time.html" /> - <item name="Tle" href="/architecture/tle.html" /> - <item name="Utils" href="/architecture/utils.html" /> + <menu name="Design"> + <item name="Overview" href="/design/overview.html" /> </menu> - <menu name="Tutorial"> - <item name="Attitude" href="/tutorial/attitude.html" /> - <item name="Frames" href="/tutorial/frames.html" /> - <item name="Propagation" href="/tutorial/propagation.html" /> - <item name="Time" href="/tutorial/time.html" /> - <item name="Geomagnetic field" href="/tutorial/geomagnetic-field.html" /> - </menu> <menu name="Development"> <item name="Contributing" href="/contributing.html" /> <item name="Guidelines" href="/guidelines.html" /> diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml new file mode 100644 index 0000000000000000000000000000000000000000..f4616564ebc1067ec2a0be93ec57c52df6aaa3f0 --- /dev/null +++ b/src/site/xdoc/changes.xml @@ -0,0 +1,488 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!-- Copyright 2002-2014 CS Systèmes d'Information + Licensed to CS Systèmes d'Information (CS) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + CS licenses this file to You 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. +--> +<document> + <properties> + <title>Rugged Changes</title> + </properties> + <body> + <release version="1.0" date="TBD" + description="TBD"> + <action dev="luc" type="update"> + Swtiched maven configuration to multi-modules. + </action> + <action dev="luc" type="update"> + Updated UML diagrams. + </action> + <action dev="luc" type="update"> + Moved TileUpdate to raster package. + </action> + <action dev="luc" type="update"> + Finalized direct localization diagrams. + </action> + <action dev="luc" type="update"> + renamed core package into intersection. + </action> + <action dev="luc" type="update"> + Created a utils package. + </action> + <action dev="luc" type="update"> + Moved raster package one level up. + </action> + <action dev="luc" type="fix"> + Fixed top package name. + </action> + <action dev="luc" type="update"> + Updated maven plugins versions. + </action> + <action dev="luc" type="update"> + Updated Apache Commons Version as 3.3 has now been released. + </action> + <action dev="luc" type="update"> + Updated Orekit version. + </action> + <action dev="luc" type="update"> + Improved performance. + </action> + <action dev="luc" type="update"> + Disabled timing test for inverse localization. + </action> + <action dev="luc" type="update"> + Improved inverse localization speed again! + </action> + <action dev="luc" type="update"> + Added inverse localization from latitude and longitude only. + When only latitude and longitude are specified, the elevation is + automatically computed from the Digital Elevation Model. + </action> + <action dev="luc" type="update"> + Simplified direct localization. + </action> + <action dev="luc" type="update"> + Improved inverse localization performances. + </action> + <action dev="luc" type="update"> + Added rate to the LineDatation interface. + </action> + <action dev="luc" type="update"> + Disable timing test by default. + </action> + <action dev="luc" type="update"> + Renamed setLineSensor into addLineSensor. + The new name explains more clearly that several sensors can be set up at + once. + </action> + <action dev="luc" type="fix"> + First working version of inverse localization. + </action> + <action dev="luc" type="update"> + Streamlined line sensor model. + We now use a single position for all pixels (but of course still + different line-of-sight vectors), as it doesn't really make sense to + consider different positions as pixels are only a few microns away from + each other. + </action> + <action dev="luc" type="update"> + Ensure sensor mean plane normal has a deterministic orientation. + </action> + <action dev="luc" type="update"> + Slightly changed the intersection refinement in flat-body. + </action> + <action dev="luc" type="update"> + Added a flat-body implementation of refineIntersection. + The former implementation ignored the flat-body flag and in fact + corrected the flat-body ... + </action> + <action dev="luc" type="fix"> + Fixed mean reference point position. + </action> + <action dev="luc" type="update"> + Improved light time correction. + The current altitude must be considered when computing light time + correction. Previous computation was slightly wrong as it only computed + light time from the ellipsoid. This induced problems when computing + inverse correction. + </action> + <action dev="luc" type="fix"> + Fixed computation of latitude crossings for line of sight. + In some cases, the line of sight has two intersections with a given + iso-latitude cone, and the selecting the closes one to spacecraft was + not always the appropriate choice. An hint from the caller was needed, + as a point close to the desired intersection. + </action> + <action dev="luc" type="fix"> + Fixed non-bracketing error near start of sensor line. + </action> + <action dev="luc" type="update"> + Moved reference date from Rugged top class to LineDatation model. + </action> + <action dev="luc" type="update"> + Remove check for context, which is ensured since construction. + </action> + <action dev="luc" type="update"> + Improved speed of inverse localization test. + </action> + <action dev="luc" type="fix"> + First working version of inverse localization. + It works in simple cases (no light time correction and no aberration of + light correction), and is still really slow. + </action> + <action dev="luc" type="add"> + Started implementation of inverse localization (not working yet). + </action> + <action dev="luc" type="update"> + Removed a check that is not needed anymore. + The indices are now checked at caller level. + </action> + <action dev="luc" type="update"> + Added an option to use Duvenhage algorithm with flat-Earth hypothesis. + This option is mainly intended for comparison with existing systems. It + should not be used for operational systems and the full Duvenhage + algorithm with line-of-sight bending in geodetic coordinates should be + used instead. + </action> + <action dev="luc" type="fix"> + Avoid array bounds error when interpolating exactly at tile edges. + </action> + <action dev="luc" type="update"> + Added automatic mean plane computation for line sensors. + This will allow implementing inverse localization. + </action> + <action dev="luc" type="update"> + Allow direct use of Orekit inertial frames and ellipsoids. + </action> + <action dev="luc" type="update"> + Added optional aberration of light correction. + </action> + <action dev="luc" type="update"> + Renamed ligth travel time compensation into light time correction. + This better matches physics naming conventions. + </action> + <action dev="luc" type="update"> + Moved light travel compensation setting out of construction. + This setting is not intended to be used often (in fact it should be used + only for validation against other systems), so forcing user to set it in + all cases was a bad idea. Now the default configuration is to compensate + and if user does not want to compensate, he can inhibate it by calling a + separate method after construction. + </action> + <action dev="luc" type="update"> + Fixing light travel time or not is now a user setting. + </action> + <action dev="luc" type="update"> + Configure tiles updater at construction time. + </action> + <action dev="luc" type="update"> + Replaced setGeneralContext with constructors. + </action> + <action dev="luc" type="update"> + Replaced Rugged interface with a class. + </action> + <action dev="luc" type="update"> + Moved enumerates out of Rugged top level interface. + </action> + <action dev="luc" type="update"> + Removed SatellitePV and SatelliteQ classes. + We now use directly Orekit PVCoordinates and Apache Commons Math + Rotation classes. + </action> + <action dev="luc" type="update"> + Remove GroundPoint class. + We use directly the Orekit GeodeticPoint now. + </action> + <action dev="luc" type="add"> + Added ITRF equinox, for applications that rely on it... + </action> + <action dev="luc" type="fix"> + Fixed virtual "wall" appearing at tiles boundaries. + </action> + <action dev="luc" type="fix"> + Avoid an infinite loop near tiles boundaries. + </action> + <action dev="luc" type="fix"> + Fixed error loading elevation from Aster files. + </action> + <action dev="luc" type="update"> + Improved accuracy by taking speed of light into account in transforms. + </action> + <action dev="luc" type="update"> + Slight speed-up with a dedicated pointOnGround method. + </action> + <action dev="luc" type="update"> + Added writing of grid file to full test. + </action> + <action dev="luc" type="update"> + Don't use a numerical propagator within direct localization. + As the time between each line is really small (milliseconds), it is + better to propagate first and use an ephemeris later. + </action> + <action dev="luc" type="add"> + New global test (temporary, much too computing intensive). + </action> + <action dev="luc" type="add"> + Added a default linear model for line datation. + </action> + <action dev="luc" type="update"> + Avoid line-of-sight splitting before its start. + </action> + <action dev="luc" type="fix"> + Fixed a numerical issue at tile exit. + The low point at tile minimum elevation was computed with a tiny + positive error, meaning the point really was above min elevation (at + micrometer level). The line segment between entry and exit stopped just + before traversing the Digital Elevation Model, and an error was + triggered. + The solution was to take some margin when computing the segment + endpoints at entry and exit: we now start above max elevation and end + below min elevation so the intersection should be really on the line. + </action> + <action dev="luc" type="update"> + Greatly improved accuracy of direct localization. + There were some small errors (at centimeter level) as result points may + be slightly out of line of sight. These errors seemed to be due to the + final linear line-of-sight model that is used at pixel level. + An iterative correction step is performed to ensure the point is really + on the line-of-sight. + The residual error is now at nanometer level. + </action> + <action dev="luc" type="add"> + Allow tolerance for intersections close to pixel edges. + </action> + <action dev="luc" type="update"> + Use the four corners of each pixel to initialize min/max kd-tree. + </action> + <action dev="luc" type="update"> + Use point and direction rather than two points for pixel intersection. + </action> + <action dev="luc" type="update"> + Added a los conversion between Cartesian and geodetic coordinates. + The conversion is of course accurate only in the neighborhood of the + reference point, as a straight line in Cartesian is not a straight line + in geodetic coordinates. What is converted is the initial direction so + the two curves are tangent at the reference point. + Near Earth surface, the two curves remain within one millimeter of each + other after about 100 m travel. + </action> + <action dev="luc" type="fix"> + First working version of Duvenhage algorithm! + </action> + <action dev="luc" type="fix"> + Handle degenerate intersection cases. + The cases handled include linear cases (when Digital Elevation Model has + zero curvature) and constant cases (no curvature and line-of-sight + parallel to tile, both in or out-of-tile). + </action> + <action dev="luc" type="fix"> + First working version of BasicScanAlgorithm. + The case where the line-of-sight enters the Digital Elevation Model in + one tile on top and exit it in another tile on bottom is not tested yet. + </action> + <action dev="luc" type="add"> + Added tests for BasicScanAlgorithm. + </action> + <action dev="luc" type="update"> + Don't exclude endpoints when un-merging tiles. + </action> + <action dev="luc" type="update"> + Changed private method arguments order for easier understanding. + </action> + <action dev="luc" type="fix"> + Fixed computation of sub-tiles crossings. + </action> + <action dev="luc" type="update"> + Added library setup test, with and without Orekit. + </action> + <action dev="luc" type="add"> + Prepared framework for more complete flight dynamics tests. + </action> + <action dev="luc" type="update"> + Implemented intersection at pixel level. + </action> + <action dev="luc" type="update"> + Delegate final pixel intersection to Tile. + </action> + <action dev="luc" type="fix"> + Added a basic scan algorithm, for testing and validation purposes. + </action> + <action dev="luc" type="update"> + Added line-of-sight splitting at sub-tiles boundaries. + </action> + <action dev="luc" type="update"> + Added test for level 0 merging row and tall tile. + </action> + <action dev="luc" type="update"> + Added methods getLatitudeAtIndex and getLongitudeAtIndex in Tile. + </action> + <action dev="luc" type="update"> + Changed semantics of merge methods so they refer to current level. + </action> + <action dev="luc" type="update"> + Renamed package dem into raster. + </action> + <action dev="luc" type="update"> + Work In Progress on duvenhage algorithm. + </action> + <action dev="luc" type="update"> + Added getMergingRow and getMergingColumn methods. + These methods are essential to identify where to split the line-of-sight + in the Duvenhage algorithm, when going from one level in the min/max + kd-tree to the next level. + </action> + <action dev="luc" type="update"> + Added isColumnMerging predicate. + </action> + <action dev="luc" type="update"> + Added a tolerance around tile for elevation interpolation. + Elevation is going to be interpolated at tiles entry and exit points, + which are computed from geodetic conversions. The result points may be + very slightly out of tiles, at numerical accuracy level. These points + should nevertheless be allowed to be interpolated using the closest + pixel data, so a tolerance was needed. + The SimpleTile class uses a fixed tolerance, arbitrarily set to 1/8 + pixel. + </action> + <action dev="luc" type="fix"> + Fixed interpolation error. + </action> + <action dev="luc" type="add"> + started implementation of the Duvenhage algorithm. + </action> + <action dev="luc" type="update"> + Added getLatitudeIndex and getLongitudeIndex in Tile. + </action> + <action dev="luc" type="fix"> + Handle properly tiles boundaries. + Tiles are expected to have no inter-tile gap, i.e. the boundary row/columns are repeated in neighboring tiles. + </action> + <action dev="luc" type="update"> + Improved identification of point location with respect to tile. + </action> + <action dev="luc" type="update"> + Sensor directly uses points and vectors, and no more Line. + </action> + <action dev="luc" type="update"> + Intersection algorithms can use the new ExtendedEllipsoid. + This allows them to chop off line-of-sight at DEM cells boundaries. + </action> + <action dev="luc" type="fix"> + Fixed wrong package in tests. + </action> + <action dev="luc" type="add"> + Added ExtendedEllipsoid to chop off line-of-sight according to DEM. + </action> + <action dev="luc" type="update"> + Split top level class from DEM intersection algorithm. + </action> + <action dev="luc" type="update"> + Line numbers are double. + </action> + <action dev="luc" type="add"> + Started implementation of direct localization ... + </action> + <action dev="luc" type="update"> + Added a protection against unknown sensors. + </action> + <action dev="luc" type="add"> + Added configuration for sensor lines of sight. + </action> + <action dev="luc" type="update"> + Use an offset from a reference date for all computation. + </action> + <action dev="luc" type="update"> + Added a getMergeLevel method to identify when pixels share min/max. + This is a first step towards duvenhage's algorithm. + </action> + <action dev="luc" type="fix"> + Working version of min/max kd-tree tile. + </action> + <action dev="luc" type="add"> + Started implementation of min/max KD-tree tile. + This is work in progress, the min/max computation seems wrong for now. + </action> + <action dev="luc" type="update"> + pixels are double. + </action> + <action dev="luc" type="update"> + Added protection against empty tiles. + </action> + <action dev="luc" type="update"> + Removed AbastractTile. + Specialized tiles should directly extend SimpleTile. + </action> + <action dev="luc" type="add"> + Added global min/max handling for any tile. + </action> + <action dev="luc" type="add"> + Prepared first implementation for Duvenhage algorithm. + For now, only the (incomplete) API and classes hierarchy has been set + up. The tile is still a simple tile and does not yet creates the min/max + kd-tree. The algorithm doesn't do anything. + </action> + <action dev="luc" type="update"> + Boilerplate part for Rugged interface implementation. + </action> + <action dev="luc" type="update"> + Added API for global context initialization. + </action> + <action dev="luc" type="update"> + Added containers for parsed position/velocity and attitude. + </action> + <action dev="luc" type="update"> + Added a hook called after tile update completion. + </action> + <action dev="luc" type="update"> + Force use of factory to create simple tiles. + </action> + <action dev="luc" type="update"> + Extract an AbstractTile from SimpleTile + </action> + <action dev="luc" type="update"> + Added a simple container for inverse localization result. + </action> + <action dev="luc" type="update"> + Expanded API. + </action> + <action dev="luc" type="update"> + Use new specialized exceptions. + </action> + <action dev="luc" type="update"> + Added error messages handling, with translation. + </action> + <action dev="luc" type="update"> + Added design document and diagrams. + </action> + <action dev="luc" type="update"> + Implemented TilesCache. + </action> + <action dev="luc" type="update"> + Added factory for tiles. + The factory is to be implemented by the DEM intersection algorithm, at + very low level (typically tiles based on min/max kd-tree for Duvenhage + algorithm). + The tile updater on the other hand is the responsibility of the mission + specific interface. + </action> + <action dev="luc" type="update"> + Added method to check ground point coverage. + </action> + <action dev="luc" type="update"> + Reference latitude/longitude must be the minimum. + This ensures simple search for tiles given a ground point. + </action> + </release> + </body> +</document>