GIS Cluster Analysis

Posted on 2011-10-03
Last Modified: 2012-05-12
Hello Exchangeperts,

I was asked to write a function that identifies a cluster of latitude and longitude points from GPS tracks of animals.  Each point has a date/time stamp and LAT.LON.  The point is to identify a den, shelters, birthing ground, or anywhere the creature has hung out for some time relative to time in motion, or even the time the tracker was in place.  I started looking into 'cluster analysis' and found a couple dozen techniques/algorithms.  I'm wondering if anyone has done something like this and can point me to code examples.  Are there required inputs from the user like distance of possible cluster points to other points, percentage of candidate cluster points vs. overall number, proximity and time components.  Is there any normally accepted criteria for what constitutes a cluster vs. the general data and how is that figured.  When I looked at the data points on a GIS program it was like porn, I knew one when I saw one; but how do I do it programmatically?

I'd be using

Thanks for your thoughts  
Question by:zipnotic

    Accepted Solution

    So, I'm feeling a bit neglected on this question but here is what I am thinking:

    1. Order data points by date/time stamp
    2. calculate distance between each point
    3. Throw out distances where datetime is greater than average (it means the tracker couldn't find a gps signal)
    4. Include both points that are certain distance from each other (supplied by user) but only when there are more than 4 points (or any other number supplied by user)

    Author Comment

    Anyone have good coded example of a Nearest Neighbor algorithm in vb or c#?
    LVL 2

    Expert Comment

    Read the below mentioned article for an introduction on clustering applications.

    ESRI ArcGIS has relevant material at

    ESRI ArcGIS has tools that carry out spatial clustering.The tool has an COM API called ArcObjects,which you can use to hook up with  VB or c# NET application.

    If wish to write the things from scratch ,this article may help you

    Author Comment

    ddurgaprasad: Thanks for your response.

    Author Closing Comment

    I was hoping for some coded examples rather than research related to the issue.  I was able to find some code on another website and modify that to suit my needs.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    Join & Write a Comment

    In this article I will describe the Detach & Attach method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
    JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
    This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
    Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties

    728 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    20 Experts available now in Live!

    Get 1:1 Help Now