【问题标题】:How do I convert NetCDF to .grd?如何将 NetCDF 转换为 .grd?
【发布时间】:2021-02-23 14:18:29
【问题描述】:

我有几个 NetCDF 文件,我想以编程方式转换为 Surfer 6 的“.grd”格式。

NetCDF 的 java library 只能转换为 NetCDF,我似乎也无法让 CDO 与 Cydwin 一起正常运行。

如何在 java 中转换这些文件(但使用 Windows,没有 Cydwin,...)?

【问题讨论】:

    标签: java netcdf netcdf-java


    【解决方案1】:

    我还没有找到直接处理文件的 java 库,但是有一种方法可以(间接)在 java 中执行此操作:

    The Generic Mapping Tools 可以在 Windows 中通过命令行来转换所述文件。

    安装很简单:从例如下载他们的 exe。 github 并运行它。这将安装所需的一切并设置必要的环境变量(必须在安装过程中打勾)。

    之后可以通过短命令在cmd 中运行转换,例如:

    gmt grdconvert in.nc out.grd=sf -V
    

    自动检测输入格式(在我的例子中是 NetCDF)。 sf(“Golden Software Surfer 格式 6”)说明所需的输出格式。可以在here 找到所有支持的输入/输出格式的概述。我还使用sd(“Golden Software Surfer 格式 7”)对其进行了测试,但这确实是只读的(如链接中所述)。

    上述命令要求您先cd 输入文件,然后在同一文件夹中创建输出文件。相反,您也可以跳过 cd 并直接给它路径:

    gmt grdconvert C:\myfolderpath1\in.nc C:\myfolderpath2\out.grd=sf -V
    

    可以在 Java 中使用cmd,例如here。在我的案例中,完整的示例如下所示:

    Process p = null;
    try {
        //final String command = "gmt grdconvert "+in+" "+out+"=sf -V"; //Version 1: cd to folder first, input folder == output folder
        final String command = "gmt grdconvert "+inpath+" "+outpath+"=sf -V"; //Version 2: No cd, different folders possible
    
        ProcessBuilder builder = new ProcessBuilder(
            //"cmd.exe", "/c", "cd \""+path+"\" && "+command); // Version 1
            "cmd.exe", "/c", command); //Version 2
        builder.redirectErrorStream(true);
        p = builder.start();
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
    
        while (true) {
            line = br.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
            
        br.close();
    } catch(IOException e) {
        e.printStackTrace();
    } finally {
        if(p!=null) { p.destroy(); }
    }
    

    这也将由于-V 输出的所有内容打印到控制台。

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 2014-05-20
      • 1970-01-01
      • 2020-04-28
      • 2019-02-02
      • 2012-02-10
      • 2021-06-02
      • 2019-12-17
      相关资源
      最近更新 更多