@@ -0,0 +1,736 @@
+import climate%0A%0Aimport database%0A%0A%0Adef main(root, pattern='*'):%0A    for trial in database.Experiment(root).trials_matching(pattern, load=False):%0A        trial.load()%0A%0A        body = database.Movement(trial.df.copy())%0A        body.make_body_relative()%0A        body.add_velocities()%0A%0A        goal = database.Movement(trial.df.copy())%0A        tgt = goal.target_trajectory%0A        goal.recenter(tgt.x, tgt.y, tgt.z)%0A        goal.add_velocities()%0A%0A        jac = pd.DataFrame(%5B%5D, index=trial.df.index)%0A        for cb in body.marker_channel_columns:%0A            for cg in body.marker_channel_columns:%0A                jac%5B'body-%7B%7D/goal-%7B%7D'.format(cb, cg)%5D = body%5Bcb%5D / goal%5Bcg%5D%0A%0A        break%0A%0A%0Aif __name__ == '__main__':%0A    climate.call(main)%0A

Add script for computing jacobian, as a dataframe.