On 07/12/13 17:46, Nikos Alexandris wrote:
Moritz Lennert wrote:
..
Try the attached diff to imagery/i.pca/main.c.
Great! So, applied the diff. Here some numbers:
PC1 238310.68 ( 0.1606, 0.2231, 0.1228, 0.9536) [96.10%]
PC2 9364.65 ( 0.4319, 0.5989, 0.6082,-0.2912) [ 3.78%]
PC3 217.78 ( 0.7028, 0.1609,-0.6897,-0.0672) [ 0.09%]
PC4 80.33 ( 0.5420,-0.7521, 0.3732, 0.0366) [ 0.03%]
Thus, we have:
96.10 + 3.78 + 0.09 = 99.88 + 0.09 = 99.97
That's 96.10 + 3.78 = 99.88 + 0.09 = 99.97 ;-)
Then, pca with "-f":
i.pca in=Blue_DNs,Green_DNs,Red_DNs,NIR1_DNs out=TEST_PC --o -f percent=96.10
ERROR: Not enough principal components left for filtering
and
i.pca in=Blue_DNs,Green_DNs,Red_DNs,NIR1_DNs out=TEST_PC --o -f percent=96.11
gives:
r.info -r TEST_PC.1
min=19.4012346427396
max=1570.71398669652
Good sign, means it works :-). And it does not truncate (otherwise,
trunc(96.11) = 96, so "normally" it should fail to filter again)! Then, with
"percent=99.87" still the same:
r.info -r TEST_PC.1
min=19.4012346427396
max=1570.71398669652
while with "percent=99.88" it works:
r.info -r TEST_PC.1
min=8.08831247843905
max=1443.35532373978
Finally, with "percent=99.97" OR below OR above, always gives the same
r.info -r TEST_PC.1
min=8.08831247843905
max=1443.35532373978
So, the questions are:
1) why does it make the switch with 99.11 and not with 99.10, while it does
make the switch already with 99.88 instead of requiring 99.89?
Probably rounding. For printing the numbers are rounded to two decimals.
2) Why is there no filtering taking place for "percent >= 99.97" ?
Because you need all PCs to get above 99.97% and so the result is no
filtering...
Moritz
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev