An Eclipse RCP platform for earth science visualisation, built on the NASA World Wind Java SDK.
Clone or download
mdehoog Merge pull request #130 from mdehoog/master
Better GOCAD object support, bookmark/layer import/export
Latest commit e134d08 Jun 30, 2016

Geoscience Australia

EarthSci is an Eclipse RCP platform for creating applications for the visualisation of earth science data. It is an evolution of the existing GA World Wind Suite built on the NASA World Wind Java SDK.

The vision for EarthSci is to take the best features of the GA World Wind Suite (Geological model support, WMS/WFS support, tiled data preparation, keyframe animation etc.) and combine them with the best features of the Eclipse platform (modular plugin architecture, in-built help, native windowing, model-based UI) to create a flexible platform with powerful science visualisation features. As development progresses more and more features will be added.

For more information on the project, see the Wiki


## Project basics ##

The EarthSci project is built on the Eclipse 4 RCP platform. It uses a number of core 3rd-party libraries including the NASA World Wind Java SDK, GDAL, and JOGL.

A lot of the geospatial data visualisation functionality has been ported across from the GA World Wind Suite.

The project uses Maven 3.0+ and Tycho for dependency and build management.

For information on getting up and running with the project, see the Developer's guide.

## Reporting bugs and requesting features ##

Our goal is to make EarthSci a solid platform for developing earth science visualisation applications. If you find any bugs/issues with the platform, or would like to see new features added, please report them via the project issue tracker. Better yet, implement the changes yourself and then open a pull request.

Please note that your bug/issue/feature may already be registered in the issue tracker. Please take a quick look before you raise a ticket to make sure you aren't duplicating an existing issue. For a good guide on writing effective issue reports, see Allan McRae's blog post "How to file a bug report".

## How to contribute ##

We welcome all contributions to the project, no matter how large or small.

The project is being managed using the "fork+pull" method familiar to most github users. To contribute patches to the codebase:

  1. Fork the repository
  2. Make your changes
  3. Submit a pull request

We will endeavour to respond to your request ASAP.

Some ideas for how to contribute:

  • Find a bug/issue/feature request in the project issue tracker and fix it!
  • Implement a feature/plugin you would like to see
  • Conduct some user testing and report any issues you find
  • Add some unit tests to the test suite
  • Develop and host a plugin/feature that can be included at runtime
  • Help create technical documentation and developer guides to make it easier for future developers to get involved.
  • Translate some of the message bundles to make the platform accessible to a wider audience
## Project Structure ##

The overall project structure is as follows:

-- pom.xml				The master POM file. Will build all plugins, features and products.
|- parent-pom.xml		A common parent POM that should be referenced by all plugin POMs.
|- externals\			Contains all included third-party plugins (e.g. NASA World Wind)
|- plugins\				Contains all plugin projects developed as part of the platform. This includes test plugins.
|- features\			Contains all feature projects developed as part of the platform. This includes product features.
|- webstart\			Contains a utility project used to generate webstart JNLP definitions for
|- verifier\			Contains a utility project that checks the configuration of plugins and features and fails the build if it detects mis-configured projects etc. 
### Plugins and Features ###

The project follows the Eclipse application pattern, and is composed of a number of plugins (or bundles) and features (groups of plugins that are related).

	<tr><td></td><td>The core UI components of the EarthSci platform</td></tr>
	<tr><td></td><td>Tests for the application UI plugin</td></tr>
	<tr><td></td><td>Shared, reusable non-UI components</td></tr>
	<tr><td></td><td>Tests for the common components</td></tr>
	<tr><td></td><td>Shared, reusable UI components</td></tr>

	<tr><td></td><td>A copy of some internal Eclipse RCP components for use in the application</td></tr>
	<tr><td></td><td>A copy of some internal JFace components for use in the application</td></tr>
	<tr><td>org.eclipse.ui.workbench.compatibility</td><td>Some adapters for working with the Workbench in an e4 application</td></tr>

	<tr><td></td><td>Provides a mechanism for having arbitrary objects participate in the DI mechanism</td></tr>

	<tr><td></td><td>The Intent API</td></tr>

	<tr><td></td><td>Provides configuration to enable <a href="">SLF4J</a> logging</td></tr>

	<tr><td></td><td>The core Catalog API</td></tr>
	<tr><td></td><td>Tests for the core Catalog API</td></tr>
	<tr><td></td><td>The basic UI components for the Catalog API</td></tr>
	<tr><td></td><td>Tests for the Catalog API UI components</td></tr>
	<tr><td></td><td>A catalog implementation that reads legacy dataset.xml files</td></tr>
	<tr><td></td><td>A catalog implementation that reads from a local file system</td></tr>
	<tr><td></td><td>A catalog implementation that reads from <a href="">OGC WMS</a> services</td></tr>

	<tr><td></td><td>Basic UI components for interacting with the Layer API</td></tr>
	<tr><td></td><td>Tests for the Layer UI components</td></tr>

	<tr><td></td><td>The core Bookmark API</td></tr>
	<tr><td></td><td>Tests for the core Bookmark API</td></tr>
	<tr><td></td><td>The basic UI components for the Bookmark API</td></tr>
	<tr><td></td><td>Tests for Bookmark API UI components</td></tr>

	<tr><td></td><td>The core Notification API</td></tr>
	<tr><td></td><td>Tests for the core Notification API</td></tr>
	<tr><td></td><td>The basic UI components for the Notification mechanism</td></tr>
	<tr><td></td><td>A plugin that provides a popup notification receiver</td></tr>
	<tr><td></td><td>The core 3D Model API</td></tr>
	<tr><td></td><td>Tests for the core 3D Model API</td></tr>
	<tr><td></td><td>Basic implementations for the 3D Model API</td></tr>
	<tr><td></td><td>Tests for the basic 3D Model API implementations</td></tr>
	<tr><td></td><td>Basic UI components for the 3D Model API</td></tr>

	<tr><td></td><td>Extensions and utilities for the NASA WorldWind SDK, used to provided additional layer types etc.</td></tr>
	<tr><td></td><td>Tests for the plugin</td></tr>
PluginDescription core, non-UI components of the EarthSci platform for the core plugin

FeatureDescription core feature of the EarthSci platform product feature of the EarthSci platform
org.eclipse.rcp.minimalA cut-down Eclipse RCP feature that removes unneeded plugins
## License ## The `EarthSci` project is released under the [Apache 2.0 license]( and is 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.

The project uses third party components which may have different licenses. Please refer to individual components for more details.

## Contact ## For more information on the `EarthSci` project, please email **.