For each point in swath (per row, per column) Pre-Calculate ll2rc – lat/lon-to-row-column (giving floating-point row/col in target space, not integer row/col) For each row-set in swath (rows-per-swath) Compute_ewa_parameters: (ellipse parameters per column) For each column in row-set <compute ellipse parameters> Use values in adjacent columns for horizontal delta of ellipse calculation Use first row of row-set to last row of row-set, averaged over the number of rows for the vertical delta of ellipse calculation. Compute_ewa: (output values per target grid cell) For each row in row-set For each column in swath <assign values for recurring factors > <get ewa_parameters for row & column (compute_ewa_parameters, ellipse) <compute perimeter box for ellipse > For each target row in perimeter box For each target column in perimeter box If target point within ellipse Compute/Lookup weighting factor Numerator_array(target_cell) += weighted-distance # grid_accums Denomitnator_array(target_cell) += weights # grid_weights Target_Values = Numerator_array / Denominator_array # output_grid
The original article shows the calculation of the perimeter-box for the ellipse as follows:
|