R包判断昼与夜

  我遇到了一个难题,要给我去年为期半年、每半小时一条的观测数据每条都加上一个标识,来反映当时属于白天还是黑夜。这个标识是根据当地经纬度和日期用天文学一系列公式计算出来的,比较复杂。我们组有现成的matlab代码,但是跟我的需求有差距,需要改,无奈我matlab我不熟,只能看懂,改起来在很多细节上有困难。我就想把matlab代码改写成R代码,然后就可以随心所欲地进行后续工作了。
  这个事情花了我整整一个下午,最后成型的是几十行代码。结果跟NOAA在线计算相比,我的R代码算出来的日出总是晚几分钟,日落总是早几分钟。到最后也没有搞定。这其实不是什么大不了的,够用了,可是我觉得不爽。
  快下班的时候,我灵机一动搜了一下,果然搜到了一个现成的R包,叫做maptools。用这个包的一个函数,两行代码就算出来了。跟NOAA的完全一致。仔细一看,作者说用的就是NOAA的算法。NOAA怎么算的,我懒得找了。
  这可是太开心了。
  这件事刺激了我的惰性。我想起一直想写一段代码来计算 index of agreement 和coefficient of efficiency,用来比较模拟值和观测值的吻合程度。其实很容易写,可我懒得写了,不如搜一搜吧。果然,又找到了一个R包,叫做hydroGOF,模型和观测进行比较时常用的统计量都可以算。
  以前光顾闷头自己从零写代码,其实很多东西都有人写好了。
  R真是个好东西。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax