try r.cross (Raster>Overlay Rasters>Cross product) for a cross-classification map and r.coin (Raster>Reports and Statistics>Mutual category occurrences) for cross tabulation also r.kappa (Imagery>Reports and statistics>Kappa Analysis) for a comparison
cheers, s. On 07/22/2011 01:41 PM, Hermann Peifer wrote: > Hi, > > I have 2 Corine Land Cover (CLC) raster maps, from 2000 and 2006. Both > maps have the same extent, the same resolution (100m) and use the same > 44 CLC categories. The maps are pretty large: 67 000 cols x 58 000 > rows = 3 886 000 000 cells. > > I'd like to categorise the changes between the 2 layers, according to > a decision matrix which I pasted below [1]. Row headers indicate the > clc2000 category, column headers represent the clc2006 category. I > only pasted the "left half" of the table in order to avoid ugly line > breaks. > > > Question: > Is there a better (and faster) way than doing this comparison by using > r.mapcalc with a (nearly) endless if/else chain [2] ? > > I also noted that in 99+ % of the cases, both maps are NULL or have an > identical CLC category, so I wouldn't need the if/else chain at all. I > guess I can use this fact to shortcut the comparison? > > > Thanks in advance, Hermann > (using GRASS 6.4 on 64-bit Debian Linux) > > [1] > > ## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 .. > 1 NA 12 31 32 33 34 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 2 11 NA 31 32 33 34 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 3 12 12 NA 32 33 34 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 4 12 12 31 NA 33 34 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 5 12 12 31 32 NA 34 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 6 12 12 31 32 33 NA 35 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 7 12 12 31 32 33 34 NA 36 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 8 12 12 31 32 33 34 35 NA 37 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 9 12 12 31 32 33 34 35 36 NA 13 38 56 56 56 56 56 56 56 56 56 56 56 .. > 10 11 11 31 32 33 34 35 36 37 NA 38 56 56 56 56 56 56 56 56 56 56 56 .. > 11 11 11 31 32 33 34 35 36 37 13 NA 56 56 56 56 56 56 56 56 56 56 56 .. > 12 21 22 31 32 33 34 35 36 37 13 38 NA 45 43 42 42 42 41 42 41 83 61 .. > 13 21 22 31 32 33 34 35 36 37 13 38 43 NA 43 42 42 42 41 42 41 83 61 .. > 14 21 22 31 32 33 34 35 36 37 13 38 43 43 NA 42 42 42 41 42 41 83 61 .. > 15 21 22 31 32 33 34 35 36 37 13 38 45 45 45 NA 44 44 41 45 45 83 61 .. > 16 21 22 31 32 33 34 35 36 37 13 38 45 45 45 44 NA 44 41 45 45 83 61 .. > 17 21 22 31 32 33 34 35 36 37 13 38 45 45 45 44 44 NA 41 45 45 83 61 .. > 18 21 22 31 32 33 34 35 36 37 13 38 45 45 45 42 42 42 NA 45 45 83 61 .. > 19 21 22 31 32 33 34 35 36 37 13 38 45 45 45 42 42 42 41 NA 41 83 61 .. > 20 21 22 31 32 33 34 35 36 37 13 38 45 45 45 42 42 42 41 45 NA 83 61 .. > 21 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 41 52 54 NA 54 .. > 22 21 22 31 32 33 34 35 36 37 13 38 45 45 45 42 42 42 41 45 45 83 NA .. > 23 21 22 31 32 33 34 35 36 37 13 38 51 51 51 51 51 51 53 51 53 53 53 .. > 24 21 22 31 32 33 34 35 36 37 13 38 51 51 51 51 51 51 53 51 53 53 53 .. > 25 21 22 31 32 33 34 35 36 37 13 38 51 51 51 51 51 51 53 51 53 53 53 .. > 26 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 54 .. > 27 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 54 .. > 28 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 54 .. > 29 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 54 .. > 30 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 53 .. > 31 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 53 .. > 32 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 53 .. > 33 21 22 31 32 33 34 35 36 37 13 38 52 52 52 52 52 52 54 52 54 54 53 .. > 34 NA NA NA NA NA NA NA NA NA NA 38 NA NA NA NA NA NA NA NA NA NA NA .. > 35 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 36 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 37 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 38 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 39 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 40 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 41 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 42 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 43 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > 44 21 22 31 32 33 34 35 36 37 13 38 55 55 55 55 55 55 55 55 55 55 55 .. > > > [2] > > change = \ > clc2000 == 1 && clc2006 == 2 ? 12 : \ > clc2000 == 1 && clc2006 == 3 ? 31 : \ > clc2000 == 1 && clc2006 == 4 ? 32 : \ > clc2000 == 1 && clc2006 == 5 ? 33 : \ > clc2000 == 1 && clc2006 == 6 ? 34 : \ > clc2000 == 1 && clc2006 == 7 ? 35 : \ > clc2000 == 1 && clc2006 == 8 ? 36 : \ > clc2000 == 1 && clc2006 == 9 ? 37 : \ > clc2000 == 1 && clc2006 == 10 ? 13 : \ > > ... (snip away some 1700 if/else rules) > > clc2000 == 44 && clc2006 == 30 ? 89 : \ > clc2000 == 44 && clc2006 == 31 ? 89 : \ > clc2000 == 44 && clc2006 == 32 ? 89 : \ > clc2000 == 44 && clc2006 == 35 ? 82 : \ > clc2000 == 44 && clc2006 == 36 ? 82 : \ > clc2000 == 44 && clc2006 == 37 ? 82 : \ > clc2000 == 44 && clc2006 == 38 ? 89 : \ > clc2000 == 44 && clc2006 == 39 ? 89 : \ > clc2000 == 44 && clc2006 == 42 ? 82 : \ > clc2000 == 44 && clc2006 == 43 ? 82 : 0 > _______________________________________________ > grass-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-user >
_______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
