Linux 使用NCK in for循环从多个netcdf文件中提取数据
我试图从netcdf文件中提取某些变量。 如果我将以下代码应用于单个文件,则它可以工作:Linux 使用NCK in for循环从多个netcdf文件中提取数据,linux,bash,netcdf,nco,Linux,Bash,Netcdf,Nco,我试图从netcdf文件中提取某些变量。 如果我将以下代码应用于单个文件,则它可以工作: ncks -C -F -d nj_u,151,152,1 ni_u,234,235,1 -v vel_u 20091208000001.nc testU.nc 另请参见问题:以获取解释。 现在,我想在几个具有以下名称的.nc文件上使用此代码: 20091208000001.nc 20091208000002.nc 20091208000003.nc 我尝试了以下循环: # !bin/bash for (
ncks -C -F -d nj_u,151,152,1 ni_u,234,235,1 -v vel_u 20091208000001.nc testU.nc
另请参见问题:以获取解释。
现在,我想在几个具有以下名称的.nc文件上使用此代码:
20091208000001.nc
20091208000002.nc
20091208000003.nc
我尝试了以下循环:
# !bin/bash
for ((x=1;x<=3;x+=1))
do
ncks -C -F -d nj_u,151,152,1 ni_u,234,235,1 -v vel_u 2009120800000$x.nc testU.nc
done
如何让循环一次只从一个文件中提取,然后将从所有文件中提取的输出附加到一个输出文件中?我看到脚本中有几个错误,但没有任何可能导致实际错误的内容
- shebang线不应包含空间,路径应为绝对路径
- 在条件的
条件的中有一个逗号,应该是分号
#!/bin/bash for ((x=1;x<=3;x+=1)) do ncks -C -F -d nj_u,151,152,1 ni_u,234,235,1 -v vel_u 2009120800000$x.nc testU.nc done
三次调用,每次调用一个文件。这个代码正在运行。看来还有别的事。您是在简化代码还是向我们展示完整的代码?我看到您的脚本中有几个错误,但没有任何可能导致您的实际错误- shebang线不应包含空间,路径应为绝对路径
- 在
中有一个逗号,应该是分号
#!/bin/bash for ((x=1;x<=3;x+=1)) do ncks -C -F -d nj_u,151,152,1 ni_u,234,235,1 -v vel_u 2009120800000$x.nc testU.nc done
三次调用,每次调用一个文件。这个代码正在运行。看来还有别的事。你是在简化你的代码还是给我们看完整的代码?我相信单词
被误认为是另一个文件名。在此之前,您需要另一个ni_,234235,1
如果您正在处理多个nc文件,您可能需要重命名-d
,以便它们不会重叠,或者您可以使用testU.nc
将它们连接到一个文件中。例如ncrcat
ncrcat -C -F -d nj_u,151,152,1 -d ni_u,234,235,1 -v vel_u 2009120800000?.nc testU.nc
我相信单词
被误认为是另一个文件名。在此之前,您需要另一个ni_,234235,1
如果您正在处理多个nc文件,您可能需要重命名-d
,以便它们不会重叠,或者您可以使用testU.nc
将它们连接到一个文件中。例如ncrcat
ncrcat -C -F -d nj_u,151,152,1 -d ni_u,234,235,1 -v vel_u 2009120800000?.nc testU.nc
@帕卡德在这两方面都是对的。此外,步幅1是默认值,因此不需要。因此
ncrcat-C-F-d nj_,151152-d ni_,234235-v vel_2009120800000${x}。nc testU${x}。nc@Packard在这两方面都是正确的。此外,步幅1是默认值,因此不需要。因此
ncrcat-C-F-d nj_,151152-d ni_,234235-v vel_2009120800000${x}.nc testU${x}.nc我根据我想要的尺寸(lat,lon)编辑了上面的代码 反馈是这样的: 提示:如果操作失败,请尝试多重标签 ()首先使用NCK包装尺寸, 然后将ncrcat应用于生成的文件
我根据我想要的尺寸(纬度、经度)编辑了上面的代码 反馈是这样的: 提示:如果操作失败,请尝试多重标签 ()首先使用NCK包装尺寸, 然后将ncrcat应用于生成的文件
对于每个循环迭代,将处理从2009120800001.nc到..3.nc的每个文件。所以它基本上是一次一个文件。这有什么问题吗?我不知道它应该起作用。这就是为什么我贴了它。我在输出中出现了4次此错误。对于每个循环迭代,从2009120800001.nc到..3.nc的每个文件都会被处理。所以它基本上是一次一个文件。这有什么问题吗?我不知道它应该起作用。这就是为什么我贴了它。我的输出中出现了4次这个错误。我纠正了错误,仍然是相同的错误。我使用bash namescript.sh运行它。@jellse我用获得的结果更新了我的答案。这是文件testing.sh中我的完整代码。该文件夹只有这三个文件和testing.sh文件。是否可能nco安装不正确?好的,我重新安装了它,仍然是相同的错误。我能想到的唯一一件事是,在我的计算机上的某个地方有另一个同名的文件,这就是为什么它很混乱。@jellse,在你的命令(
)前加echo ncks-C……
)并检查输出。在计算机中有其他同名文件不应该导致此错误。我更正了错误,仍然是相同的错误。我使用bash namescript.sh运行它。@jellse我用获得的结果更新了我的答案。这是文件testing.sh中我的完整代码。该文件夹只有这三个文件和testing.sh文件。是否可能nco安装不正确?好的,我重新安装了它,仍然是相同的错误。我能想到的唯一一件事是,在我的计算机上的某个地方有另一个同名的文件,这就是为什么它很混乱。@jellse,在你的命令(echo
)前加echo ncks-C……
)并检查输出。在计算机中有其他同名文件不应导致此错误。如果这是原因(顺便说一句,这是有道理的),那么在问题中提出的代码在循环外运行良好的说法将是错误的:-(@Poshi是的,我知道,它在前一天运行得很好,我没有看到-d丢失。从中吸取的教训…这就是我要求你重新运行命令的原因,我编写了你必须测试的确切命令,你只需剪切粘贴并检查语句是否正确。顺便说一句,如果能更正问题,使答案有意义,那将很好。我如果这就是原因(顺便说一句,这是有道理的),那么在问题中提出的代码在循环外运行良好的说法将是错误的:-(@Poshi是的,我知道,它在前一天运行得很好,我没有看到-d丢失。吸取的教训…这就是我要求你重新运行命令的原因,我编写了你必须测试的确切命令,你只需剪切粘贴并检查语句是否正确。顺便说一句,如果能更正这个问题,让答案有意义,那将非常好。echo
ncrcat -C -F -d nj_u,151,152,1 -d ni_u,234,235,1 -v vel_u 2009120800000?.nc testU.nc