У меня есть растровая карта с 202 строками и 201 столбцом Есть некоторые сетки на этой карте, значения пикселей которых 0 Я хочу написать функцию, возвращающую все значения пикселей 0 сетки координат , как я могу это сделать я пытался использовать, если цикл и в то время как цикл , но он всегда говорит TRUE/FALSE потребность вот мой пример кодаПолучение координат пикселей, значения которых равны 0
library(raster)
library(rgdal)
library(maptools)
library(sp)
setwd("E:/Landsat-data-NASA atm-corrected/sample_day1")
restdir2 <- ("E:/Landsat-data-NASA atm-corrected/sample_day1")
n3 <- list.files(restdir2, pattern="*band4_clip_1.tif", full.names=TRUE)
n4 <- list.files(restdir2, pattern="*cloud_qa_clip_1.tif", full.names=TRUE)
n5 <- list.files(restdir2, pattern="*cloud.tif", full.names=TRUE)
create<- function(x,y)
{
layer <- raster(n4)
layer2 <- raster(n3)
for(c in 1:x)
{
for(r in 1:y)
{
nl<- layer2
if(layer[c,r]==0)
return layer[c,r]
}
}
}
create (10,10)
Мы не можем запустить любого из кода без данных ... может быть, вы могли бы обмениваться данными для простого примера? Вероятно, вы должны прочитать введение в функции в R. 'return()' возвращает объект и перестает запускать функцию ... функция может возвращать только один объект. Это также функция, поэтому вам нужно использовать парсеры. Если вы поместите * внутри * цикл for, первый раз через цикл он вернется и никогда не попадет во второй раз. – Gregor
Также неплохо использовать 'c' как переменную, потому что' c() 'уже является именем * самой общей функции R. – Gregor