1
$\begingroup$

I have a list of data points that I would like to turn into a 3D Surface with adjustable degree of smoothing for readability. The data consist of absorption values between -0.01 and 0.01 measured at 200 equally spaced wavelengths and 12 different temperatures between 80 K and 293.2 K.

There seem to be several functions there specifically to do that, but so far I succeded with non. While ListPlot3D produces a nice surface but without options for smoothing, ListSurfacePlot3D produces some strange geometric figures

uri=FileNameJoin[{$HomeDirectory, "Downloads", "NaDpH5260300UVVis80K.xlsx"}];
NaDpH5260300UVVis80K = Partition[Flatten[Import[uri]], 3];

ListSurfacePlot3D[NaDpH5260300UVVis80K, 
                  ColorFunction -> ThermometerColors",
                  Mesh -> False]

plot1

as well as ListContourPlot3D:

ListContourPlot3D[NaDpH5260300UVVis80K, 
                  ColorFunction -> ThermometerColors", 
                  Mesh -> False]

plot2

I have managed a smoothed surface via

f = Interpolation[NaDpH5260300UVVis80K, InterpolationOrder -> 2];

Plot3D[ f[x, y], {x, 80, 293.}, {y, 300, 700},  
       ColorFunction -> "ThermometerColors"

(* 

Interpolation::udeg: Interpolation on unstructured grids is currently
only supported for InterpolationOrder->1 or InterpolationOrder->All.
Order will be reduced to 1. >>

InterpolatingFunction::dmval: Input value {80.0152,300.029} lies
outside the range of data in the interpolating function. 
Extrapolation will be used. >>

*)

plot3

but this function can only interpolate 3D data to first order which removes too much detail.

The code used in the answer to this question might be what I need, but I am so far incapable of adapting it to my needs.

$\endgroup$
9
  • $\begingroup$ Here i.sstatic.net/i4Fq5.jpg and here i.sstatic.net/HOloT.jpg are pictures of what I get from ListSurfacePlot3D resp. ListContourPlot3D, as I am to the forum I was not allowed to post more than two links. $\endgroup$
    – jonasmg
    Commented Nov 7, 2015 at 18:57
  • 2
    $\begingroup$ You can add InterpolationOrder -> ... directly to ListPlot3D $\endgroup$
    – ybeltukov
    Commented Nov 7, 2015 at 19:12
  • 1
    $\begingroup$ The answer of how to interpolate/smooth unstructured data is rather involved. I think for this data set you could use kriging... $\endgroup$
    – Eric Brown
    Commented Nov 8, 2015 at 0:32
  • 1
    $\begingroup$ The data consists of UV/Vis difference spectra, with varying noise levels due to different overall absorption at different temperatures and wavelenghts. I tried ListSurfacePlot3D first as the way I understand it this should fit a surface to the data, but tried other things as I was not successful $\endgroup$
    – jonasmg
    Commented Nov 8, 2015 at 13:54
  • 1
    $\begingroup$ I'm voting to close this question as off-topic because the data linked in the post is no longer available. $\endgroup$
    – MarcoB
    Commented Feb 22, 2016 at 8:03

0

Browse other questions tagged or ask your own question.