GRASS GIS / Propojení s R / Fourierova transformace pro multitemporální analýzu

Z FreeGIS portál
Přejít na: navigace, hledání

Tento článek vychází z Fourier transforms for multitemporal analysis.

Příprava

Nastavíme výpočetní region:

g.region rast=lsat7_2002_10 -p

Provedeme PCA analázu pro roky 1987 a 2002:

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
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
Porovnání první a druhého kanálu PCA

Provedeme Fourierovu transformaci:

i.fft input=lsat5_1987_pca.1 real=lsat5_1987_pca1.real imaginary=lsat5_1987_pca1.imag
i.fft input=lsat7_2002_pca.1 real=lsat7_2002_pca1.real imaginary=lsat7_2002_pca1.imag
Reálná (vpravo) a imaginární část Fourierova spektra (1987)

Další postup v R

Z příkazové konzole GRASS GIS spustíme R a nahrajeme balíček spgrass6:

$ R
> library(spgrass6)

Načteme rastrová data Fourierovy transformace:

fft.images<-readRAST6(c('lsat5_1987_pca1.real','lsat7_2002_pca1.real'), cat=c(F,F))

Kernel Density

Více k tématu zde (česky: odhad hustoty pravděpodobnosti).

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

Více k tématu zde.

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)