How does ST_Value determine the value at a given geometry point that does not correspond to the intersection of a row and column? Is it doing some kind of interpolation or nearest neighbor search to determine the value?