Страница 1 из 1

Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 18:58
Odd-Bird
Доброго времени суток!

Буду крайне признателен за советы по решению следующей задачи. У меня есть растровая карта в формате geoTiff и сетка в формате *.shp. Мне нужно наложить эту сетку на растр, а затем посчитать статистику для отдельных "клеток".

В QGIS сетка накладывается на растр автоматически и без проблем. В R я обнаруживаю следующее. Значения extent для растра (xmin, xmax, ymin, ymax): -180.0014, 179.9986, -64.99861, 90.00139. Здесь все понятно, растр охватывает почти всю планету и это координаты охвата по широте и долготе.

Для сетки, которая охватывает только европейскую часть России, значения extent: 4868503, 7630526, 2673137, 6869717 (xmin, xmax, ymin, ymax). Очевидно, это уже какой-то другой формат, потому что эти числа не могут быть значениями широты и долготы. Соответственно, попытки изобразить сетку и растр на одном графике ни к чему не приводят.

Вопрос: как переформатировать значения extent и привести их к единому виду? Какую функцию использовать для расчета статистики по клеткам сетки ИЛИ для извлечения координат "углов" сетки? Спасибо. 8)

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 19:02
nadiopt
многациффр. у сетки и растра одинаковая система координат?

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 19:38
Odd-Bird
Изначально - нет, но я изменяю проекцию у растра с помощью функции projection() из пакета rastr. Значения extent при этом остаются прежними.

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 19:39
rhot

Код: Выделить всё

crs.1 <- vector@proj4string # СК сетки 
crs.2 <- raster@crs # СК растра
vector.2 <- spTransform(vector, crs.2) # перепроецируем сетку в СК растра
raster.cr <- crop(raster, vector.2) # обрезаем по сетке
raster.1 <- projectRaster(raster.cr, crs.1) # перепроецируем обрезанный растр в СК сетки

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 19:47
Odd-Bird
rhot писал(а):

Код: Выделить всё

raster.cr <- crop(raster, vector.2) # обрезаем по сетке
[/quote]

В этом месте возникает заминка: 

[color=#FF0000]Error in .local(x, y, ...) : extents do not overlap[/color]

Насколько я понимаю, это связано с тем, что extent двух файлов по-прежнему не совпадают.

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 19:50
rhot
а какой получается экстент у перепроицированной сетки?

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 20:04
Odd-Bird
Прошу прощения, нашел у себя ошибку, Ваш код работает! Большое спасибо! А можно ли как-то извлечь координаты узлов этой сетки, для подстановки в функцию crop() и расчета статистики по клеткам?

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 20:08
rhot
Можно, но это уже будет новая тема. Одна тема - один вопрос.

Re: Наложение сетки (*.shp) на растр (geoTiff)

Добавлено: 29 окт 2014, 20:14
Odd-Bird
ОК.