A current dipole is determined by solving the inverse problem multiple times in consecutive stages. At each stage, a new high resolution image is generated from a magnetic field map from the immediately previous stage, and at each stage more constraints are extracted from the current high resolution image than were available in the immediately previous stage. After the constraints are extracted from a current high resolution image, the current high resolution is updated to incorporate constraints from the immediately previous stage. The updated high resolution image, and the currently extracted constraints are used to resolve the inverse problem, and the Biot-Savart law is used to calculated the current dipole.