爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3394|回复: 3

[混合编程] [已收纳]项目设计之大巧若拙的扁平化

[复制链接]

新浪微博达人勋

发表于 2019-10-17 10:13:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2021-1-27 11:21 编辑

最近想写一个环境6参数+气象5参数的综合分析软件,经过几天的烦恼和思考,我发现,笨拙的方法似乎更好,
起先,我设计的数据结构是这样的:
数据是站点、物种、时间的三维,Data=F(X站,X时,X量)
即,数据可以三维数组显示,辅以time序列、站点向量、参量向量
这样看起来比较高大上,数据紧凑统一,更利于用循环处理各个参量和站点
但是!这种结构有弊端:
1、不合习惯,每次处理都要数站点和参量的顺序,容易错
2、如果数据出现缺失,数据出现异常,这个三维数据的处理将变得复杂
3、对参量的处理方式其实差异较大,用循环处理意义不大
最后我按最容易理解的方式重做了数据结构:
数据结构体={站名,结构体描述,......6参数+5参数......,年,月,日,小时,时间}
而且,很多卫星数据也是这种结构,应该是科学的

之前我还想着,写成紧凑型代码能提升效率,但现在想想,多写些代码,敲起来麻烦点,运行速度并不会降低,但是会大大降低调试的复杂度,增加制图和处理的灵活性

所以,这可能就是《python之禅》中说的“扁平胜于嵌套”吧!

反思:大学时C语言的考试体系,给我一个印象:循环很高级、逻辑越复杂越NB,这个潜意识指导了我的一些行为方式,但是,随着编程经验的积累,我看到了更大的代码世界,编码思想也随之提升、改良。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-10-17 14:25:51 | 显示全部楼层
输出后的数据大小差异性大不大?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-10-17 22:23:35 | 显示全部楼层
ANDYKYLE 发表于 2019-10-17 14:25
输出后的数据大小差异性大不大?

殊途同归,结果是编程前想好的,设计的不同不会影响结果
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-10-18 07:53:41 | 显示全部楼层
这和prebufr及little_r的存储方式基本一样哎。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表