How do I interpolate and smoothen ndvi time series?

3 Ansichten (letzte 30 Tage)
Devendra
Devendra am 19 Apr. 2024
Kommentiert: Aksh am 13 Jun. 2024
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 Kommentare
John D'Errico
John D'Errico am 19 Apr. 2024
Bearbeitet: John D'Errico am 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 am 19 Apr. 2024
Bearbeitet: Devendra am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mathieu NOE
Mathieu NOE am 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 Kommentare
Mathieu NOE
Mathieu NOE am 6 Mai 2024
ok let's do that !
gauri
gauri am 13 Mai 2024
I am pasting the link for data. Please get the data from this link.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

gauri
gauri am 7 Mai 2024
I am pasting the link for data. Please get the data from this link.
  35 Kommentare
Aksh
Aksh am 13 Jun. 2024
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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by