Automatizando a produção de grandes círculos em R

Eu peguei algumas das coisas que aprendi em um Flowing Data ótimo tutorial de mapeamento de círculos e os combinou com o código vinculado nos comentários para impedir que coisas estranhas aconteçam quando R plota grandes círculos trans-equatoriais. Isso me dá o seguinte:

airports <- read.csv("/home/geoff/Desktop/DissertationData/airports.csv", header=TRUE) 
flights <- read.csv("/home/geoff/Desktop/DissertationData/ATL.csv", header=TRUE, as.is=TRUE)

library(maps)
library(geosphere)

checkDateLine <- function(l){
  n<-0
  k<-length(l)
  k<-k-1
  for (j in 1:k){
    n[j] <- l[j+1] - l[j]
  }
  n <- abs(n)
  m<-max(n, rm.na=TRUE)
  ifelse(m > 30, TRUE, FALSE)
}
clean.Inter <- function(p1, p2, n, addStartEnd){
  inter <- gcIntermediate(p1, p2, n=n, addStartEnd=addStartEnd)
  if (checkDateLine(inter[,1])){
    m1 <- midPoint(p1, p2)
    m1[,1] <- (m1[,1]+180)%%360 - 180
    a1 <- antipode(m1)
    l1 <- gcIntermediate(p1, a1, n=n, addStartEnd=addStartEnd)
    l2 <- gcIntermediate(a1, p2, n=n, addStartEnd=addStartEnd)
    l3 <- rbind(l1, l2)
    l3
  }
  else{
    inter
  }
}

# Unique months
monthyear <- unique(flights$month)

# Color
pal <- colorRampPalette(c("#FFEA00", "#FF0043"))
colors <- pal(100)

for (i in 1:length(monthyear)) {

png(paste("monthyear", monthyear[i], ".png", sep=""), width=750, height=500)
map("world", col="#191919", fill=TRUE, bg="black", lwd=0.05)

fsub <- flights[flights$month == monthyear[i],]
fsub <- fsub[order(fsub$cnt),]
maxcnt <- max(fsub$cnt)
for (j in 1:length(fsub$month)) {
  air1 <- airports[airports$iata == fsub[j,]$airport1,]
  air2 <- airports[airports$iata == fsub[j,]$airport2,]
  p1 <- c(air1[1,]$long, air1[1,]$lat)
  p2 <- c(air2[1,]$long, air2[1,]$lat)
  inter <- clean.Inter(p1,p2,n=100, addStartEnd=TRUE)
  colindex <- round( (fsub[j,]$cnt / maxcnt) * length(colors) )
  lines(inter, col=colors[colindex], lwd=1.0)
}
  dev.off()
}

Gostaria de automatizar a produção de mapas para um grande conjunto de dados contendo todas as rotas comerciais agendadas -dummy sample - compartilhado entre o ATL e outros aeroportos na rede global (airports.csv está vinculado na publicação Flowing Data). De preferência, eu produzia um mapa por mês que usaria como quadro em um pequeno vídeo que mostrava alterações no espaço da rede do aeroporto de Atlant

O problema Não consigo que o loop produza mais de um PNG - apenas do primeiro mês único em cada CSV - toda vez que o executo. Estou bastante certo de que o código de Aaron Hardin 'quebra' a automação, como é usada no tutorial Flowing Data. Depois de três dias mexendo com ele e perseguindo quaisquer instruções relevantes, percebo que simplesmente não tenho as costeletas para reconciliar um com o outro. Alguém pode me ajudar a automatizar o processo?

Há uma dissertação para voc

questionAnswers(1)

yourAnswerToTheQuestion