作为一枚大气人,不会几门编程语言那怎么行呢?

但编程语言众多,学哪个好呢?

只有小孩子才做选择,我全都要。贪心的结果是。。。每一样只会一些皮毛。

记得当时上气候模拟课,老师关于编程说了一句话,我记得特别清楚:“学好一两个,要到削铁如泥的那种。”

所以我现在主要是matlab+NCL, 但因为python的大趋势,python也学了不少,但是因为实战少,操作还是不熟练。

NCL是为WRF-Chem学的,好用,画图好看,好学也不太好学;但NCL也要投入python的怀抱了,诶,我还没来得及学,之后要把PyNGL补上。

IDL是一开始为了GEOS-Chem学的,现在也快弃了,毕竟它亲妈都快不要它了哈哈哈。

闲话不多说,开始吧~


Linux:(这个不是语言了,算计算机基础吧)

概述:一种免费试用和自由传播的类UNIX操作系统。(windows更多是可视化的操作系统,而Linux更多是命令行操作,尽管它现在也有图形化界面)

优点:开源,多用户、多任务、多平台,功能完善、操作稳定。

缺点:除了可视化弱一些,也没啥缺点了吧?

适用情形:跑模式、画图、数据分析等等,就是一个操作系统啊,想干啥都能干。

难点:跑模式或者安装软件环境变量的设置

学习资料:

鸟哥的Linux私房菜

https://www.linuxprobe.com/

掌握程度:会基本的操作命令

Linux常用命令https://blog.csdn.net/qq_27984679/article/details/107712916

FORTRAN :

概述:是Formula Translation的缩写,译为公式翻译,从名字就能看出它是为公式翻译而生的。尽享公式之美哈哈哈。

优点:计算高效,运行速度快呀,适合大规模科学计算。

缺点:需要编译,可视化弱一些。如果打草稿不是很直观。它更适合做成一个大项目。

适用情形:大气模式的内核框架, WRF-Chem, GEOS-Chem, CESM的动力框架、微物理过程全是Fortran,这也是为什么模式需要编译运行了。

虽然现在很多人猛推Julia,但是我觉得在可见的未来,在大气领域,fortran不会被替代的,毕竟要把那么多模式内核全部重写,谁愿意来干呢?而且现在也还是很好用的嘛。

一个改进例子:CESM2是一个很好的多语言结合的例子,结合了xml、fortran、python、perl……fortran的核心是不变的。以后有空再来说说这个。

参考资料:彭国伦,Fortran95程序设计

掌握程度:如果不需要去动模式的内核框架的话,不一定要会写,但一定要会读;如果想当模式的developer,那必须会读会写呀!

Python

概述:Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。数据结构高效,面向对象编程。

优点:高级语言,人称胶水语言,有大量第三方库,功能强大,容易学习。

缺点:计算速度貌似比较慢,线程不能利用多CPU(其他我也不知道了,当然一般优点多缺点也多。。。就好比事儿干的多的人犯错的次数也自然多了)

适用情形:好像啥都能干,如果要做机器学习相关的研究推荐使用这个,毕竟机器学习三大框架Caffe, Tensorflow, Keras都是基于python的。入门级直接用scikit-learn工具包就很好,http://scikit-learn.org/。

参考资料:太多辽,自己喜欢啥搜啥吧

掌握程度:会读也会写,熟练掌握基本库Numpy(数值计算),SciPy (科学计算),Pandas(数据分析), Matplotlib(科学绘图)

更多python工具包汇总:https://blog.csdn.net/zhuzemin45/article/details/79889061

Matlab

概述:是Matrix Laboratory的缩写,译为矩阵实验室 ;本质是一个线性代数包,外加好多好多扩展工具箱。

优点:简单直观,易学,适合科学计算,demo演示,其他编程语言通常一次只能处理一个数字,MATLAB则是对整个矩阵和数组进行运算处理。

缺点:商业软件,需要付费使用;做循环处理速度慢

适用情形:适用于矩阵运算,数据处理,数学建模,仿真

参考资料:太多辽,不说啦。哪里不懂?百度一下; 命令不会?doc一下; 参数不会?help一下。O啦!

掌握程度:会读也会写,熟练掌握基本函数和m_map,毕竟大气人几乎天天处理数据画图哈哈哈。

NCL

概述:The NCAR Command Language,来自NCAR,它就是为大气人而生的!为气象数据处理和可视化量身打造。

