Как я могу включить временной аспект при создании данных псевдо-отсутствия? - PullRequest
0 голосов
/ 20 февраля 2019

У меня 608 наблюдений за спутниковыми метками черепах.Я хочу смоделировать их с данными об окружающей среде, которые включают температуру поверхности моря, текущую скорость, скорость ветра и т. Д. Конечно, как данные мечения, так и данные об окружающей среде изменяются в пространстве и во времени.Я сгенерировал данные псевдо-отсутствия, используя приведенный ниже код, который я адаптировал с здесь .Однако теперь мне пришло в голову, что сгенерированные мной точки данных являются только пространственными выборками.Есть ли способ, как я могу отредактировать этот код для временной выборки, чтобы у моего результирующего csv была дата / время для каждой точки, чтобы я мог сопоставить его с моими данными об окружающей среде?Или я могу попробовать другой пакет, который позволил бы мне это сделать?

dir.create(path = "data")

library("sp")
library("raster")
library("maptools")
library("rgdal")
library("dismo")

bioclim.data <- getData(name = "worldclim",
                        var = "bio",
                        res = 2.5,
                        path = "data/")

# Read in observations
obs.data <- read.csv(file = "data/Presence.csv")


# Determine geographic extent of data
max.lat <- ceiling(max(obs.data$Latitude))
min.lat <- floor(min(obs.data$Latitude))
max.lon <- ceiling(max(obs.data$Longitude))
min.lon <- floor(min(obs.data$Longitude))
geographic.extent <- extent(x = c(min.lon, max.lon, min.lat, max.lat))


# Use the bioclim data files for sampling resolution
bil.files <- list.files(path = "data/wc2-5", 
                        pattern = "*.bil$", 
                        full.names = TRUE)

# only need one file, so use the first one in the list of .bil files
mask <- raster(bil.files[1])

# Randomly sample points (same number as our observed points)
background <- randomPoints(mask = mask,     # Provides resolution of sampling points
                           n = nrow(obs.data),      # Number of random points
                           ext = geographic.extent, # Spatially restricts sampling
                           extf = 1.25)             # Expands sampling a little bit


write.csv(background, "pseudo-absence.csv")

1 Ответ

0 голосов
/ 03 марта 2019

Я решил эту проблему, просто сгенерировав случайное время с помощью приведенного ниже кода и объединив полученное и выше .csv.

#ADD TIMES 

time.start <- as.POSIXct('2014-12-01T01:00:00z', format = "%Y-%m-%dT%H:%M:%S")
time.end <- as.POSIXct('2015-04-30T01:00:00z', format = "%Y-%m-%dT%H:%M:%S")

seconds <- difftime(time.end, time.start, units = "secs")
# Option with runif()
v <- round(runif(6000, 0, seconds))

# Option with sample()
v <- sample(1:seconds, 6000, replace = T)

time.uniform <- time.start + v   

write.csv(time.uniform, "time.csv")

tag<-read.csv("pseudo-absence.csv")

time<- read.csv("time.csv")

myfulldata = merge(tag,time)

write.csv(myfulldata, "pseudo-absence_with_time.csv")
...