Fitting a 3D sine function to topographic data?

5 Ansichten (letzte 30 Tage)
Julia Howe
Julia Howe am 7 Okt. 2016
Bearbeitet: Julia Howe am 12 Okt. 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?
  3 Kommentare
Image Analyst
Image Analyst am 11 Okt. 2016
Just FYI - that's a 2-D function, not a 3D function. You have two dimensions: x and y, and a value at that point. That means it's a 2-D function. You have only 2 independent coordinates, not 3. For example, a gray scale image is a 2D array (function) regardless if you show it as an image or as a 2.5-D rendering on your flat 2-D computer screen with the surf() function. Doesn't matter - it's still a 2D image.
Julia Howe
Julia Howe am 12 Okt. 2016
Bearbeitet: Julia Howe am 12 Okt. 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).

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Massimo Zanetti
Massimo Zanetti am 7 Okt. 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.

Kategorien

Mehr zu Curve Fitting Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by