3
\ begingroup美元

立即下面是一个例子我第一/原型试图想象这个问题,这是进一步解释之后……在这里输入图像描述你看到的是一个每年的动画的最高温度从USW00094728(每日马克斯临时)数据。海底文件(站在纽约中央公园)公开可用ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily(参见readme。txt文件,目录文件格式信息,等等)。

每一帧的小Jan1达峰时间和眼睛Dec31,即每一帧代表一整年。年是1870年到2009年,每年显示为0.2秒。两个空白帧信号时动画重复。温度范围是40美元^ o \ mbox {C} $马克斯,阿^ \ mbox {C} -10美元分钟。

同时,每日最高温度数据显示动画平滑,即。每天,代表一个七天的平均包括三天之前和之后。不平滑,这是真的,真的跳动/不连续。

然而,即使有平滑,没有最高温度变化明显的旁观者在140年代表。当然,预计1 - 2美元美元变化对40美元阿^ ^ o情节,美元可能太随便就很难发现。

所以我几个想法。(a)也许减去每日意味着(平均在140年),并显示美元\ sim10 ^ o情节,美元的高分辨率将使小三角洲的更容易观察。(b)七天的平滑,分别在每一年,可能还不够以来同比数据仍然很神经兮兮的。也许另外顺利通过几个前后多年平均同一天。但那可能只是按摩太多不合理的数据。

整个问题是:展现的内容/ how-to-display-it这样~ 150年最高温度变化容易看到和容易可辩解的/可以理解的旁观者。任何平均person-in-the-street应该能够看着它并立即看到发生了什么,没有任何必要的官样文章/胡言乱语技术的解释。另外,side-question:花了一段时间发现noaa ghcn数据,看起来棒极了。任何一样好或更好的公开可用的数据集?


编辑
- - - - - - - - - - - -

谢谢你的评论,@JeopardyTempest @CamiloRada。

JT的“夜间低”的建议(从ghcn TMIN元素数据)很容易表现出,只是需要不同的命令行参数完全相同的程序(不包,顺便说一句,所有直C编程,注意“程序员”后我提到你的资料)。下面我说明TMIN动画(规模、等,与最高温度上面的动画)。然而,正如预期,仍然没有easily-visualizable变化在140年。

我们会尝试使用异常”,引用CR,希望更好的结果。,这可能是一个合理的希望,基于你的youtube链接,这几乎是正是我想我会生成,除了1月,……12月沿着x轴而不是“圆形图”显示。(顺便说一句,很容易解释,圆图,我想也许平均person-in-the-street可能更容易认识到从左到右months-along-the-x-axis显示,这可能是大多数人已经更熟悉。)

我也会仔细看看HadCRUT4.4数据使用youtube的主页http://www.climate-lab-book.ac.uk/2016/spiralling-global-temperatures/谷歌没有咳嗽了,数据在搜索我试过了,我想有更多的有趣的东西,我被忽视。

与此同时,下面马上被JT TMIN图建议。“异常图”将会容易动画代码后随着时间的推移数据”选择“离子(即。类似于一个关系表)ghcn数据。将一些做的(在我的业余时间),我将尝试发布一些更好的温度升高可视化的时候完成。JT的更复杂的显示建议将更复杂的思考和做[比计算方面显示一侧),我会尽量计划/设计我编码更直接的“异常”的东西。谢谢,同样,JT和CR。

在这里输入图像描述

\ endgroup美元
3
  • 2
    \ begingroup美元 可能是整洁是放下像素从所有前几年的高位(使用透明度)(明亮和鲜艳的颜色斑点,重复越来越多)。这可能会表现出一些独特的东西。当然你需要合并平均,作为每年的波动将大于长期变化。那似乎是一个独特的方式这样做,但不知道如果很容易与你使用的包…或如果它会显示一个吨。但似乎你抚平现实的波动,你越失去在某种意义上。这将使用它们而不是做出任何明显的变化。 \ endgroup美元
    - - - - - -JeopardyTempest
    2018年9月6日15:44
  • 1
    \ begingroup美元 其中一个关键虽然可能是大多数测量变暖最多的地方是在夜间低温。我不会感到惊讶,如果白天变暖就像半度或更少(不知道)。这肯定是可怕的难以辨认出在大多数绘图方法。 \ endgroup美元
    - - - - - -JeopardyTempest
    2018年9月6日在15分
  • 1
    \ begingroup美元 关键是要保持前几年的线,或至少一年的意思。使用异常肯定会提高可视化,而是计算异常相对于整个数据集的意思我建议来计算它们对pre - 1900或1920年以前的意思。这是一个很好的可视化,适用于你的情况youtube.com/watch?v=wXrYvd-LBu0 \ endgroup美元
    - - - - - -卡米洛·Rada
    2018年9月6日17:07

2答案2

2
\ begingroup美元

不是真正的答案,本身。然而,正如每JT的评论“你需要将平均”(反映自己的猜测在最初的问题),我已经把(减去)意味着,的确,展品容易看到趋势图。这是有点“回答”的程度上,无论如何。我还创建了两个新的类型的图表,说明和讨论(所有三种类型),以及一些其他问题建议。

第一,年年的静态图,1870 - 2009,T_{马克斯}识别偏离美元的意思。每年每个偏差计算365/366-day平均每天的偏差,即。,$\frac1{365(or 366)}\sum_{i=jan1}^{dec31}T_i-T^{mean}_i$, where $T^{mean}_i$ is the mean $T$ for that particular day-of-year (averaged over所有多年来,没有占CR的评论pre - 1900或1920年以前)。每个图的规模现在美元\ pm4 ^ oC美元。再次,最左边的点代表的1870 t t ^{意味着}$,最右边的2009点。在这里输入图像描述上面的图没有每天如前所述平滑(我们已经平均超过所有天,),但它有四年平滑,即。,each $T_i$ in the sum is actually a nine-point moving average of the $T$ for that year and day, along with $T$'s for the same day of the previous and next four years. Without any smoothing at all, it looks like this在这里输入图像描述所以一些平滑似乎需要,至少对于情节面向大众的。我每天很容易重量(例如,像正态分布),分配到当前的最大重量,但是还没有试过任何的。有公认加权过程这种数据平滑?

顺便说一下,JT的建议使用T_{分钟}识别美元实际上并不像前面那样“单调”T_{马克斯}识别,美元在这里输入图像描述所以我将使用T_{马克斯}识别的美元为下面的动画……





第一种动画的最初体现,但现在显示偏离均值,即规模现在美元\ pm4 ^ oC美元。所以从左到右是jan1-to-dec31,第一帧显示1870年和2009年最后一帧(一些空白帧信号当动画重复)。为了避免——“紧张”动画,9分“双向”使用移动平均滤波,即。,first $\pm4$days to get the $T$ for a given day within a year, and then $\pm4$years using the same day-of-year's $T$ to get the displayed $T$.在这里输入图像描述现在(不像原始问题的动画),显示T与意思偏离美元开始(1870年)低于基线,和结束(2009年),像我们所期望的(结果)。

但也许不像我们期望(至少不像我预期),密切关注和发现一些天显得有点顽固表现出更高的临时工。就像气候变化有一些“国定假日”需要一个假期。所以,建议另一种类型的动画是否这是一个真正的效果。

这一个需要“切片”沿着其他轴的整体数据集。从左到右,现在是1870 - 2009,和365帧动画,第一个为dec31 jan1最后(额外的闰年的天省略)。和平滑和上面是一样的。在这里输入图像描述所以这对我来说似乎有点出乎意料。每一帧,由本身,图同比T偏差美元对于一个给定的一天。和每一个图看起来也是连续的。随机考虑,说,sept28。如果是一年高过平均值,你不会期望这一事实与明年是否有很多相关sept28也是温暖的。但图表通常很长块温暖或凉爽的年。

\ endgroup美元
8
  • \ begingroup美元 今年容易不知何故覆盖计数器,所以我们可以告诉它在循环结束之前? \ endgroup美元
    - - - - - -JeopardyTempest
    2018年9月8日7点45
  • \ begingroup美元 @JeopardyTempest第一动画的一个year-labelled取代,要求(遇到imgur 2 mb的限制)。顺便说一下,我认为这只是我的平滑占第二个动画的“意想不到”的行为,我不知道为什么没有发生。 \ endgroup美元
    - - - - - -约翰Forkosh
    2018年9月8日12:06
  • \ begingroup美元 (应该还说…或许你可以添加一个日期与最后的图?) \ endgroup美元
    - - - - - -JeopardyTempest
    2018年9月8日15:23
  • \ begingroup美元 不错的进步。一些天的stuborness热身和你最后的情节都很容易的连续性工件平滑,异常寒冷的日子将维持低这一天的平均9帧。你可以尝试一个值而不是平均或加权平均,这通常是一个好方法噪声数据。 \ endgroup美元
    - - - - - -卡米洛·Rada
    2018年9月8日15:53
  • 1
    \ begingroup美元 @JeopardyTempest按日期,你的意思是“Jan1”……”(即Dec31”,正确的。,you're reading it right)? Yeah, but that gif's a bit larger to begin with, and goes over 2MB with labels (or I'd already have uploaded it). It'd be trivial to shrink the width,height #pixels to avoid that, but the whole graph's based on my "imaginary anomaly" about year-to-year correlation for the same day-of-year, explained by smoothing (as noticed in my earlier comment as well as CR's comment). So I'd think the animation's not too interesting to begin with -- but am I wrong about that?, i.e., some reason you'd like to see it? \ endgroup美元
    - - - - - -约翰Forkosh
    2018年9月9日在6:04
2
\ begingroup美元

JT和CR的建议后在评论中“第一回答”纳入gif的如下。对应的新的previously-displayed的是比以往更多的“紧张”,他们有一个小错误,如下。“基线意味着“年年的动画,与jan1-dec31沿着x轴,是均值/每天平均求和所有显示的年。但是我总结后意思发生> > < <我的(通常是九分移动平均)平滑日常临时工。可能不是我们想要的,尽管你可能会认为这是一个合法的程序“光滑的基线”。在任何事件中,基线gif的下面显示means-before-smoothing,即。,the raw daily temps are summed over all displayed years, and those generate animations that are a bit more "jittery".

首先,这是now-labelled jan1-dec31动画(每一帧显示所有年,从左到右,一个的)。第一个“4”“4 x4平滑”的标签是指跨天平滑正如前面所讨论的,第二个“4”是指跨年平滑…在这里输入图像描述



其次,CR的中位数建议没有多大影响,或另一种方式。立即下面显示的静态gif yearly-deviations-from-the意味着/中位数,1869(左)- 2017(右)……在这里输入图像描述 在这里输入图像描述你可能认为他们是相同的。但下载并迅速点击它们之间。向上中间的“翻译”,也许1/4 ^ oC美元(我认为这是一个意味着/中等倾斜),和形状的稍稍不同的几个点。图。不管怎样,这里有相应的one-year-per-frame (jan1-dec31从左到右)动画……在这里输入图像描述 在这里输入图像描述



如果你想“玩”与这些动画,我上传一个静态链接的linux可执行程序的
http://www.forkosh.com/ghcn.exe(忽略windows-like . exe, linux精灵)
和.dly文件我已经使用
http://www.forkosh.com/USW00094728.dly
虽然可以得到(和无数其他.dly文件)从ghcn链接在最初的问题。(静态链接的ghcn。exe应该包括所有需要的库/版本不是由特定的本地安装的linux发行版,但这并不总是奏效。但它确实工作编译/链接在我的盒子里,并运行在我的ISP的盒子)。

它从命令行运行高达9命令行参数…

/ * - - -命令行参数(所有测试)- - - * / int testnum =(命令行参数个数> 1 ?atoi (argv [1]): 1);char *文件=(命令行参数个数> 2 ?argv [2]:“USW00094728。海底”);/ * CntrlPk * / int msglevel =(命令行参数个数> 3 ?atoi (argv [3]): 0);/ * - - -命令行参数为测试# 2 - - - - - - * / char *类型=(命令行参数个数> 4 ?argv[4]:“达峰时间”);/ *”TMIN”、“达峰时间“int * /年=(命令行参数个数> 5 ?atoi (argv [5]): 1869149); /* yyyyNNN */ int meankind =( argc>6? atoi(argv[6]) : 1 ); /*1=avg, 2=median*/ int ndlysmooth=( argc>7? atoi(argv[7]) : 2 ); /*smooth dly tmps*/ int nylysmooth=( argc>8? atoi(argv[8]) : 2 ); /*smooth yly tmps*/ double bigf =( argc>9? atof(argv[9]) : 4.0 ); /*max graph deg C*/

所以我的典型的运行…
/ ghcn。exe 2 USW00094728。海底999年达峰时间186914924 4 4
和你的前三个参数,2 USW00094728。海底999年应该是相同的(除了.dly文件如果你下载一些其他人)。第一个2testnum是唯一的测试生成相关的gif。其他(实际上只有一个)主要打印一些数据单元测试数据collection-and-selection功能。和999年msglevel将打印几行可以忽略。

剩下的六个参数可以不同。你代替我达峰时间通过TMIN得到相应的gif是你知道的。(我还没有考虑JT的早些时候建议一个gif合并多个ghcn元素“类型”)。尝试其他ghcn元素“类型”(我还没有测试任何)将使用相同的0.1美元美元比例因子应用于临时工(虽然这很容易使另一个参数)。

下一个参数是date-plus - #年。我的1869149意味着从1869年开始,使用149年的数据,在这种情况下,这意味着1869 - 2017包容性(这是几乎整个.dly文件)。的2年是CR的意思/值后,1=的意思是,2=值。这三个数字之后,巧合的是相同的(但不一定)4 4 4在我的例子中,(第一4每日平滑)天数从前向后、从后往前,(第二4)#天每年的平滑。0要么/都意味着没有平滑的“方向”。最后一个4是下午\ degreesC美元从基线显示在图。

输出三个文件:ghcn。gif, ghcn2。gif和ghcn3.gif(你猜对了)。第一个是年年的动画,第二个是每天的动画,,最后一个是静态gif显示年平均平均偏差/中位数,第一年。

\ endgroup美元

    你的答案

    通过点击“发布你的答案”,你同意我们服务条款,隐私政策饼干的政策

    不是你要找的答案?浏览其他问题标记问你自己的问题