<div dir="ltr">斉藤様<div><br></div><div>かやまと申します</div><div><br></div><div>画像のタイル化ですが、gdal2tiles.py とかでやるならば入力の元画像にvrtが利用できます</div><div>からvrtをtiffに変更する必要は無いと思います。</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013年8月12日 12:20 斎藤 直正 <span dir="ltr"><<a href="mailto:nsaito@msk-web.co.jp" target="_blank">nsaito@msk-web.co.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
山手 様<br>
<br>
ご連絡が遅くなってしまって済みせん。<br>
ご教示頂きありがとうございます。<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
・gdalwarpで -co TILED=YES -co BLOCKXSIZE=512 -co BLOCKYSIZE=512オプションを追加する<br>
</blockquote>
この方法も試してみました。(オプションBLOCKSIZEY⇒<u></u>BLOCKYSIZEに変更)<br>
確かに速くなります。<br>
ただ、もう一声\(^o^)/という感じでしょうか(^^ゞ<br>
もう少し小ぶりなデータセットならば良いかと思いました。<br>
画像の結合だけに着目していたのそう思いましたが、<u></u>gdalwarp自体を他の用途 に使う分には<br>
極めて有効に使えると思っています。<br>
<br>
次に、<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
gdalbuildvrt -hidenodata -vrtnodata "0 0 0" ../dest_dir/merge.vrt *.tif<br>
で仮想的にマージ画像を作成することができます。<br>
大きなファイルが扱いづらそうだと思われる場合にどうぞ。<br>
<br>
もし効果がありましたらお教えいただけると大変助かります。<br>
</blockquote></div>
-hidenodata -vrtnodate・・・・<u></u>の効果が今一つ航空写真を使っている為か見 えなかったので、<br>
それらのオプションを外して<br>
<br>
gdalbuildvrt ../dest_dir/merge.vrt *.tif <br>
<br>
として試してみました。<br>
<br>
最初の段階で、<u></u>大量のファイルで以下のエラーが数百個は出たかな(^^ゞ<br>
Warning 6: gdalbuidvrt dose not support heterogenous projection. Skipping xxxx.tif<br>
vrtファイルもまともに生成されませんでした。<br>
原因は、<u></u>元のオルソフォトは投射方法が無秩序にバラバラであったり、<u></u>登録されて<br>
いなかったり・・・これが原因だと思い。<br>
全てのファイルをシェルスクリプトで変換(元ファイルは、.<u></u>tifと.tfwで構成 されていたが、<br>
出力結果は.<u></u>tifへと合成してくれるのでこれも助かりましたw)<br>
<br>
gdal_transkate -a_srs epsg:xxxx srcxxx.tif ../geotiff/dstxxxx.tif<br>
<br>
その後、上記のgdalbuidvrtを実行したら、<u></u>あっという間に合成してくれました。<br>
<br>
更に、<u></u>タイル画像を作るのに必要なtifファイルを作りたかったので、<u></u>以下の<br>
コマンドでtifファイルを生成。<br>
<br>
gdal_translate merge.vrt merge.tif<br>
<br>
数時間掛かったと思いますが、<u></u>寝落ちしている間に作ってくれていましたw<br>
<br>
問題は、無事画像が生成されているのか?心配でしたので、<u></u>睡魔と闘い<br>
ながら・・・縮小画像を生成。<br>
<br>
gdalwarp -tr 100 100 merge.tif dst_short.tif<br>
<br>
激粗の画像が生成され、<u></u>取りあえず画像生成が上手く行っていることを確認。<br>
後で、入力ファイルをmerge.<u></u>vrtに変えてやっても出来ることを確認しました。<br>
<br>
結論としては、手順は増えますが・・・・<br>
・GDAL_CHASHMAXの値を適当な値にする。(<u></u>これは必須ですね。)<br>
・大きなファイルを結合する時は、場合によって、<u></u>gdalbuildvrtで仮想ファイル を作成<br>
・gdal_translateで実画像化<br>
<br>
という手順が最も速く実現出来ました。<br>
<br>
小規模だと、<u></u>そのままgdalwarpでやってもトータル時間はあまり変わら<u></u>ない?かも<br>
知れませんが、ファイル数多かったり、<u></u>最終的に出来あがる結合後のファイルが<br>
大きくなる様ならば、<u></u>gdalbuidvrtを使うべきと思いました。<br>
<br>
御蔭さまで、<u></u>無事画像結合が現実的な時間で出来るようになりました。<br>
次は、画像のタイル化に挑戦予定・・・というか、既にヤバそう(<u></u>^^ゞ<br>
<br>
ありがとうございました。<br>
<br>
以上<div class="HOEnZb"><div class="h5"><br>
<br>
(2013/08/08 23:58), <a href="mailto:arctic_tern@mf-atelier.sakura.ne.jp" target="_blank">arctic_tern@mf-atelier.sakura.<u></u>ne.jp</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
斎藤様<br>
<br>
山手と申します。<br>
<br>
あまり効果がないかもしれませんが、<u></u>以下の2つも試してみていただけますでしょうか。<br>
<br>
・gdalwarpで -co TILED=YES -co BLOCKXSIZE=512 -co BLOCKSIZEY=512オプションを追加する<br>
<br>
TILED TIF形式にすることで、<u></u>キャッシュされる画像範囲がブロック単位になるはずです。<br>
ブロックサイズはデフォルトでは256ですが、<u></u>変更したい場合は上のようにしてください。<br>
<br>
・ワープ画像は個別に作って、マージ画像をVRTにする<br>
<br>
gdalbuildvrt -hidenodata -vrtnodata "0 0 0" ../dest_dir/merge.vrt *.tif<br>
で仮想的にマージ画像を作成することができます。<br>
大きなファイルが扱いづらそうだと思われる場合にどうぞ。<br>
<br>
もし効果がありましたらお教えいただけると大変助かります。<br>
<br>
以上、よろしくお願い申し上げます。<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
岩崎 様<br>
<br>
早々のご回答ありがとうございます。<br>
<br>
これやってたら、1年掛かるやんけー(~_~;)<br>
と思っていたので、ありがとうございます。<br>
<br>
最悪、メモリディスク作って・・・とか、<u></u>分割して結合も考えたりはしていた<br>
のですが、<br>
ブログの内容も拝見させて頂き、十分理解出来ました。<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
それと、gdalwarpで画像を結合する場合、<u></u>初めに結合した範囲のデータを作って、<u></u>その範囲のデータをすべて処理するようにも思います。<br>
</blockquote>
これも確かにそんな動きですね。<br>
なんか、毎度毎度同じような初期化やってるような感じで、<u></u>無駄じゃないのか<br>
なぁ?もっと効率良く出来ないのかな?<br>
オプションで逃げれないのかな?とか考えていましたが・・・<br>
<br>
ありがとうございます。<br>
早速、やってみます。<br>
<br>
以上<br>
<br>
<br>
<br>
(2013/08/08 23:02), Nobusuke Iwasaki wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
すみません、途中で送信してしまいました。<br>
<br>
以下のブログに解説が書かれています。<br>
<a href="http://d.hatena.ne.jp/yellow_73/20110427" target="_blank">http://d.hatena.ne.jp/yellow_<u></u>73/20110427</a><br>
<br>
それと、gdalwarpで画像を結合する場合、<u></u>初めに結合した範囲のデータを作って、<u></u>その範囲のデータをすべて処理するようにも思います。<u></u>場合によると、四分割なり、<u></u>八分割なりの結合ファイルを作成して、<u></u>それを結合した方がいいかもしれません。<br>
結合結果が10万✕10万ピクセルであれば、<u></u>一晩で結合できました。<br>
<br>
詳しいことは、どなたかフォローいただければと思います。<br>
<br>
2013年8月8日 22:54 Nobusuke Iwasaki <<a href="mailto:wata909@gmail.com" target="_blank">wata909@gmail.com</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
斎藤さま<br>
<br>
岩崎と申します。<br>
<br>
私のやった経験の範囲なのですが、GDAL_CACHEMAX で使用するメモリ量を多くすると、かなり早くなりました。<br>
<br>
2013年8月8日 22:25 斎藤 直正 <<a href="mailto:nsaito@msk-web.co.jp" target="_blank">nsaito@msk-web.co.jp</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
斎藤と申します。<br>
初めて投稿させて頂きますの、不躾な点があるかと思いますが<br>
宜しくお願いしますm(_)m<br>
<br>
現在、700枚程の航空写真をタイル画像にしようと思い、<u></u>まずは画像合成?結合<br>
からということで、Windows 7からgdal_merge.pyを使用してみたところ、ファイ<br>
ル数が<br>
多すぎて、<u></u>コマンドラインからはみ出る様なエラーが発生し上手く利用できま<u></u>せ<br>
んでした。<br>
<br>
そこで、Linux(CentOS 6.4)にgdalをソースからインストールして、<br>
gdalwarpを以下のコマンドで実行してみたところ、<u></u>とてつもなく時間が掛かって<br>
しまい困惑しています。(<u></u>24時間で2枚しか処理できませんでした)<br>
gdalは gdal-1.10.0を使用しています。<br>
<br>
# gdalwarp *.tif ../dest_dir/all.tif -dstnodata -9999 -srcnodata -9999<br>
Creating output file that is 214000P x 195000L.<br>
Processing input file 09xxxx1.tif.<br>
for band 1, destination nodata value has been clamped to 0, the original<br>
value being out of range.<br>
0...10...20...30...40...50...<u></u>60...70...80...90...100 - done.<br>
Processing input file 09xxxx2.tif.<br>
for band 1, destination nodata value has been clamped to 0, the original<br>
value being out of range.<br>
0...10...20...30...40...50...<u></u>60...70...80...90...100 - done.<br>
<br>
<以下省略><br>
<br>
gdalは以下のconfigureオプションで作成しています<u></u>。<br>
# ./configure --with-perl --with-php --with-python --with-expat<br>
--with-expatlib=/usr/lib64 \<br>
--with-poppler --with-expatinc=/usr/include --with-libtiff=/usr<br>
--with-geotiff=/usr/ \<br>
--with-threads<br>
<br>
# make<br>
# make install<br>
<br>
ちなみに、<br>
--with-expatlib=/usr/lib64<br>
--with-expatinc=/usr/include<br>
については、configure --helpで見ると、<br>
--with-expat-lib=/usr/lib64<br>
--with-expat-inc=/usr/include<br>
であるべきなのですが、--with-expat-libと「<u></u>expat」と「lib」もしくは<br>
「inc」の間に<br>
「-」を入れるとエラーではじかれるので、間の「-」<u></u>が無いのが正しそうだと<br>
思っています。<br>
<br>
その後、pythonのツールを有効にしようと思い、<u></u>以下のコマンドを実行しています。<br>
<br>
# cd swig/python/<br>
# easy_install GDAL<br>
# python setup.py build<br>
# python setup.py install<br>
<br>
各種必要なライブラリ等は、<u></u>yumやrpmなどでインストールを施してインストール<br>
したつもりです。<br>
<br>
やり方に問題があるのでしょうか?<br>
マシン環境が悪いのか?<br>
<br>
gdal以外の方法でも構わないので、<u></u>高速化させる方法があればご教示頂けない<br>
でしょうか?<br>
<br>
ちなみに、ファイル数を70ファイルぐらいに限定し、<u></u>コマンドを以下の様に<br>
少し変更してみたのですが、それだと、<u></u>1時間で3ファイルぐらいは処理してく<br>
れているようです。<br>
<br>
# gdalwarp *.tif ../dest_dir/all.tif -dstnodata -9999 -srcnodata -9999<br>
-multi<br>
<br>
-multiを追加しました。思い付きで、<u></u>並列処理してくれるのかな?と思っていま<br>
すが、<br>
違うのかな?速くなった気がほとんどしないような・・・<br>
<br>
以上、宜しくお願いします。<br>
<br>
<br>
--<br>
//////////////////////////////<u></u>///////////////////////////<br>
株式会社 エムエスケー<br>
斎藤 直正<br>
TEL:0598-51-7471 / FAX:0598-52-4849<br>
<a href="mailto:E-mail%3Ansaito@msk-web.co.jp" target="_blank">E-mail:nsaito@msk-web.co.jp</a> URL:<a href="http://www.msk-web.co.jp" target="_blank">http://www.msk-web.co.jp</a><br>
//////////////////////////////<u></u>///////////////////////////<br>
<br>
______________________________<u></u>_________________<br>
OSGeoJapan-discuss mailing list<br>
<a href="mailto:OSGeoJapan-discuss@lists.osgeo.org" target="_blank">OSGeoJapan-discuss@lists.<u></u>osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/osgeojapan-<u></u>discuss</a><br>
</blockquote>
<br>
--<br>
岩崎 亘典<br>
</blockquote>
<br>
</blockquote>
<br>
-- <br>
//////////////////////////////<u></u>///////////////////////////<br>
株式会社 エムエスケー<br>
斎藤 直正<br>
TEL:0598-51-7471 / FAX:0598-52-4849<br>
<a href="mailto:E-mail%3Ansaito@msk-web.co.jp" target="_blank">E-mail:nsaito@msk-web.co.jp</a> URL:<a href="http://www.msk-web.co.jp" target="_blank">http://www.msk-web.co.jp</a><br>
//////////////////////////////<u></u>///////////////////////////<br>
<br>
______________________________<u></u>_________________<br>
OSGeoJapan-discuss mailing list<br>
<a href="mailto:OSGeoJapan-discuss@lists.osgeo.org" target="_blank">OSGeoJapan-discuss@lists.<u></u>osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/osgeojapan-<u></u>discuss</a><br>
</blockquote>
><br>
</blockquote>
<br>
<br>
-- <br>
//////////////////////////////<u></u>///////////////////////////<br>
株式会社 エムエスケー<br>
斎藤 直正<br>
TEL:0598-51-7471 / FAX:0598-52-4849<br>
<a href="mailto:E-mail%3Ansaito@msk-web.co.jp" target="_blank">E-mail:nsaito@msk-web.co.jp</a> URL:<a href="http://www.msk-web.co.jp" target="_blank">http://www.msk-web.co.jp</a><br>
//////////////////////////////<u></u>///////////////////////////<br>
<br>
______________________________<u></u>_________________<br>
OSGeoJapan-discuss mailing list<br>
<a href="mailto:OSGeoJapan-discuss@lists.osgeo.org" target="_blank">OSGeoJapan-discuss@lists.<u></u>osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/osgeojapan-<u></u>discuss</a><br>
</div></div></blockquote></div><br></div>