Преобразование файлов .adf в NetCDF

У меня есть набор файлов .adf, содержащих пространственно распределенные данные. Файлы выглядят так:

dblbnd.adf
hdr.adf
metadata.xml
prj.adf
sta.adf
w001001.adf
w001001x.adf

Я могу прочитать большой файл (w001001.adf) в R как растр. Это растровые характеристики:

class      : RasterLayer 
dimensions : 1692, 3611, 6109812  (nrow, ncol, ncell)
resolution : 6, 6  (x, y)
extent     : -10833.68, 10832.32, -4713.677, 5438.323  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : C:/Users/ahsa361/Documents/CEDS_Data/gridding-preprocessing/input/Corbett/w001001.adf 
names      : w001001 
values     : 0, 5637.337  (min, max)

Я хотел бы преобразовать это в NetCDF с размерами 180 градусов широты. х 360 град долгота. с разрешением 0,5 град. Как мне это сделать?


person hahsan1    schedule 04.03.2021    source источник
comment
Я не понимаю, почему вы говорите, что это не похоже на регулярные значения долготы и широты. Какого регулярного вы ожидаете?   -  person IRTFM    schedule 04.03.2021
comment
Я имею в виду, что я хотел бы, чтобы это было в 180 градусов широты x 360 градусов в длину с разрешением 0,5 градуса. Размеры растра, который я разместил, не соответствуют этому. (я отредактировал пост)   -  person hahsan1    schedule 04.03.2021


Ответы (1)


У вас есть экстент, который не соответствует вашей системе отсчета координат

#extent     : -10833.68, 10832.32, -4713.677, 5438.323  (xmin, xmax, ymin, ymax)
#crs        : +proj=longlat +datum=WGS84 +no_defs 

Без дополнительной информации на самом деле невозможно помочь вам много. Скорее всего, crs неправильный, и вам нужно заменить его правильным. Вы установили неправильное значение? (это самая распространенная причина этой проблемы). Если вы знаете, что это должно быть, вы можете установить это так

 crs(x) <- "correct crs definition"

Также возможно, что экстент неправильный, и вы также можете установить правильное значение. Но судя по тому, что вы говорите, вы не знаете, поэтому вам нужно выяснить эти вещи, прежде чем мы сможем помочь с как решить вашу проблему.

Чтобы получить глобальный экстент и разрешение, близкое к 0,1 градуса, вы можете сделать

 extent(x) <- c(-180,180,-90,90)

Учитывая количество строк и столбцов, которые у вас есть, это даст вам:

library(raster)
raster(nrow=1692, ncol=3611)
#class      : RasterLayer 
#dimensions : 1692, 3611, 6109812  (nrow, ncol, ncell)
#resolution : 0.09969538, 0.106383  (x, y)
#extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
#crs        : +proj=longlat +datum=WGS84 +no_defs 
person Robert Hijmans    schedule 04.03.2021
comment
Спасибо @Robert Hijmans за вклад. Я не модифицировал ни один из файлов, поэтому странно, что у них несовместимые атрибуты. Я полагаю, что они были первоначально визуализированы из ячеек сетки 0,1 ° x 0,1 °, разрешенных глобально и содержащих одну переменную. Это как-то помогает? - person hahsan1; 04.03.2021
comment
см расширенный ответ - person Robert Hijmans; 04.03.2021