Code Monkey home page Code Monkey logo

geowave's Introduction

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
    • PDAL plugin for working with point cloud data
    • Mapnik plugin for generating map tiles and generally making good looking maps.

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>
    <repositories>
		<repository>
			<id>geowave-maven-snapshots</id>
			<name>GeoWave AWS Snapshots Repository</name>
			<url>http://geowave-maven.s3-website-us-east-1.amazonaws.com/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>geowave-maven-releases</id>
			<name>GeoWave AWS Release Repository</name>
			<url>http://geowave-maven.s3-website-us-east-1.amazonaws.com/release</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

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 config addstore ... and geowave config addindex ... are used to create named configurations for connecting to a key-value store (addstore) and describing how you want the data indexed (addindex). You can use --help at any time such as geowave config addstore --help or furthermore get additional help after specifying the type with -t such as geowave config addstore -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 PDAL Mapnik Java
2.14.x 20.x [1.7.x,1.9.x] [1.1.x,1.4.x] 2.x 0.9.9 3.x Java8
  • Apache Maven 3.x or greater is required for building
  • Java Advanced Imaging and Java Image I/O should both be installed on Geoserver for GeoWave versions 0.9.2.1 and below (licensing prohibits us redistributing)
    • At the time of writing, Oracle is migrating Java projects around and these links are subject to change. Read the INSTALL files to determine the download file name for different operating systems and architectures. They are stored in the same directory as the INSTALL file. Here are some common download locations.
    • Java Advanced Imaging
    • Java Image I/O
  • 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 DigitalGlobe) 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. Software source code previously released under an open source license and then modified by NGA staff is considered a "joint work" (see 17 USC § 101); it is partially copyrighted, partially public domain, and as a whole is protected by the copyrights of the non-government authors and must be released according to the terms of the original open source license.

Did I mention our documentation!

geowave's People

Contributors

rfecher avatar chrisbennight avatar rwgdrummer avatar dcy2003 avatar mawhitby avatar spohnan avatar blastarr avatar andrewdmanning avatar datasedai avatar ckras34 avatar jwileczek avatar jwomeara avatar emacthecav avatar jdgarrett avatar mcarrier7 avatar bmendell avatar richard3d avatar scottevil avatar akash-peri avatar gsoyka avatar meislerj avatar jprochaz avatar binderparty avatar srinivasreddyv2 avatar ashish217 avatar ewilson-radblue avatar viggyprabhu avatar ahuarte47 avatar russellorf avatar anicr7 avatar

Watchers

TerryLAI avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.