Eu sou novo no R e estou usando o pacote raster. Tenho um problema ao extrair polígonos de um arquivo raster existente. Se eu usar
extract(raster, poly_shape)
Na varredura, sempre cria uma lista com os dados. O que eu realmente quero é extrair outro arquivo raster que eu possa carregar com o ArcGIS novamente. Depois de ler um pouco mais, acho que a função de recorte é o que realmente preciso. Mas quando eu tento usar essa função
crop(raster, poly_shape)
Eu recebo este erro:
Error in .local(x, y, ...) : extents do not overlap
In addition: Warning message:
In intersect(extent(x), extent(y)) : Objects do not overlap
Os arquivos raster e poly_shape são iguais para as duas funções. Você pode me dizer o que poderia estar errado aqui? É certo que a função de corte crie outra varredura e não uma lista?
Edição : A função extensão () não funciona para mim. Ainda obtenho o mesmo erro. Mas tenho certeza que os 2 conjuntos de dados se sobrepõem! Com o
extract(raster, poly_shape)
Eu recebo os dados certos. Apenas como uma lista e não como uma varredura como eu quero tê-la. Acabei de carregar os conjuntos de dados no ArcGIS antes e eles se encaixam muito bem, portanto não verifiquei a projeção. Agora eu tentei
projection(raster) # "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"
projection(poly_shape) # "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs"
e você pode ver que as projeções não se encaixam. A função extrair parece capaz de transformar automaticamente os arquivos da maneira correta. Eu sei disso porque fiz o seguinte:
- Eu cortei a parte exata do polígono que extraí no R também no ArcGIS
- Calculei a soma de todos os valores do polígono R extraído (lista)
- Calculei a soma de todas as células raster que recortei no ArcGIS
Os 2 têm exatamente o mesmo resultado, então acho que a conclusão deve ser que a função extrair funcionou corretamente. Agora eu tenho duas opções, eu acho:
- Preciso de uma maneira de tirar um Raster da lista extraída novamente ou
- Os 2 conjuntos de dados (raster + poly_shape) precisam usar a mesma projeção e a função de corte deve funcionar
O que você sugeriria fazer aqui?