My project goal is to take live GPS coordinates, compare them to a list of 11,000 GPS coordinates, and perform an action (light an LED or buzz a vibrating motor) if the user is within, say, 20' of one of those coordinates. I would like to repeat this task every 5 seconds or so, assuming the user is in motion. It's ultimately not dissimilar to this citibike helmet project by Adafruit, except they're only dealing with ~300 coords, which the Flora can easily handle.
My 11k-row CSV is about 200k. It seems my most viable options would be to use an SD card or to try a board with a lot of memory, like the Teensy 3.1. In either case, I'm concerned about the time (or other overhead) required to cycle through that many rows.
Can anyone provide any guidance as to a good jumping-off point for this? Many, many thanks.
I would start by reducing your 11,000 coordinates into binary instead of CSV. That will speed up comparison quite a bit. With fixed size records it will also allow you to index into the file directly. You can sort the coordinates by Latitude so a binary search will allow you to skip large portions of the file: no need to check Longitude if the latitude is not within 20'.
Once you have located the matching coordinate the fixed-size record can provide an index into another file containing any variable length data associated with that coordinate.
The Pi would make sense, but I forgot to mention an important constraint, which is that it's a wearable. That's why I'm focused on size and power consumption, and why I'm eying the Flora or the Teensy.
Maybe if you have an SD card to store the array of co-ordinates. Although it sounds like a lot of data to check through, I don't think time is an issue so it should be doable.