Все зависит от единиц вашего растра, и это зависит от проекции.Растры могут даже не быть квадратными сетками в метрах - они могут быть квадратными в градусах, а не квадратными в метрах!
1 градус долготы на экваторе составляет 1/360 от окружности Земли.У северного полюса 1 градус - намного меньшее расстояние, а у полюса - почти ноль.Однако градусы широты постоянны.
Вы можете взять угловые точки растра, преобразовать их в координаты широты, если это еще не сделано, и затем определить расстояние между ними (есть функция rdistгде то это я вспоминаю).Однако это не сработает, если ваш растр охватывает весь земной шар, с тех пор ваш угол NW и угол NE находятся в одной точке ... Уммм.В любом случае, ответ ... 42.
Если вы хотите сделать 1 км растров Австралии, тогда ... вам нужна система координат Австралии в километрах.В Великобритании у нас есть система, называемая OSG National Grid, которая достаточно близка к метрической сетке.Австралия может быть хитрее, потому что она немного больше Великобритании ... Так что в Австралии, похоже, есть несколько систем сетки.Смотрите здесь:
http://www.spatialreference.org/ref/?search=AGD84
Таким образом, вы можете использовать систему, которая находится в центре страны, чтобы избежать наихудших искажений, а затем определить границы Австралии в Латвии.long, преобразуйте в epsg: 20353 и создайте растр на основе этого:
В лат-лонг я считаю, что Австралия примерно:
> xtll
[,1] [,2]
[1,] 112.5162 -43.906900
[2,] 155.8425 -7.585619
превратит это в объект SpatialPoints:
> xtll=SpatialPoints(xtll,CRS("+init=epsg:4326"))
преобразовать в AGD84 в центре страны:
> spTransform(xtll,CRS("+init=epsg:20353"))
SpatialPoints:
coords.x1 coords.x2
[1,] -1306200 4886041
[2,] 2849956 9103124
Сделать объект растрового экстента, округленный до км:
> ext = extent(-1306000,2850000,4886000,9103000)
Сколько строк и столбцов сделатьнам нужно?
> length(-1306:2850)
[1] 4157
> length(4886:9103)
[1] 4218
Создать растр:
> r = raster(ext,ncol=4156,nrow=4217,crs="+init=epsg:20353")
> r
class : RasterLayer
dimensions : 4217, 4156, 17525852 (nrow, ncol, ncell)
resolution : 1000, 1000 (x, y)
extent : -1306000, 2850000, 4886000, 9103000 (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:20353 +proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs
values : none
Обратите внимание, что значения ncol и nrow на единицу меньше значений из границ - это будет ошибкойэти значения в.
Видите, как мое разрешение 1000?Это 1 км сетки.Проблема в том, что это может быть немного искажено на побережьях.Вы можете выяснить, насколько искажены, переведя в широту (epsg: 4326), затем в подходящую зону AGD для точек на побережье и увидев, насколько они различны.Они могут быть очень близко, за исключением смещения.
В любом случае, сказал Nuff.