2017-10-04 636 views
0

我想从FTP服务器上承载的大型NetCDF文件中提取一个变量。一个很好的选择是使用wget逐个下载文件,使用ncks获取我想要的新变量.nc中的变量并删除原始文件。但是,原始.nc文件很大,需要一段时间才能下载它们。在NCO中使用带有大数据集的NCKS并更改文件名

我想使用NCO的能力来使用FTP服务器上的文件作为输入文件,但我无法找到合适的*wget cyg05*.nc中的翻译。

这里是我很感兴趣的一个文件夹:ftp://podaac.jpl.nasa.gov/allData/cygnss/preview/L1/v1.1/2017/077/

我只想跟踪实际文件名的前5个字符,并且不关心的其余部分。我曾尝试:

for i in `seq 77 1 257`; 
    do 
     if [ $i -ge 10 ] && [ $i -lt 100 ]; then 
      for j in `seq 1 1 8`; 
       do 
        ncks -l . ftp://podaac.jpl.nasa.gov/allData/cygnss/preview/L1/v1.1/2017/0$i/cyg0$j'......'.nc 2017_Day_0$i_Spacecraft_0$j.nc 
       done 
     fi 
    done 

我也试图通过*??????但没有任何运气更换'......',该文件无法识别。我知道NCO的帮助,特别是这一部分:http://nco.sourceforge.net/nco.html#Large-Numbers-of-Files,但我不确定我了解那里描述的解决方案。

我在MacOS 10.11.6上。

回答

1

通配符(“*”和“?”)与本地文件上的NCO一起使用,并且通过SSH协议,但不通过FTP协议。 wget比NCO更聪明,并且可以通过FTP协议来存储文件。基本上NCO需要知道完整的文件名才能通过FTP协议工作。所以使用wget方法可能最简单。即使NCO通过FTP工作,它仍会下载整个文件,因此不会比wget更快。

+0

感谢您的解释@Charlie Zender!知道它不会比'wget'更快也是有帮助的。顺便说一句,感谢您开发NCO的所有伟大工作! –

相关问题