Я совершенно не задаю вопросы о stackoverflow и более или менее новичком в R (и программировании в целом), так что несите меня.Вычисление области перекрытия между двумя растровыми слоями различного происхождения и экстента в R
У меня есть ASCII-файлы видов, которые показывают только присутствие. После чистки дальних интернета мне удалось загрузить, конвертировать в растре, маску вдоль желаемых границ (в моем случае, береговую линию Австралии) и нарисовать их, чтобы я мог визуализировать диапазоны на непроектированной карте.
Достигнув качественного аспекта этого, мне нужно перейти к количественному аспекту; то есть мне нужно рассчитать степень симпатии между видами. Для этого мне нужно сначала вычислить область перекрытия, где я столкнулся с проблемами. Вот что мне удалось сделать до сих пор:
> d
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
> b
class : RasterLayer
dimensions : 140, 222, 31080 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 134.2456, 152.0056, -40.44268, -29.24268 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
x<-resample(b,d,method="ngb")
y<-mask(x,d)
>y
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 2, 2 (min, max)
у растровый перекрытия между d и Ь маскируется над д (при попытке замаскировать над б я получаю ошибку о том, что экстентов разные) , Как рассчитать его площадь? функция области() из пакета растрового плюет это:
area(y)
class : RasterLayer
dimensions : 85, 270, 22950 (nrow, ncol, ncell)
resolution : 0.08, 0.08 (x, y)
extent : 119.4993, 141.0993, -36.65831, -29.85831 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : 63.65553, 68.75387 (min, max)
Я не совсем уверен, что делать с этим. Это даже хороший/правильный/правильный способ получения областей? Почему экстенты различаются между y и b, но то же самое между d и y? Кроме того, каковы единицы значений из области (y)? Я полагаю, что единицы не имеют большого значения, потому что я буду принимать соотношение в конечном счете (разделив перекрытие на диапазон более ограниченных видов), но мне любопытно узнать для дальнейшего использования.
Прошу прощения, если это глупый вопрос. Я ценю любой вклад, который может быть у кого-то.
I может быть недоразумением точного вопроса, так возьмите мой комментарий с зерном поваренная соль. Не могли бы вы предоставить образец формата ASCII с данными о присутствии? Я подозреваю, что мы могли бы рассчитать перекрытие между областями более непосредственно из данных локации. Кроме того, если возможно, отправьте образец сюжета, который вы создаете. Картинка говорит тысячу слов ... – Dinre
Хорошо, по-видимому, я немного пропустил описание области(), где он сообщает вам, что единицы измерения km^2. – gen
@Dinre -apparently У меня нет репутации, чтобы добавлять изображения к моему вопросу. Вот ссылка . Я растолстел на меня, прежде чем у меня возникло желание добавить Австралию к изображению. Что касается формата ASCII, я не знаю, как его описать; это серия из 2s и -3,4e + 38, расположенных в шаблоне, где -3.4e + 38 представляет NODATA_VALUE и 2 Я предполагаю, что это присутствие. – gen