Я использую R для фильтрации треков тропических циклонов, проходящих через сетку. У меня есть файл csv, содержащий треки, и я конвертирую их в шейп-файл.
Я хотел отфильтровать только точки с одним и тем же идентификатором (столбец «SN» в приведенном ниже примере данных), которые прошли через заданный блок сетки (от 5N до 25N и от 115E до 135E). Ниже приведен код, который я использую, и ссылка на данные.
jtwc <- read.csv("1979-1993_TC.csv",header=T,sep=",")
latmin <-5.00
latmax <- 25.00
lonmin <- 115.00
lonmax <- 135.00
jtwc.unique <- unique(jtwc[jtwc$Lat >= latmin & jtwc$Lat <= latmax & jtwc$Lon >= lonmin & jtwc$Lon <= lonmax,c(1,2)])
jtwc.filter <- merge(jtwc,jtwc.unique,all.x = F,all.y = T, sort = F)
jtwc.filter$Lon <- ifelse(jtwc.filter$Lon < 0, jtwc.filter$Lon + 360, jtwc.filter$Lon)
jtwc.filter <- jtwc.filter[with(jtwc.filter,order(Year,Month,Day,Hour,CY)),]
write.table(jtwc.filter,file = "test2_jul_par_1979-1993.csv", sep = ",", row.names = F)
Проблема:
Этот код не работает должным образом. Когда я запустил скрипт, я все еще вижу нестандартные треки.
Может ли кто-нибудь предложить способ улучшить это?
Буду признателен за любую помощь.