Предположим, выполняется следующий код R
install.packages("raster")
library(raster)
r <- raster(ncol=18, nrow=18)
res(r)
Результатом функции res является
[1] 20 10
Как определяются эти ценности? Как их вычисляет функция raster? В каких единицах они выражены?
Ответ 1 · рейтинг 1 · Guillaume Devailly
Насколько я понимаю из виньетки
Настройки по умолчанию создают глобальную структуру растровых данных с системой координат долготы / широты и ячейками 1 на 1 градус.
r
# class : RasterLayer
# dimensions : 18, 18, 324 (nrow, ncol, ncell)
# resolution : 20, 10 (x, y)
# extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84
r x по умолчанию составляет от -180 до +180 градусов (всего 360 градусов), а 360 градусов / 18 точек = разрешение x, равное 20 градусам.
r y по умолчанию составляет от -90 до +90 градусов, а 180 градусов / 18 точек дают разрешение y, равное 10 градусам.
Ответ 2 · рейтинг 2 · Robert Hijmans
Как указал Гийом Девайли, разрешение по горизонтали - это размер по горизонтали, деленный на количество столбцов. Вертикальное разрешение - это вертикальный размер, деленный на количество строк. Единицы - это единицы вашей системы координат. По умолчанию это градусы (для долготы / широты). Чтобы добавить больше к ответу Гийома:
Создайте растр с 10 строками и столбцами от 0 до 10. Разрешение равно 1.
library(raster)
r <- raster(ncol=10, nrow=10, xmn=0, xmx=10, ymn=0, ymx=10)
r
#class : RasterLayer
#dimensions : 10, 10, 100 (nrow, ncol, ncell)
#resolution : 1, 1 (x, y)
#extent : 0, 10, 0, 10 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
Измените разрешение на 0,5; количество строк и столбцов удваивается
res(r) <- 0.5
r
#class : RasterLayer
#dimensions : 20, 20, 400 (nrow, ncol, ncell)
#resolution : 0.5, 0.5 (x, y)
#extent : 0, 10, 0, 10 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
Вы можете косвенно изменить разрешение, отрегулировав размер
extent(r) <- c(0,5,0,5)
r
#class : RasterLayer
#dimensions : 20, 20, 400 (nrow, ncol, ncell)
#resolution : 0.25, 0.25 (x, y)
#extent : 0, 5, 0, 5 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
Разрешение x и y можно установить на другое значение.
res(r) <- c(1, 0.5)
При изменении разрешения напрямую через res любые значения ячеек, связанные с объектом Raster *, теряются; потому что количество строк или столбцов должно измениться. Если вы измените его косвенно, изменив размер, значения останутся.