cdo: 强大的气象类数据处理软件。
1、数据的提取合并(提取特定时间、空间、经纬度等等)
2、数据的简单运算(加减乘除、方差、均方差、和、最值、滑动均值、滑动方差、滑动最值、区域平均、区域方差、区域最值等等)
3、数据的统计运算(相关、线性回归、EOF、滤波、水平插值、垂直插值等等)
4、数据的转换(binary转nc、HDF转nc等等)
5、各种气候指数的运算(极端有关的指数等等)
我这里主要用到cdo去裁剪气象文件(后缀名为.nc的文件),按照经纬度裁剪,只留下广东省的气象数据。

要安装cdo,就要先看装zlib、hdf5、netcdf

1、安装jdk

yum install java-1.8.0-openjdk* -y
查看版本
java -version

2、安装zlib

yum install -y zlib zlib-devel
查看安装的动态链接库
ldconfig -v | grep zib

3、安装hdf5

yum install hdf5

4、安装netcdf

yum install netcdf
yum install netcdf-devel

5、安装cdo
cdo各版本下载链接

https://code.mpimet.mpg.de/projects/cdo/files

现在windows环境下下载下来,然后解压之后在通过Xshell上传到linux环境,切忌不要再linux环境下解压(无法解压)

编译、安装cdo


先配置(如果不配置,cdo部分命令会报错)
./configure --prefix=/usr/local CFLAGS=-fPIC --with-netcdf=/usr/local --with-hdf5=/usr/local
编译
make
安装
make install
配置环境变量( /usr/local/bin/cdo 跟着放在PATH路径的后面,不要覆盖 )

vim /etc/profile
export PATH=/usr/local/bin/cdo
source  /etc/profile

查看版本
cdo -v

执行裁剪命令
cdo sellonlatbox,107.8,117.530,17.87,23.833 /home/haiyue/hyhl/file/copyFile/HYCOM_YU/romsout_20201210.nc /home/haiyue/hyhl/file/smallFile/HYCOM_YU//romsout_20201210_small.nc

5、用java代码实现裁剪命令

public class CDO {private String workPath ;CDO(String workPath)  {if(null ==workPath){this.workPath ="/cdo";} this.workPath =workPath;}public String getWorkPath() {return workPath;}public void setWorkPath(String workPath) {this.workPath = workPath;}public void split(String sourcePath,String targetPath,String options)  {Process  process =null;InputStream in =null;try {StringBuffer commonBuffered =new StringBuffer();ProcessBuilder processBuilder;String commond = "cdo";commonBuffered.append(commond);commonBuffered.append(" ");commonBuffered.append(options);commonBuffered.append(" ");commonBuffered.append(sourcePath);commonBuffered.append(" ");commonBuffered.append(targetPath);// windows环境下利用cdo进行裁剪if(isWindows()){processBuilder = new ProcessBuilder("cmd","/c",commonBuffered.toString()); // 创建进程管理实例,查看目录processBuilder.directory(new File(this.workPath)); // 工作目录processBuilder.redirectErrorStream(true);process=processBuilder.start();in=process.getInputStream();}else {// linux环境下开始执行cdo裁剪命令in=Runtime.getRuntime().exec(commonBuffered.toString()).getInputStream();}} catch (Exception e) {e.printStackTrace();}finally {try {if(in !=null) in.close();} catch (IOException e) {System.out.println(e.getMessage());}if(process!=null)process.destroy();}}/*** 检查当前系统是否为windows系统* @return*/private static boolean isWindows(){String os = System.getProperty("os.name");  return os.toLowerCase().startsWith("win");}}

linux安装cdo相关推荐

  1. 如何在自己的电脑上安装cdo

    如何在自己的电脑上安装cdo 前言: 首先,强烈建议使用Linux操作系统进行cdo的安装,这样可以节省非常多的不必要的麻烦.一般课题组搭建的服务器上都会安装好cdo,直接配置好路径后就能在自己的帐号 ...

  2. 实用的Linux 安装 zip unzip

    Linux 安装 zip unzip 1.apt-get 安装 apt-get install zip 2.yum 安装 yum install -y unzip zip 命令实例 1.把/home目 ...

  3. nginx linux 安装

    nginx linux 安装 进入http://nginx.org/en/download.html 下载 n  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gc ...

  4. Linux安装Nodejs

    Linux安装Nodejs 阿里云镜像: https://npm.taobao.org/mirrors/node/ 选择所需版本,进行下载. 我这边下载的是:https://npm.taobao.or ...

  5. linux命令安装组件,Linux安装各种组件

    [TOC] Linux安装各种组件 ============================= ## 安装JDK 官网下载最新JDK ``` http://www.oracle.com/technet ...

  6. arch linux安装_如何从头开始安装Arch Linux

    arch linux安装 by Andrea Giammarchi 由Andrea Giammarchi In this article, you'll learn how to install Ar ...

  7. linux安装eclipse运行web,Linux安装Tomcat,运行Eclipse,web项目

    到官网下载:https://tomcat.apache.org/download-80.cgi  在这里是8.5.39版本 下载tar,gz 提取解压后,我这里是放到opt目录下 cd  切换目录 / ...

  8. linux 查看es安装目录,Linux安装Elasticsearch

    本文介绍Linux环境如何安装Elasticsearch. 本文环境是在腾讯云服务器CentOS7.2搭建的,JDK1.8,elasticsearch-5.4.2. 1 安装JDK 网上教程很多,也可 ...

  9. Linux安装CentOS7(图文详解)

    Linux安装centos7 准备 软件:VMware workstation 镜像文件:CentOS-7-x86_64-Minimal-1810.iso 一.安装centos7 1.点击创建新的虚拟 ...

最新文章

  1. Docker 1.7.0 深度解析
  2. java 连接池实例_功能完善的Java连接池调用实例
  3. 小程序实现图片的放大预览
  4. 用Jackson编写大型JSON文件
  5. SF :Salesforce中,look up 和 master detail关系
  6. 将jar包制作成docker镜像
  7. 2017秋-软件工程第八次作业-第九周例行总结
  8. ubuntu下vscode字体间距 空格间距太小 增大间距
  9. dependencyManagement 失效
  10. AD14一般使用流程
  11. Oracle 锁表查询语句及解锁
  12. vnc远程桌面很慢_vnc远程桌面-桌面空白解决方案
  13. 领英精灵使用手册,功能介绍
  14. 小米打印机显示服务器出错,关于小米笔记本连接不上网络打印机的处理方法
  15. linux菜鸡用服务器常用小技巧
  16. Android入门篇(四):自动拨打电话、手动拨打电话
  17. android 漂亮的开源ui框架
  18. Vue中使用使用内联样式
  19. 【情态动词练习题】can 和 could
  20. 原生js实现和jQuery实现 屏幕自由滚动广告 悬浮停止

热门文章

  1. SQL slammer蠕虫王汇编代码详解
  2. 出差全功略—衣食住行省钱大全
  3. 教育培训学校源码微信小程序源码下载,带课件/习题/活动插件,支持小程序与公众号双版本
  4. 生信学习——生信人的20个R语言习题(下)(附详细答案解读)
  5. Python绘制爱心圣诞树
  6. php java 哪个难,php和java的区别在哪里,那个更难一些
  7. 佳能hdr_提升动态范围 佳能EOS系统的HDR功能详解
  8. php注视有哪些,注视感知功能是什么
  9. 设计一个安全的排队系统的思考
  10. 【网页设计】资产负债表