Я пытаюсь загрузить файл .tif из github, используя этот код:
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» Ошибка в 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» Дополнительно: Предупреждающее сообщение: В 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 предыдущая проблема была решена.
Однако, когда я загружаю файл, он не в исходном размере. Он увеличивается с 8,5 МБ при загрузке вручную с github до ~ 85 КБ при использовании исправленной версии кода выше:
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
, как вы можете себе представить, это не работает.
@MrFlick Это решает проблему! хотя я столкнулся с новой проблемой. При загрузке .tif я не могу прочитать его в r с помощью raster
, потому что это cannot create a rasterlayer from this
. Вдобавок ко всему, при загрузке он весит всего 8,5 КБ, а исходный файл при загрузке с github составляет 8,5 МБ. Почему это может происходить? и решение первой проблемы.
Ваш URL по-прежнему неверен. 84 КБ, которые вы загружаете, — это html страницы GitHub, а не сам двоичный файл. Тебе нужно:
if (!file.exists(file.path("data", file1))) {
download.file(paste0("https://raw.githubusercontent.com/lime-n/data/main/", file1),
file.path("data", file1), mode = "wb")
}
#. trying URL 'https://raw.githubusercontent.com/lime-n/data/main/modis_mcd12q1_umd_2010.tif'
#> Content type 'application/octet-stream' length 8791730 bytes (8.4 MB)
#> downloaded 8.4 MB
Кажется, вы дважды вставляете имя файла «modis_mcd12q1_umd_2010.tif» в URL-адрес. Вы имели в виду просто
paste0("https://github.com/lime-n/data/blob/main/", file1)
?