# Overview

This module defines core data types - mostly as implementation-free interfaces - that are used in EDAL. The data types represent different kinds of environmental information, including numerical model output, satellite observations and in situ data.

# Rationale

The aims of these type definitions are:

- to correctly define types that represent information that is typically used in GIS-like data visualization and intercomparison applications;
- to help to form a bridge between the GIS world and that of multidimensional environmental data (such as may typically be encoded in NetCDF files);
- to have minimal dependencies on third-party libraries, allowing use in a number of different environments, including those that do not implement the full Java APIs (e.g. Google App Engine, Google Web Toolkit, embedded devices;
- to adopt and apply standards where possible, but also to keep the API "clean" and easy to use.

# Related work

The Climate and Forecast (CF) metadata standard defines how to encode environmental data in NetCDF files. Although focused mostly on gridded data, CF is now encompassing other data types. EDAL attempts to allow (almost) all of the CF metadata to be expressed as convenient Java APIs.

The Java NetCDF libraries provide a pure-Java interface to NetCDF and other files, with some abstractions of data types (the Common Data Model) that are similar to those of EDAL. An EDAL module provides a wrapper around the CDM, providing a more GIS-friendly view.

GeoAPI defines Java interfaces that express certain OGC and ISO standards. EDAL follows a similar approach but is more tailored to multidimensional environmental data, and is less comprehensive and complex than GeoAPI.