繁体   English   中英

无法使用R从NetCDF文件中提取chlor_a值

Can't extract chlor_a values from NetCDF file using R

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

并感谢您的帮助!

我正在尝试使用R软件从NetCDF文件中获取叶绿素a值,但我得到的只是缺少值,NA。 我想知道我是在做错什么,还是文件确实只是缺少叶绿素a值。 我可以使用此方法获取经度和纬度值。

我正在使用的文件是从这里https://oceandata.sci.gsfc.nasa.gov/MODIS-Aqua/Mapped/Monthly/4km/chlor_a/ ,我从任何我尝试过的文件中都丢失了值,不仅尝试了显示在脚本上。

require(rgdal)
require(maptools)
require(raster)
require(sp)
require(rorwr)
require(RNetCDF)

clorofila<- "C:\\Users\\User\\Desktop\\files\\A20172132017243.L3m_MO_CHL_chlor_a_4km.nc"

cla <- open.nc(clorofila)

print.nc(cla)
file.inq.nc(cla)

clor <- var.get.nc(cla,"chlor_a",start=c(1,1),count=c(8640,4320))
Long <- var.get.nc(cla,"lon")
Lat <- var.get.nc(cla, "lat")

使用ncdf4和raster我得到了相同的结果

require(ncdf4)

clorofila10<- "C:\\Users\\User\\Desktop\\files\\A20172132017243.L3m_MO_CHL_chlor_a_4km.nc"

nc <- nc_open(clorofila10)

val <- ncvar_get(nc, "chlor_a")
nc_close(nc)

光栅

require(raster)
clorofila10<- "C:\\Users\\User\\Desktop\\files\\A20172132017243.L3m_MO_CHL_chlor_a_4km.nc"
clacla<-raster(clorofila10)
CHL1 <- raster(clorofila10, varname="chlor_a")
names(CHL1) <- 'chlor_a'

z <- getValues(CHL1)

非常感谢你的一切!

最好的祝福

2 个回复

使用ncdf4读取数据没有问题。 有很多NA,但不仅如此。 这是此类数据的特征:您具有一个相对于地球的矩阵,但具有沿海叶绿素浓度的数据。

tempF <- tempfile()
download.file('https://oceandata.sci.gsfc.nasa.gov/cgi/getfile/A20172132017243.L3m_MO_CHL_chlor_a_4km.nc', tempF)

library(ncdf4)
ncF <- nc_open(tempF)
val <- ncvar_get(ncF, "chlor_a")
nc_close(ncF)

> length(val)
[1] 37324800

> sum(is.na(val))
[1] 20985329

library(raster)
plot(raster(t(val)))

在此处输入图片说明

该文件具有值。 您可以看到像这样:

library(raster)
r <- raster("A20172132017243.L3m_MO_CHL_chlor_a_4km.nc", var="chlor_a")
plot(r)
cellStats(r, mean)
#[1] 0.4608675

或者像这样

 freq(round(r/10))
#  value    count
# [1,]     0 16110852
# [2,]     1   190403
# [3,]     2    24723
# [4,]     3     6790
# [5,]     4     3064
# [6,]     5     1666
# [7,]     6      821
# [8,]     7      524
# [9,]     8      349
#[10,]     9      209
#[11,]    10       70
#[12,]    NA 20985329

要么

summary(r)
1 使用 R 从另一个 nc 文件中提取基于 netcdf 文件的值的网格单元

我想从 MERRA2 netcdf 文件中提取网格单元,这些文件仅用 R 标记为 sea: 然而,由于土地区域下边界的弯曲性质,部分土地区域在我的选择范围内。 我想选择离陆地最近的海域区域,但是我的选择中有些陆地区域要过滤掉。 我有另一个 nc 文件,其中包含陆地和海洋区域的分数,我知道可以 ...

2 从R中的NetCDF文件中提取所有级别

我试图从R中的特定NetCDF文件中提取所有级别。我可以通过将每个级别提取为一行代码然后将它们组合为数据帧来手动执行此操作。 但是,当我有很多文件时,这很长。 是否可以在一个文件中提取所有43个图层? 我使用过如何使用光栅包从netcdf文件中提取所有级别? 并以R中的级别绘制net ...

3 从R中的netcdf文件中提取复杂变量

对于netcdf文件的每个单元格,我试图在温度保持超过给定水平(在“temp”对象中的35到49之间)时提取最大时间长度。 文件链接在这里 , 这里有变量名称的完整描述。 我只设法导入文件并检索一些变量,但是当涉及基于单元格和临时级别的提取时,我完全丢失了。 打开NetCDF文件 ...

2019-04-19 20:44:18 0 12   r/ netcdf4
4 如何从R中的netcdf文件中提取降水数据?

我正在尝试从从cordex气候模型下载的netcdf文件中提取降水数据。 我应用了以下代码: 我得到了这个数据: 在这里,我需要获取行号为 1826 的数据。 我在这里上传了 20 mb 大小的 nc 文件: https://easyupload.io/ch55ic ...

2020-12-19 14:54:50 1 53   r/ netcdf
5 使用 netCDF4 使用 Python 从 NETCDF 文件中提取名称

我一直在摆弄 netCDF4 包一段时间,无论我尝试什么,我都无法加载变量名称。 我会告诉你我的意思。 我写的简单代码如下: 控制台上的输出是: 如您所见,变量“variables0”有一个名为 name 的属性,它应该输出 u。 我想为每个变量(u、v、rho、p 等)检索此信息。 但是, ...

7 使用python从netCDF文件中提取数据

不幸的是,我对 python 很陌生,目前没有时间深入挖掘,所以我无法理解和解决 python 控制台的错误显示。 我正在尝试使用此代码从多个位置的多个 netCDF 文件中提取数据: #this is for reading the .nc in the working folder import ...

8 如何从R中的netCDF文件中提取变量名?

我在R中编写一个函数来从netCDF文件中提取一些空气质量建模数据。 我安装了包“ncdf”。 为了让其他用户或我自己选择从netCDF文件中提取哪些变量,我想提取文件中所有变量的名称,这样我就可以在一个简单的列表中而不仅仅是print.ncdf()该文件提供了太多信息。 这有什么办法 ...

9 从 netCDF 中提取某些值

我有一个 3 维的 netCDF 文件。 第一个维度是经度,从 1 到 464。 第二个维度是纬度,从 1 到 201。 第三维是时间,从 1 到 5479。 现在我想从文件中提取某些值。 我认为可以用 start 参数处理它。 我试过这个命令。 但不知何故它不起作用。 有人有解决方案吗? ...

10 使用R从netcdf提取SST值

我想使用R软件从Netcdf文件中提取SST值。 我从“ https://podaac.jpl.nasa.gov/dataset/OISST_HR_NRT-GOS-L4-MED-v2.0 ”下载了温度数据。 我需要提取特定区域中的温度值(经度在-2和10之间;纬度在35-40之间),并按年份 ...

2018-04-19 19:27:40 1 158   r
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM