Neo4j
          Spatial
        Geoprocessing with Neo4j-Spatial and OSM


                                       #neo4j
Craig Taverner                         @craigtaverner
Neo Technology / AmanziTel             craig@amanzi.com
Where are the Mushrooms?
Where are the Mushrooms?
Geoprocessing with Neo4j-Spatial
Intro to Neo4j and Neo4j Spatial
  Recap on graph databases and 2010 work
Geoprocessing
  LBS and SimplePointLayer
  Routing OSM
  GSoC 2011 – Geoprocessing functions
  Data Mining OSM
What's next
  Geoprocessing pipeline
  Cool domains: artistic maps
NoSQL

Not Only SQL
Data size                 NOSQL data models


            Key-value stores


                         Bigtable clones


                                           Document
                                           databases


                                                         Graph databases




                                                       Data complexity
Neo4j – Nodes, Relationships, Properties




 Nodes have different properties
   Matrix characters: People vs. Programs
 Build structure as you go
   Who loves Neo?
Neo4j Spatial 2010
GSoC 2010
  Core
            Storage, GeometryEncoder
            Search/RTree, Operations
            I/O (Shapefile)
  Extensions
            Geotools Datastore
            GeoServer & uDig
Ruby API
  neo4j-spatial.rb (Rubygem)
OpenStreetMap
  Import OSM, Dynamic Layers (JSON & CQL)
  Export Shapefiles, and SLD styled PNG
OpenStreetMap
  Dynamic
   Layers



namic                               OSM
ayers




            RTree
Neo4j-Spatial 2011
OSM
  Performance
  Changesets and Users
Geoprocessing
  LBS and SimplePointLayer
  Routing OSM
  GSoC 2011 – Geoprocessing functions
  Data Mining OSM
What's next
  Geoprocessing pipeline
  Cool domains: artistic maps
Finding things close to other things
http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
Finding things close to other things
http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
Routing with OSM
Data Mining OSM




timestamp > 1207014810000 and timestamp < 1208310810000 and
(
  user = 'Zenon' or user = 'tomasCY' or user = 'muffu' or
  user = 'dcp' or user = 'cartOMike' or user = 'djanda' or
  user = 'Peter14' or user = 'toaster' or user = 'user_7363' or
  user = 'lyx'
)
GSoC 2011 – Geoprocessing Functions
GSoC 2011 – Geoprocessing Functions
Geoprocessing Pipeline
Artistic Maps
Artistic Maps
Artistic Maps
Graph Indexes
Tree indexes in the graph
  R-Tree
  KD-Tree
Index is part of the data model
Index is part of the statistics
Future
Editing
  Fine Grained Geotools Feature Editing
  OSM Editor
OSM
  Caching sub-graphs (desktop & mobile)
  More Dynamic Layers & Shapefile export
Topology
  Persist all topological results in graph
Benchmarking & Performance
  Improved indexing
  Composite index
API References
Wiki, Code, API references
  http://wiki.neo4j.org/content/Neo4j_Spatial
  http://github.com/neo4j/neo4j-spatial
  http://components.neo4j.org/neo4j-spatial
  Mailing list: neo4j@lists.neo4j.org
  http://neo4j.org/community/list/

Geoprocessing with Neo4j-Spatial and OSM

  • 1.
    Neo4j Spatial Geoprocessing with Neo4j-Spatial and OSM #neo4j Craig Taverner @craigtaverner Neo Technology / AmanziTel craig@amanzi.com
  • 2.
    Where are theMushrooms?
  • 3.
    Where are theMushrooms?
  • 4.
    Geoprocessing with Neo4j-Spatial Introto Neo4j and Neo4j Spatial Recap on graph databases and 2010 work Geoprocessing LBS and SimplePointLayer Routing OSM GSoC 2011 – Geoprocessing functions Data Mining OSM What's next Geoprocessing pipeline Cool domains: artistic maps
  • 5.
  • 6.
    Data size NOSQL data models Key-value stores Bigtable clones Document databases Graph databases Data complexity
  • 7.
    Neo4j – Nodes,Relationships, Properties Nodes have different properties Matrix characters: People vs. Programs Build structure as you go Who loves Neo?
  • 8.
    Neo4j Spatial 2010 GSoC2010 Core Storage, GeometryEncoder Search/RTree, Operations I/O (Shapefile) Extensions Geotools Datastore GeoServer & uDig Ruby API neo4j-spatial.rb (Rubygem) OpenStreetMap Import OSM, Dynamic Layers (JSON & CQL) Export Shapefiles, and SLD styled PNG
  • 9.
    OpenStreetMap Dynamic Layers namic OSM ayers RTree
  • 10.
    Neo4j-Spatial 2011 OSM Performance Changesets and Users Geoprocessing LBS and SimplePointLayer Routing OSM GSoC 2011 – Geoprocessing functions Data Mining OSM What's next Geoprocessing pipeline Cool domains: artistic maps
  • 11.
    Finding things closeto other things http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
  • 12.
    Finding things closeto other things http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
  • 13.
  • 14.
    Data Mining OSM timestamp> 1207014810000 and timestamp < 1208310810000 and ( user = 'Zenon' or user = 'tomasCY' or user = 'muffu' or user = 'dcp' or user = 'cartOMike' or user = 'djanda' or user = 'Peter14' or user = 'toaster' or user = 'user_7363' or user = 'lyx' )
  • 15.
    GSoC 2011 –Geoprocessing Functions
  • 16.
    GSoC 2011 –Geoprocessing Functions
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    Graph Indexes Tree indexesin the graph R-Tree KD-Tree Index is part of the data model Index is part of the statistics
  • 22.
    Future Editing FineGrained Geotools Feature Editing OSM Editor OSM Caching sub-graphs (desktop & mobile) More Dynamic Layers & Shapefile export Topology Persist all topological results in graph Benchmarking & Performance Improved indexing Composite index
  • 23.
    API References Wiki, Code,API references http://wiki.neo4j.org/content/Neo4j_Spatial http://github.com/neo4j/neo4j-spatial http://components.neo4j.org/neo4j-spatial Mailing list: neo4j@lists.neo4j.org http://neo4j.org/community/list/