とらりもんHOME  Index  Search  Changes  Login

とらりもん - データのダウンロード・圧縮・アーカイブ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

筑波大学農林工学系 西田顕郎

!データのダウンロードと圧縮・解凍・アーカイブ

!!!!!はじめに
地理情報データ(衛星データ、主題図、地形図など)を計算機の上で扱う際、多くの場合、データはインターネット経由で取得(ダウンロード)する。そうしたデータは、複数のファイルがひとつのファイルにまとめられており、さらに圧縮されていることが多いので、それらを解凍したりほどいたりという作業がまず必要になる。

!FTPによるダウンロード
FTP (file transport protocol)は、インターネット上でファイルを転送する方式である。Unixであれ、Windowsであれ、コマンドラインから、ftpというコマンドによって使用できる。例として, 米国のメリーランド大学から, Landsatという衛星のデータをダウンロードしてみよう。

* 以下の操作を行え。

$ {{fontc(text, red)}} ftp ftp.glcf.umd.edu
Connected to ftp.glcf.umd.edu.
220-
220-========================================================================
220-==                           Welcome to the                           ==
220-==                     Global Land Cover Facility                     ==
... (中略)
220
Name (ftp.glcf.umd.edu:tmp0):

* Nameにはanonymousと入れる。続いてパスワードには自分のメールアドレスを入れる。
* 注: ここでメールアドレスを打ち込むとき、画面には打ち込んだ内容は表示されない。これはセキュリティのためである。

230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

* ここで, ftp> に続いて以下のように打ち込む(ftp>はFTP画面の中のプロンプト):
ftp> cd glcf/Landsat/WRS2/p107/r035
ftp> cd p107r035_7x20010924.ETM-EarthSat-Orthorectified
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 10223    10223     4915438 Dec 22  2003 p107r035_7k20010924_z54_nn61.tif.gz
-rw-r--r--    1 10223    10223     6158033 Dec 22  2003 p107r035_7k20010924_z54_nn62.tif.gz
(中略)
-rw-r--r--    1 10223    10223    30473003 Dec 22  2003 p107r035_7t20010924_z54_nn70.tif.gz
-rw-r--r--    1 10223    10223        5526 Feb 12  2004 p107r035_7x20010924.met
226 Directory send OK.

ftp> get p107r035_7t20010924.browse.jpg
get p107r035_7t20010924.browse.jpg
local: p107r035_7t20010924.browse.jpg remote: p107r035_7t20010924.browse.jpg
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for p107r035_7t20010924.browse.jpg (337377 bytes).
226 File send OK.
337377 bytes received in 1.90 secs (173.5 kB/s)
ftp> quit

!!!!!解説

この例では、ftp.glcf.umiacs.umd.eduftp.glcf.umd.eduという、米国メリーランド大学のデータサーバーから、Landsatのサンプル画像(縮小見本)を取得している。ポイントは、

*ftpでサーバーにアクセスするときは、 $ ftp サーバー名(ドメイン名でもIPアドレスでもOK)とする。
*anonymousとは、そのサーバーに個人的な使用権がなくても利用できるftpサービス(つまり世間一般に公開している場合)にアクセスするときのログイン名。
*anonymous FTPでログインする場合は、パスワードは何を入れても大丈夫だが、自分のEメールアドレスを入れるのが礼儀とされている。
*cdやlsは、UNIXのふつうのシェルとコマンドと同じ。
*binaryは、ファイルをバイナリーモードで転送する、という宣言。ほかにasciiモードという転送方式もあるが、地理情報データではほとんどの場合、binaryである。WindowsでUNIXのFTPサーバーにアクセスするときなどは、binaryとasciiのモードの違いによって、大きなトラブルが発生し得るので注意。
*getコマンドでファイル名を指定すれば、そのファイルが取得できる。
*操作を終るときは"quit"

問1: このようにして取得したファイルがカレントディレクトリにあることを確認し、そのサイズを調べよ。

問2: ftpのオンラインマニュアルを閲覧せよ。

!wgetによるダウンロード
以上の例は、正統的・古典的なダウンロード法だが、

*たくさんコマンドを打ち込むのがうざい
*回線が不安定なときに途中で打ち切られやすい

という欠点がある。もし、ダウンロード対象について、アドレス・ディレクトリパス・ファイル名などがわかっている場合や、一括して多くのファイルをダウンロードしたい場合などは、ftpコマンドの代わりにwgetというコマンドがとても便利である。(ただし、wgetは、システムによっては準備されていない場合がある)

例: 以下の操作によって、上と同じサーバーから同じファイルを取得せよ:

$ rm p107r035_7t20010924.browse.jpg ... まず既存のファイルを削除しておく。
$ wget ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified/p107r035_7t20010924.browse.jpgftp://ftp.glcf.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified/p107r035_7t20010924.browse.jpg


