में महान-सर्कल नक्शा उत्पादन को स्वचालित करना मैंने फ़्लोइंग डेटा great circle mapping tutorial में सीखा कुछ चीजें ली हैं और आर प्लॉट ट्रांस-इक्वेटोरियल महान सर्कल के दौरान अजीब चीज़ों को होने से रोकने के लिए टिप्पणियों में लिंक किए गए कोड के साथ संयुक्त किया है। यही कारण है कि मुझे देता है यह:आर
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()
}
मैं एक बड़ी सभी अनुसूचित वाणिज्यिक मार्गों युक्त डेटासेट के लिए नक्शे के उत्पादन स्वचालित करना चाहते हैं - dummy sample - (airports.csv जुड़ा हुआ है वैश्विक नेटवर्क में ATL और अन्य हवाई अड्डों के बीच साझा किया बहने वाले डेटा पोस्ट में)। अधिमानतः, मैं प्रति माह एक नक्शा तैयार करता हूं कि मैं अटलांटा एयरपोर्ट नेटवर्क स्पेस में बदलावों को दर्शाते हुए एक लघु वीडियो में फ्रेम के रूप में उपयोग करूंगा।
समस्या: मुझे प्रत्येक सीएसवी में केवल पहले अद्वितीय महीने से ही एक से अधिक पीएनजी उत्पन्न करने के लिए लूप नहीं मिल सकता-हर बार जब मैं इसे चलाता हूं। मैं काफी हद तक निश्चित हूं कि हारून हार्डिन का कोड ऑटोमेशन को 'ब्रेक' करता है क्योंकि इसका उपयोग फ़्लोइंग डेटा ट्यूटोरियल में किया जाता है। इसके साथ गड़बड़ करने के तीन दिन बाद और किसी भी प्रासंगिक आर का पीछा करते हुए, मुझे एहसास हुआ कि मुझे बस एक दूसरे के साथ मिलाने के लिए चॉप की कमी है। क्या कोई मुझे प्रक्रिया को स्वचालित करने में मदद कर सकता है?
इसमें आपके लिए एक शोध प्रबंध स्वीकृति है!
करने के लिए अपने कॉल में पूरा पथ और फ़ाइल नाम का उपयोग आप कोड का एक बहुत कुछ दिखा। * न्यूनतम * उदाहरण बनाने का प्रयास करें जो अभी भी काम नहीं करता है। उदाहरण के लिए, एक साधारण लूप बनाएं जो चार्ट की एक बहुत ही सरल श्रृंखला प्लॉट करता है। यहां तक कि सरल, प्रत्येक लूप को बस 'i' और 'monthyear [i]' के मान मुद्रित करने दें। मैं इस प्रक्रिया में शर्त लगाता हूं कि आपको त्रुटि मिल जाएगी। यदि नहीं, तो * न्यूनतम * उदाहरण पोस्ट करें और कोई आपकी मदद करने में सक्षम होगा। – Andrie
आप आउटपुट प्रारूप के रूप में 'पीडीएफ() 'का उपयोग कर सकते हैं और मुख्य लेबल के रूप में माहौल का उपयोग कर सकते हैं, इस तरह आपको अपने लूप में हर बार फ़ाइल आउटपुट कनेक्शन खोलने और बंद करने की आवश्यकता नहीं है। – mzuba
@mzuba हां, लेकिन फिर आपको प्रत्येक प्लॉट के लिए फ़ाइल की बजाय केवल एक ही पीडीएफ फ़ाइल मिलती है। – Andrie