Once we have partitioned the raw data, we can compute various kinds of reductions on the data elements in each partition. We might, for example, want the northernmost point for the start of each leg in the distance bins.
We'll introduce some helper functions to decompose the tuple as follows:
start = lambda s, e, d: s end = lambda s, e, d: e dist = lambda s, e, d: d latitude = lambda lat, lon: lat longitude = lambda lat, lon: lon
Each of these helper functions expects a tuple object to be provided using the * operator to map each element of the tuple to a separate parameter of the lambda. Once the tuple is expanded into the s, e, and p parameters, it's reasonably obvious to return the proper parameter ...