有効成分の毒性データ

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 | 投稿日時 2011.12.07 11:04 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
>kabe さん

ACFinder で使用している FAMIC の「登録農薬有効成分の魚毒性・毒性一覧」が「有効成分の毒性・水産動植物に対する影響」に変わり、提供方法も従来の HTML から PDF に変更されています。新しい PDF ファイルの方は月更新されていますが、従来の HTML ファイルは9月で更新が止まっています。おそらく、HTML ファイルはいずれ削除される運命でしょう。

このため、有効成分の毒性データについては、ACFinder の取得方法を修正する必要があります。PDF データを使用するのは難しいですが、農薬登録情報提供システムの「有効成分一覧表示・ダウンロード」で CSV ファイルが取得できます。下記 URL でダイレクトダウンロードが可能です。
http://acsearch.acis.famic.go.jp/famic/csvout/vtllg305-1.csv

なお、.csv になっていますが、実際には CGI か PHP スクリプトらしく、Last-Modified が更新されません。Modified-Since による問い合わせで更新チェックができないので、登録情報が更新されているときはこのファイルもダウンロードするなどの対策が必要です。毒性データは月頭更新が基本のようなので、前月失効反映データが更新されたときのみダウンロードするってのがベストだとは思いますが…。

また、製剤毒性や有効期限などについても、いつの間にやら農薬登録情報提供システムの「登録農薬(製剤)一覧表示・ダウンロード」が正常に動くようになっていました。spec.seizai テーブルは、こちらのデータをダウンロードして作成するようにしてもらえると助かります。
下記 URL でダイレクトダウンロード可能ですが、有効成分の毒性データと同様に Last-Modified が使えません。こちらの更新タイミングは不明ですが、登録情報の更新にあわせてダウンロードするのが間違いなさそうです。
http://acsearch.acis.famic.go.jp/famic/csvout/vtllg303-1.csv

製剤毒性等が FAMIC データで自動更新可能になれば、1行コメントに書いた seizai と jppSeizai の使い分けは不要です。製剤毒性、登録年月日、有効期限については spec.seizai を使用、更新年月日など FAMIC データにない情報は jppSeizai を使用するように変更をお願いします。
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.07 11:45
OhYeah!  管理人   投稿数: 983 オンライン
だめだorz。「登録農薬(製剤)一覧表示・ダウンロード」については、一覧表示には製剤毒性が表示されるのに、CSV ファイルには製剤毒性が入ってなかった。新システムに変更されたときに FAMIC にはお願いしてあって、ダウンロードの方にも製剤毒性を入れてくれるってことになってたんだけどなあ…。

ということで、spec.seizai については、当面現状の spec.seizai.qry を使用する方式を継続してください。spec.seizai.qry は私が不定期に手動更新をしているので、やはり seizai と jppSeizai を使い分けられるようにしてください。
投票数:3 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.07 12:11
OhYeah!  管理人   投稿数: 983 オンライン
ありゃりゃ? 有効成分一覧も、HTML 表示には毒劇除外の項目があるのに、CSV では抜けてますね。
有効成分一覧は大した量じゃないので、HTML の一覧表を各ページ取得するのが良いですかねえ?
投票数:2 平均点:5.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011.12.07 12:19
kabe  長老   投稿数: 231
わざわざHTML テーブルと CSVテーブルで項目が違うって、どういうことなんでしょう。
CSVの方に製剤毒性を入れてもらうことについては、私も植防ルートで要望してもらったのですが、どうもやる気なしという雰囲気でした。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011.12.11 21:45
kabe  長老   投稿数: 231
http://acsearch.acis.famic.go.jp/famic/csvout/vtllg305-1.csv

これなんですが、ダイレクトダウンロードした場合と、ブラウザで一覧表ダウンロードボタンを押して取得したCSVは、内容が異なっています。

ダイレクトダウンロードしたCSV
ヘッダを除いた件数が15181行あります。
登録番号ごとに失効農薬も含めた、有効成分全部含んでいるのかもしれません。
重複を除くと、542行です。

