<div>
<div>We present methods and tools which significantly improve the ability to estimate quantities and fields which are difficult to directly measure at large scales, such as the fluidity of ice, using point data sources from remote sensing. Our tools work with both sparse and dense point data with estimated quantities and fields becoming more accurate as the number of measurements are increased. These are often used as input variables to mathematical models that are used to make predictions so improving their accuracy is of vital importance.</div>
<div>&#160;</div>
<div>The tool we introduce, Firedrake, generates highly optimised code for solving PDEs via the finite element method. It is easy to use, can be integrated with other python libraries, and is scalable for use on high performance computers. As proof, we highlight Icepack, a Python library for solving the equations of motion of glacier flow, which is written using Firedrake. Firedrake has an interface to the dolfin-adjoint/pyadjoint tool which allows these data assimilation problems to be solved with just a few lines of code by automatically generating the adjoint system of PDEs.</div>
<div>&#160;</div>
<div>By carefully considering the nature of finite element method solutions, we show, using Firedrake and Icepack, how the choice of misfit functional (i.e. objective function) significantly impacts our inferred fields. This required the development of new infrastructure not previously available in these automated code generation tools.</div>
</div>