[GRASS-stats] Spatial autocorrelation of multi-spectral,
uni- and mutli-temporal data sets
Nikos Alexandris
nik at nikosalexandris.net
Thu Jan 6 09:56:36 EST 2011
On Sunday 26 of December 2010 19:00:32 Nikos Alexandris wrote:
> Greets to the statists,
>
> I want to "describe" my multispectral (Landsat5_TM) composite datasets with
> respect to their between vs. within heterogeneity.
(Replying to myself and for the potential interest of anybody reading the
list... )
Finally I went for MRPP test(s) implemented in the R-package "vegan"[1][2]. I
did a sampling of major land cover classes after all (such as Urban areas,
vegetation, bare ground, water bodies, etc)., put the data in data.frames and
ran the tests.
The data.frames look like:
str ( samples_postfire_modis )
'data.frame': 1040 obs. of 6 variables:
$ Band 1: int 1354 1458 1458 1458 1550 1145 1428 1573 1573 1657 ...
$ Band 2: int 3088 2971 2971 2971 2902 2990 2942 2824 2824 2917 ...
$ Band 5: int 3533 3506 3506 3506 3323 3535 3337 3239 3239 3552 ...
$ Band 6: int 2778 2803 2803 2803 2974 2646 2674 2883 2883 3071 ...
$ Band 7: int 2019 2146 2146 2146 2042 1719 2045 2114 2114 2373 ...
$ Class : Factor w/ 5 levels "Urban","Vegetation",..: 1 1 1 1 1 1 1 1 1 1 ...
> str ( samples_bite )
samples_bitemporal_modis.colnames samples_bitemporal_modis
> str ( samples_bitemporal_modis )
'data.frame': 1040 obs. of 7 variables:
$ Prefire B2 : int 3377 3425 3304 3179 3247 3247 3235 3043 3043 3197 ...
$ Prefire B6 : int 2726 2683 2737 2991 2934 2934 2928 2984 2984 3199 ...
$ Prefire B7 : int 1864 1932 2005 2185 2068 2068 2223 2331 2331 2314 ...
$ Postfire B2: int 3088 2971 2971 2971 2902 2990 2942 2824 2824 2917 ...
$ Postfire B6: int 2778 2803 2803 2803 2974 2646 2674 2883 2883 3071 ...
$ Postfire B7: int 2019 2146 2146 2146 2042 1719 2045 2114 2114 2373 ...
$ Class : Factor w/ 5 levels "Urban","Vegetation",..: 1 1 1 1 1 1 1 1 1
1 ...
Some of the results look like this:
--%<---
Call:
mrpp(dat = samples_postfire_modis.smallsample.300[, 1:5], grouping =
samples_postfire_modis.smallsample.300[["Class"]])
Dissimilarity index: euclidean
Weights for groups: n
Class means and counts:
Urban Vegetation Bare ground Burned Water
delta 1241 1029 1550 1228 855.2
n 97 81 63 53 6
Chance corrected within-group agreement A: 0.3956
Based on observed delta 1239 and expected delta 2050
Significance of delta: 0.001
Based on 999 permutations
-->%---
and
--%<---
+ samples_postfire_modis.smallsample.300.vegdist <- vegdist (
samples_postfire_modis.smallsample.300[,1:5] )
+ samples_postfire_modis.smallsample.300.md <- meandist (
samples_postfire_modis.smallsample.300.vegdist ,
samples_postfire_modis.smallsample.300[["Class"]] )
+ summary(samples_postfire_modis.smallsample.300.md)
Mean distances:
Average
within groups 0.0950253
between groups 0.2023877
overall 0.1754765
Summary statistics:
Statistic
MRPP A weights n 0.4224480
MRPP A weights n-1 0.4263591
MRPP A weights n(n-1) 0.4584728
Classification strength 0.1010409
--%<---
Running the above test on samples with observations > 3000 is a high load for
a home-machine (working here on Core2 Duo @2.53GHz and 6GB RAM). In fact,
running the process for 18K observations times 6 variables (the number of
permutations increases like crazy...) took 2+1/2 days (double that for another
data.frame of the same size).
Wish I had access to some OSGeo super-computer for 30 mins to get this job
done.
Greets, Nikos
More information about the grass-stats
mailing list