我正在尝试将一些化学结构图像添加到我创建的一些图中。我正在使用 ACToR 数据库来访问化学结构。例如:
(http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7)
这个网站的好处是您可以更改网址中的大小和化学成分,这样我就可以自动抓取图像。我希望存储一个包含 CAS 编号的对象,然后遍历 CAS 编号来制作绘图。
例如:
library(png)
casnums <- ("80-05-7","77-40-7","1478-61-1")
image.list <- list()
for(cas in casnums){
image.list[[cas]] <- readPNG(paste0("http://actor.epa.gov/actor/image?format=png%3Aw1000%2Ch1000&casrn=",cas))
}
我已经尝试readPNG
从png
包中使用,也尝试使用rgdal
包。不幸的是,据我所知,ACToR 只会生成 png 或 jpeg 格式的图像 - 所以我不能使用该grImport
包来读取矢量图像。
我真的希望找到一个解决方案,我不必手动下载每个图像 - 它们有很多。我愿意接受 R 将图像下载到文件夹的解决方案,然后我可以使用包之类的东西png
,或者rgdal
包来加载图像并绘制它们。
回应@ialm:这是我在您发表第一条评论后所尝试的:
> download.file(url="http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7",destfile="test.png")
trying URL 'http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7'
Content type 'image/png' length 200 bytes
opened URL
downloaded 6691 bytes
Warning message:
In download.file(url = "http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7", :
downloaded length 6691 != reported length 200
当我打开图像时,它只有 7 KB,我在图像查看器中收到以下消息:“Windows 照片查看器无法打开此图片,因为文件似乎已损坏、损坏或太大。”
我应该注意我(违背我的意愿)使用 Windows 7。我也尝试使用 RStudio 和 R。RStudio 给了我警告消息,而 R 没有 - 但 R 创建了看似相同的文件 (7KB)还是打不开。
作为对@Greg Snow 的回应:只是为了添加一些上下文,我从 RStudio 中的新 R 控制台运行以下命令。我使用了 64 位 Rv3.0.1 和 64 位 RStudio v0.97.551。
> library(png)
> search()
[1] ".GlobalEnv" "package:png" "tools:rstudio" "package:stats" "package:graphics" "package:grDevices"
[7] "package:utils" "package:datasets" "package:methods" "Autoloads" "package:base"
> con <- url("http://actor.epa.gov/actor/image?format=png%3Aw1000%2Ch1000&casrn=1478-61-1",open='rb')
> rawpng <- readBin(con, what='raw', n=1e6)
> close(con)
> png1 <- readPNG(rawpng)
Error in readPNG(rawpng) : libpng error: bad adaptive filter value
> ls()
[1] "con" "rawpng"