ブラウザで取得したCSVは
ヘッダを除いた件数が580行です。
こちらは単一化されているようです。
投票数:3 平均点:3.33
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011.12.11 21:59
OhYeah!  管理人   投稿数: 983 オンライン
引用:有効成分一覧は大した量じゃないので、HTML の一覧表を各ページ取得するのが良いですかねえ?有効成分一覧も 40 ページある上、COOKIE で渡されるセッション ID 等を使用しているので、一筋縄で取得できませんね。毒劇除外は別テーブルとして静的に spec.db に持っておき、CSV で取得できる項目のみ動的にテーブルを作成し、毒劇除外テーブルを JOIN して使用するのが良さそうです。
投票数:2 平均点:5.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011.12.11 22:05
OhYeah!  管理人   投稿数: 983 オンライン
引用:これなんですが、ダイレクトダウンロードした場合と、ブラウザで一覧表ダウンロードボタンを押して取得したCSVは、内容が異なっています。そうすると、CSV ダウンロードの場合も、セッション ID か referer を参照して、出力する内容を変えてるってことかなあ? なんでまたそんな面倒なことを…。簡単にオートダウンロードできるようにして欲しいものですね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.12 10:39
OhYeah!  管理人   投稿数: 983 オンライン
CSV の内容が異なるのは、Referer が原因のような感じがします。
HTTPDownload コンポーネントに、Referer プロパティって付けてありましたっけ? もしあったら、そこに下記 URL を設定してみてください。もしかすると、PHPSESSID も渡さないとダメかもですが…。
引用:http://acsearch.acis.famic.go.jp/famic/PhpPage/vtllg305-1.php?&search_str=%91S%82%C4
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.12 21:13
kabe  長老   投稿数: 231
referer を設定しただけでは、ダメでした。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.12 23:46
OhYeah!  管理人   投稿数: 983 オンライン
THttpDownload コンポーネントに Referer プロパティは作ってなかったんですが、IfModifiedSince プロパティと同様の方法で追加してみたってことでしょうか? だとすると、やっぱり Referer だけでなく PHPSESSID も必要ってことかなあ…。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.13 08:18
kabe  長老   投稿数: 231
IDE で referer って出てきたのですが・・・・
あれ、全然意味なかったんでしょうか。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011.12.13 11:12
OhYeah!  管理人   投稿数: 983 オンライン
オブジェクトインスペクタに Referer プロパティがあったなら、それで OK です。私が確認したソースが古かったのかも…。

セッション ID (PHPSESSID)は、レスポンスヘッダの Set-Cookie フィールドで送られてきてるようなので、レスポンスヘッダから特定フィールドの値を取得するか、レスポンスヘッダ全体を取得するメソッドがあれば取得できます。手元にソースがないので、家に帰ったら確認します。
セッション ID を渡すのは、GET のクエリー文字列でもリクエストヘッダの Cookie フィールドでもいけそうな感じがしますが、Cookie の受け渡しをするプロパティを THttpDownload に追加するのが良いですかね。
THttpDownload を更新するまで、ちょっとお待ちください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.14 17:27
kabe  長老   投稿数: 231
すいません。
referer は私のユニットにあったもので、おそらく以前に別のコンポーネントを使っていたときの残骸が残っていたようです。
実質機能していませんでした。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.14 22:43
OhYeah!  管理人   投稿数: 983 オンライン
ああ、やはりそうでしたか。手元のソースには全く見当たらなかったので…。

PHP の HTTP_Request で Referer を設定してアクセスしてみましたが、やはり同じです。が、HTTP_Request で FAMIC の検索トップページ等にアクセスしても PHPSESSID が取得できず、今のところ Refere と PHPSESSID の合わせ技は試せないでいます。Web ページからの取得と同じファイルが得られる方法が確定してから、THttpDownload を修正したいと思います。

話は変わりますが、本日自宅 PC を OpenOffice から Libre Office に切り替えましたが、全く問題なく ACFinder から Libre Office Calc が起動されることを確認しました。
投票数:0 平均点:0.00

なし Re: 有効成分の毒性データ

