问题标签 [netcdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 当我没有超级用户权限时在 R 上安装“ncdf”
我可以访问一台我没有超级用户权限的超级计算机。这台机器有 netcdf 版本 3 和 4 可用,但我不知道它是否有 R 安装所需的开发库ncdf
。我通常用它来运行并行化的 R 代码。通常我可以将软件包安装到个人库中,效果很好。例如:
我需要这个ncdf
包,但是我无法安装它,因为机器找不到一些ncdf
依赖的netcdf库。这台机器有 netcdf 版本 3 和 4 可用,但我不知道它是否有 R 安装所需的开发库ncdf
,也不知道如何检查。我正在努力争取截止日期,不幸的是管理员无法帮助我解决问题。
这是我尝试安装时发生的情况ncdf
:
...(切)
...(切)
有人知道我可以做些什么来使 R 能够找到所需的库吗?
另外,请注意,我更喜欢使用ncdf
它ncdf4
(为了与现有代码兼容)。但是,当我尝试安装时ncdf4
,我收到以下错误消息,这可能具有指导意义:
显然系统找不到“nc-config”。(我自己找不到)。
任何关于我可以做什么,或者我可以要求超级用户为我做什么的建议,将不胜感激。
fedora - 如何在 Red Hat 6 中安装 netcdf-openmpi-devel
我需要在 Red Hat 6 上安装 netcdf-openmpi-devel。问题是我拥有的存储库没有提供这个:redhat 和 epel。我已经尝试下载几个fedora rpm,但是对于几乎所有的,都无法验证它们的密钥(执行rpm -K 包)。我能够为其中一个 rpm 获得一个密钥,但随后它表明我没有所需的依赖项,例如:
netcdf-openmpi,这就是我想要安装的。
还有另一种安装方法吗?
谢谢你的帮助!
r - 你将如何加快这段代码的速度?降低 netcdf 数据的分辨率,然后将其转换为 xyz 格式以进行统计
我正在获取玉米产量和收获面积的 netcdf,将分辨率从 2.5 弧分缩小到 0.5 度,然后将整个数据转换为 XYZ 格式,这样我就可以更轻松地与我的数据“对话”有这种格式。(我想我可以将其他数据转换为矩阵形式,但我喜欢 xyz。)
数据在这里。
下面的代码定义了一些函数来计算收获面积和平均产量的总产量,然后它在查询 netcdf 时使用一些“馈线”数据,然后它使用 plyr 循环通过馈线,提取数据,应用函数,然后保存在 xyz 中。它可以工作,但只运行其中一个文件大约需要 30 分钟,而且我有 100 多个。任何有关优化此代码的方法的建议都会很棒。提取更大的数据块并将函数应用于它们会更快吗?就像,也许是地球的整个条纹?我怎么会先验地知道这是否会更快?
提前致谢。
windows - Windows 上 Perl 的 NetCDF
我正在帮助我们的一位学生在 Windows 7(64 位)上使用 NetCDF 文件进行一些数据访问。我们拥有首选语言 (Perl) 的绑定,但找不到预构建的 NetCDF 库二进制文件,或者找不到将它放在哪里以便 Perl 可执行文件可以找到它。有人有任何开始的面包屑吗?我们希望避免为此目的加载整个 Cygwin GCC 堆栈;实际上,我们需要的只是一个 DLL 和正确放置它的位置的知识。
TIA,
读写
r - 批量读取netcdf文件并平均一个变量
我是新的 R 用户。我现在有 1979 年的每日 netcdf 数据,例如:
sm19790101.1.nc
sm19790102.1.nc
。
.
.
sm19791231.1.nc
我需要将一个名为“sm”的变量平均到每月分辨率。我现在可以这样做:
将所有 1 月数据移植到 jan,但我不知道如何打开每个文件并获取特定变量(我已经安装了 Rnetcdf 包)。如果我要手动执行此操作,则应该是:
然后平均它们...
我想问题是如何读取带有变量(例如 01-31)的文件作为文件名的一部分,然后循环整个月。
c++ - 使用主要是 NaN 创建 NetCDF 文件
我正在创建一个主要包含 NaN 值的 NetCDF 文件。有没有办法可以指定它被压缩而不是占用大量磁盘空间?我正在使用 University Corporation for Atmospheric Research C++ NetCDF 库。
谢谢!
python - 使用 NetCDF 文件中的数据加载 PostgreSQL 数据库
我有一个包含八个变量的 netCDF 文件。(对不起,不能分享实际文件)每个变量都有两个维度,时间和站点。时间大约是 14 步,车站目前有 38000 个不同的 id。因此,对于 38000 个不同的“位置”(实际上只是一个 id),我们有 8 个变量和 14 个不同的时间。
需要将此数据加载到 PostGres 数据库中,以便将数据连接到与 station_name 匹配的某些几何图形,以便以后进行可视化。
目前我已经在 Python 中使用 netCDF4 模块完成了这项工作。工作,但它需要永远!现在我像这样循环:
这需要在我的机器上运行几分钟,我觉得它可以以更聪明的方式完成。
任何人都知道如何以更智能的方式完成此操作?最好在 Python 中。
java - 使用 NetCDF Java 库读取 HDF5 数据集
我们在 HDF5 中获得了一些文件,其中包含数据集、表格数据,其中每一列都被命名并且可能是不同的数据类型(例如字符串类型的“作者”、无符号整数类型的“计数”等)我能找到的用于阅读 HDF5 的唯一纯 Java(即非 JNI)库是 NetCDF。
看来我可以使用 NetCDF 从 HDF5 数据集中读取单列数据Variable
。但是有没有办法从数据集中读取整个数据表?NetCDF 的 HDF5 数据集是否仅仅是具有单维数组值的变量集合而不是表?
编辑:让我进一步解释。如果我在 HDFView 2.9 中打开一个 HDF5 文件,导航到“HDF5 复合数据集”项,然后选择“打开”,就会出现一个漂亮的小表格,其中“变量”显示为列标题,每一行都是由索引标记。例如,假设有一个整数 32 符号类型的“Foo”列和一个字符串类型的“Bar”列。
但是用于从这个“复合数据集”加载数据的 NetCDF API 似乎根本不像表格数据。我可以要求加载名为“Foo”的整个“变量”数组,并且“变量”似乎独立于“Bar”变量。这是否意味着“Foo”和“Bar”变量可以是不同长度的数组?
在表格中,我希望能够逐行访问事物。我可以说“给我一个包含第 5 行所有值的数组吗?” 好的,所以原始值和装箱等存在问题,但我可以要求返回整行的底层字节吗?我可以说“给我'Foo'列中第5行的值作为整数”吗?也许你说我真正想要请求的是“Foo”数组中的元素 5。所以我回到我原来的问题:问题 1.数据集的 NetCDF API 是否仅访问一组完全不相关的变量(可能具有单独的数组长度等),或者是否有一些 API 允许访问这个数据作为一个真实的表?
如果您仍然不了解表格视图和变量列表之间的区别,请考虑以下相关问题:问题 2.如何找到数据集表中的行数?我是否被迫迭代数据集中的所有变量并找到每个数组长度的最大值?
由于我正在查找变量的数组长度,这又带来了另一个问题:问题 3。如何在不读取整个数组的情况下找到数据集中变量的长度?如果我使用netCDFFile.findVariable("/some/path/dataset.variable").getSize()
,这只是返回值1
。直到我真正读取了整个数组(可能是很多兆字节!)netCDFVariable.read().getSize()
,我才得到正确的长度!没有更有效的方法吗?
答案:答案原来是对John Caron 答案的详细阐述。由于某种原因,每个变量(列)都认为它是可变长度的,即使它的父结构(数据集/表)是固定长度的。要以更表格的方式处理一组变量,请获取对父级Structure
(本身 a Variable
)的引用,并询问其大小。该Structure.getSize()
值将正确指示每个变量的长度——即使每个变量Variable.getSize()
都会返回1
。
python - 平均多个numpy数组时的总和不正确
我正在尝试从多个 numpy 数组中创建元素的平均值并对其进行数组。将两个数组加在一起(使用numpy.add()
或通过广播a1 + a2
)时,生成的总和似乎不正确。
代码
输出(目录中有两个数据文件)
我希望对于第一个文件,第一个数组的总和和运行总和应该相同。两个数据集中都没有负值,那怎么可能呢?
更新 1:
在尝试之后vals = np.copy(dataset.variables["vals"])
,它似乎已将缺失值传输为-999
,而其他初始化数组的方法并未发生这种情况。但是,它仍然产生不正确的总和:
更新 2:
Soooo ......当 netCDF 数据集中缺少值时,它似乎会netCDF4
自动创建一个掩码的 numpy 数组。执行 a 时np.zeros_like()
,将复制掩码值。这意味着我从我的第一个数据文件创建的零数组,尽管它具有相同数量的元素,但会使用该文件缺少数据的掩码创建。当掩码数组加在一起时,它们的掩码也会加在一起,这将给出不同的总和。
现在的问题是,
您如何有效地为给定的文件/日期范围创建累积掩码,而无需处理两次初始化所有数据?
xml - 远程 3D 和 4D 变量的 NcML 聚合?
NcML 可以用于聚合 3D 和 4D 网格吗?我不确定,因为它们的维度数量不同。例如海面高度 (ssh) 和水温,其中 ssh 有三个维度 [time, lat, lon] 而 temp 有四个维度 [time, depth, lat, lon]?我的测试没有成功,所以我的直觉是我必须将 3D 和 4D 变量分成单独的目录。但我希望其他人可能有其他建议?
虽然我尝试在下面的代码段中使用“联合”聚合,但由于 3D 变量从 2008 年 12 月 28 日开始,而 4D 变量从 2008 年 5 月 8 日开始,因此没有正确映射时间维度:
然后我在“时间”维度上尝试了“joinExisting”聚合,但这仅在数据集每个包含相同变量(它们不包含)时才有效。根据我在聚合中首先列出的数据集,以下示例中会排除 3D 或 4D 变量:
那么,有没有办法聚合这些数据集呢?我必须将 3D 和 4D 变量分开吗?
谢谢!John Maurer 太平洋岛屿海洋观测系统 (PacIOOS) 夏威夷大学马诺阿分校