func New(
	lnglatBound *geo.Bound,
	img image.Image,
	targetColor color.Color,
	smoothingStdDev float64,
) *Surface {
	return &Surface{
		SmoothingStdDev: smoothingStdDev,
		image:       img,
		lnglatBound: lnglatBound.Clone(),
		targetColor: targetColor,
		ColorValueFunc: ColorValue,
	}
}
New creates a new Surface with the given options,
plus the others set to the defaults.
package image
import (
	"image"
	"image/color"
	"github.com/paulmach/go.geo"
	"github.com/paulmach/slide"
	"github.com/paulmach/slide/surfacers"
	"github.com/paulmach/slide/utils/smoothsurface"
)
const (
	suggestedGradientScale = 0.5
	suggestedDistanceScale = 0.01
	suggestedAngleScale    = 0.01
	suggestedMomentumScale = 0.0
)
type Surface struct {
	Surface       *geo.Surface
	SmoothSurface *smoothsurface.LazySmoothSurface
	SmoothingStdDev float64  
	lnglatBound *geo.Bound
	image       image.Image
	targetColor color.Color
	ColorValueFunc func(image, targetColor color.Color) float64
}