Похоже, что вы используете ncdf
пакет в R. Если вы можете, я рекомендую использовать обновленный ncdf4
пакет, который основан на NetCDF версии UniData в 4 библиотеки (link).
Обратно к проблеме. Я использую пакет ncdf4
, но я думаю, что пакет ncdf
работает одинаково. Когда вы вызываете функцию get.var.ncdf
, вам также необходимо явно указать имя переменной, которую вы хотите извлечь. Я думаю, вы можете получить имена переменных, используя names(test$var)
.
Так что вам нужно сделать что-то вроде этого:
# Open the nc file
test = open.ncdf("rr_0.25deg_reg_1980-1994_v8.0.nc")
# Now get the names of the variables in the nc file
names(test$var)
# Get the data from the first variable listed above
# (May not fit in memory)
data = get.var.ncdf(test,varid=names(test$var)[1])
# If you only want a certain range of data.
# The following will probably not fit in memory either
# data = get.var.ncdf(test,varid=names(test$var)[1])[1:464,1:201,1:365]
Для вашей проблемы, вам нужно будет заменить varid=names(test$var)[1]
выше varid='VARIABLE_NAME'
, где VARIABLE_NAME
является переменной вы хотите извлечь.
Надеюсь, что это поможет.
EDIT:
Я установил ncdf
пакет на моей системе, и приведенный выше код работает для меня!
Хм, он говорит, что имя моей переменной - «rr». Я положил его так, как data = get.var.ncdf (test, varid = "rr" (test $ var) [1]) [1: 464,1: 201,1: 365] Но он не работает. Я тупой? – burton030
Извините, мой код, должно быть, был немного запутанным - вам не нужна '(test $ var) [1]' part! Попробуйте следующее: 'get.var.ncdf (test, varid =" rr ") [1: 464,1: 201,1: 365]' – ialm
Кроме того, я рекомендую сначала попробовать 'get.var.ncdf (test, varid = "rr") 'без' '[1: 464,1: 201,1: 365]', чтобы убедиться, что ваши измерения ([long, lat, time]) верны! – ialm