Загрузка с github возвращает «404 не найдено» плюс неправильный размер загрузки

Я пытаюсь загрузить файл .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, как вы можете себе представить, это не работает.

Кажется, вы дважды вставляете имя файла «modis_mcd12q1_umd_2010.tif» в URL-адрес. Вы имели в виду просто paste0("https://github.com/lime-n/data/blob/main/", file1)?

MrFlick 18.12.2020 20:36

@MrFlick Это решает проблему! хотя я столкнулся с новой проблемой. При загрузке .tif я не могу прочитать его в r с помощью raster, потому что это cannot create a rasterlayer from this. Вдобавок ко всему, при загрузке он весит всего 8,5 КБ, а исходный файл при загрузке с github составляет 8,5 МБ. Почему это может происходить? и решение первой проблемы.

Lime 18.12.2020 20:42
Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
811
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш 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

Другие вопросы по теме