001    /**
002     * 
003     */
004    package org.wdssii.polarmerger;
005    
006    
007    /**
008     * 
009     * Strategy object used by AbstractMergeableObservations to obtain merged
010     * values from a set of Observation
011     * 
012     * @author lakshman
013     *
014     */
015    public interface ObservationMerger {
016    
017            /** The values array is initially all MissingData. Can use the array to set initial state,
018             * but may also change the initial values.
019             * @param values
020             */
021            void init(float[][][] values);
022    
023            /**
024             * Update state
025             * @param values the current set of values in the 3D output grid
026             * @param w_e    elevation index
027             * @param w_az   azimuth index
028             * @param w_rn   range index
029             * @param obs    newObservation
030             * @param wt     weight of observation
031             */
032            void update(float[][][] values, int w_e, int w_az, int w_rn, Observation obs, float wt);
033    
034            /**
035             * Finish computations, setting the input array to its final values.
036             * @param values
037             */
038            void finishComputation(float[][][] values);
039    
040    }