Arrays are an appropriate data model for images, gridded
output from computational models, and other types of data.
This paper describes an approach to array query processing.
Queries are expressed in AML, a logical algebra that is easily extended
with user-defined functions to support a wide variety of array operations.
For example, compression, filtering, and algebraic operations on images
can be described.
We show how AML expressions involving such operations can be treated
declaratively and subjected to useful rewrite optimizations.
We also describe a plan generator that produces efficient iterator-based
plans from rewritten AML expressions.
Because the physical operators are iterators, the resulting plans
are suitable for pipelined evaluation, allowing for inter-operator
parallelism.