MATLAB社区

MATLAB、社区及更多

社区问答–Kelly Kearney

Kelly Kearney是Matlab答案和文件交换的最高贡献者。这是我与凯莉的问答,他是华盛顿大学研究大气与海洋联合研究所的科学家。

谢谢你同意这次采访。你住在西雅图。你也在那里上学吗?

对于本科生,我研究了迈阿密大学的海洋科学和生物学。我后来赢得了我的博士学位。在普林斯顿大学的地球科学部门,重点是海洋生物地球化学和生态系统建模。

你能描述你的工作吗?

我在华盛顿大学联合研究大气和海洋研究所担任研究科学家。联合研究所是UW和NOAA(国家海洋和大气管理局)之间的合作伙伴;我的办公室位于美国国家海洋和大气管理局阿拉斯加渔业科学中心(其主要办公室位于西雅图,而非阿拉斯加)。

至于我所做的事情......我试图了解通过溶解在水中的营养素开始的过程中控制如何通过海洋食物网,然后通过微观植物提供食物的微观植物的营养物,然后将食物提供给食物的复杂的细菌大小(包括人类)。我通过在海洋中的物理学,化学和食品网的数学建模来这一下。

根据您的GitHub.io页面,https://kakearney.github.io,您的工作围绕了一个区域海洋模型(ROM)域的开发和应用,该领域涵盖了白垩海域区域。这对不熟悉这种工作的人来说意味着什么?

我会试着把它打碎一点。首先,白令海……这是阿拉斯加和俄罗斯之间的水域,位于阿留申群岛以北。它是世界上最大的渔业之一的所在地,提供了美国近一半的渔获量,包括最大的单一物种渔业walleye pollock(即世界上大多数面包和面糊鱼用的鱼)。因此,这是一个经济上非常重要的地区。收集了大量的现场数据,以支持管理这些渔业所需的科学。但数据收集大多局限于夏季,在这样一个偏远、季节性冰雪覆盖的地区,要始终获得良好的空间覆盖率既困难又昂贵。因此,模型可以帮助我们填补空白,更多地了解系统如何在更大范围内工作,并预测未来生态系统可能发生的变化。万博1manbetx

该描述中的ROMS模型部分指的是高分辨率海洋模型。它的工作原理类似于更大的全球气候模型中的海洋部分。这些模型的核心是利用旋转球体上的运动物理方程和热力学能量平衡来计算空气和水是如何运动的。

