Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用NCK in for循环从多个netcdf文件中提取数据_Linux_Bash_Netcdf_Nco - Fatal编程技术网

Linux 使用NCK in for循环从多个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 (

我试图从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 ((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
    被误认为是另一个文件名。在此之前,您需要另一个
    -d

    如果您正在处理多个nc文件,您可能需要重命名
    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
    被误认为是另一个文件名。在此之前,您需要另一个
    -d

    如果您正在处理多个nc文件,您可能需要重命名
    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……
    )前加
    echo
    )并检查输出。在计算机中有其他同名文件不应该导致此错误。我更正了错误,仍然是相同的错误。我使用bash namescript.sh运行它。@jellse我用获得的结果更新了我的答案。这是文件testing.sh中我的完整代码。该文件夹只有这三个文件和testing.sh文件。是否可能nco安装不正确?好的,我重新安装了它,仍然是相同的错误。我能想到的唯一一件事是,在我的计算机上的某个地方有另一个同名的文件,这就是为什么它很混乱。@jellse,在你的命令(
    echo ncks-C……
    )前加
    echo
    )并检查输出。在计算机中有其他同名文件不应导致此错误。如果这是原因(顺便说一句,这是有道理的),那么在问题中提出的代码在循环外运行良好的说法将是错误的:-(@Poshi是的,我知道,它在前一天运行得很好,我没有看到-d丢失。从中吸取的教训…这就是我要求你重新运行命令的原因,我编写了你必须测试的确切命令,你只需剪切粘贴并检查语句是否正确。顺便说一句,如果能更正问题,使答案有意义,那将很好。我如果这就是原因(顺便说一句,这是有道理的),那么在问题中提出的代码在循环外运行良好的说法将是错误的:-(@Poshi是的,我知道,它在前一天运行得很好,我没有看到-d丢失。吸取的教训…这就是我要求你重新运行命令的原因,我编写了你必须测试的确切命令,你只需剪切粘贴并检查语句是否正确。顺便说一句,如果能更正这个问题,让答案有意义,那将非常好。
    ncrcat -C -F -d nj_u,151,152,1 -d ni_u,234,235,1 -v vel_u 2009120800000?.nc testU.nc