locationtech projects

50
Jody Garnett Boundless Projects

Upload: jody-garnett

Post on 11-May-2015

972 views

Category:

Software


0 download

DESCRIPTION

LocationTech presentation from Eclipse Developers Day Sydney. Libraries: * JTS * Mobile Map Tools * GeoMesa * Spatial4j Processing: * GeoTrellis * SpatialHadopp / GeoJinni Applications: * GEOFF * GeoGit * GeoScript * uDig Thanks to Eclipse and Acuate for sponsoring the event.

TRANSCRIPT

Page 1: LocationTech Projects

Jody GarnettBoundless

Projects

Page 2: LocationTech Projects

Welcome

2

Jody GarnettSenior Software [email protected]@jodygarnett

Open Source Geospatial FoundationOSGeo Incubation ChairGeoTools Project Officer

Eclipse FoundationLocationTech Project Steering CommitteeLocationTech Technology Project

BoundlessBoundless provides geospatial tools and services for managing data and building applications.

ProjectsGeoToolsGeoServeruDig

Page 3: LocationTech Projects

3

Loca%onTech

Page 4: LocationTech Projects

LocationTech

“Loca&onTech  is  a  working  group  developing  advanced  loca&on  aware  technologies.”

4

Page 5: LocationTech Projects

5

MembersStrategic

Participating

Guest

Page 6: LocationTech Projects

Full Service Foundation

Forge&

Build

IPmgmt

DevProcess

LicensingModel

CommunityMemberNetwork

Governance

Run by:

Follows Eclipse DevelopmentProcesses & IP Management

6

Page 7: LocationTech Projects

7

Infrastructure

Page 8: LocationTech Projects

Working Groups

Advanced Geospatial Software

Internet of ThingsLong Term Support Embedded Systems

Vendor neutralcollaboration:

★265+ projects★~1100 active devs★205+ members★9M+ users★

Scientific Research

8

Page 9: LocationTech Projects

0. Deny

1. Use

2. Contribute

3. Champion

4. Collaborate

5. Redefine

Value

TimeDeveloper driven Business driven

★Widespread software adoption.

★Vibrant commercial ecosystem.

From Bailetti & Carbone 2009

9

Commercialising open source

Page 10: LocationTech Projects

[email protected]@locationtech

We are growing fast & needyour ideas & participation

http://locationtech.org and click LEARN MORE

Andrew [email protected]@42aross

Contact  Loca%onTech

10

Page 11: LocationTech Projects

11

Events

Page 12: LocationTech Projects

www.loca%onintelligence.net

Location Intelligence Summit 2014

May  19-­‐21,  Washington  DC  Conven6on  Center

Monday  –  Hands-­‐on  workshops

Tuesday  –  Loca6on  Intelligence,  HERE,  and  Loca6onTech  tracks-­‐ “Loca%on  Analy%cs  and  Visual  Data  Discovery  …  New  Pathways  to  Business  Intelligence”-­‐ Sessions  on  BI,  LI,  Indoor  Posi%oning,  Open  Source  Geospa%al,  Big  Data,  Dashboards/Visual  Data  Discovery-­‐ Keynote:  Paul  Donato,  EVP/Research,  Nielsen

Wednesday  –  Oracle  Spa6al  Summit-­‐ 3  technical  training  tracks  led  by  Oracle  experts:    raster,  LIDAR,  geocoding,  rou%ng-­‐ Performance  benchmarks,  Cer%fica%on  exam  prepara%on-­‐ Customer  sessions:    BI,  land  management,  LI  in  public  sector  &  retail;  SIG  User  Group

Page 13: LocationTech Projects

6 citiesBy the numbers★ 723 registrations★ 640+ attendees★ 56 speakers★ Videos on YouTube★ Positive feedback

13

Tour 2013

Page 14: LocationTech Projects

3 continentshttp://tour.locationtech.org★ Planning about to begin.★ Sponsorship:

$2K members$4.5K non-members

14

Tour 2014

Page 15: LocationTech Projects

15

Visit http://georabble.org for fun local events! (Pun intended)

GeoRabble All StarsAllied with Locate 14 Canberra (Monday 7 April)★Pia Waugh – Open Data Ninja★Julian Carver – Land Information New Zealand★Denise McKenzie – Open Geospatial Consortium★Mike Bradford – Landgate WA★Jody Garnett – Boundless★Chris Tucker – Mapstory