(I don’t know what the policy is for adding images to these blog posts, but it’s hard to describe climate models without them… I stole this one from Wikipedia’s General circulation model page: https://en.wikipedia.org/wiki/General_circulation_model).

沿海地区无法通过全球模型中的网格单元大小很好地解决(在大多数全球模型中,每侧1个网格单元~100 km)。因此,使用覆盖沿海地区的网格更细的较小模型;ROMS就是这样一个框架。我们使用相同的原始运动方程来移动模拟海洋中的水,还添加了化学和生物学来计算浮游植物(微观植物)的生长情况,以及有多少浮游动物可以吃它们,有多少鱼可以吃它们,等等。

你第一次被介绍到MATLAB是什么时候,为什么?你是如何学会使用MATLAB的?您第一次接触MATLAB Central的时间和原因?你能解释一下MATLAB答案在教你MATLAB中的作用吗?

我在大学毕业后的第一份工作中就开始使用MATLAB,那是在2003年,在海军海洋学办公室工作。在那份工作中,我模拟了高频声纳的性能,即声音如何在水中传播。我的老板给了我一些以前的科学家编写的MATLAB脚本,用来分析我们主要声纳模型的输出,我开始着手修补它。就上下文而言,我以前的计算机编码经验都是使用Fortran和unix shell脚本编写的。Fortran对许多计算机科学家来说似乎是一种古老的语言,但它仍然是科学数值计算的主要语言;我当时使用的声纳模型是Fortran语言,ROMS模型和我上面提到的所有全球气候模型也是如此。Fortran速度快,功能强大,是高性能计算的少数选择之一……但它并不完全是用户友好的,尤其是对于一个没有任何正式编程课程的本科生来说。在我的本科研究期间,我花了很多时间试图调试不清楚的错误消息、修复代码、重新编译,这是我第一次尝试科学编码。

相比之下,MATLAB看起来非常友好!即时反馈!无需编译!目视检查变量!还有阴谋!这么多的绘图选项!我是一个非常直观的思考者,在浏览复杂的数据集时,我喜欢将数据切分、重新排列,并根据自己的心意绘制数据。与Fortran和我曾短暂使用过的其他语言(perl、javascript)不同,MATLAB的思维方式似乎和我一样。我喜欢它。

正如我提到的,我没有接受过任何编程方面的正式培训。大多数科学家都是这样;我们通过查看别人的旧代码、摆弄代码和谷歌搜索来学习。这让我想到了MATLAB新闻组,它当时是MATLAB中央网站的一部分,与文件交换一起。起初,我使用新闻组来解决我遇到的具体问题,但一两个月后,它就成了我早晨例行工作的一部分;每天早上我都会通过查看电子邮件和浏览新闻组15-20分钟来开始工作。我开始学习优秀编程的基础知识,而不仅仅是“让它工作”,并储存一些MATLAB知识,这些知识可能会在将来派上用场。在那份工作的三年里,我继续着这一惯例,然后进入了研究生院;当MATLAB开始超越新闻组(RIP CSSM)时,我迁移到MATLAB Answers。虽然这些天我的时间比较有限,但当我需要休息、等待代码完成运行等时,我仍然会浏览答案。

MATLAB如何使您的工作更轻松?

这是我用来做任何事情的主要工具。我在其中建立了几个数值模型来运行各种实验,并在MATLAB中进行了几乎所有的数据分析和可视化。我甚至在MATLAB中制作了我的婚礼座位表,这让每个人都感到很有趣!我现在已经学会了其他语言,如果有特定的ic需求(R是渔业统计的首选,python在我需要在超级计算机上设置批处理作业时更好),但MATLAB仍然是我的默认设置。

你如何使用github?

我开始使用git两个原因。首先是跟踪我对我的代码所做的更改。作为自学编码器的一个优势是,通过首先以错误的方式达到某些事情,您可以有机会“发现”某些事情。在Grad School期间,我以前的方法可以在对代码进行任何重大变更之前保存备份副本的方法开始绝望地复杂,并且我认为简单*必须是更好的方式。这导致了我发现版本控制软件的发现,而Git似乎当时是共识的最爱,所以我开始使用它。

git的第二个优点是,它允许我跨计算机同步MATLAB库。起初,我对公开获取未经打磨的代码持谨慎态度,因此我所有的git回购协议都是本地和私人的。但这对我来说是个麻烦,我开始将一些回购协议转移到GitHub,并最终开始将它们全部公开。事实证明,有太多的代码存在,人们不必担心判断未完成的代码;人们倾向于寻找和使用的回购协议是我有意宣传的

如何使用文件交换?

我用文件交换作为一个精心策划的展览,我认为是我最有用的功能。这些函数我花了时间进行了充分的润色,在MATLAB版本和操作系统之间进行了测试,并添加了文档。这是一个小收藏,我一直想增加更多,但不幸的是,我的时间有限。

你在工作中很活跃github在这方面文件交换. 您能解释一下您在使用GitHub和使用文件交换时的工作平衡吗?

正如我提到的,GitHub是我所有代码的归宿;我有150多个存储库,大部分是MATLAB的东西。我在本地计算机上有一个脚本系统,用于将本地更改与GitHub远程同步。这主要是为了我自己的利益,所以我可以从任何地方得到它,但它附带的好处是,如果我认为它对其他人有用,我可以很容易地向他们指出它。我保存文件交换以实现最常用的功能。从技术上讲,我的所有文件交换条目都链接到GitHub,因此我的工作流程对于所有条目都是相同的,但在文件交换上发布是为了让代码保持工作状态并记录到公共用户所需的级别,而不仅仅是我自己。

有什么特别的建议吗github回购或文件交换提交你特别为其感到骄傲?

我很骄傲我EcoPATH_MATLAB:MATLAB实施ECOPATH,一种主要用于渔业科学的食物网型。迄今为止,我唯一利用Matlab类别的项目,我认为我做了一个很好的工作,使一些非常复杂的,GUI受约束的预先存在的代码巩固到优雅,灵活,命令行工具中。但该代码是针对一个非常基地的观众,遗憾的是不要使用Matlab太多(渔业科学家是redodees)。哦,我自己得到了很多利用。:-)

关于更广泛的功能,legendflex.m:更灵活、可定制的传奇contourfcmap:使用精确的彩色地图填充等高线图仍然是我最受欢迎的两个。这些工具分别用于扩展MATLAB的legend和contourf功能。他们是我得到最多赞扬的人,同事们说,“嘿,我在寻找一个工具来做这件事,我找到了你的代码,它做了这件事!”

文件交换上的函数和文件非常用户友好、直观且功能强大。你能谈谈你的设计过程吗?

当我发现自己多次重复一系列命令时,我通常会将代码转换为函数你应该像两个人将要使用代码一样编写代码:你,6个月后你。这差不多就是我正在做的一切……为future me编写代码。future me对不透明、模糊的代码非常恼火;这意味着我立即添加输入和输出的标题文档,并尝试用大量代码保持代码整洁大量的注释和空白用于视觉组织。

偶尔,一段代码将进入除了我之外的人们的东西,如果我碰巧有时间,我会为那些完全详细说明语法并经过几个例子的人编写更多的文件脚本;然后,这将发布到HTML和GitHub标记格式,并显示为该函数的GitHub repo中的自述文件。

你有什么兴趣爱好?你平时有什么娱乐活动?西雅图最喜欢的事情是什么?

我喜欢参与一点点一切!rec运动,戏剧和舞蹈,间歇性地运行的10个和半槌......现在,我在一个社区乐队中玩小号,在当地的工作室前往常规芭蕾舞班(一个终身爱好),并慢慢地在各种马戏团中获得一些技能- 我的努力,主要是空中丝绸。空中的东西是自从这里搬家以来的新收购的爱好;西雅图有一个非常活跃的马戏场景,支持专业人员和业余表演者(我坚持在后一种类别!),我真的很喜欢它!万博1manbetx我也喜欢在这里享受美丽的风景,在瀑布和奥运会上徒步旅行和背包和我的丈夫在夏天,虽然主要在夏季。

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。