Я пытаюсь загрузить и проанализировать файлы GeoTiff и извлечь из них буквенно-цифровые данные. Файлы представлены здесь:
https://www.wpc.ncep.noaa.gov/heatrisk/data.html
Файлы представляют собой категориальные прогнозы риска жары (например, «Высокий», «Очень высокий» и т. д.) в различных регионах штата Калифорния. Данные, которые мне нужны, — это проекции и географические идентификаторы (например, названия округов), связанные с каждой проекцией, а не растровые данные (на данный момент).
(Примечание: файлы .kml, представленные на странице данных, пусты, согласно переписке с NWS.)
Загрузка файлов .tif
Кажется, этот код работает:
#Load Packages
#install.packages("raster")
#install.packages("terra")
#install.packages("vapour")
library(raster)
library(httr)
library(terra)
#Read In GeoTiff Files
#Base URL
base_url <- https://www.wpc.ncep.noaa.gov/heatrisk/data/
#Function to Read in Files
download_heatrisk_geotiff <- function(day_number) {
url <- paste0(base_url, "?day = ", day_number)
response <- GET(url)
if (status_code(response) == 200) {
# Parse the TIFF content
tif_content <- content(response, "text")
# Save KML content to a file
writeLines(tif_content, paste0(getwd(), "/data/HeatRisk_", day_number, "_Mercator.tif"))
cat(paste0("Downloaded HeatRisk_", day_number, "_Mercator.tif\n"))
} else {
cat(paste0("Error downloading HeatRisk_", day_number, "_Mercator.tif\n"))
}
}
# Download .tif files for individual days
for (day in 1:7) {
download_heatrisk_geotiff(day)
}
Изображение загруженных файлов
Непонятно, что нужные мне данные находятся в скачанных файлах.
Извлечение данных
#Extract Data
geotiff_file <- raster(paste0(getwd(), "/data/HeatRisk_", day_number, "_Mercator.tif"))
geotiff_file2 <- terra::readValues(paste0(getwd(), "/data/HeatRisk_", day_number, "_Mercator.tif"))
geotiff_file3 <- vapour::vapour_read_raster(paste0(getwd(), "/data/HeatRisk_", day_number, "_Mercator.tif"))
Я уже просматривал эти страницы:
https://inbo.github.io/tutorials/tutorials/spatial_standards_raster/
R: чтение данных Geotiff прямо с URL-адреса веб-сайта (httr::GET необработанный контент)
Как прочитать файл GeoTIFF и вернуть определенный тип данных на языке R?
Спасибо!





Вы сделали два предположения относительно данных, на которые вы ссылаетесь, которые неверны:
Вот рабочий процесс, с которого можно хотя бы начать. Он предполагает загрузку соответствующих файлов .tif и запись их в каталог. Если вам нужны данные на уровне подштата и вы не можете найти источник, вы можете опубликовать новый вопрос о том, как создать эти данные, используя данные из этого примера.
library(terra)
library(httr)
#Base URL
base_url <- "https://www.wpc.ncep.noaa.gov/heatrisk/data/"
#Function to Read in Files
download_heatrisk_geotiff <- function(day_number) {
url <- paste0(base_url, "HeatRisk_", 1, "_Mercator.tif")
response <- GET(url)
if (status_code(response) == 200) {
r <- rast(response$url)
writeRaster(r, paste0(getwd(), "/data/HeatRisk_", day_number, "_Mercator.tif"),
overwrite = TRUE)
cat(paste0("Downloaded HeatRisk_", day_number, "_Mercator.tif\n"))
} else {
cat(paste0("Error downloading HeatRisk_", day_number, "_Mercator.tif\n"))
}
}
# Download .tif files for individual days
for (day in 1:7) {
download_heatrisk_geotiff(day)
}
# Load raster from directory
geotiff_file <- rast(paste0(getwd(), "/data/HeatRisk_", 1, "_Mercator.tif"))
# Returin metadata
geotiff_file
# class : SpatRaster
# dimensions : 1672, 2866, 1 (nrow, ncol, nlyr)
# resolution : 2539.703, 2539.703 (x, y)
# extent : -14326022, -7047233, 2475760, 6722144 (xmin, xmax, ymin, ymax)
# coord. ref. : WGS 84 / Pseudo-Mercator (EPSG:3857)
# source : HeatRisk_1_Mercator.tif
# color table : 1
# name : HeatRisk_1_Mercator
# min value : 0
# max value : 4
@DavidCrow - пожалуйста. Если вам нужны данные с более высоким пространственным разрешением, например. округ, не стесняйтесь задавать новый вопрос и отмечать меня в комментарии. Приятного кодирования.
Спасибо, @L Тайрон. Решающими шагами были
r <- rast(response$url)иgeotiff_file <- rast([local path]). Я также ценю разъяснения по поводу содержимого файлов. Вы абсолютно правы: именованных геоИД не существует.