[rs02@envr1 rs02]$ wget ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified/p107r035_7t20010924.browse.jpgftp://ftp.glcf.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified/p107r035_7t20010924.browse.jpg
--19:34:15--  ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified ftp://ftp.glcf.umd.edu/glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified /p107r035_7t20010924.browse.jpg
           => `p107r035_7t20010924.browse.jpg.1'
ftp.glcf.umiacs.umd.edu ftp.glcf.umd.edu をDNSに問いあわせています... 完了しました。
ftp.glcf.umiacs.umd.edu[128.8.120.131]:21 ftp.glcf.umd.edu[128.8.120.131]:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /glcf/Landsat/WRS2/p107/r035/p107r035_7x20010924.ETM-EarthSat-Orthorectified ... 完了しました。
==> PORT ... 完了しました。    ==> RETR p107r035_7t20010924.browse.jpg ... 完了しました。
長さ: 331,549 (確証はありません)

100%[===========================================================================================>] 331,549      127.87K/s    ETA 00:00

19:34:20 (127.87 KB/s) - `p107r035_7t20010924.browse.jpg' を保存しました [331549]

たった1行(wget)で、上のftpの操作と同じ結果が得られることに注意。

問3: wgetコマンドのオンラインマニュアルを閲覧せよ。どのようなオプションがあるか?

注: wgetコマンドは、ftpサイトのみならず、ウェブサイトからのダウンロード(HTTP)にも対応できる。

注: wgetでファイルをダウンロードするとき、すでにカレントディレクトリに同一名のファイルがある場合は、ダウンロードしたファイルの名前に、.1や.2というような識別番号が拡張子として付加される。

注: したがって、wgetでダウンロードが途中で止まってしまったとき、wgetコマンドをそのまま走らせると、.1という拡張子をもったファイルが新しくできてしまう。これを防ぎ、ダウンロードの途中から再開したい場合は、wgetに-cオプションをつけるとよい。
!圧縮・解凍
通信時や保管時にはデータサイズを小さくすると効率的である。特に、衛星データなどの地理情報データはサイズが大きいので、圧縮技術は不可欠である。

UNIXでよく使われる圧縮形式には、以下の3種類がある: gzip, zip, bzip2

*gzip(ジージップ)は、もっとも一般的である。拡張子:.gz
*zip(ジップ)はgzipの前身であり、windowsでもよく使われる。拡張子:.zip
*bzip2(ビージップツー)は、gzipより処理時間がかかるが、そのぶん圧縮率が高いことが多い。拡張子:.bz2
*compressは、古い圧縮方法である。拡張子:.Z

それぞれの圧縮の仕方は、

$ gzip filename
$ zip filename.zip filename
$ bzip2 filename
$ compress filename

である。

それぞれの解凍の仕方は、

$ gunzip filename.gz
$ unzip filename.zip
$ bunzip2 filename.bz2
$ uncompress filename.Z

である。

注: Linuxにはcompressがインストールされていないことが多い。

!アーカイブ
ひとつのデータも、たくさんのファイルから構成されることがある。衛星画像などは特に、同じ日時・同じ場所を撮影したデータも、チャンネル(波長帯)ごとに違ったファイルにデータが格納されていることがよくある。そのような場合であっても、データを転送したり保管したりするときには、ひとつのファイルとしてまとまっているほうが扱いやすい。そこで、複数のファイルをひとつのファイルに連結してしまうことがよくある。これを「アーカイブ」といい、なかでも最も一般的な方法が"tar archive"(ターアーカイブ)である。tarアーカイブの拡張子は.tarである。

tarアーカイブの作り方:

$ tar cvf filename.tar file1 file2 file3 .... または、
$ tar cvf filename.tar directory

tarアーカイブの展開のやりかた:

$ tar xvf filename.tar

注: tarでアーカイブし、gzipで圧縮する、というのがUNIXにおけるデータ管理の一般的な流儀であり、その場合、ファイルは.tar.gzを拡張子に持つことになる。このようなファイルを"tar ball"と呼ぶ。tar ballの解凍・展開は、tar zxvfというコマンドを使えば、gunzipとtar xvfの両方の機能を1つのコマンドでまとめて実行できる。

!READMEファイル
地理情報データに限らないが、アーカイブされたデータには、テキスト形式のファイルで解説文が添付されることが多い。それをREADMEファイルと呼ぶ。衛星データの場合は、ヘッダーファイルということもある。それぞれ、ファイル名がREADMEやreadmeだったり、拡張子が.hdrだったりする。地理情報データをダウンロード・解凍・展開したら、まずはこのようなファイルを探し、内容をざっと確認しよう。

!!更新情報
2011/10/27 筑波大学 田中健太郎