Sorry for the late reply, it is summer-break season here.
If you need to "ignore" the 0-values, convert them to "undefined":
The Principal Component Analysis algorithm ignores undefined pixels.
To do this, the following statement must be applied to each of the
input bands: out_band_XX:=iff(in_band_XX.mpr<>0,in_band_XX.mpr,?)
This statement will make a copy of the input band, where 0 has
changed to "undefined".
For PCA, the easiest is to execute this statement inside the
operation "MapList Calculation". This will automatically apply it to
all bands in the maplist that is required for PCA. A copy of the
maplist will be created (with a new name, chosen by you), where 0 is
changed to "undefined" in all bands.
After you have navigated to the folder with your data, start the
"MapList Calculation" operation from the ILWIS menu, and proceed as
1. Reduce the Input MapLists to 1
2. In MapList @1, select the maplist that is to undergo the PCA
3. In Expression, type the following: iff(@1<>0,@1,?)
4. Fill in a nice filename in Output MapList
5. Click "Show". This will compute the new maplist.
Now you can use this new maplist as the input of the Principal
On 24/8/2017 3:39 PM, Marijke De Ryck
I want to calculate a
PCA on Landsat images. This Landsat images are georeferenced
and contain a lot of “0”-values because of the rotation of
the original image (which I don’t have).
It look likes the PCA
takes this zeros into account to calculate the matrix. Is
this true and is there a possibility to avoid this?