如果要是有人想让 Jim 列出最喜欢的十首电音,Alesso 混过的《Pressure》绝对在列。这首歌的 drop 处理的格外聪明,用几个锯齿波就能把人带到另一个世界👍。
前言
Air Tracker 是
安装 R
首先,我们需要安装 R。在 M1 Mac 上,我们可以使用 Homebrew 来安装 R。
$ brew install R
等一会儿,R 就安装好了。然后我们可以使用 R
命令来启动 R。
$ R
R version 4.2.2 (2022-10-31) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: aarch64-apple-darwin21.6.0 (64-bit)
安装 x86 架构下的 Homebrew
因为 Air Tracker 只能支持 x86 架构的 gfortran。所以我们需要安装一个 x86 架构的 gcc,但是这之前我们得先安装一个 x86 架构的 Homebrew。
在 Intel 芯片的 Mac 上,Homebrew 默认安装在 /usr/local
目录下,这不同于 M1 芯片的 Mac 的 Homebrew 默认安装在 /opt/homebrew
目录。所以为了方便,我们的 x86 Homebrew 也安装在 /usr/local
目录下。
首先我们先创建一个 ~/Downloads/homebrew
目录,然后下载已经编译好的 Homebrew。
cd ~/downloads
mkdir homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
然后再把它移动到 /usr/local
目录下。
downloads$ sudo mv homebrew /usr/local/homebrew
接下来我们需要把 /usr/local/homebrew/bin
添加到 PATH
环境变量中。
$ echo 'export PATH="/usr/local/homebrew/bin:$PATH"' >> ~/.zshrc
现在,我们就可以使用 x86 架构的 Homebrew 来安装软件了,命令如下:
$ arch -x86_64 brew install something
但是这未免有点麻烦,我们可以使用 alias
来简化这个命令。
$ echo 'alias axbrew="arch -x86_64 /usr/local/homebrew/bin/brew"' >> ~/.zshrc
现在,我们就可以使用 axbrew
来安装软件了:
$ axbrew install something
安装 x86 架构的 gcc
我们使用 x86 架构的 Homebrew 来安装 gcc。
$ axbrew install gcc
在我的设备上(Mac mini 2020),gcc 默认编译需要 40 分钟(在 stackoverflow 上逛了一圈,大家差不多都是 45 分钟左右),这是因为 gcc 在默认设置下会 bootstrap 自己,也就是说,gcc 会使用自己来编译自己,这个过程会花费很长时间。
安装 Air Tracker
路径配置
首先,我们要为 R 配置好 gfortran
的路径,Air Tracker 会在 /usr/local/bin
目录下寻找 gfortran
(尤其是 lib
),但是我们安装的 gfortran
(gcc
) 是在 /usr/local/homebrew/bin
目录下的,所以我们可以为 lib
做一个符号连接。
$ cd /usr/local
$ sudo ln -s /usr/local/homebrew/Cellar/gcc/12.2.0/lib/gcc/12 lib
OK,这样就搞定了。
安装 R 包
现在,我们可以安装 Air Tracker 了。根据文档的说明,我们要通过 R 包 devtools
来安装 Air Tracker。
$ R
> install.packages("devtools")
> devtools::install_github("uataq/uataq")
当然,这一步也可以直接用 Rscript
来执行。
$ Rscript -e "install.packages('devtools'); devtools::install_github('uataq/uataq')"
如果编译没有问题,就安装成功了。
使用 Air Tracker
我们可以从最基本的样例代码来试一试。
来自犹他大学的 Benjamin Fasoli 提供了很多样例代码,参见 https://github.com/uataq/stilt-tutorials。该 repo 提供了三个例子:犹他大学 William Browning Building 的观测、盐湖城地区列车的温室气体(CO2)排放以及 Air Tracker 和 WRF 模型的耦合。