Thanks to Sponsors LocationTech and Boundless

Page 16: LocationTech Projects

Libraries

16

Page 17: LocationTech Projects

JTS  Topology  Suite

• This  is  the  “Rocket  Science”  of  GIS• Implementa%on  of  Geometry• OGC  Standard:  Simple  Features  for  SQL  

• Vivid  Solu%ons• Mar%n  Davis  (Project  Lead)

• License:• Eclipse  Distribu%on  License  <-­‐-­‐  BSD!• Eclipse  Public  License

17

Incoming!

Page 18: LocationTech Projects

Key to Open Source Spatial

18

Project Environment

JTS Topology Suite Java JVM Languages

GEOS C/C++

Net Topology Suite C#

JSTS JavaScript (Partial Port)

Shapely Python (via GEOS)

RGeo Ruby (via GEOS)

r-GEOS R (via GEOS)

Page 19: LocationTech Projects
Page 20: LocationTech Projects

Geometry Example

20GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html

GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); Coordinate coord = new Coordinate(1, 1);Point point = geometryFactory.createPoint(coord);

Page 21: LocationTech Projects

WKT Example

21GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html

GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();WKTReader reader = new WKTReader(geometryFactory);

Point point = (Point) reader.read("POINT (1 1)");

Page 22: LocationTech Projects

Buffer Example

22GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html

GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null );WKTReader reader = new WKTReader( geometryFactory );

LineString line = (LineString) reader.read("LINESTRING(0 2, 2 0, 8 6)");

Geometry buffer = line.buffer( 0.75 );

Page 23: LocationTech Projects

Geometry Model

23

Page 24: LocationTech Projects

JTS TestBuilder Demo

Page 25: LocationTech Projects

Transform Example

25GeoTools Example: http://docs.geotools.org/latest/userguide/library/referencing/crs.html

CoordinateReferenceSystem wgs84 = CRS.decode("EPSG:4326");CoordinateReferenceSystem google = CRS.decode("EPSG:3857");

MathTransform transform = CRS.findMathTransform(wgs84, google, false);

Geometry target = JTS.transform( geometry, transform );

Page 26: LocationTech Projects

Mobile  Map  Tools

• SDK  For  na%ve  mobile  applica%ons.• Supports:

• Mobile  maps  in  2D,  2.5D  and  3D• Works  on  iOS,  Android,  webGL

• Built  using  C++  and  translated  to  Java  and  JavaScript

• License:  Eclipse  Distribu%on  License  1.0  (BSD)26

Incoming!

Page 27: LocationTech Projects

GeoMesa

• Key/value  store• Supports:  

• Distributed  &  highly  scalable• Based  on  Accumulo

• License• Apache  License,  Version  2.0

27

Approved!

Page 28: LocationTech Projects

Spa%al4j

• Adds  “Geometry  on  Curve”  to  JTS• Supports:

• Geometry  on  a  Spherical• Geometry  on  a  Cylinder• Euclidean  (via  JTS)• Great  Circle  Distance  Calculators

• License:  Apache  License,  Version  2.0

28

Incoming

Page 29: LocationTech Projects

A romance in many dimensions

29

Shape Euclidean Cylindrical Spherical

Point Y Y Y

Rectangle Y Y Y

Circle Y Y

LineString Y

Buffered L/S Y

Polygon Y Y

ShapeCollection Y Y Y

Page 30: LocationTech Projects

Distance Example

30

SpatialContext ctx = SpatialContext.GEO;

Circle sydney = ctx.makeCircle(151.3,33.9, 0.3);Point perth = ctx.makePoint(115.8,32.9);double distance = ctx.calcDistance(sydney.getCenter(), perth);

double km = DistanceUtils.degrees2Dist( distance, DistanceUtils.EARTH_MEAN_RADIUS_KM)

Page 31: LocationTech Projects

31

Processing

Page 32: LocationTech Projects

GeoTrellis

• Real-­‐%me  distributed  processing• Supports:  

• Low  latency  &  Distributed• Highly  scalable• Based  on  Scala,  Akka,  &  Spark

• License:  Apache  License,  Version  2.0

32

Approved!

Page 34: LocationTech Projects

Spa%alHadoop

• Batch  processing• MapReduce  framework  for  efficient  processing  of  spa%al  opera%ons

• Supports:  • Spa%al  data  types  &  indexing• Based  on  Hadoop• Highly  scalable• NOTE:  renaming  to  GeoJinni

