1

作成したいくつかのプロットに化学構造の画像を追加しようとしています。ACToR データベースを使用して化学構造にアクセスしています。例えば:

ここに画像の説明を入力 ( http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7 )

このサイトの良いところは、サイズと URL 内の化学物質を変更できることです。そのため、画像の取得を自動化できます。私の希望は、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 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"
4

3 に答える 3

2

(私のコメントを回答として投稿するだけです)

このdownload.file機能を使用して、Web からファイルをダウンロードできます。

さらに、Windows ユーザーは引数の一部を変更する必要がある場合があります。これらのファイルを正しくダウンロードして表示するには、これmode="wb"が必要な引数のようです。png

したがって、次のようなものです:

download.file("http://actor.epa.gov/actor/image?format=png%3Aw1000%2Ch1000&casr‌​‌​n=80-05-7", 
              destfile="tmp.png", mode="wb")

私のために働いた。

于 2013-08-23T17:34:40.860 に答える
1

Bioconductor R パッケージEBImageは、URL から直接画像を読み込んで視覚化できることに注意してください。

library(EBImage)

img = readImage("path/to/your/image/file or URL")
display(img, method = "raster")

乾杯、

アンジェイ

于 2016-01-20T14:27:28.420 に答える