优点:地理信息数据处理方便,画图好看,出图质量高。我现在基本是matlab打草稿,ncl精细处理画图。

缺点:画图的设置比较复杂,但是复杂才能精致呀!为了美观我认了!

适用情形:模式数据处理,地理信息数据处理;毕竟是大气人搞的软件,确实顺手呐!

参考资料:官网妥妥够用了,http://www.ncl.ucar.edu/,真心喜欢NCAR做的这个网站,实用细致好上手。

然而,NCL目前停止更新了,也要投入python的怀抱了,诶,之后也还是要去学PyNGL:

http://www.ncl.ucar.edu/Applications/NCL_to_Python/

https://geocat-examples.readthedocs.io/en/latest/gallery/index.html

掌握程度:会读也会写,熟练掌握基本函数和画图语句。新手就请直接奔向PyNGL的怀抱吧。

IDL

概述:Interactive Data Language,交互式数据语言

优点:分析GEOS-Chem模式结果挺方便

缺点:参考资料太少了,想当时我学的时候,想搜个命令百度半天也查不到,要不是因为gamap还有一些古早代码,可能更早就弃了。。。

适用情形:GEOS-Chem模式数据处理

参考资料:想学请人教吧,百度老费劲了。。。看到相关网页点进去经常就是“Not found”, "当前无法使用此页面"……

也就gamap还可以用用,http://acmg.seas.harvard.edu/gamap/

http://wiki.seas.harvard.edu/geos-chem/index.php/Other_tools_for_visualizing_and_analyzing_GEOS-Chem_output#GAMAP_and_other_IDL-based_software_tools

掌握程度:没学过的可以不用学了,一句话,吃力不讨好。血泪教训,学会画一个图的功夫我python一个包都摸清楚了。。。

看看连GEOS-Chem也要抛弃它了。(对不起,感觉我字里行间充满了怨念,为什么博客不能搞的表情包呢,诶,想抒发一下情绪还得去微信里截小黄豆~)

http://wiki.seas.harvard.edu/geos-chem/index.php/Other_tools_for_visualizing_and_analyzing_GEOS-Chem_output#Visualization_tools

“NOTE: IDL, which is proprietary software, can be very expensive. For this reason, the GEOS-Chem Support Team and other GEOS-Chem developers are currently developing several open-source software packages (mostly based on Python) for GEOS-Chem data analysis and visualization. Please see our Python tools for use with GEOS-Chem wiki page.”

Shell

概述:脚本语言,将各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。

优点:语法结构简单,容易上手

缺点:效率不高,I/O性能不高

适用情形:主要用于Linux下的批处理,流程化的系统管理工作

参考资料:https://www.runoob.com/linux/linux-shell-basic-operators.html

掌握程度:会读,会写简单的脚本

孩儿们滴百度百科,读读也不错:

1. MATLAB-百度百科: https://baike.baidu.com/item/MATLAB/263035?fr=aladdin

2. Python(计算机编程语言)-百度百科:https://baike.baidu.com/item/Python/407313?fr=aladdin

3. FORTRAN语言-百度百科:https://baike.baidu.com/item/FORTRAN%E8%AF%AD%E8%A8%80/295590?fr=aladdin

4. ncl-百度百科:https://baike.baidu.com/item/ncl/7555401?fr=aladdin

5. IDL(交互式数据语言Interactive Data Language) -百度百科:https://baike.baidu.com/item/IDL/8026653?fr=aladdin

6. shell脚本-百度百科:https://baike.baidu.com/item/Shell%E8%84%9A%E6%9C%AC/572265?fr=aladdin


感觉任重而道远呐,大气人真不容易,光是计算机语言这一块儿就要学好久好久了。

第一个阶段小目标,希望毕业前达到自己定下的掌握程度喽!

没几天要返校了,新学期也要加油呀!

