Re: [OSGeoJapan-discuss] データーフュージョン

Hiroo Imaki hiroo @ angeli.org
2011年 9月 6日 (火) 18:05:45 EDT


岩崎さん、こんにちは

やり方を見つけました。あまり大きい画像には向いていないかもしれませんが、Rのrasterライブラリーを使ってstackしました。以下にRのコードを付けました。もし他に良さそうな方法があれば教えて下さい。わたしがGDALを使うといったのはGDALでかくレイヤーをバンドオブジェクトとして読み込み、各レイヤーのサイズを揃えてから書きだすという手順でしたが大変そうなのですでにあるツールを探していました。

以下がコードです。

# This code stack 3 band tif image and 1 band dem together and create 4 band
fusion image.
# 20110906 Hiroo Imaki (hiroo @ angeli.org)

library(raster)
library(rgdal)

# check available file format
writeFormats()

# read vege data (3 bands)
veg <-
"G:\\Precision\\imakihi\\project\\snohomish\\gisdata\\vegetation_mapping\\qwuloolt_veg_3.tif"
veg.r <- stack(veg)
nlayers(veg.r)
veg.r

# read elev data (one band)
elev <-
"G:\\Precision\\imakihi\\project\\snohomish\\gisdata\\vegetation_mapping\\hh_be_3.tif"
elev.r <- raster(elev)
nlayers(elev.r)
elev.r

# crop image to fit each other
veg.crop <- crop(veg.r, elev.r)
elev.crop <- crop(elev.r, veg.crop)
veg.crop
elev.crop

# resample elevation image (if resolutions are different each other)
#elev.resample <- resample(elev.crop, veg.r, method='bilinear')

# strech values from 0 to 255 (you don't need this if you are not interested
in streaching values)
elev.min <- cellStats(elev.crop, stat="min")
elev.max <- cellStats(elev.crop, stat="max")
elev.int <- ceiling((elev.crop - elev.min) * 1000 / (elev.max - elev.min))
elev.int


# stack elevation layer on top of vegetation layers.
veg.stack <- stack(elev.int, veg.crop)
veg.stack

# output the stacked image
writeRaster(veg.stack,
"G:\\Precision\\imakihi\\project\\snohomish\\gisdata\\vegetation_mapping\\wetland_stack3.tif",
overwrite=TRUE, datatype="INT2U")
#writeRaster(elev.crop, "c:\\temp\\stacked\\elev.tif", overwrite=TRUE)

# plot elevation and vegetation layers
plot(elev.int)
plotRGB(veg.r, r=1, g=2, b=3)

いまき


2011/9/6 Nobusuke Iwasaki <wata909 @ gmail.com>

> いまきさん,みなさん
>
> いわさきです。
> 下記の件,なんかいいアイディアはありましたでしょうか?
> 私も興味があります。
>
> ちなみに,GDALを使うというのは,バーチャルラスター(VRT)を使うということでしょうか?
>
>
> 2011年8月30日11:13 Hiroo Imaki <hiroo @ angeli.org>:
> > コミュニティーの皆様、
> >
> >
> 現在、バークレーで作ったイメージセグメンテーションソフトウェアで画像の解析をしているのですが、TIFFで保存されている航空写真(3バンド)とLIDARの標高データ(1バンド)をひとつの画像データ(4バンドとして)保存したいのですがどのような方法がいいのかいまいち思いつかないのでどなたかご存じの方がいれば教えて欲しいのですが。
> >
> >
> 市販のソフトウェアーでのやり方もいいのですが、オープンソースのツールを使って出来たらと思っています。今のところGDALとパイソンを使って地味にやる方法は考えられるのですが、もうちょっと効率のよい方法があるのではと思いまして。
> >
> > よろしくお願いします。
> >
> > 今木
> >
> > --
> > Hiroo Imaki
> > hiroo @ angeli.org
> > http://www.geopacific.org
> >
> > _______________________________________________
> > OSGeoJapan-discuss mailing list
> > OSGeoJapan-discuss @ lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> >
> >
>
>
>
> --
> 岩崎 亘典
>



-- 
Hiroo Imaki
hiroo @ angeli.org
http://www.geopacific.org
-------------- next part --------------
HTML¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤¬½üµî¤µ¤ì¤Þ¤·¤¿.
URL: http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20110906/4126af9b/attachment-0001.html


OSGeoJapan-discuss メーリングリストの案内