Installation

The easiest way to use Apache SIS is to declare Maven dependencies in the application project. SIS is divided in about 20 modules, which allow applications to import a subset of the library. The Apache SIS downloads page lists the main modules. The pom.xml fragment below gives all dependencies needed by the code snippets in this document (ignoring core modules such as sis-referencing which are inherited by transitive dependencies). Note that the sis-epsg optional module is not under Apache license. Inclusion of that module is subject to acceptation of EPSG terms of use. It is optional but recommended; see How to use EPSG geodetic dataset page for more information.

<properties>
  <sis.version>1.3</sis.version>
</properties>
<dependencies>
  <dependency>
    <groupId>org.apache.sis.storage</groupId>
    <artifactId>sis-geotiff</artifactId>
    <version>${sis.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.sis.storage</groupId>
    <artifactId>sis-netcdf</artifactId>
    <version>${sis.version}</version>
  </dependency>

  <!-- Specialization of GeoTIFF reader for Landsat data. -->
  <dependency>
    <groupId>org.apache.sis.storage</groupId>
    <artifactId>sis-earth-observation</artifactId>
    <version>${sis.version}</version>
  </dependency>

  <!-- The following dependency can be omitted if XML support is not desired. -->
  <dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.6</version>
    <scope>runtime</scope>
  </dependency>

  <!-- This optional dependency requires agreement with EPSG terms of use. -->
  <dependency>
    <groupId>org.apache.sis.non-free</groupId>
    <artifactId>sis-epsg</artifactId>
    <version>${sis.version}</version>
    <scope>runtime</scope>
  </dependency>
</dependencies>

The sis-epsg optional module needs a directory where it will install the geodetic database. That directory can be anywhere on the local machine, it shall exist (but should be initially empty), and its location should be specified by the SIS_DATA environment variable. For example on a Unix system (replace user by the actual user name and some_directory by anything):

export SIS_DATA=/home/user/some_directory
mkdir $SIS_DATA

It is possible to avoid the need to setup SIS_DATA directory if the sis-epsg dependency is replaced by sis-embedded-data. However the latter is slower, and an SIS_DATA directory is still needed for other purposes such as the installation of datum shift grids.