An algorithm has been developed for phase unwrapping data that has significant noise content or phase variations. Existing unwrapping algorithms typically operate on a point by point basis. A faulty unwrapping decision will produce an error which will propagate through the rest of the array. The simpler algorithms are sensitive to noisy data or large phase variations. A new algorithm unwraps the data by identifying regions where there are no phase unwrap discontinuities. The regions are then unwrapped by conparing the edge of the region with adjacent regions; and shifting the entire region by 2*pi.