Fourier transforms for multitemporal analysis: Difference between revisions
(break long lines; full parameter names) |
No edit summary |
||
Line 2: | Line 2: | ||
'''GRASS GIS and R code used in:''' | '''GRASS GIS and R code used in:''' | ||
Rocchini, D., Metz, M., Ricotta, C., Landa, M., Frigeri, A., Neteler, M. (2013). Fourier transforms for modelling multi-temporal landscape fragmentation: an Open Source approach. | Rocchini, D., Metz, M., Ricotta, C., Landa, M., Frigeri, A., Neteler, M. (2013). Fourier transforms for modelling multi-temporal landscape fragmentation: an Open Source approach. International Journal of Remote Sensing, 34: 8907-8916. (IF: 1.138) | ||
GRASS GIS: Fourier transform calculation | GRASS GIS: Fourier transform calculation |
Revision as of 14:15, 31 October 2013
Fourier transforms for detecting multitemporal landscape fragmentation by remote sensing GRASS GIS and R code used in:
Rocchini, D., Metz, M., Ricotta, C., Landa, M., Frigeri, A., Neteler, M. (2013). Fourier transforms for modelling multi-temporal landscape fragmentation: an Open Source approach. International Journal of Remote Sensing, 34: 8907-8916. (IF: 1.138)
GRASS GIS: Fourier transform calculation
The used data are from the North Carolina set available for free at: http://grass.osgeo.org/download/sample-data/
# Setting the region of interest based on a Landsat image
g.region rast=lsat7_2002_10 -p
Performing PCA on a multitemporal set of images (Landsat images in this case)
1987
i.pca input=lsat5_1987_10,lsat5_1987_20,lsat5_1987_30,lsat5_1987_40,lsat5_1987_50,lsat5_1987_70 \
output=lsat5_1987_pca
2002
i.pca input=lsat7_2002_10,lsat7_2002_20,lsat7_2002_30,lsat7_2002_40,lsat7_2002_50,lsat7_2002_70 \
output=lsat7_2002_pca
Showing the first principal component
1987
d.mon x0
d.rast lsat5_1987_pca.1
2002
d.mon x1
d.rast lsat7_2002_pca.1
Fourier transform
1987
i.fft input=lsat5_1987_pca.1 real=lsat5_1987_pca1.real imaginary=lsat5_1987_pca1.imag
2002
i.fft input=lsat7_2002_pca.1 real=lsat7_2002_pca1.real imaginary=lsat7_2002_pca1.imag
Creating Fig. 2 in Rocchini et al. (2013)
1987
d.mon x2
d.rast lsat5_1987_pca1.real
2002
d.mon x3
d.rast lsat7_2002_pca1.real
Additional example with MODIS data: Fig. 6 in Rocchini et al. (2013)
Import data: image covering a temporal period from 2005-02-02 to 2005-03-05 (band 2 being used)
r.in.gdal input=Goodes.EUAS.2005033.band2.tif output=Goodes.EUAS.2005033.band2
Import data: image covering a temporal period from 2005-07-12 to 2005-08-12 (band 2 being used)
r.in.gdal input=Goodes.EUAS.2005193.band2.tif output=Goodes.EUAS.2005193.band2
Fourier transforms
i.fft input=Goodes.EUAS.2005033.band2 real=Goodes.EUAS.2005033.band2.real imaginary=Goodes.EUAS.2005033.band2.imag
i.fft input=Goodes.EUAS.2005193.band2 real=Goodes.EUAS.2005193.band2.real imaginary=Goodes.EUAS.2005193.band2.imag
R: statistical analysis
Importing the Fourier image from GRASS GIS by the spgrass6 library
library(spgrass6)
fft.images<-readRAST6(c('lsat5_1987_pca1.real','lsat7_2002_pca1.real'),
cat=c(F,F), ignore.stderr=TRUE, plugin=NULL)
where lsat5_1987_pca1.real and lsat7_2002_pca1.real are the Fourier transform images derived from GRASS GIS
Kernel Density Plot: Fig. 4 in Rocchini et al. (2013)
library(sm)
sm.density(fft.images$lsat5_1987_pca1.real, lty=1, lwd=2, ann=T,
xlim=c(0,255), ylim=c(0,0.013), xlab='Fourier transform value', col='blue', cex.label=4)
par(new=T)
sm.density(fft.images$lsat7_2002_pca1.real,lty=1, lwd=2, ann=F,
xlim=c(0,255), ylim=c(0,0.013), xlab=' ', col='red', cex.label=4)
legend(110, 0.012, c('Density function 1987', 'Density function 2002'),
fill = c('blue', 'red'), cex=1.2, box.lty=0)
Hexagon binning: Fig. 5 in Rocchini et al. (2013)
library(hexbin)
hbin <- hexbin(fft.images$lsat5_1987_pca1.real, fft.images$lsat7_2002_pca1.real, xbins = 50)
plot.bin<-plot(hbin, style = 'nested.lattice', legend=F,
xlab='Fourier transform value 1987', ylab='Fourier transform value 2002')
hexVP.abline(plot.bin$plot.vp, 0, 1)