├── _config.yml ├── .Rprofile ├── img ├── aqe.png ├── W5p8w.png ├── carole.png ├── path.png ├── qrcode.jpg ├── rday.png ├── remko.png ├── repo.png ├── correct.png ├── git-zjd.png ├── plos-one.png ├── raw-data.png ├── timeline.png ├── excel-data.png ├── git-lamothe.png ├── one-point.png ├── r-superman.png ├── git-stinziano.png ├── gui-packages.png ├── stinziano-2017.png ├── stinziano-2018-2.png └── stinziano-2018.png ├── .gitignore ├── data ├── Dark.xlsx ├── Fast.xlsx ├── Slow.xlsx ├── aci.csv ├── aci.xlsx ├── aci68.csv ├── lrc.csv ├── Empty.xlsx ├── Empty_2.xlsx ├── onepoint.csv └── aci ├── debug.log ├── demo-racir ├── ds │ ├── Dark.xlsx │ └── Slow.xlsx ├── data │ ├── Empty.xlsx │ └── Fast.xlsx ├── racirem │ ├── em-1.csv │ └── em-2.csv ├── racirle │ ├── le-1.csv │ └── le-2.csv ├── figure │ └── fastdemo.png ├── racir-csv │ ├── aci_ex.csv │ ├── uncorr_emp500.csv │ └── uncorr_leaf500.csv ├── racir-xls │ ├── Dark.xlsx │ ├── Fast.xlsx │ ├── Slow.xlsx │ └── Empty_2.xlsx └── demo-racir.Rproj ├── R-6800-series-4_files └── figure-html │ └── unnamed-chunk-3-1.png ├── LI-6800-R-series.Rproj ├── default-fonts.css ├── index.md ├── zh-CN.css ├── default.css ├── R-6800-series-1.Rmd ├── R-6800-series-2.Rmd ├── R-6800-series-5.Rmd ├── rseries-todo.Rmd ├── extra-lucy.css ├── R-6800-series-3.Rmd ├── R-6800-series-6.Rmd ├── R-6800-series-4.Rmd ├── R-6800-series-1.html ├── extra-rutgers.css ├── R-6800-series-2.html ├── R-6800-series-5.html ├── R-6800-series-6.html ├── R-6800-series-3.html ├── R-6800-series-4.html └── animate-min.css /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /.Rprofile: -------------------------------------------------------------------------------- 1 | library(knitr) 2 | library(pagedown) 3 | opts_chunk$set(echo = FALSE) 4 | -------------------------------------------------------------------------------- /img/aqe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/aqe.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | *.PDF 6 | *.R 7 | .Rprofile -------------------------------------------------------------------------------- /data/Dark.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/Dark.xlsx -------------------------------------------------------------------------------- /data/Fast.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/Fast.xlsx -------------------------------------------------------------------------------- /data/Slow.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/Slow.xlsx -------------------------------------------------------------------------------- /data/aci.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/aci.csv -------------------------------------------------------------------------------- /data/aci.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/aci.xlsx -------------------------------------------------------------------------------- /data/aci68.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/aci68.csv -------------------------------------------------------------------------------- /data/lrc.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/lrc.csv -------------------------------------------------------------------------------- /debug.log: -------------------------------------------------------------------------------- 1 | [0403/234229.737:ERROR:file_io.cc(89)] ReadExactly: expected 36, observed 0 2 | -------------------------------------------------------------------------------- /img/W5p8w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/W5p8w.png -------------------------------------------------------------------------------- /img/carole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/carole.png -------------------------------------------------------------------------------- /img/path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/path.png -------------------------------------------------------------------------------- /img/qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/qrcode.jpg -------------------------------------------------------------------------------- /img/rday.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/rday.png -------------------------------------------------------------------------------- /img/remko.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/remko.png -------------------------------------------------------------------------------- /img/repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/repo.png -------------------------------------------------------------------------------- /data/Empty.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/Empty.xlsx -------------------------------------------------------------------------------- /img/correct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/correct.png -------------------------------------------------------------------------------- /img/git-zjd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/git-zjd.png -------------------------------------------------------------------------------- /img/plos-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/plos-one.png -------------------------------------------------------------------------------- /img/raw-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/raw-data.png -------------------------------------------------------------------------------- /img/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/timeline.png -------------------------------------------------------------------------------- /data/Empty_2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/Empty_2.xlsx -------------------------------------------------------------------------------- /data/onepoint.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/data/onepoint.csv -------------------------------------------------------------------------------- /img/excel-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/excel-data.png -------------------------------------------------------------------------------- /img/git-lamothe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/git-lamothe.png -------------------------------------------------------------------------------- /img/one-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/one-point.png -------------------------------------------------------------------------------- /img/r-superman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/r-superman.png -------------------------------------------------------------------------------- /img/git-stinziano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/git-stinziano.png -------------------------------------------------------------------------------- /img/gui-packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/gui-packages.png -------------------------------------------------------------------------------- /demo-racir/ds/Dark.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/ds/Dark.xlsx -------------------------------------------------------------------------------- /demo-racir/ds/Slow.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/ds/Slow.xlsx -------------------------------------------------------------------------------- /img/stinziano-2017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/stinziano-2017.png -------------------------------------------------------------------------------- /img/stinziano-2018-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/stinziano-2018-2.png -------------------------------------------------------------------------------- /img/stinziano-2018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/img/stinziano-2018.png -------------------------------------------------------------------------------- /demo-racir/data/Empty.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/data/Empty.xlsx -------------------------------------------------------------------------------- /demo-racir/data/Fast.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/data/Fast.xlsx -------------------------------------------------------------------------------- /demo-racir/racirem/em-1.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racirem/em-1.csv -------------------------------------------------------------------------------- /demo-racir/racirem/em-2.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racirem/em-2.csv -------------------------------------------------------------------------------- /demo-racir/racirle/le-1.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racirle/le-1.csv -------------------------------------------------------------------------------- /demo-racir/racirle/le-2.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racirle/le-2.csv -------------------------------------------------------------------------------- /demo-racir/figure/fastdemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/figure/fastdemo.png -------------------------------------------------------------------------------- /demo-racir/racir-csv/aci_ex.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-csv/aci_ex.csv -------------------------------------------------------------------------------- /demo-racir/racir-xls/Dark.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-xls/Dark.xlsx -------------------------------------------------------------------------------- /demo-racir/racir-xls/Fast.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-xls/Fast.xlsx -------------------------------------------------------------------------------- /demo-racir/racir-xls/Slow.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-xls/Slow.xlsx -------------------------------------------------------------------------------- /demo-racir/racir-xls/Empty_2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-xls/Empty_2.xlsx -------------------------------------------------------------------------------- /demo-racir/racir-csv/uncorr_emp500.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-csv/uncorr_emp500.csv -------------------------------------------------------------------------------- /demo-racir/racir-csv/uncorr_leaf500.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/demo-racir/racir-csv/uncorr_leaf500.csv -------------------------------------------------------------------------------- /R-6800-series-4_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhujiedong/LI-6800-R-series/master/R-6800-series-4_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /LI-6800-R-series.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: XeLaTeX 14 | -------------------------------------------------------------------------------- /demo-racir/demo-racir.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: XeLaTeX 14 | -------------------------------------------------------------------------------- /default-fonts.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz); 2 | @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic); 3 | @import url(https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700); 4 | 5 | body { font-family: 'Droid Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif; } 6 | h1, h2, h3 { 7 | font-family: 'Yanone Kaffeesatz'; 8 | font-weight: normal; 9 | } 10 | .remark-code, .remark-inline-code { font-family: 'Source Code Pro', 'Lucida Console', Monaco, monospace; } 11 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | ## 使用 R 软件分析光合数据 2 | 3 | 下面的内容是使用 R 软件分析光合数据的一个系列的幻灯片链接,可结合视频参考相关的幻灯片内容: 4 | 5 | ## 1. R 软件的安装和使用 6 | 7 | [R 软件的安装和使用](/LI-6800-R-series/R-6800-series-1.html) 8 | 9 | ## 2. 分析前数据的准备和读取 10 | 11 | [分析前数据的准备和读取](/LI-6800-R-series/R-6800-series-2.html) 12 | 13 | ## 3. 光响应曲线的拟合 14 | 15 | [光响应曲线的拟合](/LI-6800-R-series/R-6800-series-3.html) 16 | 17 | ## 4. FvCB 模型的拟合 18 | 19 | [FvCB 模型的拟合](/LI-6800-R-series/R-6800-series-4.html) 20 | 21 | ## 5. 使用 onepoint 方法计算 Vcmax 和 Jmax 22 | 23 | [使用 onepoint 方法计算 Vcmax 和 Jmax](/LI-6800-R-series/R-6800-series-5.html) 24 | 25 | ## 6. RACiR 数据的分析 26 | 27 | [RACiR 数据的分析](/LI-6800-R-series/R-6800-series-6.html) 28 | -------------------------------------------------------------------------------- /zh-CN.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Yanone Kaffeesatz'; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local('Yanone Kaffeesatz Regular'), local('YanoneKaffeesatz-Regular'), 6 | url('https://github.com/yihui/xaringan/releases/download/v0.1/yanone-kaffeesatz.woff') format('woff'); 7 | } 8 | @font-face { 9 | font-family: 'Droid Serif'; 10 | font-style: normal; 11 | font-weight: 400; 12 | src: local('Droid Serif'), local('DroidSerif'), 13 | url('https://github.com/yihui/xaringan/releases/download/v0.1/droid-serif.woff') format('woff'); 14 | } 15 | @font-face { 16 | font-family: 'Source Code Pro'; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: local('Source Code Pro'), local('SourceCodePro-Regular'), 20 | url('https://github.com/yihui/xaringan/releases/download/v0.1/source-code-pro.woff') format('woff'); 21 | } 22 | 23 | body { font-family: 'Droid Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Songti SC', serif; } 24 | h1, h2, h3 { 25 | font-family: 'Yanone Kaffeesatz', 'Palatino Linotype', 'Book Antiqua', Palatino, 'STHeiti', 'SimHei', 'Microsoft YaHei'; 26 | font-weight: normal; 27 | } 28 | .remark-code, .remark-inline-code { font-family: 'Source Code Pro', 'Lucida Console', Monaco, monospace; } 29 | -------------------------------------------------------------------------------- /default.css: -------------------------------------------------------------------------------- 1 | a, a > code { 2 | color: rgb(249, 38, 114); 3 | text-decoration: none; 4 | } 5 | .footnote { 6 | position: absolute; 7 | bottom: 3em; 8 | padding-right: 4em; 9 | font-size: 90%; 10 | } 11 | .remark-code-line-highlighted { background-color: #ffff88; } 12 | 13 | .inverse { 14 | background-color: #272822; 15 | color: #d6d6d6; 16 | text-shadow: 0 0 20px #333; 17 | } 18 | .inverse h1, .inverse h2, .inverse h3 { 19 | color: #f3f3f3; 20 | } 21 | /* Two-column layout */ 22 | .left-column { 23 | color: #777; 24 | width: 20%; 25 | height: 92%; 26 | float: left; 27 | } 28 | .left-column h2:last-of-type, .left-column h3:last-child { 29 | color: #000; 30 | } 31 | .right-column { 32 | width: 75%; 33 | float: right; 34 | padding-top: 1em; 35 | } 36 | .pull-left { 37 | float: left; 38 | width: 47%; 39 | } 40 | .pull-right { 41 | float: right; 42 | width: 47%; 43 | } 44 | .pull-right ~ * { 45 | clear: both; 46 | } 47 | img, video, iframe { 48 | max-width: 100%; 49 | } 50 | blockquote { 51 | border-left: solid 5px lightgray; 52 | padding-left: 1em; 53 | } 54 | .remark-slide table { 55 | margin: auto; 56 | border-top: 1px solid #666; 57 | border-bottom: 1px solid #666; 58 | } 59 | .remark-slide table thead th { border-bottom: 1px solid #ddd; } 60 | th, td { padding: 5px; } 61 | .remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) { background: #eee } 62 | 63 | @page { margin: 0; } 64 | @media print { 65 | .remark-slide-scaler { 66 | width: 100% !important; 67 | height: 100% !important; 68 | transform: scale(1) !important; 69 | top: 0 !important; 70 | left: 0 !important; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /R-6800-series-1.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 软件分析光合数据之一" 3 | subtitle: "R 软件及其相关工具的安装" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | highlightStyle: ir-black 14 | highlightLines: true 15 | countIncrementalSlides: false 16 | --- 17 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 18 | 19 | class: inverse, left, middle, animated, fadeIn 20 | 21 | # 1. R 软件 22 | 23 | # 2. Rstudio 软件 24 | 25 | # 3. Rstudio 的基本操作 26 | --- 27 | background-image: url("https://s1.ax1x.com/2020/03/30/Gmbxk6.png") 28 | background-position: center 29 | background-size: contain 30 | 31 | class: middle, center, animated, fadeIn 32 | 33 |
34 |
35 |
36 |
37 |
38 | # .large.bold.blue[人生苦短,我用 R] 39 | 40 | --- 41 | class: animated, fadeIn 42 | 43 | # R 软件 44 | 45 | R 是一款专用于统计计算和图形的自由软件,是由统计学家编写的软件。 46 | 47 | - 免费 48 | 49 | - 非常多的软件包支持 ([pakcages](https://mirrors.tuna.tsinghua.edu.cn/CRAN/)) 50 | 51 | - 跨平台 52 | 53 | - 简单易学 54 | 55 | --- 56 | class: animated, fadeIn 57 | 58 | # Rstudio 59 | 60 | > RStudio’s mission is to create free and open-source software for data science, scientific research, and technical communication. 61 | 62 | .large.bold.tomato[其出品的 Rstudio 软件则是用 R 写代码的最佳搭档!] 63 | 64 | ```{r} 65 | include_graphics("./img/timeline.png") 66 | ``` 67 | 68 | 69 | 70 | --- 71 | class: animated, fadeIn 72 | 73 | # R 和 Rtudio 软件的下载 74 | 75 | 76 | .pull-left[ 77 | ### R 78 | 79 | - [Windows](https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/) 80 | - [macOS](https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/) 81 | - [Linux](https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/) 82 | ] 83 | 84 | -- 85 | .pull-right[ 86 | 87 | ### RStudio: 88 | 89 | - [Download](https://rstudio.com/products/rstudio/download/) 90 | ] 91 | 92 |
93 |
94 | .blue[R 软件是具体执行分析的软件, Rsutdio 则为我们写代码的一个环境。即 R 是具体执行代码,进行分析工作的部分,是核心部分,我们可以没有 Rstudio,但不能没有 R,Rsutido 使我们能够更方便的进行代码编写。] 95 | --- 96 | class: animated, fadeIn 97 | 98 | 99 | ## RStudio 界面 100 | 101 | .pull-left[ 102 | 103 | ```{r} 104 | include_graphics("http://www.sthda.com/sthda/RDoc/images/rstudio.png") 105 | ``` 106 | ] 107 | 108 | -- 109 | class: animated, fadeIn 110 | 111 | .pull-right[ 112 | 113 | ### 快捷键 114 | 115 | - ctrl + enter (运行选择的区域/行) 116 | 117 | - ctrl + alt + R (运行所有代码) 118 | 119 | - 方向键 (自动补全) 120 | 121 | - ctr+shift+f10 (重启 R) 122 | 123 | ] 124 | --- 125 | class: inverse, middle, center, animated, fadeIn 126 | 127 | .large.bold[# R 的安装演示] 128 | 129 | 130 | --- 131 | class: inverse, middle, center, animated, fadeIn 132 | 133 | .large.bold[# Rstudio 的安装及简单介绍演示] 134 | 135 | 136 | --- 137 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 138 | background-size: contain 139 | 140 | -------------------------------------------------------------------------------- /R-6800-series-2.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 软件分析光合数据之二" 3 | subtitle: "分析前数据的准备和读取" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 19 | 20 | class: inverse, left, middle, animated, fadeIn 21 | 22 | # 1. LI-6800 数据的格式 23 | 24 | # 2. 文件格式的转换 25 | 26 | # 3. 软件包的安装 27 | 28 | # 4. 读取 csv 文件 29 | 30 | # 5. 读取原始文件和 Excel 文件 31 | 32 | --- 33 | class: inverse, middle, center, animated, fadeIn 34 | 35 | # .large.bold[LI-6800 的数据格式] 36 | 37 | --- 38 | class: animated, fadeIn 39 | # 原始数据 40 | 41 | LI-6800 的原始数据不带任何后缀,为 tab 分隔符分隔的纯文本文件,可以使用**任何的文本编辑器(推荐 notepad++)**打开。 42 | 43 | ```{r} 44 | include_graphics("./img/raw-data.png") 45 | ``` 46 | 47 | **目前并不推荐初次使用 R 就读取 LI-6800 原始数据文件** 48 | --- 49 | class: animated, fadeIn 50 | 51 | # excel 数据 52 | 53 | LI-6800 的 excel 数据是标准的 excel 文件,内含大量的公式,方便我们直接修改某些参数而进行重计算。 54 | 55 | ```{r} 56 | include_graphics("./img/excel-data.png") 57 | ``` 58 | 59 | **虽然 excel 数据对人类阅读比较友好,但目前流行的 `tidyverse` 中的 `read_excel` 并不支持其中的公式读取** ,需要 `XLConnect` 软件包才可以,需要安装 [JRE](https://java.com/en/download/) 支持。 60 | --- 61 | class: inverse, center, middle, animated, fadeIn 62 | 63 | 64 | # .large.bold[软件包的安装] 65 | 66 | 67 | --- 68 | class: animated, fadeIn 69 | # 图形界面安装 CRAN 软件包 70 | .pull-left[ 71 | ```{r, fig.retina=2} 72 | include_graphics("./img/repo.png") 73 | ``` 74 | ] 75 | 76 | .pull-right[ 77 | 78 |
79 |
80 |
81 | 82 | ```{r, fig.retina=2} 83 | include_graphics("./img/gui-packages.png") 84 | ``` 85 | ] 86 | --- 87 | class: animated, fadeIn 88 | # 命令安装软件包 89 | 90 | .large.bold[- 安装 CRAN 软件包] 91 | 92 | 93 | ```r 94 | install.packages("packages") 95 | # 或 96 | install.packages(c("packages1", "packages2", "...")) 97 | ``` 98 | 99 | .large.bold[- `remotes` 安装其他来源的软件包] 100 | 101 | 例如: 102 | 103 | ```r 104 | remotes::install_github("repo name") 105 | remotes::install_bitbucket("repo name") 106 | remotes::install_git("url") 107 | ``` 108 | 109 | --- 110 | class: inverse, center, middle, animated, fadeIn 111 | 112 | 113 | # .large.bold[读取数据文件] 114 | 115 | --- 116 | class: animated, fadeIn 117 | 118 | # 读取 csv 文件 119 | 120 | ## R 有许多与读取 csv 文件相关的函数,例如常用的: 121 | 122 | ```r 123 | utils::read.csv 124 | readr::read_csv 125 | data.table::fread 126 | ``` 127 | 128 | ## 其它 ...... 129 | 130 | --- 131 | class: animated, fadeIn 132 | 133 | # 读取原始数据和 Excel 文件 134 | 135 | ## 原始数据文件: 136 | 137 | 1. 直接使用 `read.delim` 读取 tab 分隔符的数据,因数据格式的原因,需要读取两次,以获得表头和数据。 138 | 139 | 2. 使用 `readphoto::regex_read` 直接读取 140 | 141 | -- 142 | ## Excel 数据文件: 143 | 144 | 使用 `readphoto::xlconnect_read` 145 | 146 | 147 | --- 148 | class: inverse, center, middle, animated, fadeIn 149 | 150 | # .large.bold[数据读取的演示] 151 | --- 152 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 153 | background-size: contain 154 | -------------------------------------------------------------------------------- /R-6800-series-5.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 分析 LI-6800 的数据之五" 3 | subtitle: "使用 onepoint 方法计算 Vcmax 和 Jmax" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 19 | 20 | class: inverse, left, middle, animated, fadeIn 21 | 22 | # 主要内容 23 | 24 | # 1. one point 方法背景介绍 25 | # 2. one point 的理论假设 26 | # 3. one point 方法的拟合及演示 27 | --- 28 | class: inverse center middle, animated, fadeIn 29 | 30 | # .large.bold[one point 方法的背景介绍] 31 | 32 | --- 33 | class: animated, fadeIn 34 | 35 | # one point 方法的背景 36 | 37 | .pull-left[ 38 | 39 | ```{r, fig.retina=2} 40 | include_graphics("./img/one-point.png") 41 | ``` 42 | ] 43 | 44 | .pull-right[ 45 | 46 |
47 |
48 | - 收集了 1394 个冠层上部叶片的 ACi 测量数据。 49 | 50 | - 涵盖 46 个样地的 564 个 C3 物种。 51 | 52 | - 除了一个样地使用了自制的开路系统外,其他均使用 LI-6400 测量完成。 53 | 54 | ] 55 | 56 | --- 57 | 58 | class: inverse center middle, animated, fadeIn 59 | 60 | # .large.bold[one point 的理论假设] 61 | 62 | --- 63 | class: animated, fadeIn 64 | 65 | # $\hat V_{cmax}$ 的计算 66 | 67 | .pull-left[ 68 | 69 | 计算前叶片需满足: 70 | 71 | - 叶片处于外界大气的 $CO_2$ 浓度之下 72 | 73 | - 叶片处于饱和光强之下 74 | 75 | - 处于羧化速率限制阶段而不是 RuBP 再生限制阶段 76 | 77 | 这样 $\hat V_{cmax}$ 可以通过下面的公式来计算: 78 | 79 | $$\hat V_{cmax} = (A_{sat}+R_{day})(\frac{C_i+ K_m}{C_i- \Gamma^*})$$ 80 | 81 | 而 Km 米氏常数则为: 82 | 83 | $$K_m=K_c(1+\frac{O_i}{K_o})$$ 84 | 85 | ] 86 | 87 | .pull-right[ 88 | 89 | 在 $R_{day}$ 未知的情况下,作者按照 Collatz 等的方法,假设其为 $V_{cmax}$ 的 1.5%,那么: 90 | 91 | $$\hat V_{cmax} = \frac{A_{sat}}{\frac{C_i- \Gamma^*}{C_i+ K_m} - 0.015}$$ 92 | 93 | 若 $R_{day}$ 已知,那么可以直接带入计算,并且结果与实际 $V_{cmax}$ 具有很高的一致性,**`fitaci` 需要使用 Rd**。 94 | 95 | ] 96 | 97 | --- 98 | class: animated, fadeIn 99 | 100 | 101 | # $\hat J_{max}$ 的计算 102 | 103 | 假设为 $J_{max}$ 与 $V_{cmax}$ 是有很强的相关性的, 实际上众多文献也证实了该点,one point 这篇文章中的比值均值为 1.9,范围在 1.68 ~ 2.14 之间。我们也可以提前测量或使用历史数据得到。 104 | 105 | ----- 106 | 107 | **.large.bold[注意:]** 108 | 109 | 该方法需要最所测量物种有非常深的了解,例如: 110 | 111 | - Ci transition 浓度,否则无法保证外界浓度二氧化碳下植物是否处于 Rubisco 限制阶段。 112 | 113 | - 准确的 $R_{day}$ 测量有助于提升结果的可靠性。 114 | 115 | - 准确的 Vcmax 与 Jmax 的比例有助于 Jmax 的准确性,不过二者的比例一般都会在 2 左右。 116 | 117 | - 植物要确保处于饱和光强的照射之下,并且需要诱导。 118 | 119 | - 适合大批量的快速判定同一种的 Vcmax 或 Jmax 120 | 121 | --- 122 | class: animated, fadeIn 123 | 124 | # 拟合方法 125 | 126 | .pull-left[ 127 | 拟合还是需要 `fitaci` 函数,正确的函数写法至少要包含下面的参数: 128 | 129 | ```r 130 | fit <- 131 | fitaci( 132 | aci, 133 | varnames = list( 134 | ALEAF = "A", 135 | Tleaf = "Tleaf", 136 | Ci = "Ci", 137 | PPFD = "Qin", 138 | Rd = "Rd" 139 | ), 140 | fitmethod = "onepoint", 141 | useRd = TRUE 142 | ) 143 | ``` 144 | 第一个问题是表头必须使用 LI-6800 的格式。 145 | ] 146 | 147 | .pull-right[ 148 | 149 |
150 | `fitaci` 的计算要求输入 Rd,因此 `useRd = TRUE` 是必须的,拟合的方法自然是要选择 ‘onepoint’。 151 | 152 | ```{r} 153 | include_graphics("./img/rday.png") 154 | ``` 155 | 156 | ] 157 | 158 | --- 159 | class: animated, fadeIn 160 | 161 | # 结果的查看 162 | 163 | 使用 onepoint 方法计算的结果不同于其他的两种拟合方法,该方法返回一个 data frame,所以我们如果需要,直接将数据保存到电脑即可,当然,也可以只保存 $J_{max}$ 与 $V_{cmax}$ 两列数据。 164 | 165 | 例如使用 `write.csv` 将数据保存到本地: 166 | 167 | ```r 168 | write.csv(fit, file.choose()) 169 | ``` 170 | 如果仅需要 $J_{max}$ 与 $V_{cmax}$ 两列数据,那么他们会在保存的 csv 格式的最后两列,我们可以手动删除其他列,或者先将两列数据单独存为 data.frame 后保存: 171 | 172 | ```r 173 | df <- data.frame(vcmax = fit$Vcmax, jmax = fit$Jmax) 174 | write.csv(df, file.choose()) 175 | ``` 176 | --- 177 | class: animated, fadeIn 178 | 179 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 180 | background-size: contain 181 | 182 | -------------------------------------------------------------------------------- /rseries-todo.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 软件分析光合数据之一" 3 | subtitle: "R 软件及其相关工具的安装" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://i.stack.imgur.com/W5p8w.png") 19 | 20 | class: inverse, left, middle 21 | 22 | # R 软件 23 | 24 | # 25 | --- 26 | class: animated, fadeIn 27 | 28 | ## 基本准备 29 | 30 | .pull-left[ 31 | ### R 32 | 33 | - [Windows](https://cran.r-project.org/bin/windows/base/R-3.5.2-win.exe) 34 | - [macOS](https://cran.r-project.org/bin/macosx/R-3.5.2.pkg) 35 | - [Linux](https://cran.r-project.org/bin/linux/) 36 | ] 37 | 38 | -- 39 | 40 | .pull-right[ 41 | 42 | ### RStudio: 43 | 44 | - [Download](https://www.rstudio.com/products/rstudio/download/#download) 45 | ] 46 | 47 | .blue[R 软件是具体执行分析的软件, Rsutdio 则为我们写代码的一个环境。即 R 是具体执行代码,进行分析工作的部分,是核心部分,我们可以没有 Rstudio,但不能没有 R,Rsutido 使我们的能够进行代码编写。] 48 | --- 49 | class: animated, fadeIn 50 | 51 | 52 | ## RStudio 使用 53 | 54 | .pull-left[ 55 | 56 | ### 面板 57 | 58 | ![](http://www.sthda.com/sthda/RDoc/images/rstudio.png) 59 | 60 | ] 61 | 62 | -- 63 | 64 | .pull-right[ 65 | 66 | ### 快捷键 67 | 68 | - ctrl + enter (Run selected line(s)) 69 | 70 | - F1 (show function help) 71 | 72 | - TAB (completion) 73 | 74 | ### Project 75 | - 方便的相对路径引用 76 | - 快速查看当前目录的文件 77 | - 方便的自定义设置 78 | ] 79 | 80 | --- 81 | 82 | 83 | --- 84 | ## 数据的导入和导出 85 | 86 | .pull-left[ 87 | 88 | ### 数据的导入 89 | 90 | ```r 91 | read.csv("./data/lrc.csv") 92 | ?read.table 93 | ?readxl::read_excel 94 | ``` 95 | ] 96 | -- 97 | .pull-right[ 98 | 99 | ### 数据的导出 100 | 101 | ```r 102 | write.csv(AQ, "./data/lrc.csv") 103 | write.table(AQ, "./data/lrc.csv", sep="\t") 104 | ``` 105 | ] 106 | 107 | R 支持非常丰富的数据文件导入,例如 SPSS, SAS, SQL, json 等,但遇到最多的还是 csv,txt,excel更格式,也是我们光合数据分析常用到的格式。 108 | 109 | --- 110 | 111 | ## 光响应曲线的拟合 112 | ### 数据的准备 113 | 114 | ```{r, echo=FALSE} 115 | aq <- read.csv("../data/lrc.csv") 116 | knitr::kable(aq[1:6, 1:7], format="html") 117 | ``` 118 | 对于我们来讲,数据整理成如上样式的 csv 文件最为方便,当然数据量大时批量的数据整理可以使用 `readphoto` 来实现。 119 | --- 120 | ### 选择模型 121 | 例如,直角双曲线模型 R 的书写方法 122 | 123 | $$P_{n} = \frac{\alpha I\ P_{nmax}}{\alpha I + P_{nmax}}- R_{d}$$ 124 | 125 | ```r 126 | lrc_A ~ (alpha * lrc_Q * Am) * (1/(alpha * lrc_Q + Am)) - Rd 127 | ``` 128 | --- 129 | class: center, middle 130 | 131 | # 实例演示 132 | --- 133 | ## $CO_2$ 响应曲线的拟合 134 | 135 | 这个实现方式比较简单,重点说明一下几个问题: 136 | 137 | ### 默认拟合方法失败时 138 | 139 | ```r 140 | fitmethod = "bilinear" 141 | ``` 142 | - `fitmethod = default` 失败时使用。 143 | 144 | - 也就是两次线性拟合求得 Vcmax, Jmax。 145 | --- 146 | ## `fitacis` 的分组数据 147 | ### factor 148 | 149 | factor 是包含预定义值的特殊向量,用于存储.red[分类数据]。它建立在 .blue[整数向量]之上,只不过有特殊的属性,这使得他们和我们平常所见的整数向量表现不同。 150 | 151 | ```{r} 152 | x <- factor(c("a", "b", "b", "a")) 153 | x 154 | y <- c("a", "b", "b", "a") 155 | y 156 | x <- factor(c("a", "b", "b", "a"), levels = c("b","a")) 157 | x 158 | ``` 159 | 160 | factor 对于我们来讲,最重要的作用就是区分不同的水平,不同的处理,例如上面的 factor,我可以将 a 编号为干旱处理,b 为对照,类似于我们 LI-6800 里的 user constant。 161 | 162 | --- 163 | ### 数据的格式 164 | 165 | ```{r, echo=FALSE} 166 | library(plantecophys) 167 | knitr::kable(manyacidat[1:5,1:6], format="html") 168 | ``` 169 | 170 | 实例中 `fitacis` 使用了 curve 作为不同数据的分组,也就是将其作为了 .red[factor],这组数据并不是光合仪测得,可以是文件名,处理名等待,示例数据看上去像是对不同处理的编号。 171 | --- 172 | class: center, middle 173 | 174 | # 实例演示(略)? 175 | --- 176 | ## RACiR 数据分析 177 | 178 | ### racir 软件包 179 | 180 | 作者将程序改为只支持原始数据的分析,目前我手头没原始数据的文件,示例分析需延后。 181 | 182 | - 春天之后在办公室做测试用。 183 | 184 | - 在作者基础上修改,支持其他格式。主要考虑了重计算叶面积数据。 185 | 186 | --- 187 | class: center, middle 188 | 189 | # 手动分析数据实例演示 190 | 191 | --- 192 | class: center, middle 193 | 194 | # jiptest 实例演示 195 | --- 196 | class: center, middle 197 | 198 | # 其他问题讨论 199 | 200 | --- 201 | 202 | class: center, middle 203 | 204 | # 谢谢 205 | -------------------------------------------------------------------------------- /extra-lucy.css: -------------------------------------------------------------------------------- 1 | /* This is a self-defined css, created by Peng Zhao . */ 2 | /* Anyone can re-use or modify this file for free. */ 3 | /* Please leave a trace here if you modify it. */ 4 | /* 2018-12-02 Peng Zhao: created. */ 5 | /* 2018-12-04 Peng Zhao: uploaded and shared. */ 6 | /* 2020-2-4 zhujiedong add colors */ 7 | 8 | .red { color: #FF0000 } 9 | .green { color: #7FFF00 } 10 | .gold { color: #FFD700 } 11 | .blue {color: blue} 12 | .silver {color: silver} 13 | .purple {color: #8b008b} 14 | .yellow {color: yellow} 15 | .orange {color: orange} 16 | 17 | .large { font-size: 140% } 18 | .medium { font-size: 110% } 19 | .small { font-size: 70% } 20 | 21 | 28 | 29 | .remark-slide-number .progress-bar-container { 30 | position: absolute; 31 | bottom: 0; 32 | height: 4px; 33 | display: block; 34 | left: 0; 35 | right: 0; 36 | } 37 | 38 | .remark-slide-number .progress-bar { 39 | height: 100%; 40 | background-color: red; 41 | } 42 | 43 | 44 | .column:first-of-type {float:left} 45 | .column:last-of-type {float:right} 46 | 47 | .split-40 .column:first-of-type {width: 40%} 48 | .split-40 .column:last-of-type {width: 60%} 49 | 50 | .float_center { 51 | float: right; 52 | position: relative; 53 | left: -50%; /* or right 50% */ 54 | text-align: left; 55 | } 56 | .float_center > .child { 57 | position: relative; 58 | left: 50%; 59 | } 60 | 61 | 62 | .col3 { 63 | -webkit-column-count: 3; /* Chrome, Safari, Opera */ 64 | -moz-column-count: 3; /* Firefox */ 65 | column-count: 3; 66 | } 67 | 68 | h2 { 69 | -webkit-column-span: all; /* Chrome, Safari, Opera */ 70 | column-span: all; 71 | } 72 | 73 | .rotate { 74 | 75 | /* Safari */ 76 | -webkit-transform: rotate(-90deg); 77 | 78 | /* Firefox */ 79 | -moz-transform: rotate(-90deg); 80 | 81 | /* IE */ 82 | -ms-transform: rotate(-90deg); 83 | 84 | /* Opera */ 85 | -o-transform: rotate(-90deg); 86 | 87 | /* Internet Explorer */ 88 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 89 | 90 | } 91 | 92 | 93 | .title-slide h1 { 94 | color: #F7F8FA; 95 | } 96 | .title-slide h2, .title-slide h3 { 97 | color: #e7e8e2; 98 | line-height: 1.5em; 99 | } 100 | 101 | 102 | 103 | /* lucy.css*/ 104 | 105 | .remark-slide-content { 106 | background-color: #000; 107 | color: #fff; 108 | } 109 | 110 | strong { 111 | color: #92d050; 112 | } 113 | 114 | h2, h3 { 115 | font-weight: normal; 116 | color: #92d050; 117 | } 118 | 119 | .inverse { 120 | background-color: #add9f1; 121 | text-shadow: 0 0 0; 122 | } 123 | 124 | .inverse, .inverse h1, .inverse h2, .inverse h3, .inverse a, inverse a > code { 125 | color: #000; 126 | } 127 | 128 | .inverse h1 { 129 | font-size: 100px; 130 | } 131 | 132 | .title-slide { 133 | background-color: #000; 134 | color: #fff; 135 | } 136 | 137 | .title-slide h1, .title-slide h2 { 138 | color: #fff; 139 | } 140 | 141 | .title-slide h3 { 142 | color: #92d050; 143 | } 144 | 145 | a, a > code { 146 | color: #add9f1; 147 | } 148 | 149 | .footer { 150 | position: fixed; 151 | left: 0; 152 | bottom: 0; 153 | height: 20px; 154 | width: 100%; 155 | text-align: center; 156 | text-transform: uppercase; 157 | letter-spacing: 3px; 158 | font-size: 10px; 159 | } 160 | 161 | li { 162 | font-size: 40px; 163 | margin: 18px 0; 164 | } 165 | 166 | ol { 167 | max-width: 350px; 168 | counter-reset: my-counter; 169 | list-style: none; 170 | padding-left: 40px; 171 | font-size: 40px; 172 | } 173 | ol li { 174 | counter-increment: my-counter; 175 | position: relative; 176 | margin: 20px 0; 177 | } 178 | ol li::before { 179 | content: counter(my-counter); 180 | color: #fff; 181 | font-size: 40px; 182 | font-weight: bold; 183 | position: absolute; 184 | left: -60px; 185 | line-height: 50px; 186 | width: 50px; 187 | height: 50px; 188 | top: 0; 189 | background: #92d050; 190 | border-radius: 50%; 191 | text-align: center; 192 | } 193 | 194 | -------------------------------------------------------------------------------- /R-6800-series-3.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 软件分析光合数据之三" 3 | subtitle: "光响应曲线的拟合" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 19 | 20 | class: inverse, left, middle, animated, fadeIn 21 | 22 | # 1. 光响应曲线的模型 23 | 24 | # 2. 模型的拟合 25 | 26 | # 3. 补偿点和饱和点的计算 27 | 28 | # 4. 步骤详解及演示 29 | --- 30 | class: inverse, middle, center, animated, fadeIn 31 | 32 | # .large.bold[光响应曲线的模型] 33 | 34 | --- 35 | class: animated, fadeIn 36 | 37 | # 光响应曲线模型的类型 38 | 39 | 40 | .large.bold[光响应曲线的模型有很多,常见的有四大类: 41 | 42 | - 直角双曲线模型 43 | - 非直角双曲线模型 44 | - 指数模型 45 | - 直角双曲线修正模型 46 | ] 47 | 48 | 其简单介绍可以参考:[光响应曲线拟合-github](https://zhujiedong.github.io/photoanalysis/lrc-fit.html) 或 [光响应曲线拟合-gitee](http://zhu_jie_dong.gitee.io/photoanalysis/lrc-fit.html) 49 | --- 50 | class: animated, fadeIn 51 | # 模型的拟合 52 | 53 | 不管哪个模型的拟合,都属于非线性拟合,可以使用下面几个函数来拟合: 54 |
55 |
56 | 57 | ```r 58 | stats::nls() 59 | 60 | minpack.lm::nlsLM() 61 | 62 | nls2::nls2() 63 | ``` 64 |
65 |
66 | 其中 `nls2` 基于 `nls`,但可以设定一个初值的范围,`minpack.lm` 基于 `MINPACK` 库,`nlsLM` 最大的特点就是对初值的敏感性较低,比较容易得到测量结果(同样的初值出现不收敛的概率相对低)。 67 | 68 | 关于非线性拟合初值确定的问题可参考:[非线性拟合初值的确定-github](https://zhujiedong.github.io/photoanalysis/start-con.html) 或 [非线性拟合初值的确定-gitee](http://zhu_jie_dong.gitee.io/photoanalysis/start-con.html) 69 | --- 70 | class: animated, fadeIn 71 | 72 | # 光补偿点的计算 73 | 74 |
75 |
76 | 除了指数模型和直角双曲线修正模型外,其他模型因为模型参数本身不使用补偿点作为参数,无法通过拟合得到光补偿点,我们可以通过下面的方式计算: 77 | 78 |
79 |
80 | 当达到光补偿点时,净光合速率为零,我们可以通过计算出模型参数后,使得净光合速率为零,然后将模型作为光强未知的一元方程求解,在比较低的范围内(例如 1 ~ 50),得到方程的根即为光的补偿点。 81 | 82 | --- 83 | class: animated, fadeIn 84 | 85 | # 光饱和点的计算 86 | 87 | .pull-left[ 88 | 89 | 理论上可以使用下面的方式来计算:弱光条件下 90 | ( $\leq 200 \mu mol\cdot m^{-2}\cdot s^{-1}$ ) 的数据通过线性拟合得到表观量子效率(apparent 91 | quantum efficiency,AQE),利用非线性最小二乘法估算 $P_{nmax}$ ,最后计算求解 $I_{sat}$, 92 | 93 | $$P_{nmax}= AQE \times I_{sat} - R_{d}$$ 94 | 95 | 但此方法测得的光饱和点远小于实测值。 96 | ] 97 | 98 | .pull-right[ 99 | 100 | ```{r, fig.cap="引用自叶子飘等( 2010)", fig.align='center'} 101 | include_graphics("./img/aqe.png") 102 | ``` 103 | 104 | 105 | ] 106 | 107 | --- 108 | class: animated, fadeIn 109 | 110 | # 光饱和点的计算 111 | 112 | 除了直角双曲线修正模型外,其他三种模型均不存在极大值,无光饱和点,我们可以根据计算补偿点相似的方法,将净光合速率达到最大光合速率一定比例时的值,作为刚刚达到光饱和点时的光合速率,此时也在一定范围内(例如400 ~ 2000)计算一元方程的根,将其作为光饱和点。可参考: 113 | 114 | Huang, HY, XY Dou, PY Sun, B Deng, GJ Wu, and CL Peng. 2009. “Comparison of Photosynthetic Characteristics in Two Ecotypes of Jatropha Curcas in Summer.” Acta Ecologica Sinica, no. 29: 2861–2867 115 | 116 | Zhang, XS, SH Shen, and J Song. 2009. “The Vertical Distribution of Cotton Leaf Nitrogen Content and Photosynthetic Characteristics in the North China Plain.” Acta Ecologica Sinica, no. 29: 1893–1898. 117 | 118 | --- 119 | class: animated, fadeIn 120 | 121 | # 代码详解 122 | 123 | ## 以直角双曲线为例的介绍 124 | 125 | 直角双曲线的形式为: 126 | 127 | $$P_{n} = \frac{\alpha I\ P_{nmax}}{\alpha I + P_{nmax}}- R_{d}$$ 128 | 129 | 130 | * 其中 $P_{n}$ 为净光合速率; 131 | * I 为光强; 132 | * $\alpha$ 为光响应曲线的初始斜率,也称之为初始量子效率; 133 | * $P_{nmax}$ 为最大净光合速率; 134 | * $R_{d}$:为暗呼吸速率。 135 | 136 | $P_{n}$ 和 I 是我们直接测量的数据,其他的为模型计算所需要的参数。 137 | --- 138 | class: animated, fadeIn 139 | 140 | # 模型的公式化 141 | 142 | 我们要对直角双曲线模型进行拟合,必须将其写为 R 的数学表达形式,才能用于 formula,例如非直角双曲线写为 formula 为: 143 | 144 | ```r 145 | lrc_A ~ (alpha * lrc_Q * Am) * (1/(alpha * lrc_Q + Am)) - Rd 146 | 147 | ``` 148 | 149 | 其中 lrc_Q 为光强,lrc_A 为净光合速率 150 | 151 | 具体可参考帮助文档: 152 | 153 | ```r 154 | ?Arithmetic 155 | ?formula 156 | ``` 157 | 158 | --- 159 | class: animated, fadeIn 160 | 161 | # 数据的读取 162 | 163 | 数据的读取可以根据存储的形式,选择合适的方式,这是本系列第二讲的内容,此处不赘述。 164 | 165 | # 非线性拟合 166 | 167 | 最开始可以选择 `minpack.lm` 中的 `nlsLM` 函数进行拟合。各个初值的设定原则为: 168 | 169 | - Am:最大光合速率可以使用测量的光合速率最大值与最小值之差。 170 | - Rd:可以使用最小的光合速率的绝对值。 171 | - $\alpha$: 初始斜率可以使用 0.05 等小数点后第二位的数字来作为尝试。 172 | - 如果有一个大概的范围,可以使用 `nls2` 来构造一个初值的范围网格 173 | 174 | 可参考:[初值的确定-github](https://zhujiedong.github.io/photoanalysis/start-con.html) 或 [初值的确定-gitee](http://zhu_jie_dong.gitee.io/photoanalysis/start-con.html) 175 | --- 176 | class: animated, fadeIn 177 | 178 | # 拟合结果的查看和调用 179 | 180 | - 使用 `summary` 查看拟合结果 181 | 182 | - 返回的结果是一个列表,计算的参数存储于 coefficient 列表内 183 | 184 | 有用的帮助文档: 185 | 186 | 187 | ```r 188 | ?summary 189 | ?coef 190 | ``` 191 | 192 | 193 | 参数结果可以直接调用以方便计算。 194 | --- 195 | class: animated, fadeIn 196 | 197 | # 补偿点和饱和点的计算 198 | 199 | 分为两步 200 | 201 | - 调用拟合的参数,构造一元方程 202 | 203 | - 使用 `uniroot` 求得一定范围内的解 204 | 205 | 参考: 206 | 207 | ```r 208 | ?uniroot 209 | ``` 210 | 211 | --- 212 | class: inverse, center, middle, animated, fadeIn 213 | 214 | # .large.bold[详细代码运行演示] 215 | 216 | --- 217 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 218 | background-size: contain -------------------------------------------------------------------------------- /R-6800-series-6.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 分析 LI-6800 的数据之六" 3 | subtitle: "RACiR 数据的分析" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 19 | 20 | class: inverse, left, middle, animated, fadeIn 21 | 22 | # 主要内容 23 | 24 | # 1. 关于 RACiR 方法的几个研究 25 | # 2. RACiR 的数据处理 26 | # 3. RACiR 的拟合及演示 27 | --- 28 | class: inverse center middle, animated, fadeIn 29 | 30 | # .large.bold[关于 RACiR 方法的几个研究] 31 | 32 | --- 33 | class: animated, fadeIn 34 | 35 | # RACiR 的理论前提 36 | 37 | .bold.purple.large[ 38 | 有研究表明,尽管外界条件有大的 $CO_2$ 变化,进入叶片细胞液的 $CO_2$ 在溶解和 Rubisco 的 羧化下,在小于 1 s 的时间内能达到表观的稳定状态。这意味着当叶片外部 $CO_2$ 浓度的变化,叶片能在短时间内至少达到一个准稳态。表明采用快速的 $CO_2$ 变化来测量标准方式的 ACi 的参数是可能的。] 39 | 40 |
41 | .large.bold[ 42 | Laisk A. & Oja V. (1998) Dynamics of Leaf Photosynthesis: Rapid‐response Measurements and Their Interpretations. CSIRO, Collingwood, VIC, Australia. 43 | ] 44 | 45 | 46 | --- 47 | class: animated, fadeIn 48 | # RACiR 的起源 49 | 50 | ```{r} 51 | include_graphics("./img/stinziano-2017.png") 52 | ``` 53 | 54 | Stinziano 等鉴于传统 ACi测量时存在的缺点:**时间长,一条曲线至少需要 20 – 30 min,样本大时,单台仪器使用这种方法几乎没有可行性; 55 | 整个测量过程中,时间长,酶的激活状态的变化,叶绿体的移动,气孔的开度的变化等导致前后不一致**,开创性的运用了 RACiR 方法进行测量,得到有效的 Vcamx 和 Jmax 的数据。 56 | --- 57 | class: animated, fadeIn 58 | # 关于 RACiR 最佳实践的指导 59 | ```{r} 60 | include_graphics("./img/stinziano-2018.png") 61 | ``` 62 | --- 63 | class: animated, fadeIn 64 | # 关于 RACiR 研究新问题的探讨 65 | ```{r} 66 | include_graphics("./img/stinziano-2018-2.png") 67 | ``` 68 | - 揭示传统的 ACi 方法无法实践的光合特性研究(快速的 $CO_2$ 变化); 69 | 70 | - 验证光呼吸的代谢滞后性与扩散限制的相关性; 71 | 72 | - 光呼吸导致了 RACiR 对二氧化碳补偿点计算的偏差,扩散限制降低了叶绿体二氧化碳浓度的变化速率。 73 | - RACiR 在计算扩散限制和光呼吸速率上非常有帮助。 74 | --- 75 | class: animated, fadeIn 76 | # 关于簇状叶或针叶的测量的指导 77 | ```{r} 78 | include_graphics("./img/carole.png") 79 | ``` 80 | - 使用大叶室做 RACiR 测量完全可行。 81 | - 使用全范围的的和部分范围的 RACiR 计算的 Vcmax 和 Jmax 均与传统的 ACi 无差别。 82 | - RACiR 二氧化碳的补偿点较 ACi 略高,但差异不显著(p=0.06) 83 | - RACiR 对 Rd 的计算要优于 ACi 方法 84 | --- 85 | class: animated, fadeIn 86 | # 一些关键的注意事项 87 | 88 | - 匹配问题:空叶室校准的数据和 RACiR 测量的数据必须是同一个系列,换句话说,如果匹配了分析器就要重新做空叶室校准。 89 | 90 | - 匹配的时间间隔问题:根本的判定标准是 MchStatus 内的 MatchCO2 和 MatchH2O 有无变化,若无变化可以不用匹配,间隔时间长了未必不好,当然,对于新版本(BLUE>1.4.02)的 range match 来讲,匹配更准确,匹配间隔可以更长。 91 | 92 | - $CO_2$ 的变化速率,多数情况下使用 100 ppm/min 的速率是合理的 93 | 94 | - 记录时间间隔,若采用部分量程测量,可以使用 1 Hz 来计数,如果使用全范围的测量,可以使用 2 Hz。 95 | 96 | - 使用测量的 Rd 值能有效的提高 Vcmax 和 Jmax 的准确性。 97 | 98 | - 测量前一定要做预实验确定最佳的二氧化碳的变化速率和合适的浓度范围。 99 | 100 | - 浓度控制的是 Reference 分析器的浓度。 101 | 102 | --- 103 | class: inverse center middle, animated, fadeIn 104 | 105 | # .large.bold[关于 RACiR 方法的数据处理] 106 | 107 | --- 108 | class: animated, fadeIn 109 | # 为什么做空叶室校正 110 | 111 | ```{r} 112 | include_graphics("./img/path.png") 113 | ``` 114 | 115 | 因为 Sample 气路体积更大,在气体浓度的上升过程中,Reference 上升的速度远高于 Sample,空叶室下也会有一个极大的,不断变化的光合速率存在,我们要修正因为体积差异导致的计算差异,确保差异都来自于叶片,而不是气路的大小。 116 | 117 | --- 118 | class: animated, fadeIn 119 | # 如何修正气路大小不同的差异 120 | 121 | ```{r, fig.retina=2, fig.align='center'} 122 | include_graphics("./img/correct.png") 123 | ``` 124 | 125 | 利用 $CO_2R$ 修正 A,此时的 gtc 和 E 不变,我们带入上面多项式计算出来的系数,即可得到真正的光合速率。 126 | --- 127 | class: inverse center middle, animated, fadeIn 128 | 129 | # .large.bold[关于 RACiR 数据的拟合] 130 | 131 | --- 132 | class: animated, fadeIn 133 | 134 | # Stinziano 的 racir 软件包 135 | 136 | 网址:[https://github.com/jstinzi/racir](https://github.com/jstinzi/racir) 137 | 138 | ```{r, fig.retina=2, } 139 | include_graphics("./img/git-stinziano.png") 140 | ``` 141 | 142 |
143 | - 只支持原始数据格式 144 | 145 | - 有一个循环写的批量处理的命令 146 | 147 | 因手头暂无原始数据,此方法不再演示,与下面提到的修改的 racir 包相似。 148 | 149 | --- 150 | class: animated, fadeIn 151 | 152 | # 修改的 Stinziano 的 racir 软件包 153 | 154 | 网址:[https://github.com/zhujiedong/racir](https://github.com/zhujiedong/racir) 155 | 156 | ```{r, fig.retina=2, } 157 | include_graphics("./img/git-zjd.png") 158 | ``` 159 | 160 | **fork 的 Stinziano 的 repo,但删掉了大部分的函数,只保留了空叶室校准的函数,以及增加了一个显示开始和结束部分数据点参考线的图,以方便选择有效的数据点。批量处理无需专门使用函数,目前手头上无大量的数据,因此大量数据的处理的代码请参考:[RACiR](http://zhu_jie_dong.gitee.io/photoanalysis/anay-6800.html#racir68_exam),此时无法演示。 161 | 162 | --- 163 | # Lamothe 的软件包 164 | 165 | 网址:[https://github.com/ManuelLamothe/RapidACi](https://github.com/ManuelLamothe/RapidACi) 166 | 167 | ```{r, fig.retina=2, } 168 | include_graphics("./img/git-lamothe.png") 169 | ``` 170 | 171 | - 考虑的比较全面 172 | 173 | - 自动化的程度很高 174 | 175 | - 软件包的依赖较多,大量依赖 tidyverse 和 JRE 176 | --- 177 | # 全手动计算过程 178 | 179 | 假若软件包的安装或者使用过程中遇到难以解决的问题,可采用最原始的手动分析方法: 180 | 181 | [RACiR 手动分析](http://zhu_jie_dong.gitee.io/photoanalysis/anay-6800.html#racir68_exam) 182 | 183 | 比较适合掌握 RACiR 的分析和了解上面提到的的软件包,本质上是一个思路走下来的,为方便大家理解 RACiR,我们会先演示该方法分析 RACiR 的数据。 184 | --- 185 | class: inverse center middle, animated, fadeIn 186 | 187 | # .large.bold[RACiR 拟合的演示] 188 | --- 189 | class: animated, fadeIn 190 | 191 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 192 | background-size: contain 193 | 194 | -------------------------------------------------------------------------------- /R-6800-series-4.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 R 分析 LI-6800 的数据之四" 3 | subtitle: "FvCB 模型的拟合" 4 | author: "祝介东" 5 | institute: "北京力高泰科技有限公司 技术部" 6 | date: "`r Sys.Date()` 修改" 7 | output: 8 | xaringan::moon_reader: 9 | css: [zh-CN.css, extra-rutgers.css, animate-min.css] 10 | lib_dir: libs 11 | nature: 12 | ratio: '16:9' 13 | countdown: 300000 14 | highlightStyle: ir-black 15 | highlightLines: true 16 | countIncrementalSlides: false 17 | --- 18 | background-image: url("https://s1.ax1x.com/2020/03/30/GmT0oT.png") 19 | 20 | class: inverse, left, middle, animated, fadeIn 21 | 22 | # 主要内容 23 | 24 | # 1. package 介绍 25 | # 2. fitaci 参数介绍 26 | # 3. 数据的拟合 27 | # 4. 结果的查看与导出 28 | --- 29 | class: inverse center middle, animated, fadeIn 30 | 31 | # .large.bold[ plantecophys 介绍] 32 | 33 | --- 34 | class: animated, fadeIn 35 | 36 | # `plantecophys` 作者介绍 37 | 38 | .center.medium[[https://remkoduursma.github.io/plantecophys/](https://remkoduursma.github.io/plantecophys/) 39 | ] 40 | 41 | ```{r} 42 | include_graphics("./img/remko.png") 43 | ``` 44 | 45 | --- 46 | class: animated, fadeIn 47 | 48 | # 软件包的科学背景 49 | 50 | ```{r} 51 | include_graphics("./img/plos-one.png") 52 | ``` 53 | --- 54 | class: animated, fadeIn 55 | 56 | # 软件包的科学背景 57 | 58 | 为避免拟合的不连续性,采用了一个非直角双曲线形式的模型进行拟合: 59 | 60 | $$A_m = \frac{A_c+A_j- \sqrt{(A_c+A_j)^2-4 \theta A_c A_j}}{2 \theta}-R_d$$ 61 | 62 | - $\theta$ 和其他非直角双曲线模型一样,是形状的参数,默认设置为 0.9999, 63 | 64 | - $A_m$ 为双曲线性质的 $A_c$ 和 $A_j$ 65 | 66 | 软件包使用了 nls 来进行非线性拟合并进行参数的标准差计算。 67 | --- 68 | class: inverse, center, middle, animated, fadeIn 69 | 70 | # .large.bold[ fitaci 函数介绍] 71 | --- 72 | class: animated, fadeIn 73 | 74 | # 函数的参数 75 | 76 | `fitaci` 的参数比较多: 77 | 78 | ```r 79 | fitaci(data, varnames = list(ALEAF = "Photo", Tleaf = "Tleaf", Ci = "Ci", 80 | PPFD = "PARi", Rd = "Rd"), Tcorrect = TRUE, Patm = 100, 81 | citransition = NULL, quiet = FALSE, startValgrid = TRUE, 82 | fitmethod = c("default", "bilinear", "onepoint"), 83 | algorithm = "default", fitTPU = FALSE, alphag = 0, useRd = FALSE, 84 | PPFD = NULL, Tleaf = NULL, alpha = 0.24, theta = 0.85, 85 | gmeso = NULL, EaV = 82620.87, EdVC = 0, delsC = 645.1013, 86 | EaJ = 39676.89, EdVJ = 2e+05, delsJ = 641.3615, GammaStar = NULL, 87 | Km = NULL, id = NULL, ...) 88 | 89 | ``` 90 | 91 | `plantecophys` 发表于 2015 年,当时还是 LI-6400,作者后来不再搞科研,也没有在将软件包专门做 LI-6800 的适配,因此 LI-6800 使用的前提是将 `varnames` 改为 LI-6800 的变量名(或者数据文件里的变量名改为 LI-6400 的变量名也可以),但改函数的变量名,比较容易在后面进行粘贴和复制: 92 | 93 | ```r 94 | varnames =list( ALEAF = "A", Tleaf = "Tleaf", Ci = "Ci", 95 | PPFD = "Qin", Rd = "Rd" 96 | ) 97 | ``` 98 | 99 | --- 100 | class: animated, fadeIn 101 | # 重要的参数 102 | 103 | ## 拟合方法 104 | 105 | `fitmethod = c("default", "bilinear", "onepoint")` 106 | 107 | 对于标准的 ACi 曲线和 RACiR 曲线,能够使用的方法只有 default 和 bilinear,二者结果有微小的差别,并且 bilinear 能永远返回结果(因为他使用两次线性拟合来计算 $V_{cmax}$, $J_{max}$, $R_d$),线性拟合避免了非线性拟合的不收敛的问题。适合非线性拟合报错的情况,当然可以不管非线性拟合是否出结果,所有的测量均使用 bilinear。 108 | 109 | --- 110 | class: animated, fadeIn 111 | # 重要的参数 112 | ## 温度校正 113 | 114 | `fitaci` 在默认计算 $V_{cmax}$ 和 $J_{max}$ 时会将其标准化为常温下进行 (25C),我们在某些情况下,例如想要测量在实际温度下的速率,那么我们需要将其修改为下面的形式: 115 | 116 | ```r 117 | fit2 <- fitaci(acidata1, Tcorrect=FALSE) 118 | ``` 119 | -- 120 | ## 使用测量的 Rd 121 | 122 | Rd 默认可以进行拟合后得到,但这样的结果并不十分准确,如果我们测量了 Rd,那么我们可以在数据文件里增加 Rd 列,例如导入的数据名为 aci,那么我们可以: 123 | 124 | ```r 125 | aci$Rd <- 1.5 126 | fitrd <- fitaci(aci, useRd=TRUE) 127 | ``` 128 | --- 129 | class: animated, fadeIn 130 | ## Tleaf 和 Qin 不可用 131 | 132 | 仪器使用难免遇到意外状况,如果发生意外的热电偶损坏,也可以进行数据的分析,对于温度传感器,Tair 和 Tleaf 的温度非常接近,可以作为替代,尽管函数提供了 Qin 的输入,但内置光量子传感器出问题的概率很低,当然,如果使用了其他人工光源,也可以直接输入其值: 133 | 134 | ```r 135 | fit <- fitaci(aci, Tleaf=30, PPFD=2000) 136 | 137 | ``` 138 | -- 139 | class: animated, fadeIn 140 | ## 使用叶肉导度 141 | 叶肉导度是非常重要的参数,准确的输入该值: 142 | ```r 143 | fit <- fitaci(aci, gmeso=0.2) 144 | ``` 145 | 此时 $V_{cmax}$ 和 $J_{max}$ 的计算会使用 [Ethier and Livingston (2004)](https://onlinelibrary.wiley.com/doi/full/10.1111/j.1365-3040.2004.01140.x) 的方法。 146 | --- 147 | class: animated, fadeIn 148 | ## TPU 计算 149 | 150 | .pull-left[ 151 | 152 |
153 |
154 |
155 | 156 | 在 Duursma, 2015 年的文献中,还没有添加的 TPU 限制阶段,但现在函数已经有该功能: 157 | 158 | ```r 159 | fit <- fitaci(aci, fitTPU=TRUE) 160 | ``` 161 | 162 | **注:未必一定出现 TPU** 163 | ] 164 | 165 | .pull-right[ 166 | ```{r, echo=FALSE} 167 | library(plantecophys) 168 | fit7 <- fitaci(acidata1, fitTPU=TRUE) 169 | plot(fit7) 170 | ``` 171 | ] 172 | 173 | 174 | --- 175 | class: animated, fadeIn 176 | 177 | ## Ci transition 178 | 179 | Ci 浓度由 $A_c$ 向 $A_j$ (point1),以及 $A_j$ 向 $A_p$(point2)转变时的浓度。 180 | 181 | ```r 182 | findCiTransition(object) 183 | ``` 184 | 185 | --- 186 | class: inverse, center, middle, animated, fadeIn 187 | 188 | # .large.bold[拟合及结果的查看] 189 | --- 190 | class: animated, fadeIn 191 | 192 | # 数据的拟合 193 | 194 | ```r 195 | fitaci(data, varnames = list(ALEAF = "Photo", Tleaf = "Tleaf", Ci = "Ci", 196 | PPFD = "PARi", Rd = "Rd"), Tcorrect = TRUE, Patm = 100, 197 | citransition = NULL, quiet = FALSE, startValgrid = TRUE, 198 | fitmethod = c("default", "bilinear", "onepoint"), 199 | algorithm = "default", fitTPU = FALSE, alphag = 0, useRd = FALSE, 200 | PPFD = NULL, Tleaf = NULL, alpha = 0.24, theta = 0.85, 201 | gmeso = NULL, EaV = 82620.87, EdVC = 0, delsC = 645.1013, 202 | EaJ = 39676.89, EdVJ = 2e+05, delsJ = 641.3615, GammaStar = NULL, 203 | Km = NULL, id = NULL, ...) 204 | 205 | fitacis(data, group, fitmethod = c("default", "bilinear"), 206 | progressbar = TRUE, quiet = FALSE, id = NULL, ...) 207 | 208 | ``` 209 | 本质上来讲,拟合的函数只有一个, `fitacis` 本质上是调用了 `fitaci`,使用一个 group 参数来区分多条曲线的数据。 210 | 211 | --- 212 | class: animated, fadeIn 213 | 214 | # 结果的查看 215 | 216 | 查看计算结果: 217 | 218 |
219 | ```r 220 | ?summary 221 | ``` 222 |
223 | 224 | 图形查看,`acifit` S3 类,可以直接对拟合结果作图: 225 | 226 |
227 | ```r 228 | plot(x, what = c("data", "model", "none"), 229 | xlim = NULL, ylim = NULL, whichA = c("Ac", "Aj", "Amin", "Ap"), 230 | add = FALSE, pch = 19, addzeroline = TRUE, addlegend = !add, 231 | legendbty = "o", transitionpoint = TRUE, linecols = c("black", 232 | "blue", "red"), lwd = c(1, 2), lty = 1, ...) 233 | ``` 234 | 235 | --- 236 | class: animated, fadeIn 237 | 238 | background-image: url("https://s1.ax1x.com/2020/04/02/GJimlV.png") 239 | background-size: contain 240 | 241 | -------------------------------------------------------------------------------- /R-6800-series-1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 软件分析光合数据之一 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 142 | 143 | 144 | 232 | 233 | 252 | 253 | 263 | 264 | 265 | -------------------------------------------------------------------------------- /extra-rutgers.css: -------------------------------------------------------------------------------- 1 | /* This is a self-defined css, created by Peng Zhao . */ 2 | /* Anyone can re-use or modify this file for free. */ 3 | /* Please leave a trace here if you modify it. */ 4 | /* 2018-12-02 Peng Zhao: created. */ 5 | /* 2018-12-04 Peng Zhao: uploaded and shared. */ 6 | /* 2020-2-4 zhujiedong add colors */ 7 | 8 | .red { color: #FF0000 } 9 | .green { color: #7FFF00 } 10 | .gold { color: #FFD700 } 11 | .blue {color: blue} 12 | .silver {color: silver} 13 | .purple {color: #8b008b} 14 | .yellow {color: yellow} 15 | .orange {color: orange} 16 | .tomato {color: #FF6347} 17 | 18 | .large { font-size: 140% } 19 | .medium { font-size: 110% } 20 | .small { font-size: 70% } 21 | 22 | 29 | 30 | .remark-slide-number .progress-bar-container { 31 | position: absolute; 32 | bottom: 0; 33 | height: 4px; 34 | display: block; 35 | left: 0; 36 | right: 0; 37 | } 38 | 39 | .remark-slide-number .progress-bar { 40 | height: 100%; 41 | background-color: red; 42 | } 43 | 44 | 45 | .column:first-of-type {float:left} 46 | .column:last-of-type {float:right} 47 | 48 | .split-40 .column:first-of-type {width: 40%} 49 | .split-40 .column:last-of-type {width: 60%} 50 | 51 | .float_center { 52 | float: right; 53 | position: relative; 54 | left: -50%; /* or right 50% */ 55 | text-align: left; 56 | } 57 | .float_center > .child { 58 | position: relative; 59 | left: 50%; 60 | } 61 | 62 | 63 | .col3 { 64 | -webkit-column-count: 3; /* Chrome, Safari, Opera */ 65 | -moz-column-count: 3; /* Firefox */ 66 | column-count: 3; 67 | } 68 | 69 | h2 { 70 | -webkit-column-span: all; /* Chrome, Safari, Opera */ 71 | column-span: all; 72 | } 73 | 74 | .rotate { 75 | 76 | /* Safari */ 77 | -webkit-transform: rotate(-90deg); 78 | 79 | /* Firefox */ 80 | -moz-transform: rotate(-90deg); 81 | 82 | /* IE */ 83 | -ms-transform: rotate(-90deg); 84 | 85 | /* Opera */ 86 | -o-transform: rotate(-90deg); 87 | 88 | /* Internet Explorer */ 89 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 90 | 91 | } 92 | 93 | 94 | 95 | .title-slide h1 { 96 | color: #F7F8FA; 97 | } 98 | .title-slide h2, .title-slide h3 { 99 | color: #e7e8e2; 100 | line-height: 1.5em; 101 | } 102 | 103 | 104 | 105 | /* 106 | CSS for xaringan slides in RU flavor 107 | Author: Joseph V. Casillas 108 | Updated: 03/06/2018 109 | */ 110 | 111 | /* Package defaults that we slightly tweak */ 112 | 113 | a, a > code { 114 | color: #cc0033; /* rgb(249, 38, 114) */ 115 | text-decoration: none; 116 | } 117 | 118 | /* slightly lower and bigger than default */ 119 | .footnote { 120 | position: absolute; 121 | bottom: 1em; 122 | padding-right: 4em; 123 | font-size: 95%; 124 | } 125 | 126 | /* important code slightly red */ 127 | .remark-code-line-highlighted { 128 | background-color: #FFD3DE !important; 129 | } 130 | 131 | /* color tweak */ 132 | .inverse { 133 | background-color: #272822; 134 | color: #777872; 135 | text-shadow: 0 0 20px #333; 136 | } 137 | 138 | /* slightly spacing change */ 139 | .inverse h1, .inverse h2, .inverse h3 { 140 | color: #f3f3f3; 141 | line-height: 1.0em; 142 | } 143 | 144 | /* Two-column layout (slightly wider for aspect ration) */ 145 | .left-column { 146 | color: #777; 147 | width: 25%; 148 | height: 92%; 149 | float: left; 150 | } 151 | 152 | .left-column h2:last-of-type, .left-column h3:last-child { 153 | color: #000; 154 | } 155 | 156 | /* slightly thiner to suppor aspect ration */ 157 | .right-column { 158 | width: 70%; 159 | float: right; 160 | padding-top: 1em; 161 | } 162 | 163 | .pull-left { 164 | float: left; 165 | width: 45%; 166 | } 167 | 168 | .pull-right { 169 | float: right; 170 | width: 45%; 171 | } 172 | 173 | .pull-right ~ * { 174 | clear: both; 175 | } 176 | 177 | img, video, iframe { 178 | max-width: 100%; 179 | } 180 | 181 | blockquote { 182 | border-left: solid 5px lightgray; 183 | padding-left: 1em; 184 | } 185 | 186 | /* adjust table horizontal spacing */ 187 | th, td { 188 | padding:0 15px 0 15px; 189 | } 190 | 191 | /* remove color from tables */ 192 | table { 193 | margin: auto; 194 | border-top: none; 195 | border-bottom: none; 196 | } 197 | 198 | table thead th { border-bottom: none; } 199 | thead, tfoot, tr:nth-child(even) { background: none; } 200 | 201 | /* leave this alone */ 202 | @page { margin: 0; } 203 | @media print { 204 | .remark-slide-scaler { 205 | width: 100% !important; 206 | height: 100% !important; 207 | transform: scale(1) !important; 208 | top: 0 !important; 209 | left: 0 !important; 210 | } 211 | } 212 | 213 | /*~~~~~~~~~~~~~~*/ 214 | /* RU additions */ 215 | /*~~~~~~~~~~~~~~*/ 216 | 217 | /* Title slide */ 218 | 219 | /* Add image and change bg color */ 220 | .title-slide { 221 | background-image: url(https://s1.ax1x.com/2020/04/02/GJiSQf.png); 222 | background-position: 9% 40%; 223 | background-size: 180px; 224 | background-color: #fff; 225 | padding-left: 100px; /* delete this for 4:3 aspect ratio */ 226 | } 227 | 228 | /* H1 fonts */ 229 | .title-slide h1 { 230 | color: #515151; 231 | padding-top: 250px; 232 | font-weight: normal; 233 | font-size: 45px; 234 | text-align: left; 235 | text-shadow: none; 236 | padding-bottom: 18px; 237 | margin-bottom: 18px; 238 | } 239 | 240 | /* H2 fonts */ 241 | .title-slide h2 { 242 | color: #cc0033; 243 | font-size: 35px; 244 | text-align: left; 245 | text-shadow: none; 246 | padding-top: 0px; 247 | margin-top: 0px; 248 | } 249 | 250 | /* H3 fonts */ 251 | .title-slide h3 { 252 | font-size: 28px; 253 | font-weight: normal; 254 | color: #666666; 255 | text-align: left; 256 | text-shadow: none; 257 | padding: 0px; 258 | margin: 0px; 259 | line-height: 1; 260 | } 261 | 262 | /* Remove slide count */ 263 | .title-slide .remark-slide-number { 264 | text-shadow: none; 265 | } 266 | 267 | /*~~~~~~~~~~~~~~~~~~*/ 268 | /* SECTION DIVIDERS */ 269 | /*~~~~~~~~~~~~~~~~~~*/ 270 | 271 | /* section divider red */ 272 | .title-slide-section-red { 273 | background-color: #cc0033; 274 | padding-left: 100px; /* delete this for 4:3 aspect ratio */ 275 | } 276 | 277 | /* section divider red H1 fonts */ 278 | .title-slide-section-red h1, .title-slide-section-red h2, .title-slide-section-red h3, .title-slide-section-red p { 279 | color: #fff; 280 | } 281 | 282 | /* section divider grey */ 283 | .title-slide-section-grey { 284 | background-color: #515151; 285 | padding-left: 100px; /* delete this for 4:3 aspect ratio */ 286 | } 287 | 288 | /* section divider grey H1 fonts */ 289 | .title-slide-section-grey h1, .title-slide-section-grey h2, .title-slide-section-grey h3 { 290 | color: #fff; 291 | } 292 | 293 | .title-slide-section-grey p { 294 | color: #fff; 295 | } 296 | 297 | /*~~~~~~~~~~~~~~~~~~*/ 298 | /* FINAL SLIDE */ 299 | /*~~~~~~~~~~~~~~~~~~*/ 300 | 301 | .title-slide-final { 302 | background-color: #272822; 303 | color: #fff; 304 | padding-left: 100px; 305 | text-shadow: 0 0 20px #333; 306 | text-align: center; 307 | } 308 | 309 | .title-slide-final h1 { 310 | color: #cc0033; 311 | } 312 | 313 | /*~~~~~~~~~~~~~~~~~~~~*/ 314 | /* Global adjustments */ 315 | /*~~~~~~~~~~~~~~~~~~~~*/ 316 | 317 | /* Add padding to all slides for 16:9 aspect ratio */ 318 | .remark-slide-content { 319 | padding-left: 100px; /* delete this for 4:3 aspect ratio */ 320 | } 321 | 322 | /* Color adjustments for text */ 323 | 324 | /* Make bold syntax compile to RU-red */ 325 | strong { 326 | color: #cc0033; 327 | } 328 | 329 | .RUred { 330 | color: #cc0033; 331 | } 332 | 333 | /* Add blue tag */ 334 | .blue { 335 | color: #0000CC; 336 | font-weight: bold; 337 | } 338 | 339 | /* Add grey tag */ 340 | .grey { 341 | color: #515151; 342 | } 343 | 344 | .lightgrey { 345 | color: #818181; 346 | } 347 | 348 | /* Force black */ 349 | .black { 350 | color: black; 351 | font-weight: bold; 352 | } 353 | 354 | /* Add white tag */ 355 | .white { 356 | color: white; 357 | } 358 | 359 | /* Color adjustments to headers */ 360 | h1 { 361 | color: #cc0033; 362 | } 363 | 364 | h3 { 365 | color: #515151; 366 | } 367 | 368 | /* Font size tags */ 369 | .big { 370 | font-size: 1.5em; 371 | } 372 | 373 | /* ru blockquote */ 374 | ru-blockquote { 375 | display: block; 376 | margin-top: 1em; 377 | margin-bottom: 1em; 378 | margin-left: 40px; 379 | margin-right: 40px; 380 | border-left: solid 10px #cc0033; 381 | background-color: #818181; 382 | padding: 1em; 383 | color: #fff; 384 | -moz-border-radius: 5px; 385 | -webkit-border-radius: 5px; 386 | } 387 | 388 | /* lucy background */ 389 | .title-slide { 390 | background-color: #000; 391 | color: #fff; 392 | } -------------------------------------------------------------------------------- /R-6800-series-2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 软件分析光合数据之二 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 152 | 153 | 154 | 287 | 288 | 307 | 308 | 318 | 319 | 320 | -------------------------------------------------------------------------------- /R-6800-series-5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 分析 LI-6800 的数据之五 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 183 | 184 | 185 | 318 | 319 | 338 | 339 | 349 | 350 | 351 | -------------------------------------------------------------------------------- /R-6800-series-6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 分析 LI-6800 的数据之六 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 175 | 176 | 177 | 310 | 311 | 330 | 331 | 341 | 342 | 343 | -------------------------------------------------------------------------------- /R-6800-series-3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 软件分析光合数据之三 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 226 | 227 | 228 | 361 | 362 | 381 | 382 | 392 | 393 | 394 | -------------------------------------------------------------------------------- /R-6800-series-4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 使用 R 分析 LI-6800 的数据之四 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 238 | 239 | 240 | 373 | 374 | 393 | 394 | 404 | 405 | 406 | -------------------------------------------------------------------------------- /data/aci: -------------------------------------------------------------------------------- 1 | [Header] 2 | File opened 2018-02-27 20:32:42 3 | Console s/n 68C-831397 4 | Console ver Bluestem v.1.2.2 5 | Scripts ver 2017.12 1.2.1, Oct 2017 6 | Head s/n 68H-581397 7 | Head ver 1.1.6 8 | Head cal {"co2bspanconc2": "0", "h2oaspan1": "1.00356", "h2obzero": "1.04995", "chamberpressurezero": "2.57044", "co2azero": "0.878154", "h2obspanconc1": "12.3", "flowazero": "0.25892", "tazero": "0.0435791", "tbzero": "0.112572", "co2aspan2": "0", "h2obspan2a": "0.0670719", "h2oaspan2b": "0.0663204", "h2obspan2": "0", "ssb_ref": "29700.5", "h2obspan2b": "0.0670683", "co2aspan1": "0.991147", "h2oaspanconc1": "12.3", "flowmeterzero": "0.992174", "co2aspan2a": "0.173288", "h2oaspanconc2": "0", "co2aspanconc1": "992.9", "co2bspan2": "0", "oxygen": "21", "ssa_ref": "34065.4", "co2bspan2b": "0.173098", "co2bspanconc1": "992.9", "h2oazero": "1.05247", "h2oaspan2": "0", "co2bspan1": "0.991215", "co2bzero": "0.955547", "h2obspanconc2": "0", "flowbzero": "0.29261", "h2oaspan2a": "0.066085", "co2aspanconc2": "0", "co2aspan2b": "0.171754", "co2bspan2a": "0.174632", "h2obspan1": "0.999945"} 9 | Chamber type 6800-01A 10 | Chamber s/n MPF-651319 11 | Chamber rev 0 12 | Chamber cal 0 13 | Fluorometer MPF-651319 14 | Flr. Version 1.1.6 15 | 20:32:42 Stability Definition: CO2_d.Meas2:Slp<0.1 H2O_d.Meas2:Slp<0.5 16 | SysConst:AvgTime 4 17 | SysConst:Oxygen 21 18 | SysConst:Chamber 6800-01A 6 cm² 19 | Const:CustomBLC 2.0 20 | LTConst:deltaTw 0 21 | LTConst:fT1 1 22 | LTConst:fT2 0 23 | LTConst:fTeb 0 24 | LQConst:Leaf standard 25 | LQConst:Ambient Sun+Sky 26 | LQConst:abs_ambient 0.49 27 | LQConst:abs_redLED 0.84 28 | LQConst:abs_greenLED 0.7 29 | LQConst:abs_blueLED 0.87 30 | LQConst:abs_whiteLED 0.75 31 | LQConst:abs_redFlr 0.84 32 | LQConst:abs_blueFlr 0.87 33 | LQConst:k_ambient 0.39 34 | LQConst:k_redLED 0.18 35 | LQConst:k_greenLED 0.23 36 | LQConst:k_blueLED 0.26 37 | LQConst:k_whiteLED 0.21 38 | LQConst:k_redFlr 0.19 39 | LQConst:k_blueFlr 0.25 40 | QConst:fQ_Amb_in 0.0 41 | QConst:fQ_Amb_out 0.0 42 | QConst:fQ_HeadLS 0.0 43 | QConst:fQ_ConsoleLS 0.0 44 | QConst:fQ_Flr 1.0 45 | LeakConst:fan_a -6276.0 46 | LeakConst:fan_b 6.6 47 | LeakConst:fan_c 1.709e-05 48 | LeakConst:fan_d 3.11 49 | LeakConst:Fs_meas 3.51317 84.5538 394.539 646.098 895.104 1109.28 1310.79 1414.98 50 | LeakConst:Fs_true 0.0949895 103.086 402.314 601.052 800.203 1000.18 1200.84 1401.41 51 | LeakConst:leak_wt 0.0 52 | [Data] 53 | Sys Sys Sys Sys UserDefVar UserDefVar GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx GasEx Leak Leak Leak Leak Leak FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR FLR LeafQ LeafQ LeafQ LeafQ Const Const Const Meas Meas Meas Meas Meas Meas Meas Meas Meas Meas Meas Meas Meas Meas FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrLS FlrStats FlrStats FlrStats FlrStats FlrStats Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status Status 54 | obs time elapsed date plot plant TIME E A Ca Ci Pci Pca gsw gbw gtw gtc Rabs TleafEB TleafCnd SVPleaf RHcham VPcham SVPcham VPDleaf LatHFlux SenHFlux NetTherm EBSum blfa_1 blfa_2 blfa_3 Leak LeakPct CorrFact CorrFactPct Fan DarkAdaptedID Fo Fm Fv Fv/Fm Adark LightAdaptedID Fs Fm' PhiPS2 PS2/1 Qabs_fs Afs ETR Fv'/Fm' PhiCO2 NPQ DarkPulseID Fo' Fv' qP qN qP_Fo qN_Fo Qin Qabs alpha convert S K Geometry TIME CO2_s CO2_r H2O_s H2O_r Flow Pa ΔPcham Tair Tleaf Tleaf2 Fan_speed Qamb_in Qamb_out Q f_red f_blue f_farred F Q_modavg F_dc Pc Tled TDigital TPreamp TPwrSpy TDrive Q_red Q_blue Q_farred TSPF F_avg dF/dt dF_dc/dt F_dc_avg period MatchValveR MatchValveS MatchCO2 MatchH2O DIAG Flow_s Flow_r Txchg Tirga Tchopper Ts Tr CO2_% Desiccant_% Humidifier_% Txchg_sp CO2_r_sp H2O_r_sp SS_s SS_r 55 | s s s mol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol mol⁻¹ µmol mol⁻¹ Pa Pa mol m⁻² s⁻¹ mol m⁻² s⁻¹ mol m⁻² s⁻¹ mol m⁻² s⁻¹ W m⁻² °C °C kPa % kPa kPa kPa W m⁻² W m⁻² W m⁻² W m⁻² µmol s⁻¹ % % µmol s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol µmol⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ J/µmol cm² s µmol mol⁻¹ µmol mol⁻¹ mmol mol⁻¹ mmol mol⁻¹ µmol s⁻¹ kPa kPa °C °C °C rpm µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ °C °C °C °C °C µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ µmol m⁻² s⁻¹ s min⁻¹ min⁻¹ s % % µmol/mol mmol/mol µmol s⁻¹ µmol s⁻¹ °C °C °C °C °C % % % °C µmol mol⁻¹ mmol mol⁻¹ % % 56 | 1 1513614616.6 0 20171218 10:30:16 1 1 1513614616.6 0.0045726249398078825 24.73811836745699 377.2419722697295 231.2125777938524 23.480602471871713 38.31049708060427 0.3043717665265414 2.281381940404025 0.28347806182537455 0.17893134246306483 289.4839761780293 27.598126528403736 26.008 3.375856096899637 49.8721896459403 1.7793205359970503 3.5677610079466215 1.5965355609025866 -201.6527598455276 115.3313454955046 10.853039931208604 214.01560175921492 -0.04203398998770391 0.04718683614096707 3.5114845631155633 310.0 44.0 1 0 53613.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1242-20171205-13_04_35 840.8503846153848 1159.13 0.2745849174679418 0.5 1513.0871999537972 24.73811836745699 207.73546196055625 0.4742608680648418 0.018498680206204054 1.8185967061503021 DARK-1243-20171205-13_04_37 609.4 549.7300000000001 0.5789744336030692 0.7931572927170657 0.7098434706824911 0.8246028548293087 1799.88 1513.0871999537972 0.8406600439772635 0.1913200879545269 6.0 0.5 0: Broadleaf 1513614616.6 377.242 399.921 17.5209 13.6708 700.113 101.532 0.0221745 26.9457 26.008 999.9 9983.75 0 299.558 1799.88 0.977989 0.022011 0 840.133 1.00007 15502 14643.1 40.375 41.75 40.875 41.437 42.375 1759.28 39.6 0.0 624.7000000476837 840.8503846153848 -1.4533333152548074 -195.07692307736605 15550.292307692309 15 100.0 100.0 -3.597 0.008 2 381.395 712.766 25.0011 22.7444 30.0006 22.4512 22.3482 25.4163 38.7892 0 25 400 13.6523 103.501 100.78 57 | 2 1513614730.6 114.0 20171218 10:32:10 1 1 1513614730.6 0.004716209334738029 18.137935801770027 283.3319797067861 177.5966076101598 18.036160422133737 28.774316736554564 0.3095819336953567 2.283519270202337 0.2880126904847201 0.18182045680302028 289.5243483680992 27.79574456948974 26.2524 3.42498403520964 49.864242727026934 1.8048082429000798 3.619443802205493 1.62017579230956 -207.98483166194708 115.51325998691753 10.886626947448063 207.9394036405177 -0.04209229536413315 0.0472522890338404 3.515328169108088 308.0 44.0 1 0 53641.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1244-20171205-13_06_29 798.1234615384617 1070.6 0.25450825561511137 0.5 1513.304999953827 18.137935801770027 192.57430787593736 0.446665421259107 0.014134582037997424 2.0516719596487953 DARK-1245-20171205-13_06_31 592.4 478.19999999999993 0.5697961908438692 0.8212149309086559 0.7571947713256589 0.8592339919495222 1800.14 1513.304999953827 0.8406596153375998 0.19131923067519963 6.0 0.5 0: Broadleaf 1513614730.6 283.332 300.027 17.7714 13.8001 699.881 101.533 0.0238972 27.1907 26.2524 999.9 9997.5 0 297.31 1800.14 0.977999 0.0220008 0 797.547 1.00007 14740.7 14645.3 40.812 42.187 41.25 41.875 42.75 1759.56 39.58 0.0 113.60000014305115 798.1234615384617 -4.102153878073028 -111.9829063614202 14746.626923076923 15 100.0 100.0 -3.546 0.006 2 384.11 711.558 25.0019 22.923 30.0006 22.6221 22.5155 20.1947 39.7737 0 25 300 13.7082 103.473 100.757 58 | 3 1513614885.6 269.0 20171218 10:34:45 1 1 1513614885.6 0.004972852528519988 10.805534533520829 189.92498791574906 127.59810120705805 12.957452842295794 19.28668256981704 0.3172168238024453 2.2848474106629095 0.2946243525683522 0.1860358008257117 289.51580662016875 28.10854334195305 26.6891 3.5143230357236406 49.81721943343087 1.8455505664128 3.7046438709389413 1.6687724693108406 -219.30279650773147 110.72712548032902 10.47307818591765 191.41321377868394 -0.042128552356555445 0.04729299068412141 3.517717351394177 304.0 43.0 1 0 53614.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1246-20171205-13_09_04 778.1266153846153 1008.67 0.228561754206415 0.5 1513.2626999538375 10.805534533520829 172.93698863829246 0.4235974104513865 0.009289551908296351 2.239037544489278 DARK-1247-20171205-13_09_06 581.4 427.27 0.5395730676513321 0.8409104448713939 0.7738432620011573 0.8834597495667684 1800.09 1513.2626999538375 0.8406594670010041 0.19131893400200806 6.0 0.5 0: Broadleaf 1513614885.6 189.925 199.996 18.174 13.9892 700.03 101.525 0.0239472 27.588 26.6891 999.9 10006.9 0 304.614 1800.09 0.978006 0.021994 0 778.236 1.00007 14414.1 14644.9 41.375 42.875 41.875 42.562 43.375 1759.52 39.57 0.0 154.59999990463257 778.1266153846153 0.7671795059342039 -112.14700838097605 14422.388461538463 15 100.0 100.0 -3.094 0.01 2 388.338 710.135 25.0023 23.2402 30.0009 22.9194 22.8148 14.6962 41.2827 0 25 200 13.952 103.424 100.721 59 | 4 1513615007.6 391.0 20171218 10:36:47 1 1 1513615007.6 0.005263164895244758 3.0239340321745902 96.97929658999028 78.88290662598783 8.010455697160442 9.848120360970174 0.3293625439627055 2.2791365383491455 0.30502182983709947 0.1926754411401279 289.47917584378195 28.335609003954072 27.0532 3.5903582825083395 49.94574344875618 1.8853732567154597 3.7748427123721426 1.7049850257928798 -232.10557188029384 105.20369911330138 10.009793191079305 172.58709626786882 -0.04197279176062036 0.04711813576980663 3.5074482271126386 299.0 43.0 1 0 53367.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1248-20171205-13_11_06 770.8054999999999 957.616 0.19507871631217533 0.5 1513.0619933532835 3.0239340321745902 147.58309568204984 0.39036106330721293 0.004147835269363123 2.411722444069439 DARK-1249-20171205-13_11_08 583.8 373.81600000000003 0.4997391764932481 0.8606889972124085 0.7567283465523812 0.9034310369782153 1799.85 1513.0619933532835 0.8406600513116557 0.19132010262331117 6.0 0.5 0: Broadleaf 1513615007.6 96.9793 100.009 18.5662 14.1383 699.941 101.524 0.0246883 27.9094 27.0532 999.9 9970 0 258.333 1799.85 0.977989 0.0220115 0 771.281 1.00007 14181.8 14642.9 41.937 43.5 42.437 43.187 43.937 1759.26 39.6 0.0 121.29999995231628 770.8054999999999 0.5991453116175869 -650.1572619132846 14300.303846153847 15 100.0 100.0 -2.596 0.012 2 393.039 708.376 25.0018 23.5374 30.0011 23.196 23.0895 8.97621 42.6671 0 25 100 14.057 103.379 100.679 60 | 5 1513615126.6 510.0 20171218 10:38:46 1 1 1513615126.6 0.00536191262156597 -0.9144043626988015 50.56970102650628 53.73937220855548 5.456793342651847 5.13493918072608 0.3432103936486612 2.2824242964884043 0.31690239139779514 0.2002593512324411 289.50256628160594 28.21844334157783 26.8767 3.5533222194621037 50.08245416856586 1.8812347272864702 3.7562750438600174 1.6720874921756335 -236.46034661105926 116.67606563305861 11.07092894503741 180.78921424864268 -0.04206241855989351 0.0472187497037296 3.5133588664221933 298.0 43.0 1 0 53491.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1250-20171205-13_13_05 771.6943846153845 928.064 0.16849012070785585 0.5 1513.1876999538117 -0.9144043626988015 127.47858910943025 0.3815081718502172 0.0015448139751344666 2.520360664781739 DARK-1251-20171205-13_13_07 574 354.06399999999996 0.44164223243429296 0.8685301806083651 0.7195561049201413 0.9149911788982034 1800.0 1513.1876999538117 0.8406598333076731 0.1913196666153463 6.0 0.5 0: Broadleaf 1513615126.6 50.5697 50.0183 18.5267 14.0156 699.95 101.518 0.0238141 27.8249 26.8767 999.9 9991.88 0 326.081 1800 0.977992 0.0220081 0 771.318 1.00007 14261.6 14644.1 42.25 43.687 42.75 43.375 44.187 1759.41 39.59 0.0 118.29999995231628 771.6943846153845 1.9799658168056309 -326.52991448772525 14316.738461538462 15 100.0 100.0 -2.544 0.011 2 394.35 705.551 25.0003 23.8214 30.0007 23.475 23.3622 6.08506 44.6806 0 25 50 13.9467 103.327 100.633 61 | 6 1513615287.1 670.5 20171218 10:41:27 1 1 1513615287.1 0.005390857478945753 26.951957175904248 375.1859698048482 239.36540822828374 24.307391421100476 38.09987537987965 0.362310429672499 2.2831077072254646 0.33313412255639535 0.21063406225139428 289.49355212575495 27.840523458686455 26.4112 3.457238733034262 50.51178901021455 1.8569407900471402 3.6762522698842197 1.6002979429871218 -237.7368148215077 128.6627394047898 12.153891835101076 192.57336854413813 -0.042081064116382974 0.047239680974329484 3.514587929569275 293.0 42.0 1 0 53579.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1252-20171205-13_15_46 841.3228461538462 1155.74 0.2720483446503139 0.5 1513.1375999537984 26.951957175904248 205.82328964778986 0.484313080796719 0.019961142361022234 1.8268641736030595 DARK-1253-20171205-13_15_48 596 559.74 0.5617200018689996 0.790447452753901 0.7065712799077595 0.8259289539464163 1799.94 1513.1375999537984 0.840660021975065 0.19132004395013 6.0 0.5 0: Broadleaf 1513615287.1 375.186 400.02 18.2861 13.7501 700.037 101.525 0.0243074 27.4565 26.4112 999.9 9995.62 0 164.306 1799.94 0.977989 0.0220115 0 840.177 1.00007 15398.7 14643.6 42.312 43.562 42.875 43.312 44.25 1759.34 39.6 0.0 159.70000004768372 841.3228461538462 -4.007316261262511 -69.16581209192621 15408.103846153845 15 100.0 100.0 -3.575 0.009 2 400.017 705.078 24.9966 23.9913 30.0002 23.6895 23.5794 25.3412 47.0662 0 25 400 13.5988 103.297 100.603 62 | 7 1513615409.6 793.0 20171218 10:43:29 1 1 1513615409.6 0.005224150631911111 27.508871714168468 374.70696934021163 239.90518583383164 24.36361891247727 38.05344087550279 0.3721793529697013 2.2854012902089584 0.3414921760721559 0.21597848482625515 289.51261463756373 27.20357303447248 25.5778 3.290873537230057 50.31188800737719 1.77603794394044 3.530056243725183 1.514835593289617 -230.38504286728002 146.2755701335154 13.69879826673596 219.10194017053504 -0.04214367863255698 0.0473099712540677 3.518713893456604 293.0 42.0 1 0 53780.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1254-20171205-13_17_48 829.7272307692308 1147.66 0.2770269672470673 0.5 1513.2458999538367 27.508871714168468 209.60496118163522 0.48556192600596 0.02032774024611327 1.8467664639353119 DARK-1255-20171205-13_17_50 590.4 557.2600000000001 0.5705286028618046 0.7918123673749964 0.7276848074678293 0.8290896857653627 1800.07 1513.2458999538367 0.8406594743281298 0.1913189486562598 6.0 0.5 0: Broadleaf 1513615409.6 374.707 399.962 17.4884 13.0892 700.053 101.53 0.0251991 26.765 25.5778 999.9 10010 0 35.5527 1800.07 0.978006 0.021994 0 829.838 1.00007 15188 14644.7 41.875 42.75 42.437 42.5 43.75 1759.5 39.57 0.0 122.20000004768372 829.7272307692308 1.548376057814516 -10.591452903906974 15185.446153846153 15 100.0 100.0 -3.602 0.002 2 400.127 703.619 24.9969 23.8944 29.9998 23.6858 23.5836 25.3068 50.2942 0 25 400 13.0226 103.307 100.614 63 | 8 1513615565.6 949.0 20171218 10:46:05 1 1 1513615565.6 0.005215787031332454 40.91018887237505 562.4099543171432 363.1944230425495 36.88142124322265 57.11122506449421 0.374979749098562 2.283367362287894 0.3438244457900586 0.21747333779135358 289.4780646204795 27.020082498580837 25.3616 3.2488750514203297 50.01534014785498 1.74629915201994 3.4915270932028917 1.5025758994003897 -230.01620808176125 149.81379680380454 14.014328671799662 223.28998201432242 -0.04208814968781469 0.04724763514899174 3.5150549401552724 295.0 42.0 1 0 53745.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1256-20171205-13_20_24 962.8019999999999 1410.62 0.3174618252966781 0.5 1513.0613999538195 40.91018887237505 240.16961690764333 0.5455898824630304 0.02918730643866268 1.316087961321972 DARK-1257-20171205-13_20_26 641 769.6199999999999 0.5818689742990047 0.7069364690113171 0.6398588309257436 0.7262250769646021 1799.85 1513.0613999538195 0.8406597216178123 0.1913194432356246 6.0 0.5 0: Broadleaf 1513615565.6 562.41 599.992 17.1969 12.8029 699.967 101.523 0.0243226 26.5786 25.3616 999.9 9997.5 0 346.574 1799.85 0.977996 0.0220042 0 964.187 1.00007 17617.9 14642.9 41.312 42 41.875 41.687 43.125 1759.27 39.58 0.0 155.20000004768372 962.8019999999999 7.844239343469221 189.8837607342185 17598.85769230769 15 100.0 100.0 -3.787 -0.005 2 397.743 702.85 25.0008 23.8106 30.0001 23.6565 23.5711 35.0912 52.549 0 25 600 12.7456 103.32 100.626 64 | 9 1513615700.6 1084.0 20171218 10:48:20 1 1 1513615700.6 0.005394691669472695 50.139334205993876 753.5289440204066 506.34634336106575 51.415265354319004 76.51460530315747 0.3733264968851216 2.2846331133034212 0.34244879612209694 0.21659151340705984 289.5201221858334 27.409374740130723 25.8553 3.3454745752844577 49.83021893966382 1.7862808606520801 3.58473412050421 1.5591937146323775 -237.90590262374587 144.2556972416496 13.550731314913607 209.42064811865072 -0.04212270089252539 0.04728642190313127 3.517331814015548 296.0 42.0 1 0 53707.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1258-20171205-13_22_39 1035.3276923076924 1578.69 0.3441855637853586 0.5 1513.2800999538142 50.139334205993876 260.4245821838837 0.5692631232224186 0.03528185699145348 1.0695133306728994 DARK-1259-20171205-13_22_41 680 898.69 0.6046159495402281 0.6526291783914159 0.6260367164692349 0.6604795080524337 1800.11 1513.2800999538142 0.8406597929869921 0.19131958597398435 6.0 0.5 0: Broadleaf 1513615700.6 753.529 799.984 17.5916 13.0495 700.089 101.518 0.0236938 27.0265 25.8553 999.9 10006.2 0 357.592 1800.11 0.977996 0.0220042 0 1036.39 1.00007 19086 14645.1 41.25 42.25 41.75 41.812 43.062 1759.52 39.59 0.0 134.5 1035.3276923076924 8.836923066988197 467.24444425116985 19045.08076923077 15 100.0 100.0 -4.228 -0.013 2 396.519 702.877 25.0018 23.8467 30 23.6853 23.5934 44.3057 50.5955 0 25 800 13.0809 103.317 100.62 65 | 10 1513615830.6 1214.0 20171218 10:50:30 1 1 1513615830.6 0.005490841554225405 55.38659838491128 948.0019382866383 665.6043380152553 67.5875696554693 96.26311515415566 0.36444956386478783 2.2871600924651596 0.3349904938303916 0.21181704987742966 289.49083255084923 27.731441731240146 26.3405 3.4428458772006003 49.77066576342849 1.8215929517854799 3.6599730460587634 1.6212529254151204 -242.14611254134036 128.26225097616225 12.085733795285725 187.69270478095683 -0.04219173395646533 0.04736391756503241 3.521879009507717 295.0 42.0 1 0 53728.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1260-20171205-13_24_49 1045.2373076923077 1622.84 0.3559209116781027 0.5 1513.1285999538215 55.38659838491128 269.27705539088765 0.5817209336718345 0.038753213874412176 1.0132114071627518 DARK-1261-20171205-13_24_51 678.8 944.04 0.611841333320296 0.6352692093713297 0.6332737913009597 0.6432089251555917 1799.93 1513.1285999538215 0.8406596922957124 0.19131938459142472 6.0 0.5 0: Broadleaf 1513615830.6 948.002 999.93 17.9391 13.3178 700.107 101.519 0.0241628 27.3807 26.3405 999.9 10022.5 0 362.665 1799.93 0.977999 0.0220008 0 1045.12 1.00007 19375.2 14643.6 41.375 42.75 41.937 42.125 43.312 1759.35 39.58 0.0 129.79999995231628 1045.2373076923077 -2.3545298952538007 -25.955555429609607 19364.9 15 100.0 100.0 -4.522 -0.001 2 398.302 704.546 25.0013 23.8167 30.0001 23.6705 23.5773 53.0761 48.0355 0 25 1000 13.4048 103.318 100.623 66 | 11 1513615939.6 1323.0 20171218 10:52:19 1 1 1513615939.6 0.005386036803442526 58.06627511412756 1144.9799353319218 835.1877908943641 84.81196833036432 116.27085916843332 0.35121767543671445 2.2880060940923146 0.3237819337861773 0.2046498091630219 289.49665472454507 27.92964036243661 26.5675 3.4892443361371885 49.911363536050054 1.8443724771775 3.6952957132604562 1.6448718589596885 -237.5242230318154 120.55091719554004 11.377145164784135 183.90049405305382 -0.042214861522529644 0.047389880284025666 3.523401827199228 294.0 42.0 1 0 53727.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1262-20171205-13_26_38 1024.9303846153846 1594.49 0.35720488393443384 0.5 1513.161899953834 58.06627511412756 270.2544104235084 0.5693920940237944 0.04052327314386345 1.049006265326217 DARK-1263-20171205-13_26_40 686.6 907.89 0.6273442987417148 0.6481755615147334 0.6444877626729757 0.6542988690995435 1799.97 1513.161899953834 0.8406595109662017 0.19131902193240358 6.0 0.5 0: Broadleaf 1513615939.6 1144.98 1200.04 18.1625 13.6295 699.962 101.524 0.0243814 27.5448 26.5675 999.9 10027.5 0 374.172 1799.97 0.978003 0.0219974 0 1024.77 1.00007 19029.4 14643.9 41.625 43.187 42.187 42.5 43.562 1759.4 39.57 0.0 108.29999995231628 1024.9303846153846 -2.9035897591757713 -304.9367501078131 18979.246153846154 15 100.0 100.0 -4.688 0.005 2 399.228 707.119 25.0014 23.8006 30 23.6431 23.5501 61.4963 45.6737 0 25 1200 13.6662 103.324 100.63 67 | 12 1513616064 1447.4000000953674 20171218 10:54:24 1 1 1513616064 0.005215888537312746 59.355642754957906 1442.5899337100757 1106.407230822169 112.35376089529714 146.49253906410465 0.3359745419247978 2.2861579468242246 0.31075834814258935 0.19633159211950468 289.4918667506414 28.127537304488417 26.7022 3.517034137448688 49.85649486765381 1.8577142386489303 3.726122832301613 1.659319898799758 -230.02068449549208 121.36560161658105 11.479161540685135 192.31594541241552 -0.04216434828839979 0.04733317475351254 3.5200754366855413 293.0 42.0 1 0 53640.0 RECT-1241-20171205-12_54_10 710.7500000000001 3267.12 2556.37 0.7824536594921521 -3.25199786858903 RECT-1264-20171205-13_28_43 990.6898846153846 1526.45 0.3509843855904978 0.5 1513.1366999538336 59.355642754957906 265.5436774738649 0.5591077336303187 0.04137606379215911 1.1403386943561857 DARK-1265-20171205-13_28_45 673 853.45 0.6277580589192283 0.6710059673415262 0.656810243207816 0.6809147345650277 1799.94 1513.1366999538336 0.8406595219584172 0.19131904391683444 6.0 0.5 0: Broadleaf 1513616064 1442.59 1499.92 18.2939 13.9046 699.948 101.523 0.0252887 27.6869 26.7022 999.9 10015.6 0 372.943 1799.94 0.978006 0.021994 0 987.542 1.00007 18329.6 14643.7 41.937 43.562 42.5 42.875 43.937 1759.37 39.57 0.0 123.70000004768372 990.6898846153846 -18.33979488090628 -498.87863279540807 18377.2 15 100.0 100.0 -5.577 0.013 2 400.642 709.326 25.0016 23.8959 30.0005 23.6954 23.6064 73.4644 43.7812 0 25 1500 13.9635 103.316 100.624 68 | -------------------------------------------------------------------------------- /animate-min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * animate.css -http://daneden.me/animate 5 | * Version - 3.7.0 6 | * Licensed under the MIT license - http://opensource.org/licenses/MIT 7 | * 8 | * Copyright (c) 2018 Daniel Eden 9 | */ 10 | 11 | @-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;-webkit-transform-origin:center bottom;animation-name:bounce;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-name:headShake;-webkit-animation-timing-function:ease-in-out;animation-name:headShake;animation-timing-function:ease-in-out}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-animation-name:swing;-webkit-transform-origin:top center;animation-name:swing;transform-origin:top center}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;-webkit-transform-origin:center;animation-name:jello;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.heartBeat{-webkit-animation-duration:1.3s;-webkit-animation-name:heartBeat;-webkit-animation-timing-function:ease-in-out;animation-duration:1.3s;animation-name:heartBeat;animation-timing-function:ease-in-out}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{-webkit-transform:scale3d(1.03,1.03,1.03);opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{-webkit-transform:scaleX(1);opacity:1;transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{-webkit-transform:scale3d(1.03,1.03,1.03);opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{-webkit-transform:scaleX(1);opacity:1;transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;-webkit-animation-name:bounceIn;animation-duration:.75s;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(0,-3000px,0);opacity:0;transform:translate3d(0,-3000px,0)}60%{-webkit-transform:translate3d(0,25px,0);opacity:1;transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(0,-3000px,0);opacity:0;transform:translate3d(0,-3000px,0)}60%{-webkit-transform:translate3d(0,25px,0);opacity:1;transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(-3000px,0,0);opacity:0;transform:translate3d(-3000px,0,0)}60%{-webkit-transform:translate3d(25px,0,0);opacity:1;transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(-3000px,0,0);opacity:0;transform:translate3d(-3000px,0,0)}60%{-webkit-transform:translate3d(25px,0,0);opacity:1;transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(3000px,0,0);opacity:0;transform:translate3d(3000px,0,0)}60%{-webkit-transform:translate3d(-25px,0,0);opacity:1;transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(3000px,0,0);opacity:0;transform:translate3d(3000px,0,0)}60%{-webkit-transform:translate3d(-25px,0,0);opacity:1;transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(0,3000px,0);opacity:0;transform:translate3d(0,3000px,0)}60%{-webkit-transform:translate3d(0,-20px,0);opacity:1;transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{-webkit-transform:translate3d(0,3000px,0);opacity:0;transform:translate3d(0,3000px,0)}60%{-webkit-transform:translate3d(0,-20px,0);opacity:1;transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{-webkit-transform:scale3d(1.1,1.1,1.1);opacity:1;transform:scale3d(1.1,1.1,1.1)}to{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{-webkit-transform:scale3d(1.1,1.1,1.1);opacity:1;transform:scale3d(1.1,1.1,1.1)}to{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;-webkit-animation-name:bounceOut;animation-duration:.75s;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{-webkit-transform:translate3d(0,-20px,0);opacity:1;transform:translate3d(0,-20px,0)}to{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{-webkit-transform:translate3d(0,-20px,0);opacity:1;transform:translate3d(0,-20px,0)}to{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{-webkit-transform:translate3d(20px,0,0);opacity:1;transform:translate3d(20px,0,0)}to{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{-webkit-transform:translate3d(20px,0,0);opacity:1;transform:translate3d(20px,0,0)}to{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{-webkit-transform:translate3d(-20px,0,0);opacity:1;transform:translate3d(-20px,0,0)}to{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{-webkit-transform:translate3d(-20px,0,0);opacity:1;transform:translate3d(-20px,0,0)}to{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{-webkit-transform:translate3d(0,20px,0);opacity:1;transform:translate3d(0,20px,0)}to{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{-webkit-transform:translate3d(0,20px,0);opacity:1;transform:translate3d(0,20px,0)}to{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{-webkit-transform:translate3d(0,-100%,0);opacity:0;transform:translate3d(0,-100%,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInDown{0%{-webkit-transform:translate3d(0,-100%,0);opacity:0;transform:translate3d(0,-100%,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInDownBig{0%{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{-webkit-transform:translate3d(-100%,0,0);opacity:0;transform:translate3d(-100%,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInLeft{0%{-webkit-transform:translate3d(-100%,0,0);opacity:0;transform:translate3d(-100%,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{-webkit-transform:translate3d(100%,0,0);opacity:0;transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInRight{0%{-webkit-transform:translate3d(100%,0,0);opacity:0;transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInRightBig{0%{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{-webkit-transform:translate3d(0,100%,0);opacity:0;transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInUp{0%{-webkit-transform:translate3d(0,100%,0);opacity:0;transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes fadeInUpBig{0%{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{-webkit-transform:translate3d(0,100%,0);opacity:0;transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{-webkit-transform:translate3d(0,100%,0);opacity:0;transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{-webkit-transform:translate3d(0,2000px,0);opacity:0;transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0);opacity:0;transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0);opacity:0;transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{-webkit-transform:translate3d(-2000px,0,0);opacity:0;transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:0;transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:0;transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{-webkit-transform:translate3d(2000px,0,0);opacity:0;transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{-webkit-transform:translate3d(0,-100%,0);opacity:0;transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{-webkit-transform:translate3d(0,-100%,0);opacity:0;transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{-webkit-transform:translate3d(0,-2000px,0);opacity:0;transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-animation-timing-function:ease-out;-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);animation-timing-function:ease-out;transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn)}40%{-webkit-animation-timing-function:ease-out;-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);animation-timing-function:ease-out;transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg)}50%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);animation-timing-function:ease-in;transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg)}80%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);animation-timing-function:ease-in;transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg)}to{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);animation-timing-function:ease-in;transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg)}}@keyframes flip{0%{-webkit-animation-timing-function:ease-out;-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);animation-timing-function:ease-out;transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn)}40%{-webkit-animation-timing-function:ease-out;-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);animation-timing-function:ease-out;transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg)}50%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);animation-timing-function:ease-in;transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg)}80%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);animation-timing-function:ease-in;transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg)}to{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);animation-timing-function:ease-in;transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg)}}.animated.flip{-webkit-animation-name:flip;-webkit-backface-visibility:visible;animation-name:flip;backface-visibility:visible}@-webkit-keyframes flipInX{0%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);opacity:1;transform:perspective(400px) rotateX(10deg)}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);opacity:1;transform:perspective(400px) rotateX(10deg)}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-animation-name:flipInX;-webkit-backface-visibility:visible!important;animation-name:flipInX;backface-visibility:visible!important}@-webkit-keyframes flipInY{0%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateY(90deg);animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateY(90deg)}40%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateY(-20deg);animation-timing-function:ease-in;transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);opacity:1;transform:perspective(400px) rotateY(10deg)}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateY(90deg);animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateY(90deg)}40%{-webkit-animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateY(-20deg);animation-timing-function:ease-in;transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);opacity:1;transform:perspective(400px) rotateY(10deg)}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-animation-name:flipInY;-webkit-backface-visibility:visible!important;animation-name:flipInY;backface-visibility:visible!important}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);opacity:1;transform:perspective(400px) rotateX(-20deg)}to{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0;transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);opacity:1;transform:perspective(400px) rotateX(-20deg)}to{-webkit-transform:perspective(400px) rotateX(90deg);opacity:0;transform:perspective(400px) rotateX(90deg)}}.flipOutX{-webkit-animation-duration:.75s;-webkit-animation-name:flipOutX;-webkit-backface-visibility:visible!important;animation-duration:.75s;animation-name:flipOutX;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);opacity:1;transform:perspective(400px) rotateY(-15deg)}to{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0;transform:perspective(400px) rotateY(90deg)}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);opacity:1;transform:perspective(400px) rotateY(-15deg)}to{-webkit-transform:perspective(400px) rotateY(90deg);opacity:0;transform:perspective(400px) rotateY(90deg)}}.flipOutY{-webkit-animation-duration:.75s;-webkit-animation-name:flipOutY;-webkit-backface-visibility:visible!important;animation-duration:.75s;animation-name:flipOutY;backface-visibility:visible!important}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);opacity:0;transform:translate3d(100%,0,0) skewX(-30deg)}60%{-webkit-transform:skewX(20deg);opacity:1;transform:skewX(20deg)}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);opacity:0;transform:translate3d(100%,0,0) skewX(-30deg)}60%{-webkit-transform:skewX(20deg);opacity:1;transform:skewX(20deg)}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-name:lightSpeedIn;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);opacity:0;transform:translate3d(100%,0,0) skewX(30deg)}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);opacity:0;transform:translate3d(100%,0,0) skewX(30deg)}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-name:lightSpeedOut;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);-webkit-transform-origin:center;opacity:0;transform:rotate(-200deg);transform-origin:center}to{-webkit-transform:translateZ(0);-webkit-transform-origin:center;opacity:1;transform:translateZ(0);transform-origin:center}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);-webkit-transform-origin:center;opacity:0;transform:rotate(-200deg);transform-origin:center}to{-webkit-transform:translateZ(0);-webkit-transform-origin:center;opacity:1;transform:translateZ(0);transform-origin:center}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(-45deg);transform-origin:left bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:left bottom;opacity:1;transform:translateZ(0);transform-origin:left bottom}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(-45deg);transform-origin:left bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:left bottom;opacity:1;transform:translateZ(0);transform-origin:left bottom}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(45deg);transform-origin:right bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:right bottom;opacity:1;transform:translateZ(0);transform-origin:right bottom}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(45deg);transform-origin:right bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:right bottom;opacity:1;transform:translateZ(0);transform-origin:right bottom}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(45deg);transform-origin:left bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:left bottom;opacity:1;transform:translateZ(0);transform-origin:left bottom}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(45deg);transform-origin:left bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:left bottom;opacity:1;transform:translateZ(0);transform-origin:left bottom}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(-90deg);transform-origin:right bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:right bottom;opacity:1;transform:translateZ(0);transform-origin:right bottom}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(-90deg);transform-origin:right bottom}to{-webkit-transform:translateZ(0);-webkit-transform-origin:right bottom;opacity:1;transform:translateZ(0);transform-origin:right bottom}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;opacity:1;transform-origin:center}to{-webkit-transform:rotate(200deg);-webkit-transform-origin:center;opacity:0;transform:rotate(200deg);transform-origin:center}}@keyframes rotateOut{0%{-webkit-transform-origin:center;opacity:1;transform-origin:center}to{-webkit-transform:rotate(200deg);-webkit-transform-origin:center;opacity:0;transform:rotate(200deg);transform-origin:center}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;opacity:1;transform-origin:left bottom}to{-webkit-transform:rotate(45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(45deg);transform-origin:left bottom}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;opacity:1;transform-origin:left bottom}to{-webkit-transform:rotate(45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(45deg);transform-origin:left bottom}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;opacity:1;transform-origin:right bottom}to{-webkit-transform:rotate(-45deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(-45deg);transform-origin:right bottom}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;opacity:1;transform-origin:right bottom}to{-webkit-transform:rotate(-45deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(-45deg);transform-origin:right bottom}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;opacity:1;transform-origin:left bottom}to{-webkit-transform:rotate(-45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(-45deg);transform-origin:left bottom}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;opacity:1;transform-origin:left bottom}to{-webkit-transform:rotate(-45deg);-webkit-transform-origin:left bottom;opacity:0;transform:rotate(-45deg);transform-origin:left bottom}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;opacity:1;transform-origin:right bottom}to{-webkit-transform:rotate(90deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(90deg);transform-origin:right bottom}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;opacity:1;transform-origin:right bottom}to{-webkit-transform:rotate(90deg);-webkit-transform-origin:right bottom;opacity:0;transform:rotate(90deg);transform-origin:right bottom}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;-webkit-transform-origin:top left;animation-timing-function:ease-in-out;transform-origin:top left}20%,60%{-webkit-animation-timing-function:ease-in-out;-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;animation-timing-function:ease-in-out;transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-animation-timing-function:ease-in-out;-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;animation-timing-function:ease-in-out;opacity:1;transform:rotate(60deg);transform-origin:top left}to{-webkit-transform:translate3d(0,700px,0);opacity:0;transform:translate3d(0,700px,0)}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;-webkit-transform-origin:top left;animation-timing-function:ease-in-out;transform-origin:top left}20%,60%{-webkit-animation-timing-function:ease-in-out;-webkit-transform:rotate(80deg);-webkit-transform-origin:top left;animation-timing-function:ease-in-out;transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-animation-timing-function:ease-in-out;-webkit-transform:rotate(60deg);-webkit-transform-origin:top left;animation-timing-function:ease-in-out;opacity:1;transform:rotate(60deg);transform-origin:top left}to{-webkit-transform:translate3d(0,700px,0);opacity:0;transform:translate3d(0,700px,0)}}.hinge{-webkit-animation-duration:2s;-webkit-animation-name:hinge;animation-duration:2s;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{-webkit-transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;opacity:0;transform:scale(.1) rotate(30deg);transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{-webkit-transform:scale(1);opacity:1;transform:scale(1)}}@keyframes jackInTheBox{0%{-webkit-transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;opacity:0;transform:scale(.1) rotate(30deg);transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{-webkit-transform:scale(1);opacity:1;transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);opacity:0;transform:translate3d(-100%,0,0) rotate(-120deg)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}@keyframes rollIn{0%{-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);opacity:0;transform:translate3d(-100%,0,0) rotate(-120deg)}to{-webkit-transform:translateZ(0);opacity:1;transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) rotate(120deg);opacity:0;transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) rotate(120deg);opacity:0;transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0)}}@keyframes zoomInDown{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(10px,0,0)}}@keyframes zoomInLeft{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(10px,0,0)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(1000px,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(-10px,0,0)}}@keyframes zoomInRight{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(1000px,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(-10px,0,0)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,1000px,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0)}}@keyframes zoomInUp{0%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,1000px,0)}60%{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0)}to{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom}}@keyframes zoomOutDown{40%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,-60px,0)}to{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform-origin:center bottom}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);opacity:1;transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{-webkit-transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;opacity:0;transform:scale(.1) translate3d(-2000px,0,0);transform-origin:left center}}@keyframes zoomOutLeft{40%{-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);opacity:1;transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{-webkit-transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;opacity:0;transform:scale(.1) translate3d(-2000px,0,0);transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);opacity:1;transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{-webkit-transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;opacity:0;transform:scale(.1) translate3d(2000px,0,0);transform-origin:right center}}@keyframes zoomOutRight{40%{-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);opacity:1;transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{-webkit-transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;opacity:0;transform:scale(.1) translate3d(2000px,0,0);transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0)}to{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom}}@keyframes zoomOutUp{40%{-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19);opacity:1;transform:scale3d(.475,.475,.475) translate3d(0,60px,0)}to{-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;animation-timing-function:cubic-bezier(.175,.885,.32,1);opacity:0;transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform-origin:center bottom}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:hidden}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:hidden}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:hidden}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:hidden}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:hidden}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:hidden}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:hidden}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:hidden}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.animated{-webkit-animation-duration:1s;-webkit-animation-fill-mode:both;animation-duration:1s;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animated.delay-2s{-webkit-animation-delay:2s;animation-delay:2s}.animated.delay-3s{-webkit-animation-delay:3s;animation-delay:3s}.animated.delay-4s{-webkit-animation-delay:4s;animation-delay:4s}.animated.delay-5s{-webkit-animation-delay:5s;animation-delay:5s}.animated.fast{-webkit-animation-duration:.8s;animation-duration:.8s}.animated.faster{-webkit-animation-duration:.5s;animation-duration:.5s}.animated.slow{-webkit-animation-duration:2s;animation-duration:2s}.animated.slower{-webkit-animation-duration:3s;animation-duration:3s}@media (prefers-reduced-motion){.animated{-webkit-animation:unset!important;-webkit-transition:none!important;animation:unset!important;transition:none!important}} --------------------------------------------------------------------------------