[postgis-users] Analyze a timeline of geographical events

Lorenzo Perone lorenzo.perone at gmail.com
Fri Aug 2 01:11:26 PDT 2013


2013/8/1 Brent Wood <pcreso at pcreso.com>

> Hi Lorenzo,
>
> It is not clear what the geometry type of a waypoint_sessione is. I'm
> guessing it is a point, with each point joined by sessione_id to a sessione
> table.
>

It's right :)



>
> The polyline approach you mention should work for you. It is not that
> difficult to implement as a script, might be trickier as a Postgres UDF.
>

I don't know Postgres UDF, I'll take a look at it.


>
> Turn your session points into a (multi?)linestring.
>
I've put them in LINESTRING, after the clip (I'm trying to resolve the
problem into several steps) I've put the in a MULTILINESTRING geometry.



>  Clip the linestring by the buffer around the point. This will give a
> linestring for each seperate period the session track came within the
> buffer distance of the point.
> For each returned linestring, select the points that match your
> requirements (<7km/hr) that intersect the linestring (or perhaps a very
> small buffer of it - point/line intersections can be tricky - but this case
> should be OK), and from these, select the min/max times.
> If these are more than 10 mins apart, check that there are no points
> within this interval with speeds of > 7km (if so, then this sequence fails
> to meet your criteria),
> If not, you have a positive result.
>

Great, I was not able to find the solution of this step, I'll try.


>
> HTH,
>
>   Brent Wood
>

Thanks a lot Brent.
l.



Lorenzo Perone
photoblog: http://lorenzoperone.wordpress.com
website: http://blog.spaziogis.it
GEO+ geomatica in Italia *http://bit.ly/GEOplus*




>
>   ------------------------------
>  *From:* Lorenzo Perone <lorenzo.perone at gmail.com>
> *To:* postgis-users at lists.osgeo.org
> *Sent:* Friday, August 2, 2013 1:09 AM
> *Subject:* [postgis-users] Analyze a timeline of geographical events
>
> Hi,
> I'm trying to resolve a not easy (for me) problem.
> We are developing a GPS tracking system based on android phones.
> The waypoints transmitted by the devices are stored in a Postgis table
> called "waypoint_sessione".
> The table has this structure.
>
> TABLE waypoint_sessione
>  gid bigserial
>  sessione_id bigint number of the session opened by the device (depends by
> user, truck, device)
>  time_dataora bigint (unix timestamp)
>  elevazione double precision
>  direzione double precision
>  velocita double precision (speed)
>  pdop double precision
>  precisione integer
>  the_geom geometry
>
> My scope is to discover for each session if a user have spent a lot of
> time, more than 10 minutes, stopped whitin a 150 m buffer from known point.
> When a device is stopped his speed is not zero, so I need to use a speed
> threshold, tipically 7 Km/h.
>
> I've thought to proceed in this way:
> - Create a buffer form the known point
> - Select the waypoints in the buffer grouping them by sessione_id
>
> Here is the first doubt.
> If the user, it's easy, pass through the buffer more than one time for
> each session I've to group the waypoints non only by session_id but also
> for each passage.
> I can't use the gid column because in waypoint_sessione are stored datas
> from al large number of devices that are transmitting simultaneous.
> I could create a polyline for each session and then trim it by the buffer
> and select the waypoints that are the same of the node of the polyline for
> each part.
> Is there a simpler way?
>
> The step forward is, for each group of waypoints, to discover if I have a
> consecutive period of more than 10 minutes during wich the speed is below
> the threshold of 7 Km/h.
> Discover these periods is my goal.
>
> Thanks.
> lorenzo
>
>
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20130802/b9e71fae/attachment.html>


More information about the postgis-users mailing list