Clear Filters
Clear Filters

How do I interpolate and smoothen ndvi time series?

81 views (last 30 days)
I have ununiformly distributed noisey ndvi time series. I want to interpolate and smoothen it using matlab. I am attaching the sample ndvi file and request you to please suggest me how to achieve it using matlab. I would appreciate your kind cooperation and help.
Jyoti
  2 Comments
John D'Errico
John D'Errico on 19 Apr 2024
Edited: John D'Errico on 19 Apr 2024
Assuming you mean each row of that table is a distinct time series, sampled as a function of the first row,
The signal to noise ratio appears to be low, at least if you look at any individual series.
The data series are VERY short, which makes it difficult to extract any signal.
There is one data point far away from the rest in x.
At the same time, ALL of those series have a very similar character.
data = readtable('sample_ndvi.csv');
t = table2array(data(1,2:end));
z = table2array(data(2:end,2:end));
surf(z)
xlabel 'Time'
ylabel 'Series'
I've left the time axis as a simple index, since that would just make it all far more dificult to visualize.
The point is, there appears to be a lot of signal, once you look at all of the sereis at once. They all have the same shapes, apparently very noisy. So exactly what smoothing would you want to do?
Devendra
Devendra on 19 Apr 2024
Edited: Devendra on 19 Apr 2024
Thanks a lot for your suggestions. I want to interpolate the time series over cloudy pixels. Please suggest me how to do interpolation over cloudy pixels. There is a clear dip in the month of august due to cloud. so I want to fill it with neighoubring pixel values.
Jyoti

Sign in to comment.

Accepted Answer

Mathieu NOE
Mathieu NOE on 22 Apr 2024
hello
so I simply replace the 8th column with NaN and replaced them using fillmissing2
data = readtable('sample_ndvi.csv');
month = table2array(data(1,2:end));
z = table2array(data(2:end,2:end));
% surf(z)
% xlabel 'Time'
% ylabel 'Series'
% replace august (8th col of z) using fill missing
z(:,8) = NaN;
zz = fillmissing2(z,'cubic');
surf(zz)
xlabel 'Time'
ylabel 'Series'
  39 Comments

Sign in to comment.

More Answers (1)

gauri
gauri on 7 May 2024
I am pasting the link for data. Please get the data from this link.
  35 Comments
Aksh
Aksh on 13 Jun 2024 at 10:19
I have requested matlab community on my out of memory issue in my matlab code. I request you to please have a look on my question on the following link;
I would be highly obliged to you for your kind cooperation and help.

Sign in to comment.

Categories

Find more on Earth, Ocean, and Atmospheric Sciences in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!