【发布时间】:2021-03-29 10:56:47
【问题描述】:
我正在尝试使用以下代码从 github 下载 .tif 文件:
file1 <- "modis_mcd12q1_umd_2010.tif"
dir.create("data", showWarnings = FALSE)
if (!file.exists(file.path("data", file1))) {
download.file(paste0("https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tif", file1),
file.path("data", file1), mode = "wb")
}
但是,它返回此错误:
尝试 URL 'https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tifmodis_mcd12q1_umd_2010.tif' 下载文件中的错误(paste0(“https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tif”,: 无法打开 URL 'https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tifmodis_mcd12q1_umd_2010.tif' 另外:警告信息: 在 download.file(paste0("https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tif", : 无法打开 URL 'https://github.com/lime-n/data/blob/main/modis_mcd12q1_umd_2010.tifmodis_mcd12q1_umd_2010.tif':HTTP 状态为 '404 Not Found'
有什么办法可以克服吗?
编辑:
感谢@MrFlick,之前的问题解决了。
但是,当我下载文件时,它不是原始大小。当使用上述代码的更正版本时,它从 github 手动下载时的 8.5mb 变为 ~85kb:
if (!file.exists(file.path("data", file1))) {
download.file(paste0("https://github.com/lime-n/data/blob/main/", file1),
file.path("data", file1), mode = "wb")
}
我尝试将其读入raster,正如您想象的那样,它不起作用。
【问题讨论】:
-
您似乎将“modis_mcd12q1_umd_2010.tif”文件名粘贴到 URL 中两次。你是说
paste0("https://github.com/lime-n/data/blob/main/", file1)吗? -
@MrFlick 解决了这个问题!虽然,我遇到了一个新问题。在下载 .tif 时,我无法使用
raster将其读入 r,因为它是cannot create a rasterlayer from this。最重要的是,下载时只有8.5kb,而从github下载的原始文件是8.5mb。为什么会发生这种情况?以及第一个问题的解决方案。