2015-01-06 4 views
0

다중 대역/채널을 가질 수있는 특정 이미지에서 작동합니다 (Multispectral 및 Hyperspectral 원격 감지 이미지 참조).특정 조건이 충족되는 SpatialGridDataFrame 객체의 행 삭제

주어진 이미지에 얼마나 많은 밴드가 존재하는지 미리 알지 못한다고 가정 해 봅시다. 모든 채널의 이름은 "band1", "band2"... 등으로 지정됩니다. 우리가

library(sp) 
library(rgdal) 
image <- readGDAL("image.tif') 

을 사용하여 이미지를 읽으려면 우리는 먼저 data.frame으로이 걸릴 :

imdata <- [email protected] 

특정 "픽셀"에 대한 모든 밴드의 내용이 제로 특정 상황이있을 수 있습니다.

imData <- imData[!((imData$band1==0) & (imData$band2==0) & (imData$band3 == 0) & (imData$band4 == 0)),] 

을하지만 내 이미지가 256 개 밴드를 가지고 있다고 가정 : 그것은 네 개의 밴드 이미지 인 경우 따라서, 우리는 사용하여 data.frame에서 해당 행을 삭제할 수 있습니다. 데이터 세트에서 이러한 행을 어떻게 제거합니까?

+0

가'! rowSums [('&'IMDATA == 0)을! 절감] IMDATA가'테스트'어쩌면 또한하지 (IMDATA를! = 0)' – akrun

+0

이 나는 ​​것 같아요 첫 번째 것은'imData [! Reduce ('&', as.data.frame (imData == 0))),]' – akrun

답변

0

시도,

imData <- imData[!(rowSums(imData) == 0),] 
+2

내 코멘트에서 가져온 것뿐입니다. – akrun

관련 문제