Best way to take derivatives of unevenly spaced data (with interpolations? discrete derivatives?)