Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/locationtech/geomesa
GeoMesa is a suite of tools for working with big geo-spatial data in a distributed fashion.
https://github.com/locationtech/geomesa
Last synced: 25 days ago
JSON representation
GeoMesa is a suite of tools for working with big geo-spatial data in a distributed fashion.
- Host: GitHub
- URL: https://github.com/locationtech/geomesa
- Owner: locationtech
- License: apache-2.0
- Created: 2013-09-30T20:13:46.000Z (about 11 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T19:11:30.000Z (7 months ago)
- Last Synced: 2024-04-14T06:09:33.205Z (7 months ago)
- Language: Scala
- Homepage: https://www.geomesa.org/
- Size: 68.4 MB
- Stars: 1,385
- Watchers: 91
- Forks: 427
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-bigtable - GeoMesa - Suite of tools for working with big geo-spatial data in a distributed fashion, that can leverage Bigtable as its backend. (Tools / Databases)
- awesome-starred - locationtech/geomesa - GeoMesa is a suite of tools for working with big geo-spatial data in a distributed fashion. (others)
README
GeoMesa is an open source suite of tools that enables large-scale geospatial querying and analytics on distributed
computing systems. GeoMesa provides spatio-temporal indexing on top of the Accumulo, HBase and
Cassandra databases for massive storage of point, line, and polygon data. GeoMesa also provides near real time
stream processing of spatio-temporal data by layering spatial semantics on top of Apache Kafka. Through GeoServer,
GeoMesa facilitates integration with a wide range of existing mapping clients over standard OGC (Open Geospatial
Consortium) APIs and protocols such as WFS and WMS. GeoMesa supports Apache Spark for custom distributed
geospatial analytics.
#### ![LocationTech](https://pbs.twimg.com/profile_images/2552421256/hv2oas84tv7n3maianiq_normal.png) GeoMesa is a member of the [LocationTech](https://projects.eclipse.org/projects/locationtech.geomesa) working group of the Eclipse Foundation.
## Join the Community
*
* GeoMesa [Users](https://accounts.eclipse.org/mailing-list/geomesa-users) and [Dev](https://accounts.eclipse.org/mailing-list/geomesa-dev) mailing lists
* GeoMesa [JIRA](https://geomesa.atlassian.net/issues/?jql=order+by+created+DESC) for issue tracking## Documentation
* [Main documentation](https://www.geomesa.org/documentation/)
* [Upgrade Guide](https://www.geomesa.org/documentation/user/upgrade.html)
* Quick Starts:
[Accumulo](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-accumulo.html) |
[HBase](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-hbase.html) |
[Cassandra](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
[Kafka](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-kafka.html) |
[Redis](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-redis.html) |
[FileSystem](https://www.geomesa.org/documentation/current/tutorials/geomesa-quickstart-fsds.html)
* [Tutorials](https://www.geomesa.org/tutorials/)## Downloads
**Current release: [5.1.0](https://github.com/locationtech/geomesa/releases/tag/geomesa-5.1.0)**
[**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-accumulo_2.12-5.1.0-bin.tar.gz) |
[**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-hbase_2.12-5.1.0-bin.tar.gz) |
[**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-cassandra_2.12-5.1.0-bin.tar.gz) |
[**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-kafka_2.12-5.1.0-bin.tar.gz) |
[**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-redis_2.12-5.1.0-bin.tar.gz) |
[**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-fs_2.12-5.1.0-bin.tar.gz) |
[**PostGIS**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-gt_2.12-5.1.0-bin.tar.gz)### Verifying Downloads
Downloads hosted on GitHub include SHA-256 hashes and gpg signatures (.asc files). To verify a download using gpg,
import the appropriate key:```bash
$ gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys CD24F317
```Then verify the file:
```bash
$ gpg2 --verify geomesa-accumulo_2.12-5.1.0-bin.tar.gz.asc geomesa-accumulo_2.12-5.1.0-bin.tar.gz
```The keys currently used for signing are:
| Key ID | Name |
| ------ | ---- |
| `CD24F317` | Emilio Lahr-Vivaz <elahrvivaz(-at-)ccri.com> |
| `1E679A56` | James Hughes <jnh5y(-at-)ccri.com> |## Maven Integration
[![Maven](.github/maven-badge.svg)](https://search.maven.org/search?q=g:org.locationtech.geomesa)
GeoMesa is hosted on Maven Central. To include it as a dependency, add the desired modules, for example:
```xml
org.locationtech.geomesa
geomesa-accumulo-datastore_2.12
5.1.0```
GeoMesa provides a bill-of-materials module, which can simplify version management:
```xml
org.locationtech.geomesa
geomesa-bom_2.12
5.1.0
pom
import
```
GeoMesa depends on several third-party libraries that are only available in separate repositories. To include
GeoMesa in your project, add the following repositories to your pom:```xml
osgeo
https://repo.osgeo.org/repository/release
confluent
https://packages.confluent.io/maven/
```
### Nightly Snapshots
Snapshot versions are published nightly to the Eclipse repository:
```xml
geomesa-snapshots
https://repo.eclipse.org/content/repositories/geomesa-snapshots
false
true
```
### Spark Runtimes
GeoMesa publishes `spark-runtime` JARs for integration with Spark environments like Databricks. These
shaded JARs include all the required dependencies in a single artifact. When importing through Maven, all
transitive dependencies can be excluded. There are Spark runtime JARs available for most of the different
DataStore implementations:```xml
org.locationtech.geomesa
geomesa-gt-spark-runtime_2.12
5.1.0
*
*
```
These JARs are also included in the [Downloads](#downloads) bundles, above.
## `sbt` Integration
Similarly, integration with `sbt` is straightforward:
```scala
// Add necessary resolvers
resolvers ++= Seq(
"osgeo" at "https://repo.osgeo.org/repository/release",
"confluent" at "https://packages.confluent.io/maven"
)// Select desired modules
libraryDependencies ++= Seq(
"org.locationtech.geomesa" %% "geomesa-utils" % "5.1.0"
)
```## Building from Source
**Development version: 5.2.0-SNAPSHOT**
[![Build Status](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.12.yml/badge.svg?branch=main)](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.12.yml?query=branch%3Amain)
[![Build Status](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.13.yml/badge.svg?branch=main)](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.13.yml?query=branch%3Amain)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/locationtech/geomesa/badge)](https://api.securityscorecards.dev/projects/github.com/locationtech/geomesa)Requirements:
* [Git](https://git-scm.com/)
* [Java JDK 11](https://adoptium.net/temurin/releases/)
* [Apache Maven](https://maven.apache.org/) 3.6.3 or later
* [Docker](https://docs.docker.com/get-docker/) (only required for running unit tests)Use Git to download the source code. Navigate to the destination directory, then run:
git clone [email protected]:locationtech/geomesa.git
cd geomesaThe project is built using Maven. To build, run:
mvn clean install -DskipTests
The full build takes quite a while. To speed it up, you may use multiple threads (`-T 1.5C`).
To run unit tests, omit the `-DskipTests` (note: requires `docker` to be available).
### Build with Bloop Compile Server
GeoMesa also provides experimental support for the [Bloop](https://scalacenter.github.io/bloop/) compile server,
which provides fast incremental compilation. To export the GeoMesa build to Bloop, run:./build/scripts/bloop-export.sh
For more information on using Bloop, refer to the
[Bloop documentation](https://scalacenter.github.io/bloop/docs/build-tools/maven).### Build with Zinc Compile Server
GeoMesa also provides experimental support for the [Zinc](https://github.com/typesafehub/zinc) compile server,
which provides fast incremental compilation. However, please note that Zinc is no longer actively maintained.
To use an existing Zinc server, run maven with `-Pzinc`. GeoMesa provides a helper script at `build/mvn`, which
is a wrapper around Maven that downloads and runs Zinc automatically:build/mvn clean install -T8 -DskipTests
If the Zinc build fails with an error finding "javac", try setting the JAVA_HOME
environment variable to point to the root of your JDK. Example from a Mac:JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home" build/mvn clean install
### Scala Cross Build
To build for a different Scala version (e.g. 2.13), run the following script, then build as normal:
./build/scripts/change-scala-version.sh 2.13
### Building on OS X
When building on OS X and using Docker Desktop in a non-default configuration, you may need to edit `~/.testcontainers.properties` to contain the following:
```
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
```