Home

Awesome

<p align="center"> <a href="http://locationtech.github.io/geowave/"> <img float="center" width="65%" src="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/geowave-index/images/geowave-logo-transluscent.png" alt="GeoWave"><br/><br/> </a> </p>

About

Continuous IntegrationLicenseChat
<a href="https://github.com/locationtech/geowave/actions?query=workflow%3ATests+branch%3Amaster"><img alt="GitHub Action Test Status" src="https://github.com/locationtech/geowave/workflows/Tests/badge.svg?branch=master"/></a>LicenseJoin the chat at https://gitter.im/locationtech/geowave

GeoWave is an open source set of software that:

Basically, GeoWave is working to bridge geospatial software with modern key/value stores and distributed compute systems.

The Docs

The Software

Community

Getting Started

Programmatic Access

You can use Maven to reference pre-built GeoWave artifacts with the following pom.xml snippet (replacing ${keyvalue-datastore} with your data store of choice and ${geowave.version} with the GeoWave version you'd like to use):

	<dependencies>
		<dependency>
			<groupId>org.locationtech.geowave</groupId>
			<artifactId>geowave-datastore-${keyvalue-datastore}</artifactId>
			<version>${geowave.version}</version>
		</dependency>
		<dependency>
			<groupId>org.locationtech.geowave</groupId>
			<artifactId>geowave-adapter-vector</artifactId>
			<version>${geowave.version}</version>
		</dependency>
		<dependency>
			<groupId>org.locationtech.geowave</groupId>
			<artifactId>geowave-adapter-raster</artifactId>
			<version>${geowave.version}</version>
		</dependency>
	</dependencies>

Use the libraries available in the api package to leverage GeoWave's capabilities (where <data store options> might be AccumuloRequiredOptions or HBaseRequiredOptions and simple examples of creating the data type and index can be found in SimpleIngest within the examples directory):

DataStore store = DataStoreFactory.createDataStore(<data store options>);
store.addType(<my data type>, <my index>);
try(Writer writer = store.createWriter()){
  //write data
  writer.writer(<data>);
}
 
//this just queries everything
try(CloseableIterator it = store.query(QueryBuilder.newBuilder().build())){
  while(it.hasNext()){
    //retrieve results matching query criteria and do something
    it.next();
  }
}

See the Developer Guide for more detailed programmatic API examples.

Command-line Access

Alternatively, you can always use the GeoWave command-line to access the same capabilities:

# Add a new RocksDB data store called myStore in the current directory
geowave store add -t rocksdb myStore

# Add a spatial index called spatialIdx to myStore
geowave index add -t spatial myStore spatialIdx

# Ingest a shapefile with states into myStore in the spatialIdx index
geowave ingest localToGW -f geotools-vector states.shp myStore spatialIdx

# Query all the data in the states type from myStore
geowave vector query "SELECT * FROM myStore.states"

See the CLI documentation for a full list of commands and their options.

Some GeoWave rendered eye candy

<p align="center"> <a href="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/geolife-density-13.jpg" target="_blank"><img align="center" src="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/geolife-density-13-thumb.jpg" alt="Geolife data at city scale"></a><br/><br/> <a href="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/geolife-density-17.jpg" target="_blank"><img align="center" src="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/geolife-density-17-thumb.jpg" alt="Geolife data at block scale"></a><br/><br/> <a href="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/osmgpx.jpg" target="_blank"><img align="center" src="https://raw.githubusercontent.com/locationtech/geowave/master/docs/content/overview/images/osmgpx-thumb.jpg" alt="OSM GPX tracks at country scale"></a><br/> </p>

See Example Screenshots in the GeoWave Overview for more information.

Supported versions of core libraries

We work to maintain a N and N-1 tested and supported version pace for the following core libraries.

GeoServerGeoToolsAccumuloHBaseHadoopJava
2.19.x25.x[1.9.x,2.0.x]2.4.x[2.10.x,3.1.x]Java8

Origin

GeoWave was originally developed at the National Geospatial-Intelligence Agency (NGA) in collaboration with RadiantBlue Technologies (now Maxar Technologies) and Booz Allen Hamilton. The software use, modification, and distribution rights are stipulated within the Apache 2.0 license.

Contributing

All pull request contributions to this project will be released under the Apache 2.0 or compatible license. Contributions are welcome and guidelines are provided here.

Did I mention our documentation!