Neo4j Spatial Experiments - An Example Computing Walk Score
Basic DeckGL visualization of amenity clusters in downtown Calgary from Open Street maps data in neo4j

Neo4j Spatial Experiments - An Example Computing Walk Score

Menome Technologies does a lot of work with clients who have need for spatial analytics. The addition of spatial capabilities to Neo4j therefore has been of tremendous value to the equation for the work we do. We feel that the combination of spatial capabilities and graph modelling - not to mention the other powerful aspects of NLP, full text indexing and graph algorithms makes Neo4j a unique and powerful force for disrupting the world of GIS.

I wanted therefore to start a series of posts on the subject sharing out some of the things we see and are working on in terms of graph/spatial analysis, and also visualizations of spatial data.

The Potential of Spatial Enabled Graphs:

Before we jump into the example though - some thoughts on the potential of spatial graph models.

Neo4j supports both 3d spatial and 3d cartesian coordinates, which means that you can literally make a graph model that spatially represents reality: your data model and your visual model can in effect become the same thing. Its also possible to model from broad scale to specific scale details using graph method.

For example, the OSM graph provides the community context around a building, but you can also model the entire building as a 3d graph network. You then can extend the graph to model everything in the building. You can model the people associated with the company in the building, and how they are related to each other, what they do during the day etc.

It may be possible to do this with a standard spatial database: but combine a spatial graph with graph algorithms, machine learning, AI and you open all sorts of new transformational capabilities. The graph essentially becomes an intelligent point cloud capable of representing both the real world physical structure and the data associated with it.

By being able to layer in the knowledge structures, designs, manuals for things in the building, repairs done to the building, you can have the entire lifecycle of a building modelled: all of the decisions that went into the design, the impact to the surrounding community, repairs made to the building etc. etc.

The entire history of everything related to the building and the people associated with it in one database.

Now image this were a pipeline. Routing decisions. Probabilistic impact risk modelling to receptors that factor in local environment, associated infrastructure, understanding the sentiment of people in the community surrounding pipeline routes by ingesting census and community data - while also providing the power to run simulations - all in one platform.

Your model and your data are the same thing in this world. This has the potential to be highly disruptive to the way we model engineering structures, the environment and geological models (3d block modelling as a graph..hmmm.)..

Back to Reality:

We will get there - but for this first post: something grounded and simple to start..

This first post goes through a fairly simple but fun to work on example of using neo4j to compute Walk Scores. Walk Score is a well known, published algorithm, so makes a good starting point for working up some applied examples of spatial analysis.

Open Street Map is a fascinating data set, as it is actually modelled and stored as a graph. It is very well suited to act as a foundation for graph based geospatial analytics. Due to its graph nature, it's also very easy to integrate with other data sets such as census data, community data etc.

I imported Open Street Map for downtown Calgary using Craig Traverner from Neo4j's OSM import utility, ran some post processing on it and then wrote a Cypher version of the Walk Score algorithm

Details and Code are here:

https://github.com/menome/neo4j-spatial-experiments 3

Let me know if you have any questions, have ideas of how I could do this better or if you discover a mistake or omission in my approach to translating the algorithm to Cypher.

Cheers!

Mike Morley -> Founder Menome Technologies...

Timothy Johnsen

Data Scientist | Full Stack Web Developer | Earth Scientist

6 年

I am real curious if your tech stack and general approach would work for showing geology data like geology intervals from wells. It would be like the columns you have done here but instead having the columns project underneath the topography and with the topography set to partly transparent. If so, then there could be a ton of cool applications. Cheers

要查看或添加评论,请登录

Mike Morley的更多文章

社区洞察

其他会员也浏览了