This question does not appear to be specific to the Raspberry Pi within the scope defined in the help center.
(Viewable by the post author and users with the close/reopen votes privilege)Edit question
I am trying to update distance traveled between GPS coordinates. My error is that the GPS can move short distances while sitting still. I am currently simply adding the new coordinates to a list every second, calculating the distance between this second and last second, then appending the distances to a new list then add them all together.
The issue is that the small movements in distance keep accumulating. Does anyone know the proper way to do this?
self.breadcrumbs =  #Calc Linear Distance GPS while 1: report = gpsp.get_current_value() #Retrieves GPS Values try: self.lat = report.lat self.lon = report.lon self.latlon = (self.lat, self.lon) #Put lat lon into tuple self.breadcrumbs.append(self.latlon) #Append lat lon to breadcrumb list breadcrumb_distances =  #Holds distances between latlon data points for i, b in enumerate(self.breadcrumbs): current_location = b last_location = self.breadcrumbs[i - 1] miles = geodesic(current_location, last_location).miles feet = miles * 5280 #convert to feet breadcrumb_distances.append(feet) cumulative_distance = round(sum(breadcrumb_distances),2) print(cumulative_distance) except Exception as e: print(e) sleep(1)
- 1this is not a RPi question – jsotola 2 days ago
- 2@jsotola You’re right. I should go over to Stack and ask this one. – Mike C. 2 days ago
- 1You’re shooting yourself in the foot. Why do you add distance when the velocity is zero/near zero? You could start here – Seamus 2 days ago
- 1@Seamus Thanks for the tip. I’ll check it out. – Mike C. 2 days ago
- 1Hope it helps… you will almost always get a better outcome in these Q&A forums if you do a bit of homework beforehand. – Seamus 2 days ago
- Well, no worries about small distances accumulating, because you can (1) do moving averages using Rpi Thonny python eg, (2) use Excel worksheet or Rpi LibOffice worksheet and graph to handle that, (3) Use a Rpi small database utility (of course much more powerful) to store, analyze, and reports. – tlfong01 53 secs ago Edit
I would advise that you lookup the use of Kalman filters or similar to handle such, but the maths can be heavy so you have been warned. You may also need a second sensor, an accelerometer, which will give you two measures of velocity tat you can then fuse into a single more accurate measure.shareedit follow flag answered yesterdayNick49133 silver badges1010 bronze badgesadd a comment
Not the answer you’re looking for? Browse other questions tagged python-3 gps or ask your own question.