An open API service indexing awesome lists of open source software.

https://github.com/geoscript/geoscript-groovy

A Groovy implementation of GeoScript.
https://github.com/geoscript/geoscript-groovy

geospatial gis groovy

Last synced: about 2 months ago
JSON representation

A Groovy implementation of GeoScript.

Awesome Lists containing this project

README

          

.. image:: https://github.com/geoscript/geoscript-groovy/workflows/Maven%20Build/badge.svg
:target: https://github.com/geoscript/geoscript-groovy/actions

GeoScript Groovy
================
GeoScript Groovy is the `Groovy `_ implementation of `GeoScript `_. GeoScript is a geospatial scripting API for the JVM that contains one API and four implementations (`Python `_, `JavaScript `_, `Scala `_, and `Groovy `_).

GeoScript is built on the shoulders of giants and essentially wraps the `Java Topology Suite `_ and the `GeoTools `_ libraries.

GeoScript provides several modules that includes geometry, projection, features, layers, workspaces, styling and rendering.

Build
-----
Building GeoScript Groovy is quite easy. You will need to have git, Java, Maven, and Ant installed.

Use git to clone the repository::

git clone git://github.com/jericks/geoscript-groovy.git

Use maven to build, test, and package::

mvn clean install

The distribution can be found in target/geoscript-groovy-${version}-app/geoscript-groovy-${version}.

Use
---
To use GeoScript Groovy you need Java and Groovy installed and on your PATH. Next, download the `latest stable release `_ ,
the `latest in development build `_, or build the code yourself. Then put the GeoScript Groovy bin directory on your PATH. You are now ready to use GeoScript Groovy!

GeoScript Groovy has three commands:

1. geoscript-groovy (which can run Groovy files)
2. geoscript-groovysh (which starts a REPL shell)
3. geoscript-groovyConsole (which starts a graphical editor/mini IDE)

Buffering a Point::

import geoscript.geom.Point

def point = new Point(0,0)
def poly = point.buffer(10)
println(poly.wkt)

Project a Geomemtry::

import geoscript.geom.Point
import geoscript.proj.Projection

def p1 = new Point(-111.0, 45.7)
def p2 = Projection.transform(p1, "EPSG:4326", "EPSG:26912")

Read a Shapefile::

import geoscript.layer.Shapefile
import geoscript.geom.Bounds

def shp = new Shapefile("states.shp")
int count = shp.count
Bounds bounds = shp.bounds
shp.features.each {f->
println(f)
}

Drawing a Shapefile::

import geoscript.layer.Shapefile
import geoscript.style.Stroke
import static geoscript.render.Draw.draw

def shp = new Shapefile("states.shp")
shp.style = new Stroke("#999999", 0.1)
draw(shp)

Reading a Raster::

import geoscript.layer.GeoTIFF

def format = new GeoTIFF(new File("raster.tif"))
def raster = format.read()

println "Format = ${raster.format}"
println "Proj EPSG = ${raster.proj.id}"
println "Proj WKT = ${raster.proj.wkt}"
println "Bounds = ${raster.bounds.geometry.wkt}"
println "Size = ${raster.size}"
println "Block Size = ${raster.blockSize}"
println "Pixel Size = ${raster.pixelSize}"
println "Band:"
raster.bands.eachWithIndex{b,i ->
println " ${i}). ${b}"
}

Generating tiles::

import geoscript.layer.*
import geoscript.style.*

Shapefile shp = new Shapefile(new File("states.shp"))
shp.style = new Fill("wheat") + new Stroke("navy", 0.1)

File file = new File("states.gpkg")
GeoPackage gpkg = new GeoPackage(file, "states", Pyramid.createGlobalMercatorPyramid(origin: Pyramid.Origin.TOP_LEFT))

TileRenderer renderer = new ImageTileRenderer(gpkg, shp)
TileGenerator generator = new TileGenerator(verbose: true)
generator.generate(gpkg, renderer, 0, 4)

See the `web site `_, the `groovy docs `_ or the `cook book `_ or the `examples directory `_ for more examples.

You can also use GeoScript Groovy as a library. If you use Maven you will need to add the OSGeo Maven Repository::


osgeo-releases
OSGeo Nexus Release Repository
https://repo.osgeo.org/repository/release/

false


true

and then include the GeoScript Groovy dependency::


org.geoscript
geoscript-groovy
1.22.0

Docker
------

If you want to give GeoScript Groovy a spin with Docker use the following image::

https://hub.docker.com/repository/docker/jarederickson/geoscript-groovy

To run the image use::

docker image build -t jarederickson/geoscript-groovy:latest .