其他干货——大气人计算机必备技能——不同编程语言比较(Matlab, python, fortran, NCL, IDL)相关推荐

  1. 从底层到应用,那些数据人的必备技能

    前言 谨以此文献给对数据有热情,想长期从事此行业的年轻人,希望对你们有所启发,并快速调整思路和方向,让自己的职业生涯有更好的发展. 根据数据应用的不同阶段,我将从数据底层到最后应用,来谈谈那些数据人的 ...

  2. 年度书单盘点|技术人的必备技能,藏在每一本书里

    2022 年第一天,给过去一年披星戴月的自己一个拥抱,给未来大展身手的自己一份信念.恭喜大家收获新的年度进度条,可以肆意做自己想做的事. 这一年我们经历了很多,埋头赶路,不断突破,想必大家都收获了属于 ...

  3. 机器人行业需要什么计算机知识,进入机器人行业需要掌握哪些?盘点机器人工程师五大必备技能...

    原标题:进入机器人行业需要掌握哪些?盘点机器人工程师五大必备技能 工业机器人的应用是一项复杂的系统工程,需要对其进行编程,在生产前,将机器人本体与控制软件.应用软件.外围设备等相结合,形成一条完整的生 ...

  4. DevOps \u0026 SRE 必备技能清单

    导读 \\ 这个列表并非详尽无遗,只是列举了技术基础.必须知道的技能和一些随机的想法.可以用它们作为一个清单来评估你自己或其他人,或者为下一次面试DevOps/SRE(Site Reliability ...

  5. 成功网页设计师的七大必备技能

    成功网页设计师的七大必备技能 那么一个设计师的基础应该从哪里开始构建呢?当然,既然称之为基础,那么它必然不可能一蹴而就.经验是没有替代品的,所以系统的设计课程(无论是否  正式教育)还是很有帮助的.另 ...

  6. PMCAFF微分享 | 阿檬:如何设计好工具型软件?产品经理必备技能

    本期嘉宾|阿檬 阿檬:一位比较年轻的老PM.三年来一直做纯工具类产品,没做过电商.社交.游戏.O2O,只做过360安全浏览器和360手机卫士,目前在做360清理大师. 分享地点|PMCAFF工具产品经 ...

  7. sql python tableau_Python+SQL+Tableau神组合,金融/咨询/互联网等抢着要的商业分析必备技能!...

    原标题:Python+SQL+Tableau神组合,金融/咨询/互联网等抢着要的商业分析必备技能! [快求职直推]:提供留学申请,背景提升,工作求职等全方位一体化服务,服务于致力进入券商.基金.互联网 ...

  8. 图像处理算法工程师——1必备技能总结——2面试题大全

    图像算法工程师三重境界 : 一.传统图像算法工程师:  主要涉及图形处理,包括形态学.图像质量.相机成像之3A算法.去雾处理.颜色空间转换.滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测: 二. ...

  9. “不会SQL,干啥都不行!”资深研发:这是程序员的必备技能!

    国外有人曾做过调查显示:"SQL的使用人数仅次于JavaScript". 更有统计,世界上一流的互联网公司中,排名前 20 的有 80% 都是 MySQL 的忠实用户. 你一定很好 ...

最新文章

  1. kali debian 安装mysql_在Kali Linux和Debian 8/9 64位上安装Wine的方法
  2. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(下)
  3. JS数组的迭代器方法
  4. Opencv——图像金字塔与图像尺寸缩放
  5. USACO 3.2.3 Spin
  6. MFC开发IM-第二十三篇、C++中 UTF-8转成Unicode
  7. 【Java】HashMap 和 Hashtable 的 6 个区别
  8. 小爱音箱 电脑 麦克风_外观全面升级,小米小爱音箱Art体验
  9. hdu3336 Count the string
  10. 保研复习整理——信号与系统
  11. 微信打飞机游戏思路复习
  12. 【线性代数的本质|笔记】抽象几何空间、克莱姆法则及其几何解释
  13. 主编编辑器如何绑定公众号?
  14. 无人机航模新手100 问
  15. 泛函分析 04.04 有界线性算子 - 开映射定理与逆算子定理
  16. 五险一金 | 2020年企业社保缴费为零问题
  17. 半小时学会LevelDB原理及应用
  18. 通用电工实验室设备QY-DG28A
  19. emgucv下载与安装
  20. mybatis和spring第一个整合程序

热门文章

  1. javaWeb实现图片验证码功能
  2. Linux下基于c++的简单五子棋小游戏
  3. 文献阅读001:由I类HLA转录缺失导致的联合免疫治疗的获得性癌症耐药性
  4. BES软件复位重启写法
  5. Centos7完全卸载PHP
  6. 湖北十堰普降大雪 武当山景区暂停售票
  7. 手写Spring-第五章-解放双手!自动化配置!
  8. 移动云计算的一些思考
  9. 外星人R7 1080Ti 装ubuntu两个巨坑
  10. 微信工具箱小程序多功能集合一体源码