Как преобразовать спроектированный файл netcdf в растр для построения графиков в R - PullRequest
0 голосов
/ 01 июля 2019

У меня есть netcdf-файл с ударами молнии, который содержит переменные для x, y и Lat Lon. Система координат для данных xy - albers_conical_equal_area, и есть ряд дополнительных переменных: ложное восточное, ложное северное и т. Д.идти вместе с проекцией.Я хотел бы преобразовать файл в растр, и мне нужно заполнить параметр crs.Мне бы хотелось, чтобы растр отображался в проецируемом формате, но я не знаю, как правильно отформатировать запись crs.

Возможно ли это даже (растр работает только с данными по широте?)

Если это так, как мне преобразовать информацию в файле netcdf для работы с параметром crs в команде растра.

Я пытался получить атрибуты из файла netcdf, но не ясно, как их использовать.

Я использовал приведенный ниже код для получения атрибутов из переменной crs, но...

grid_mapping_name <- ncatt_get(lightning, "crs", "grid_mapping_name")
standard_parallel <- ncatt_get(lightning, "crs", "standard_parallel")
longitude_of_central_meridian <- ncatt_get(lightning, "crs", 
"longitude_of_central_meridian")
latitude_of_projection_origin <- ncatt_get(lightning, "crs", 
"latitude_of_projection_origin")
false_easting <- ncatt_get(lightning, "crs", "false_easting")
false_northing <- ncatt_get(lightning, "crs", "false_northing")

Я не уверен, как применить эту информацию к растровой команде

strikes <- raster(t(lightning.array)
        , xmn=min(x)
        , xmx=max(x)
        , ymn=min(y)
        , ymx=max(y)
        , crs=CRS("missing code here ")
)

Файл, который я использую, - это один день молниеносных ударов по США.и я предполагаю импортировать много этих файлов, чтобы агрегировать забастовки в интересующей области за целый год, поэтому я хотел бы сначала выяснить проблему проекта в этом файле.

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Я бы сделал

library(raster)
b <- brick("file.nc")

Это должно делать все, о чем вы просите, и даже больше.

0 голосов
/ 01 июля 2019

Используйте proj4string

Попробуйте CRS("+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs").

То, что вы ищете, называется proj4string, то есть строка символов, которая кодирует систему координат координат ваших точек.

Например, CRS("+proj=longlat +datum=WGS84") - это объект CRS в пакете sp с proj4string из "+ proj = longlat + datum = WGS84" . Это знакомый long / lat CRS, в который входит много данных.

Ваши данные находятся в конической равной области Альберса, для которой мне пришлось поискать в Google. Вот что я сделал для дальнейшего использования. Я гуглил "albers_conical_equal_area proj4string", что привело меня сюда . Затем я взял строку proj4. Вот и все!

...