Как читать файлы.HGT в R

Я пытаюсь прочитать данные высот из НАСА, хранящиеся в файлах.HGT, в R. Я проверил rgdal библиотека, но, видимо, не читает этот тип файла.

пс. Сообщество Stack Overflow показывает, как читать этот тип файлов в Python и C++, но я искал чисто R-решение.

Дополнительная информация о топографических данных в файлах.HGT:

В 2014 году во всем мире были опубликованы топографические данные, полученные с помощью миссии топографии шаттла Radar (SRTM) НАСА. Разрешение данных SRTM для регионов за пределами США составляет 1 угловую секунду или около 30 метров (98 футов). Вы можете прочитать больше информации здесь и скачать данные здесь.

В настоящий момент доступны данные по следующим регионам мира:

Вот описание с www2.jpl.nasa.gov/srtm/faq.html:

Файлы данных SRTM имеют такие имена, как "N34W119.hgt". Что означают буквы и цифры и что такое формат ".hgt"?

Каждый файл данных охватывает один градус широты и один градус долготы поверхности Земли. Первые семь символов обозначают юго-западный угол блока, где N, S, E и W означают север, юг, восток и запад. Таким образом, файл N34W119.hgt охватывает широты 34–35 северной широты и 118–119 западной долготы (этот файл включает центр Лос-Анджелеса, Калифорния). Расширение имени файла.hgt просто означает слово "высота", что означает повышение. Это НЕ тип формата. Эти файлы представлены в "сыром" формате (без заголовков и без сжатия), 16-разрядные целые числа со знаком, высота, измеренная в метрах над уровнем моря, в "географической" (массив широты и долготы) проекции, с пропусками данных, обозначенными -32768., Международные файлы с тремя дугами-секундами имеют 1201 столбец и 1201 строку данных с общим размером файла 2 884 802 байта ( = 1201 x 1201 x 2). В Соединенных Штатах файлы длиной 1 дуга-секунда содержат 3601 столбец и 3601 строку данных с общим размером файла 25 934 402 байта ( = 3601 x 3601 x 2). Для получения дополнительной информации прочитайте текстовый файл "SRTM_Topo.txt" по адресу http://edcftp.cr.usgs.gov/pub/data/srtm/Readme.html

1 ответ

Решение

Ответ довольно прост, используя raster пакет (благодаря комментариям @Pascal и @hrbrmstr). rgdal Пакет должен быть установлен также.

# Load libraries
  library(raster)
  library(rgdal)

# read file
  elevation <- raster("S23W044.hgt") 
# view image
  image(elevation)
Другие вопросы по тегам