Obrigado Prof. Paulo,
Mas não funcionou não, aparentemente não é possível transformar
o grid selecionado em SpatialPolygons, msemo repetindo a primeira
coordenada para fechar o polígono, preciso encontrar uma outra
solução,
Alexandre
Em 21-11-2011 16:20, Paulo Justiniano escreveu:
Aledandre
se nao funcionar com grid voce poderia rtransformar de grid para
SpatialPolygons e operar o over() novamente
On Mon, 21 Nov 2011, ASANTOS wrote:
Prof. Paulo,
Obrigado pela ajuda sua solução também funcionou, o Pebesma
me forneceu a seguinte solução:
fullgrid(grid)=FALSE
sel.grid <-grid[!is.na(clip),]
points(sel.grid, col='blue', pch=3)
mas o problema agora é que quando tentou calcular a frequência
dos pontos dentro do grid com over(pontos, sel.grid),
tenho uma resposta muito estranha que não representa a
frequência de pontos contida em cada parcela da malha, teria
alguma sugestão,
redobrados agradecimentos,
Alexandre
Em 21-11-2011 10:54, Paulo Justiniano escreveu:
Alexandre
em meus testes aqui su consegui selecionar o
SpatialGridDataFrame
(e nao o SpatialGrid)
deve ter como mas como solucao temporaria:
## o seguinte funciona
ap <- SpatialGridDataFrame(grid, data=data.frame(clip))
ap1 <- ap[!is.na(clip),]
On Sat, 19 Nov 2011, ASANTOS wrote:
Boa dia pessoal,
Então fiz as recomendações que o Prof. Paulo me
recomendou, porém
quando utilizo a função overlay() ou over(), para
sobrescrever um novo
grid (objeto sel.grid), somente com as parcelas do
grid contidas no
limite da área, obtenho o seguinte erro: Erro em
grid[!is.na(clip), ] :
(subscript) subscrito lógico muito longo, já
verifiquei todos os objetos
espaciais envolvidos e me parece estar tudo Ok não
sei o que pode estar
dando errado, segue o script:
require(splancs)
require(sp)
set.seed(12)
#Geração dos pontos aleatórios
x<- runif(n=500,min=0, max=20)
y<- runif(n=500,min=0, max=20)
xy<-cbind(x,y)
plot(x=x,y=y,axes=F, xlab="", ylab="",
xlim=c(-1,20),ylim=c(0,21))##Plota os pontos
##Divide em parcelas
segments(x0=rep(0,20),y0=0:20,
x1=rep(20,20),y1=0:20, col="gray", lty=2)
segments(x0=0:20,y0=rep(0,20),
x1=0:20,y1=rep(20,20),col="gray", lty=2)
pt0<- c(0.5,0.5)##Define o centro da primeira
parcela
N_S=seq(pt0[1], by=1, length.out=20)##Define o
centro das parcelas
L_O=seq(pt0[2],by=1, length.out=20)
grid0<- expand.grid(N_S=seq(pt0[1], by=1,
length.out=20),
L_O=seq(pt0[2],by=1, length.out=20))
##Cria o limite da área
limx<-c(2.5,2.5,18,18,2.5)
limy<-c(2.5,18,18,2.5,2.5)
lim=cbind(limx,limy)
lim<-as.matrix(lim)
##Passando para objetos da classe Spatial
#Pontos
pontos<- SpatialPoints(cbind(x,y))
pontos<- SpatialPoints(list(x,y))
pontos<- SpatialPoints(data.frame(x,y))
#Grid
grid0= GridTopology(c(0.5,0.5), c(1,1), c(20,20))
grid<-SpatialGrid(grid = grid0)
##Limite da área
limite=SpatialPolygons(list(Polygons(list(Polygon(lim)),"lim")))
##Plotando
plot(limite)#Limite
points(pontos,col='red')#Pontos
points(grid,col='blue')#Malha
clip<-overlay(grid,limite)##Jogando o limite
sobre a malha
sel.grid<-grid[!is.na(clip),]##Retirando os NA's
que correspondem a
parte do grid fora do limite
Obrigado,
--
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304
Em 16-11-2011 15:25, Paulo Justiniano escreveu:
Alexandre
sem fornecer codigo especifico aqui vao
algums ideias de por ojnde eu
comecaria
algumas alternativas caso nao queira
programar isto:
1. represetnar os dados no formato sp. Um
como SpatialPoints
-- Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304
e outro como SpatialGrid
Depois a operaçõa de overlay (over() ) com
tabloe vai te fornecer as
contagens
2.
este problema é o mesmo do chamado "quadrat
counts"
que é tratado em pacotes como spatstat
(oficial)
ou Rcitrus (nao oficial)
aqui vai um exemplinho usando o 1o
require(spatstat)
## Carregando um conjunto de dados
data(swedishpines)
X<- swedishpines
plot(X)
summary(X)
## Contagem de Quadrats
Q<- quadratcount(X, nx = 4, ny = 3)
Q
plot(X)
plot(Q, add = TRUE, cex = 2)
--
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem
(http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo
reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem
(http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo
reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
forneça código mínimo reproduzível.
--
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
--
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304