The Apache SIS™ library

Apache Spatial Information System (SIS) is a free software, Java language library for developing geospatial applications. SIS provides data structures for geographic features and associated metadata along with methods to manipulate those data structures. The library is an implementation of GeoAPI 3.0.1 interfaces and can be used for desktop or server applications.

The SIS metadata module forms the base of the library and enables the creation of metadata objects which comply with the model of OGC/ISO international standards. The SIS referencing module enable the construction of geodetic data structures for geospatial referencing such as axis, projection and coordinate reference system definitions, along with the associated operations which enable the transformation of coordinates between different systems of reference. The SIS storage modules provide a common approach to the reading and writing of metadata, features and coverages applicable to simple imagery as to many dimensional data structures.

Some Apache SIS features are:

  • Geographic metadata (ISO 19115-1:2014)
    • Read from or written to ISO 19115-3:2016 (current standard) or ISO 19139:2007 (older standard) compliant XML documents.
    • Read from netCDF, GeoTIFF, Landsat, GPX and Moving Feature CSV encoding.
    • Automatic conversions between the metadata model published in 2003 and the revision published in 2014.
  • Referencing by coordinates (ISO 19111:2007)
  • Referencing by identifiers (ISO 19112:2003)
    • Geohashes (a simple encoding of geographic coordinates into short strings of letters and digits).
    • Military Grid Reference System (MGRS), also used for some civilian uses.
  • Units of measurement
    • Implementation of JSR-363 with parsing, formating and unit conversion functionalities.

Using Apache SIS

The latest SIS release is 1.0, released September 2019. Apache SIS requires Java 10 or higher for building, but can be executed on Java 8 or higher. If using Java 8 Runtime Environment, nothing else is needed since Java 8 includes JAXB. If using Java 9 or higher, one of the following configurations is needed (those extra configurations are temporary until support for Java 8 will be dropped in a future SIS version):

  • --add-modules java.xml.bind,java.xml.ws.annotation” option (available with Java 9 or 10 only) added to the java command
  • or JAXB dependency added from Glassfish or Jakarata projects. See Maven coordinates.

The EPSG geodetic dataset is optional for licensing reasons, but recommended. EPSG database installation is described in a separated page.

Apache SIS is a Java library for use by other applications. Leveraging the full SIS capabilities or getting the best performance require that users write their own applications on top of SIS. However a command-line tool is provided for allowing users to experiment some SIS functionalities before writing code.

Developing Apache SIS

Following links are for those who wish to contribute to Apache SIS: