Reuse is a powerful method for increasing system performance. In this paper, we examine functional decomposition for improving data and computation reuse and, therefore, overall query execution performance in the context of data analysis applications. Additionally, we look at the performance effects of using various projection primitives that make it possible to transform intermediate results generated by a query so that they can be reused by a new query. A satellite data analysis application is used to experimentally show the performance benefits achieved using functional decomposition and projection primitives.