I downloaded TM (2006-2011) and OLI (2013-2016) Surface Reflectance Higher-Level Data Products (atmospheric corrected) based on L1TP Landsat images (radiometrically calibrated, orthorectified). And I got problems wtih preparing data for time series change analysis. Thereafter in this analysis I'll want to detect changes in area damaged by bark beetle as only supporting information for our project. All images are taken from end of July to early September with respect to ecology and behaviour of given species. Study area is mountainous region in Georgia.
According to USGS documentation (https://landsat.usgs.gov/landsat-collections) :
"Tier 1 includes Level-1 Precision and Terrain (L1TP) corrected data that have well-characterized radiometry and are inter-calibrated across the different Landsat instruments."
I assume, that key pre-processing steps are done with this data and now I have absolute surface reflectance data. So if I create time series of some vegatation index (e.g. NDVI) from images from one sensor type (taking into account, that values may vary across sensors) and pick some time consistent pixel (e.g. impervious built-up surface), the values will be more or less similar, or vary sligthly. But it looks like, that it does not work this way.
I processed the images with R packages 'raster' and 'RSToolbox'
1. Batch clip all data to area of intertest.
2. Create individual raster stacks for each image
3. Topographic correction with topCor() (srtm data + image metadata)
4. Claud masking with BQA band
5. Calculate NDVI indices
6. Create raster stack with NDVI outputs
7. Checking NDVI values of given pixel in time-series stack (see results in attached files, first example is from build-up area which does not change over time)
As you can see the pixel value changes drastically across time within TM (2006-2011) and OLI (2013-2016) separately.
Although it may not make much sense for me, I also try matching images by pifMatch() or histMatch() and I also try the process without cloud masking and topographic correction steps, all without visible improvement.
My question is:
Can I suppose that Surface Reflectance Higher-Level L1TP is ready for time-series analysis in way I did it, than my processing steps are correct or I am missing something crucial?
I am new to remote sensing, so I will be grateful if someone points to what I am doing wrong, or for giving me any suggestions. I am comfortable with QGIS, R, Python, GRASS or bash/GDAL.
My pre-processing approach was based on this paper (and few case studies)
A survival guide to Landsat preprocessing (Young et al. 2017)
https://landsat.usgs.gov/landsat-collections
Article A survival guide to Landsat preprocessing