Skip to content
GeoWave provides geospatial and temporal indexing on top of Accumulo, HBase, BigTable, Cassandra, and DynamoDB
Java Python Shell Gnuplot Scheme Puppet Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.utility Update GeoWave CLI to be more user-friendly. (#1610) Aug 19, 2019
analytics [maven-release-plugin] prepare for next development iteration Sep 6, 2019
core [maven-release-plugin] prepare for next development iteration Sep 6, 2019
deploy Embedded Cassandra Available in Standalone Installer (#1625) Sep 19, 2019
dev-resources updated poms with required properties (#1588) Jun 26, 2019
docs Embedded Cassandra Available in Standalone Installer (#1625) Sep 19, 2019
examples [maven-release-plugin] prepare for next development iteration Sep 6, 2019
extensions Embedded Cassandra Available in Standalone Installer (#1625) Sep 19, 2019
python [maven-release-plugin] prepare for next development iteration Sep 6, 2019
services [maven-release-plugin] prepare for next development iteration Sep 6, 2019
test Embedded Cassandra Available in Standalone Installer (#1625) Sep 19, 2019
.gitattributes Simplify .gitattributes May 17, 2016
.gitignore Improvements to RPM publishing process (#1577) Jun 17, 2019
.travis.yml Python improvements (#1604) Aug 15, 2019
CONTRIBUTING.md GEOWAVE-1018 and hbase serverside operations Mar 14, 2018
LICENSE Update LICENSE Jun 11, 2014
NOTICE re-formatted to google java style and updated copyright to 2019 (#1480) Jan 4, 2019
README.md Minor fixes and updates to docs (#1615) Aug 28, 2019
pom.xml [maven-release-plugin] prepare for next development iteration Sep 6, 2019

README.md

GeoWave

About

Continuous Integration License Chat
Travis-CI test status License Join the chat at https://gitter.im/locationtech/geowave

GeoWave is an open source set of software that:

  • Capabilities
  • Geospatial software plugins
    • GeoServer plugin to allow geospatial data in various key-value stores to be shared and visualized via OGC standard services

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 datastore 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();
  }
}

Commandline Access

Alternatively, you can always use the GeoWave commandline to access the same capabilities. Install the geowave-$VERSION-apache-tools RPM as instructed here. Then geowave store add ... and geowave index add ... are used to create named configurations for connecting to a key-value store (geowave store add) and describing how you want the data indexed (geowave index add). You can use --help at any time such as geowave store add --help or furthermore get additional help after specifying the type with -t such as geowave store add -t accumulo --help to understand accumulo specific parameters. Once you have the indexing and store specified you can use geowave ingest localtogw <file or directory> <store name> <index name(s)> to ingest data into the key-value store. For the most basic walkthrough with minimal setup, run through the quickstart guide locally using RocksDB.

Some GeoWave rendered eye candy

Geolife data at city scale

Geolife data at block scale

OSM GPX tracks at country scale

See Screenshots in the documentation 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.

Geoserver Geotools Accumulo HBase Hadoop Java
2.14.x 20.x [1.7.x,1.9.x] [1.1.x,1.4.x] 2.x Java8
  • Apache Maven 3.x or greater is required for building
  • See our .travis.yml file for the currently tested build matrix.

Origin

GeoWave was developed at the National Geospatial-Intelligence Agency (NGA) in collaboration with RadiantBlue Technologies (now Maxar Technologies) and Booz Allen Hamilton. The government has "unlimited rights" and is releasing this software to increase the impact of government investments by providing developers with the opportunity to take things in new directions. 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!

You can’t perform that action at this time.