NESD Imaging
Java Imaging API for Geodata.
logo armasuisse     logo armasuisse
 Other Projects :  <Neural>    <Streaming>
Project Summary Concept Screenshots Download/Demos Links

Project Description

Project NESD-Imaging take place in a larger project called NESD which is powered by armasuisse. NESD-Imaging is a module developed to display large amount of image data (e.g. ortho-photos, maps, ...).

NESD-Imaging is primary a framework. Only some sample apps are provided.

NESD-Imaging is actually a layer between Java2D and JAI (Java Advance Imaging): JAI is responsible to decode, manipulate and render images when NESD-Imaging takes care of rendering JAI output on the screen.

NESD-Imaging takes care that :
- JAI render images in a background process.
- the user could navigate through the rendered image (moving viewport).
- zooming in an image, already rendered material is used (lower resolution) to display a zone that will be rendered.
- several image could be arranged in the same 'scene'.

NESD provides special renderer for ortho-photos allowing to display them conveniently (à la google-map). It also provide basic unit conversion classes (WGS84-Swissgrid).

Concept

All in short we could resume it so : we define a 2D plan where you can place an arbitrary number of image. Then you  define which part of this plan you want to render, this include a position, a angle and a zoom factor. Then you let our API render the requested area.

rendering is performed in background, so user interface will not block until rendering is performed. This rendering is delegate to  JAI (Java Advance Imaging) a powerfull image processing library.

Rendering is performed in small units called cells. These cells are organized in a tree and are re-used, while other are rendered in background in order to improve UI responsivity.

NESD Imaging API is designed to scale well with big images (like ortho images). We originally use it with 400 tiff images (about 500GB!!).
 
Support for geodata is included in API to (WGS84/Swissgrid).

NESD-Imaging is an extendable framewrork

It is primary implemented for Swing but SWT could be used (wrapping made with holongate). Look directly in SVN for examples.

Screenshots

screenshot screenshot screenshot screenshot
screenshot screenshot

Downloads / Demo

Start demo application (need Java WebStart). {Mouse Control: left=drag, right=zoom, middle=rotate}
 
Downloads the last version (library, demos, sources) directly from sourceforge. Unpack it and run the sample.bat file to start the demo.

Links

Armasuisse
Sourceforge Project