msg# 1.3.2.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011.12.29 00:08
OhYeah!  管理人   投稿数: 983 オンライン
結局、CSV ファイルの直接ダウンロードではなく、下記のようにクエリー付きで PHP にアクセスする必要があることが判明しました。これだと、何故か表頭部分にゴミが出ますが、Referer を設定するとゴミがなくなります。
http://acsearch.acis.famic.go.jp/famic/PhpPage/vtllg305-1.php?fname=../csvout/vtllg305-1.csv

なお、上記で得られる CSV ファイル(データ部 551 行)と、ウェブブラウザを操作して得られる CSV ファイル(データ部 580 行)ではまだかなり行数が異なります。が、Cookie やパラメータの受け渡し、Referer、User-Agent などを完全にエミュレートしても、なぜかウェブブラウザでダウンロードしたのと同じ CSV を取得することはできませんでした。
具体的に何が違うのかは確認していませんが、現在の spec.m_dokusei のデータ数(495件)から考えると、551 行でも問題はないのかなあという感じはします。

ってことで、新システムのダウンロードデータから spec.m_dokusei 相当のテーブルを作れるようにしてみました。下記からテーブル作成 SQL を取得できます。
http://macs.o-ya.net/data/spec.m_dokusei2.php
m_dokusei との違いは、次の3点です。
1. 毒劇除外条件を jogai フィールドに独立させた
2. 「ウワバルア」「ロウカルア」などのフェロモンの混合成分名が存在しない
3. 「脂肪酸グリセリド」は用途によって魚毒性が異なる(他にもあるかも)

>kabe さん
spec.m_dokusei2 から spec.dokusei を作ることができますか? これがうまく使えたとして、毒劇除外条件をいつも最新の状態にしておくためにはどうすれば良いのかという問題が残りますが…。
投票数:0 平均点:0.00

なし Re: 有効成分の毒性データ

msg# 1.3.2.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012.01.16 17:16
OhYeah!  管理人   投稿数: 983 オンライン
引用:spec.m_dokusei2 から spec.dokusei を作ることができますか?まだ薬剤タブの有効成分一覧相当の表示を試していませんが、下記でいけそうですね。

CREATE VIEW spec.dokusei2 AS 
SELECT ippanmei, dokuseimei AS seibunmei, gyodoku, dokusei, jogai, biko FROM spec.m_dokusei2
LEFT JOIN spec.betsumei ON ippanmei = seibunmei;

展着剤成分以外で魚毒性が空白になっている成分があるので、若干例外処理が必要かもしれません。「2,4-PAナトリウム一水化物」については、すでに例外処理を追加してあります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012.02.16 14:31 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:展着剤成分以外で魚毒性が空白になっている成分があるので、若干例外処理が必要かもしれません。この処理を追加して、新たな spec.m_dokusei テーブル作成クエリーが完成しました。正式バージョンなので、テーブル名もクエリー取得 URL も spec.m_dokusei2 ではなく、spec.m_douksei に変更しています。
http://macs.o-ya.net/data/spec.m_dokusei.php

kabe さん>FAMIC 側の更新タイミングが不明のため、農薬登録情報更新時にこちらのテーブルも更新するようにしてください

ちなみに、dokusei ビューも下記で問題なくいけます。
--/d
drop view if exists spec.dokusei;
CREATE VIEW spec.dokusei AS 
SELECT ippanmei, dokuseimei AS seibunmei, gyodoku, dokusei, jogai, biko FROM spec.m_dokusei
LEFT JOIN spec.betsumei ON ippanmei = seibunmei;

kabe さん>薬剤タブの有効成分テーブルに jogai フィールドも表示するように修正をお願いします。

seibun テーブルに JOIN して、現行の全ての有効成分に対して毒性が付与されることを確認しました。
select distinct ippanmei, seibun, gyodoku, dokusei, jogai, biko from seibun left join spec.m_dokusei using(ippanmei)
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012.02.22 21:11
kabe  長老   投稿数: 231
修正が遅れておりすいません。
当面、時間がとれず、しばしお待ち下さい。
投票数:0 平均点:0.00

  条件検索へ