To build the image locally::

docker run -it --rm --name geoscript-groovy jarederickson/geoscript-groovy:latest

Versions
--------

+-----------+----------+-----------+--------+----------+
| GeoScript | GeoTools | GeoServer | JTS | Groovy |
+-----------+----------+-----------+--------+----------+
| 1.22 | 30 | 2.24 | 1.19.0 | 4.0.15 |
+-----------+----------+-----------+--------+----------+
| 1.21 | 29 | 2.23 | 1.19.0 | 4.0.13 |
+-----------+----------+-----------+--------+----------+
| 1.20 | 28 | 2.22 | 1.19.0 | 3.0.13 |
+-----------+----------+-----------+--------+----------+
| 1.19 | 27 | 2.21 | 1.18.2 | 3.0.11 |
+-----------+----------+-----------+--------+----------+
| 1.18 | 26 | 2.20 | 1.18.2 | 3.0.9 |
+-----------+----------+-----------+--------+----------+
| 1.17 | 25 | 2.19 | 1.18.1 | 3.0.7 |
+-----------+----------+-----------+--------+----------+
| 1.16 | 24 | 2.18 | 1.17.1 | 3.0.5 |
+-----------+----------+-----------+--------+----------+
| 1.15 | 23 | 2.17 | 1.16.1 | 3.0.3 |
+-----------+----------+-----------+--------+----------+
| 1.14 | 22 | 2.16 | 1.16.1 | 2.5.8 |
+-----------+----------+-----------+--------+----------+
| 1.13 | 21 | 2.15 | 1.16.0 | 2.5.6 |
+-----------+----------+-----------+--------+----------+
| 1.12 | 20 | 2.14 | 1.16.0 | 2.4.15 |
+-----------+----------+-----------+--------+----------+
| 1.11 | 19 | 2.13 | 1.14 | 2.4.14 |
+-----------+----------+-----------+--------+----------+
| 1.10 | 18 | 2.12 | 1.13 | 2.4.12 |
+-----------+----------+-----------+--------+----------+
| 1.9 | 17 | 2.11 | 1.13 | 2.4.10 |
+-----------+----------+-----------+--------+----------+
| 1.8 | 16 | 2.10 | 1.13 | 2.4.7 |
+-----------+----------+-----------+--------+----------+
| 1.7 | 15 | 2.9 | 1.13 | 2.4.6 |
+-----------+----------+-----------+--------+----------+
| 1.6 | 14 | 2.8 | 1.13 | 2.4.5 |
+-----------+----------+-----------+--------+----------+
| 1.5 | 13 | 2.7 | 1.13 | 2.3.10 |
+-----------+----------+-----------+--------+----------+
| 1.4 | 12 | 2.6 | 1.13 | 2.2.2 |
+-----------+----------+-----------+--------+----------+
| 1.3 | 11 | 2.5 | 1.13 | 2.1.9 |
+-----------+----------+-----------+--------+----------+
| 1.2 | 10 | 2.4 | 1.13 | 2.1.6 |
+-----------+----------+-----------+--------+----------+
| 1.1 | 9 | 2.3 | 1.13 | 1.8.9 |
+-----------+----------+-----------+--------+----------+
| 1.0 | 8 | 2.2 | 1.12 | 1.8.8 |
+-----------+----------+-----------+--------+----------+

API Groovy Docs
---------------

`1.22.0 `_

`1.21.0 `_

`1.20.0 `_

`1.19.0 `_

`1.18.0 `_

`1.17.0 `_

`1.16.0 `_

`1.15.0 `_

`1.14.0 `_

`1.13.0 `_

`1.12.0 `_

`1.11.0 `_

`1.10.0 `_

`1.9.0 `_

`1.8.0 `_

Projects using GeoScript Groovy
-------------------------------
`geoc: A geospatial command line application `_

`geo-shell: An interactive geospatial shell `_

`mbtiles server: Restful web services for mbtiles `_

`geopackage server: Restful web services for geopackage `_

`geoscript groovy jupyter kernel `_

Presentations
-------------
`GeoScript: The GeoSpatial Swiss Army Knife (FOSS4G 2014) `_

`Using GeoScript Groovy (CUGOS 2014) `_

`Rendering Maps in GeoScript (CUGOS 2012) `_

`Scripting GeoServer (CUGOS 2012) `_

`GeoScript: Spatial Capabilities for Scripting Languages (FOSS4G 2011) `_

Build Servers
-------------

https://github.com/geoscript/geoscript-groovy/actions

https://build.geoserver.org/job/geoscript-groovy/

License
-------
GeoScript Groovy is open source and licensed under the MIT license.