• License:  Apache  License,  Version  2.034

Incoming!

Page 35: LocationTech Projects

Applica%ons

35

Page 36: LocationTech Projects

GEOFF

• Geo  Fast  Forward• Embed  Simple  Maps  in  Eclipse  RCP

• Querying  a  geocoding  service• Use  OpenLayers  3.0  as  a  resource  bundle• SWT  Component  wrapping  embedded  browser• Fluent  API  so  you  do  not  have  to  know  EMF

• License:  Eclipse  Public  License  1.0

36

Approved!

Page 37: LocationTech Projects

GeoGit

• Distributed  data  store• Supports:  

• Distributed,  off-­‐line  opera%on• Versioning,  compare  &  merge• Push/pull  data

• License:  BSD  License

37

Incoming Project!

Incoming!

Page 38: LocationTech Projects

GeoGit  Story/Demo

38

Page 39: LocationTech Projects

GeoScript

• Adds  spa%al  capabili%es  to  dynamicscrip%ng  languages.

• Supports:• Groovy,  JavaScript,  Python,  and  Scala• Backed  by  the  GeoTools  library

• geometry,  data  access  and  rendering• Use  stand-­‐alone  or  embedded

• License:  MIT  License39

Approved!

Page 40: LocationTech Projects

JavaScript

40

>> var geom = require("geoscript/geom");>> var p = new geom.Point([-111.0, 45.7]);>> p<Point [-111, 45.7]>>> var proj = require("geoscript/proj");>> var p2 = proj.transform(p, "epsg:4326", "epsg:26912");>> p2<Point [500000, 5060716.31816507]>>> var poly = p2.buffer(100);>> poly.area31214.451522458345

Page 41: LocationTech Projects

Python

41

>>> from geoscript import geom>>> p = geom.Point(-111.0, 45.7)>>> pPOINT(-111 45.7)>>> from geoscript import proj>>> p2 = proj.transform(p, 'epsg:4326', 'epsg:26912')>>> p2POINT (499999.42501775385 5060716.092032814)>>> poly = p2.buffer(100)>>> poly.getArea()31214.45152247697

Page 42: LocationTech Projects

Scala

42

scala> import org.geoscript.geometry._scala> import org.geoscript.projection._scala> val p = Point(-110, 45.7) in Projection("EPSG:4326")p: org.geoscript.geometry.Point = POINT (-110 45.7)

scala> val p2 = p in Projection("EPSG:26912")p2: org.geoscript.geometry.Point = POINT (-370416.94184711506 -7935053.5498699695)

scala> p2.buffer(100).areares0: Double = 31214.451522477902

Page 43: LocationTech Projects

Groovy

43

groovy:000> import geoscript.geom.*groovy:000> import geoscript.proj.Projectiongroovy:000> p = new Point(-111, 45.7)===> POINT (-111 45.7)groovy:000> p2 = Projection.transform(p, 'epsg:4326', 'epsg:26912')===> POINT (499999.42501775385, 5060716.092032814)groovy:000> poly = p2.buffer(100)groovy:000> poly.area===> 31214.451522477902

Page 44: LocationTech Projects

uDig

• User-­‐friendly  Desktop  Internet  GIS• Supports:  

• Desktop  GIS• Based  on  Eclipse  RCP• Reusable  components  for  RCP  Developers• Supports  industry  standard  formats  and  services

• e.g.  WMS,  WFS,  etc.• License:

• Eclipse  Distribu%on  License• Eclipse  Public  License

44

Approved!

Page 45: LocationTech Projects

45

Page 46: LocationTech Projects

Quick uDig Demo

46

Page 47: LocationTech Projects

Eclipse Foundation

47

Page 48: LocationTech Projects

204 Members and growing.48

Eclipse Foundation Members

Page 49: LocationTech Projects

Predictable Release Schedule

• Dozens  of  projects,  millions  of  lines  of  code  releasing  each  year  on  %me  to  the  day  for  9  years  straight.

• 265+  open  source  projects  and  growing.

49

Eclipse 3.0 Eclipse 3.1 Casllisto Europa Ganymede Galileo Helios Indigo Juno Kepler Luna

17 1824

33

46

55 58

37 10

21 23

3339

62

71 7176

Projects Million LOC

Page 50: LocationTech Projects

EGit Project CDT Project

WTP Project Linux Tools Project

(Percentage of contributions for each project)

50

Industry Collaboration