# Fitting a 3D sine function to topographic data?

6 views (last 30 days)
Julia Howe on 7 Oct 2016
Edited: Julia Howe on 12 Oct 2016
I have some topographic data that has a general sinusoidal signature. I can import it to MATLAB in the form of points or as a DEM.
I would like to fit a 3D sine function (z=sin(x)+sin(y)) to my data that looks something like this: I need to figure out a way to fit this type surface to the data, likely with different parameters for each dataset, and calculate an R^2 value. I have many datasets to work through, so I want to develop something that's efficient.
I'm having trouble figuring out how to approach this problem. The point data is very dense (>3 million) and crashes the Curve Fitting gui. I don't know how I would even try to fit a DEM, if it works the same way or not. Any ideas?
Julia Howe on 12 Oct 2016
The image/function was meant as a simplified example, not as the solution. My data is topographic data, it varies in xyz space (Northing, Easting, Elevation).

Massimo Zanetti on 7 Oct 2016
A simple idea is to downsample your data (also called decimation). Since your data is very regular, you can remove a lot of samples and then use the fitting tool on the reduce data.
For example try:
r=10; %decimation rate
x = decimate(x,r)
y = decimate(y,r)
and then run fitting tool with x,y.