1
gWidgets Rライブラリを使用して衛星画像をダウンロードするGUIを構築しようとしています。その目的は、コンマ区切り値ファイルからURLを読み取ることです。 GUIは大丈夫だとは思うけど、私が期待していることはしていない。私は間違って何かをしています、どんな助けも大歓迎です。gWidgetsのgfilebrowseを使用してcsvを読む
Online.Access.URLs <- c("http://e4ftl01.cr.usgs.gov//MODIS_Composites/MOLT/MOD09A1.005/2000.02.18/MOD09A1.A2000049.h09v06.005.2006268183648.hdf",
"http://e4ftl01.cr.usgs.gov//MODIS_Composites/MOLT/MOD09A1.005/2000.02.26/MOD09A1.A2000057.h09v06.005.2006270065224.hdf",
"http://e4ftl01.cr.usgs.gov//MODIS_Composites/MOLT/MOD09A1.005/2000.03.05/MOD09A1.A2000065.h09v06.005.2006269234536.hdf")
Producer.Granule.ID <- c("MOD09A1.A2000049.h09v06.005.2006268183648.hdf",
"MOD09A1.A2000057.h09v06.005.2006270065224.hdf",
"MOD09A1.A2000065.h09v06.005.2006269234536.hdf")
df <- data.frame(Producer.Granule.ID,Online.Access.URLs)
write.csv(df,"C:\\GUI_test\\h09v06v3.csv",row.names=FALSE)
そして、これが私の試みです:
my.DownloadHDF <- function(){
library(gWidgets)
library(gWidgetstcltk)
library(RCurl)
options(guiToolkit = "tcltk")
win <- gwindow("Download HDF with R!", visible = FALSE)
csv.frame <- gframe("csv file ", container = win)
csv.label <- glabel("csv with HDF's names ", container = csv.frame)
csv.file.name <- gfilebrowse("Select csv file", type="open",cont=csv.frame,action="read.csv")
dir.frame <- gframe("Output Directory ", container = win)
dir.label <- glabel("Where to save HDF's? ", container = dir.frame)
dir.out <- gfilebrowse("Select folder ",type = "selectdir", cont=dir.frame)
dlw.frame <- gframe("Download ", container = win)
dlw.label <- glabel(" ", container = dlw.frame)
btnDwn <- gbutton("Start Download", container = dlw.frame,
handler = function(csv.file.name,dir.out){
df <- read.csv(csv.file.name, header=TRUE,sep=",")
hdf.urls <- df$Online.Access.URLs
hdf.urls <- as.character(hdf.urls)
hdf.names <- df$Producer.Granule.ID
hdf.names <- as.character(hdf.names)
for (i in 1:length(hdf.names)){
URL <- hdf.urls [i]
file <- hdf.names[i]
download.file(URL,paste(dir.out,file,sep=""),mode="wb")
cat(paste("Composite number ",i,"successfully downloaded!"),sep="\n")
cat("\n\n\n\n\n\n\n\n")
}})
visible(win) <- TRUE
}
my.DownloadHDF()
私はRStudio 0.98でR-3.2.2を使用しています。ここ
はサンプルデータです。 1103。
光沢を使うことを考えましたか? gWidgetsよりもシンプルに見えます。 – YCR
こんにちはYCR、あなたの答えに感謝します。私はRでGUIを作成している経験がありません。光沢のあるgWdigetsをすばやく見ていて、後者は直感的でした。私が作成したGUIは、特定のポイントまで作業を行いますが、問題は、関数にCSVファイルを読み込ませる方法がわからないということです。何か案が? – Shepherd
gWidgets2tcltkとShinyに問題がありました。多分今は固定されているかもしれない。それがうまくいけば、 'read.csv'はあなたの友人です。 'a = gfilebrowse(cont = w、handler = function(h、...)x << - read.csv(svalue(h $ obj)))'これはハンドラで呼び出すことができます。値が読み込まれます。そこにはいくつかのバリデーションがありますが、それを追加することができます。しかし、あらかじめ設定されたURLのリストから選択する場合は、gcomboboxも必要です。 – jverzani