(O:)ドライブ → 地図データ → LANDSAT → LANDSAT7ETM+109-36_20010704
可視光 L71109036_03620010704_B10 : 青 (Band1) L71109036_03620010704_B20 : 緑 (Band2) L71109036_03620010704_B30 : 赤 (Band3) L71109036_03620010704_B40 : 近赤外 (Band4) L71109036_03620010704_B50 : 中間赤外 (Band5) L71109036_03620010704_B61 : 熱赤外 (Band6) L71109036_03620010704_B62 : 熱赤外 (Band6) L71109036_03620010704_B70 : 中間赤外 (Band7) → B50とは波長が異なる L71109036_03620010704_B80 : パンクロ (Band8) → 解像度が粗い
(D:)ドライブに作業用フォルダ(Landsat)を作ります. (O:)ドライブのBand1とBand4のデータを作成した作業用フォルダにコピーします. 名前が長いのでそれぞれ「blue」と「nir」に変更します.
cd D:\Landsat
cat > blue.ppm
P5 6937 6316 255
cat blue >> blue.ppm
cat > nir.ppm
P5 6937 6316 255
cat nir >> nir.ppm
dir = "O:/地図データ/LANDSAT/LANDSAT7ETM+109-36_20010704/SCENE001/" ################################################################################ # 必要な場所を切り出す def cut_site(f,out) cols = 6937 # LANDSAT画像の一行のピクセル数 x1 = 3100; y1 = 2600 # 切り出したい位置の左上隅 x2 = 3300; y2 = 2850 # 切り出したい位置の右下隅 dx = x2 - x1; dy = y2 - y1 out.puts "P5 #{dx} #{dy} 255" y2.times do |j| line = f.read(cols) out.write(line[x1,dx]) if j >= y1 end end out_file = ["B10","B20","B30","B40","B50","B61","B62","B70"] i = 0 Dir.foreach(dir) do |file| if /B/ =~ file && /B80/ !~ file puts file f = open(dir + file,"rb") # 対象ファイル(バイナリ)をオープン out = open(out_file[i] + ".ppm","wb")# 出力ファイル(バイナリ)を準備 # 必要な場所を切り出す cut_site(f,out) f.close; out.close i += 1 end end
![]() Band1(B10) |
![]() Band2(B20) |
![]() Band3(B30) |
![]() Band4(B40) |
![]() Band5(B50) |
![]() Band6(B61) |
![]() Band6(B62) |
![]() Band7(B70) |