Nov. 10, 2010 Rev. Feb. 04, Sep. 30, 2016

1. 国土地理院によって作成された基盤地図情報(数値標高モデル)10mメッシュと5mメッシュDEMをGRASS-GISで

2. 他の例1:宮城県海岸部の10mメッシュ(経度緯度座標系)

3. 他の例2: 仙台5mメッシュ(経度緯度座標系)

4. 北摂吹田周辺5m_mesh.TIFを作成しGrass-GISへ (経度緯度座標系,含国土交通省5mメッシュ

5.広根・高槻図幅の地盤高度のシェープ出力をGrass-GISでraster型DEMへ 

6.2012年秋学期11月初 宿題

7. 練習:鳥取市およびその周辺の5mmeshDEMダウンロード,fgddem by Python(三匹のうり坊)でgeotiff化,座標変換,座標変換(経緯度から平面直角座標系),Grassへの取り込み,r.patchで融合

8. 2016年春の数値基盤情報に関連して:吉野山と新子のDEM作成  Feb. 5, 2016

9. 既存DEM周辺にDEMを追加したくなった(奈良盆地と吉野川の例)   Oct. 09, 2016 (2016年秋の操作環境のもとで)

10. さらに奈良盆地と吉野川のDEM追加と更新 Jan. 4, 2017

11. 2016年実習 空中写真判読とGIS表示   Nov. 26, 2016; rev. Nov. 30 〜 Dec. 17,- , '16

1. 国土地理院によって作成された基盤地図情報(数値標高モデル)10mメッシュと5mメッシュDEMをGRASS-GISで

 ファイルフォーマットは,
  ******.dem (バイナリ形式 標高ファイル)
   ・水域部分 -9999.0で記述
   ・測地系 世界測地系UTM座標系
   ・標高単位(m) 0.1m単位 *1m単位が有効値であり、小数点以下は参考値。
   ・ファイルの大きさ 南北×東西 750×1125 pixel *10mメッシュ

  日本地図センターがGRASS-GISやカシミール用のバイナリ形式(32bit)版やgeotiff形式のファイルを作成する有料サービスを実施しているが国土地理院のウェブページにはこれらに対応するための情報を十分に掲載しているので自ら実施することが可能である。
メモ:
http://www.ecoris.co.jp/contents/maptool.htmlは メッシュ番号を知るのに凄く便利。
http://fgd.gsi.go.jp/download/で国土地理院基盤地図情報のダウンロード。

1 fgddem.py    rev. at Nov. 22, 2016

http://space.geocities.jp/bischofia_vb/

「基盤地図情報 数値標高モデル JPGIS(GML)形式をGeoTIFFに変換するPythonスクリプト。
操作はダウンロードしたDEMのZIPファイルをfgddem_droptarget.batにドラッグ&ドロップするだけ。複数zipファイルの一括変換が可能。
最新版は, May.20, 2016 up のものである。GitHubに掲載されているもので,
https://gist.github.com/minorua/4993166
このページの,最上部に近いタブ行の右端の, "Download Zip"をクリックすることでダウンロードできる。
  基盤地図情報DEMコンバータ Ver.1.5が上記python版より使い易かったし,全ファイルの統合が可能だったがgdal1.8以降の変更に伴って,使えなくなった。
 この公開サイトには使用法が記されている。上記ドラッグアンドドロップ法とコマンドラインへの入力法がある。いずれも試したが圧倒的にドラッグアンドドロップ法が簡便である。ぼくのようにMacでファイルをダウンロードしてParallels Desktop内のWindows XPでこのfgddem.pyを実行するものにとってはなおさらである。 基盤地図情報DEMコンバータ Ver.1.5では,ダウンロードした全zipファイルを統合できたが,
 このfgddem.pyでは,ただzipファイル内のxmlファイルが統合されるだけである。
   追加:macの初期設定ではダウンロードしたzipファイルは自動解凍されるので,解凍されたファイルはドラッグアンドドロップ法では使えない。初期設定では解凍前のファイルはゴミ箱に移動されるので,そのzipファイルを使う必要がある。
   なお,あらたに供給されたfgddem.pyでは,個々のzipファイルだけが一つのgeotiffファイルになる。複数のzipファイルがある場合は,複数のgeotiffをGrass上でr.patchを使って接合しなければならない。

2. GRASSへの取り込み

 法貴と高槻図幅を中心とする周囲地形図すべてを含む1/25,000地形図12葉(上述のFGDDEMConv1406で接合済)のgeotiffを取り込む例で示す。

2.1.geotiffの情報

上記アプリを使って,GRASS ascii形式でも出力していたが,このヘッダ情報は次のようである。

north: 35.083333333
south: 34.750000001
east: 135.75
west: 135.375
rows: 3000
cols: 3375
null: 0.00
type: float

 前述のように一つのファイルの大きさは,南北×東西750×1125 pixelである。図葉は南北に4枚,東西に3枚,計12枚を繋いでいるから,合計の行列数は合う。

2.2 GrassにLocationフォルダーをコピー

 A Big Fish in a Little Pondのウェブページ http://abigfishinalittlepond.blogspot.com/2010/06/grass-gisgisdb.html にgis用GISDBが用意されている。この作成そのものは簡便ではあるが,用意して頂いたものを使わない手はないだろう。日本に係わるgisdbを一括してダウンロードすることになる。
 京都及大阪,は,UTMゾーンの53で測地系2000を使うから,grassを立ち上げる前に,UTM53-JGD2000のフォルダをgrassdataフォルダにコピーする(GrassのスタートアップメニューからESPGコードで選んで作成することもできる(ESPGコードのリストはThe MERSEA integrated projectに公開されている http://www.mersea.eu.org/Information/References/help_EPSGCode.html)。日本の場合,4612(JGD2000)である)。ちなみに平面直角座標系についても用意されていて,大阪の部分はJPRCS6-JGD2000が該当するのでこれも併せてgrassdataフォルダにコピペしておいた方がいい。

2.3 UTMのLocationに接合して作成したgeotiffファイルを取り込む

 gis.mで,File/Import raster map/Multiple formats using GDAL,で表示されるパネルでOptionsのタブを開いて,Override projectionをチェックする。私の例では,aroundHokiTakatsuki10m.tifファイルを読み込んで,aroundHokiTakatsuki_10mdemGeotifとして出力した。

 

3. Grassでの表示

3.1 領域設定
 Config/Change Region Settings,でSet region to match this raster mapに,先に読み込んだファイルを指定する。Config/Display region settings,で下記のようになっていることを確認すること。
projection: 1 (UTM)
zone: 53
datum: towgs84=0,0,0,0,0,0,0
ellipsoid: grs80
north: 35.08333333
south: 34.75
west: 135.375
east: 135.75
nsres: 0.00011111
ewres: 0.00011111
rows: 3000
cols: 3375
cells: 10125000
 ここで,north〜ewersについての単位は度で,行列数からすると,nurses, ewresはいずれも合っている。画像を表示がうまく行かない時には,Displayを新しく開いて表示する。nvizでの表示も確認すること。
3.2 色の設定
 Raster/Manage map colors/Color tablesパネルで,Colorsタブを選び,elevationなどを選んで最も気に入った表現にする。この操作中に表示できなくなる場合がある。Grassを終了して,改めて立ち上げた方がいい。なお,Type of color tableで最も表現力があると考えられるのはaspectであろう。
 なお,Raster/Contour linesも試してみよう。

 

4. 座標系の変換: 経緯度単位のgeotiff標高データをUTMのmeter表示に変える
 前述の基盤地図情報DEMコンバータ Ver.1.4を開発された三匹のウリボウ,の次のページが参考になる。http://space.geocities.jp/bischofia_vb/appmemo.html

4.0 gdalwarpの使用について
 前述の手順でgrassをインストールするとgdalwarpも使うことができる。gis.mでは使うことができない。ターミナルウィンドで,
GRASS 6.4.0 (UTM53-JGD2000):~ > gdalwarp help
を入力すると,下記のような表示が出てくれば,ここでの作業を行うことができる。
Usage: gdalwarp [--help-general] [--formats]
[-s_srs srs_def] [-t_srs srs_def] [-to "NAME=VALUE"]
[-order n] [-tps] [-rpc] [-geoloc] [-et err_threshold]
[-te xmin ymin xmax ymax] [-tr xres yres] [-ts width height]
[-wo "NAME=VALUE"] [-ot Byte/Int16/...] [-wt Byte/Int16]
[-srcnodata "value [value...]"] [-dstnodata "value [value...]"] -dstalpha
[-r resampling_method] [-wm memory_in_mb] [-multi] [-q]
[-cutline datasource] [-cl layer] [-cwhere expression]
[-csql statement] [-cblend dist_in_pixels]
[-of format] [-co "NAME=VALUE"]*
srcfile* dstfile
Available resampling methods:
near (default), bilinear, cubic, cubicspline, lanczos.

 gdalwarpが認識できない場合には,LinuxでなくてもWindowsで使うことができる。次のサイト http://fwtools.maptools.org/ からダウンロードすることができる。僕はMac上のParallels DesktopのWindows XPにインストールしている。Vistaにも対応しているようである。Downloadの見出しのCurrent Releaseに,FWTools 2.4.7 (Windows 32 bit)のダウンロードリンクがある(Nov. 10, 2010現在)。
 インストールは自動でされる。C:\Program Files\FWTools 2.4.7,が用意される。この中のFWTools Shellのプロンプトが表示される。ここでコマンドを入力すればいい。

4.1 Mac上のgrassでgdalwarp

 実行前に先に作成した10m標高の経緯度座標系のgeotifファイルを適当なパスに置く必要がある。UTM変換結果も同じフォルダに入れた方が便利なので経緯度geotifファイルを入れるフォルダを作る。参照パスをgrassというかターミナルが覚えてくれるので,grassdataフォルダのサブフォルダに入れる。ぼくの場合,/Users/moto/grassdata/conv_folder/aroundHokiTakatsuki10m3.TIF,というパスのgeotifを変換対象とする。
 なお,gdalのコマンドの詳細は,http://www.gdal.org/pages.html や,GeoPacific.orgのhttp://www.geopacific.org/opensourcegis/gdal-ogr/gdal-commands などが参考になろう。gdal恐るべし。
 次が入力したコマンドである。
GRASS 6.4.0 (UTM53-JGD2000):~ > gdalwarp -s_srs "+proj=latlong +DATUM=JGD2000" -t_srs "+proj=utm +zone=53 +DATUM=JGD2000" -tr 10 10 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/conv_folder/aroundHokiTakatsuki10m3.TIF" "/Users/moto/grassdata/conv_folder/aroundHokiTakatsukiUTM10m3.TIF"

 ここで,-s_srs "+proj=latlong +DATUM=JGD2000" は,ソースファイル(変換したいファイル)の座標系情報(-s_srsはsource spatial reference setの意),-t_srs "+proj=utm +zone=53 +DATUM=JGD2000" は,ターゲットファイル(作りたいファイル)の座標系情報(-t_srsはtarget spatial reference setの意 ),法貴|高槻周辺はUTMzone53であるから+proj=utm +zone=53 と表示されている。-tr 10 10 は,ターゲットファイルのxres(南北方向の解像度 m) yres(東西方向の解像度 m)である。-r bilinear は,再サンプリング resamplingの方法である。これを指定しない場合はnearest neighbour 法になるがこれは粗い結果になる。適切なのはbilinear(双1次)法であろう。陸域のdemでは水域は-9999となっており,-dstnodata -9999の実行によって, ソースファイルの-9999値に対してターゲットファイルではnodata値が記録される。そして,ソースファイルとターゲットファイル名が並べられている。パス指定されているところに注目して欲しい。
 実行すると,ほぼ一瞬で完了する。次のようなメッセージが流れる。
Creating output file that is 3446P x 3715L.
Processing input file /Users/moto/grassdata/conv_folder/aroundHokiTakatsuki10m3.TIF.
Using internal nodata values (eg. 0) for image /Users/moto/grassdata/conv_folder/aroundHokiTakatsuki10m3.TIF.
0...10...20...30...40...50...60...70...80...90...100 - done.
GRASS 6.4.0 (UTM53-JGD2000):~ >

 

 なお,作成できたutmのgeotiffファイルの情報を見るために,[ gdalinfo ラスターファイル ] を使う。このコマンドはgrass内でするものではない。Terminalから実施した結果を次ぎに示す。求めるフォーマットになっている。

GRASS 6.4.0 (UTM53-JGD2000):~ > gdalinfo /Users/moto/grassdata/conv_folder/aroundHokiTakatsukiUTM10m3.TIF
Driver: GTiff/GeoTIFF
Files: /Users/moto/grassdata/conv_folder/aroundHokiTakatsukiUTM10m3.TIF
Size is 3446, 3715
Coordinate System is:
PROJCS["UTM Zone 53, Northern Hemisphere",
GEOGCS["WGS 84",
DATUM["unknown",
SPHEROID["WGS84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",135],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Origin = (534184.725196975865401,3882541.683608832769096)
Pixel Size = (10.000000000000000,-10.000000000000000)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 534184.725, 3882541.684) (135d22'30.03"E, 35d 5'6.26"N)
Lower Left ( 534184.725, 3845391.684) (135d22'24.55"E, 34d45'0.28"N)
Upper Right ( 568644.725, 3882541.684) (135d45'10.85"E, 35d 4'59.93"N)
Lower Right ( 568644.725, 3845391.684) (135d44'59.86"E, 34d44'54.03"N)
Center ( 551414.725, 3863966.684) (135d33'46.32"E, 34d55'0.66"N)
Band 1 Block=3446x1 Type=Float32, ColorInterp=Gray
NoData Value=-9999
GRASS 6.4.0 (UTM53-JGD2000):~ >

 

5. Grassへの取り込みと表示

5.1 r.in.gdalを使って取り込み

 gis.mのfile/import raster map/multiple formats using g.dal,を使ってgrassに取り込むのであるが,Locationは,これまで経緯度geotiffを表示していたUTM53-JGD2000である。mapsetはPERMANENTである。requiredタブではRaster file to be importedには,gdawarpで作成したaroundHokiTakatsukiUTM10m3.TIF,を,Name for output raster mapには適当な名前をつける。ここでは,aroundHokiTakatsukiUTM10m,としている。Optionsタブでは,override projection (use location's projection)にチェックを入れている。

5.2 表示

 このままでMap Displayに表示しようとしても何も表示されない。Config/Region/Display region settingsでリージョンの設定値をみると,相変わらず,下記のように経緯度表示になっている。

g.region -p
projection: 1 (UTM)
zone: 53
datum: towgs84=0,0,0,0,0,0,0
ellipsoid: grs80
north: 35.08333333
south: 34.75
west: 135.375
east: 135.75
nsres: 0.00011111
ewres: 0.00011111
rows: 3000
cols: 3375
cells: 10125000

 Config/Region/Change region settings,で,まずはExistingタブでSet region to match this rastermap,を選ぶ。 プリントタブで,1番目のPrint the current region,3番目のPrint the current region extent,五番目のPrint region resolution in meters (geodetic)を選ぶ。OptionタブではAllow overwriteにチェックを入れて,実行。その実行結果が,次のものである。
projection: 1 (UTM)
zone: 53
datum: towgs84=0,0,0,0,0,0,0
ellipsoid: grs80
north: 3882541.68360883
south: 3845391.68360883
west: 534184.72519698
east: 568644.72519698
nsres: 10
ewres: 10
rows: 3715
cols: 3446
cells: 12801890
north-south extent: 37150.000000
east-west extent: 34460.000000
 正しく座標変換が実行され表示されることがわかる。
 Map Displayに表示する。たとえば,このウィンドの最下段に,
Display: rows=486 columns=690 resolution=76.4403m
となっている。この行列数と解像度を掛け合わせると,上に示されているrows: 3715,
cols: 3446となる,ウィンドウをより大きくすると例えば,
Display: rows=808 columns=961 resolution=45.9777m
と表示されており,同様の結果を得ることができる。
 

2. 他の例:宮城県海岸部の10mメッシュと仙台5mメッシュ Apr. 2, 2011

はじめに

 宮城県海岸部の10mDEMと仙台市の5mDEMをGrassに作成する過程を示す。
 津波による被災について何らかの研究や学習をする方は参考にして頂きたい。

 国土地理院の基盤地図情報10mメッシュ標高は測地系2000の経緯度座標系である。GISではUTMmが適当なので,基盤地図情報DEMコンバータで結合してgeotiffファイルに変換した後で,gdalwarpを使って経緯度座標系からUTMm座標系に変換する必要がある。
 5mメッシュは測地系2000の平面直角座標系(経緯度座標系)である。ここではGrassのUTMm座標系のLocationを作成して取り込むので,gdalwarpで座標系の変換をする必要がある。
 そしてGrassに取り込んでr.patchを使って,10mメッシュ,5mメッシュそれぞれで一つのファイルにまとめる。そしてr.patchを使って,10mメッシュの上に5mメッシュを上書きする。その結果,一つのDEMとなるはずである。

2.1 宮城県海岸部の10mメッシュxmlファイルの取得


 宮城県のどの部分を取るかはなかなか,難しい。津波で被災した範囲が余裕を持って表示できると思われる範囲を次ぎの図に示す。


 第T次地域区画(1次メッシュ)は地勢図の範囲である。この図の大船渡などが入る北東部は「一関」でメッシュコードは5841。中央部の最も多い枚数の1次メッシュは「石巻」5741。この西隣は「仙台」5740。この南隣は「福島」5640。この東隣は地勢図名はないが福島図幅から連続する部分564150図幅がある。1次メッシュコードに続いて,この図幅内の南西部の2万5千分の1地形図を00として行も列も7まで続き行番号を優占してコード番号が付けられている。☆ 全国整備されたフリー10mメッシュのダウンロード,そしてカシミール用とGRASS用の変換,必要矩形領域のファイル名検索 http://www2.ipcku.kansai-u.ac.jp/~moto/GISContents/62.htm
参考。
 基盤地図情報ダウンロードサービス http://fgd.gsi.go.jp/download/
で,宮城県単位で全部ダウンロードしたあとで,「地図から選択」で地図を参照して必要な地図のメッシュコードを記録して,ダウンロードしたファイルの取捨選択をすれば良い。

2.2 基盤地図情報DEMコンバータ Ver.1.4.0.8(Mar.31,2011現在)で結合とgeotiff出力
 http://motochan.sakura.ne.jp/public_html/GISContents/62.htm#4で使用法を紹介している。要するに,xmlファイルを全部一つのフォルダに入れて,一括変換モードでgeotiffファイルとして出力すればいい。ぼくはこのバグが改善されていなかったバージョンを使っていたのでかなり試行錯誤をしたが。

2.3 経緯度座標系からUTM距離座標系へgdalwarpを使って
 次ぎに一例を示す。
GRASS 6.4.0 (UTM54N-JGD2000):~ > gdalwarp -s_srs "+proj=latlong +DATUM=JGD2000" -t_srs "+proj=utm +zone=54 +DATUM=JGD2000" -tr 10 10 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ishinomaki_10m.TIF" "/Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ishinomaki_10mUTMm.TIF"
 この実行過程が次のように表示される。
Creating output file that is 5475P x 5566L.Processing input file /Users/moto/grassdata/FileConvert_folder/
MiyagiPreCoast_10mDEM/Ishinomaki_10m.TIF. Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ishinomaki_10m.TIF.
0...10...20...30...40...50...60...70...80...90...100 - done. 

完了である。なお,一般には,
gdalwarp -s_srs "EPSG:????" -t_srs "EPSG:????" <入力ファイル名> <出力ファイル名>
のように使う。下の例は,UTM zone 53Nに対応するEPSG:23853から平面直角座標系VIのEPSG:2448の座標系に変換した例である。
GRASS 6.4.0 (JPRCS6-JGD2000):~ > gdalwarp -s_srs "EPSG:23853" -t_srs "EPSG:2448" -tr 10 10 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundHokiTakatsukiUTM10m3.TIF" "/Users/moto/grassdata/FileConvert_folder/aroundHokiTakatsukiPlane6_10m3.TIF" は,

2.4 GrassのUTM54N-JGD2000のLocationに取り込む
 Spatial Reference http://spatialreference.org/ref/?search=japan&srtext=Searchを参照して,GrassのLocationを作成すること。宮城県・福島県・岩手県はEPSG:3100: JGD2000 / UTM zone 54N。
Grassで実行した結果を次ぎに示す。
r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ishinomaki_10mUTMm.TIF output=Ishinomaki_10mUTMm --overwrite
 この際のoutputを示す。
Datum <unknown> not recognised by GRASS and no parameters found  Projection of input dataset and current location appear to match r.in.gdal complete. Raster map <Ishinomaki_10mUTMm> created.
 Datum <unknown> not recognised by GRASS and no parameters found

となるのは,GRASSがJGD2000を認知できないからであろう。ただファイル構造が適切なので,Projection of input dataset and current location appear to match となる。問題はない。EPSGコードを使えば not recognized という表現は出てこない。
 ターミナルウィンドで,gdalinfoコマンドを使ってファイルの確認をした例を次ぎに示す。
GRASS 6.4.0 (UTM54N-JGD2000):~ > gdalinfo /Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ichinoseki_10mUTMm.TIF
Driver: GTiff/GeoTIFF
Files: /Users/moto/grassdata/FileConvert_folder/MiyagiPreCoast_10mDEM/Ichinoseki_10mUTMm.TIF
Size is 6540, 5593
Coordinate System is:
PROJCS["UTM Zone 54, Northern Hemisphere",
GEOGCS["WGS 84",
DATUM["unknown",
SPHEROID["WGS84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",141],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Origin = (521597.074053437798284,4335748.193243909627199)
Pixel Size = (10.000000000000000,-10.000000000000000)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 521597.074, 4335748.193) (141d15'0.05"E, 39d10'14.48"N)
Lower Left ( 521597.074, 4279818.193) (141d14'53.71"E, 38d40'0.05"N)
Upper Right ( 586997.074, 4335748.193) (142d 0'25.33"E, 39d 9'59.78"N)
Lower Right ( 586997.074, 4279818.193) (141d59'59.78"E, 38d39'45.62"N)
Center ( 554297.074, 4307783.193) (141d37'34.74"E, 38d55'2.20"N)
Band 1 Block=6540x1 Type=Float32, ColorInterp=Gray
NoData Value=-9999

2.5 Grass内でr.patch
 ぼくの場合,宮城県(岩手県南端,福島北端を含む)海岸のxmlファイルを3フォルダに分けてgeotiffを作成したため,Grass内で接合する必要があった。その時のコマンドと実行が次ぎである。
r.patch input=Ichinoseki_10mUTMm@PERMANENT,Ishinomaki_10mUTMm@PERMANENT,SendaiFukushima_10mUTMm@PERMANENT output=MiyagiPreCoast_10mUTMm --overwrite --quiet
 ただ,このコマンドを実行する前に,接合後の範囲全体またはこれよりちょっと大きい領域を設定しておかなければならない。UTMmなので,東西南北のUTMm値設定と解像度を10mにする。
 両geotiffファイルについて前述のgdalinfoコマンドで実行する。東西南北のbound値は,一関の北東端(Upper Right)の値と仙台・福島の南西端(Lower Left)の値より求めることができる。Grassのgismoでいうと,Config/Region/Change region settings/でパネルを開いて,Boundsで東西南北のUTMm値を入力し,ResolutionはGrid resolution 2Dに10mを入力すればいい。このようにして,作成したregionを次ぎに示す。

projection: 1 (UTM)  zone: 54  datum: towgs84=0,0,0,0,0,0,0  ellipsoid: grs80  north: 4335800  south: 4148000  west: 478000  east: 587000  nsres: 10  ewres: 10  rows: 18780  cols: 10900  cells: 204702000

 
 接合前の表示を次ぎに。

 接合後を次ぎに。

以上

Jun. 22, 2014追加: 基盤地図情報25000福島県を例にして下記のコマンドを実行したのであるが,r.patch実施の前には必ずGrass内でr.patchする対象全域がカバーされないとうまく行かないのである。
r.patch input=Fukushima_5m_1UTMm@PERMANENT,Fukushima_5m_2UTMm@PERMANENT,Fukushima_5m_3UTMm@PERMANENT,Fukushima_5m_4UTMm@PERMANENT,Fukushima_5m_5UTMm@PERMANENT,Fukushima_5m_6UTMm@PERMANENT,Fukushima_5m_7UTMm@PERMANENT,Fukushima_5m_8UTMm@PERMANENT,Fukushima_5m_9UTMm@PERMANENT output=Fukushima6 --overwrite

3. 他の例2: 仙台5mメッシュ(経度緯度座標系)Apr. 2, 2011

 先の2.の宮城県10mメッシュと同様の手続きをとる。ただ,485個のxmlファイルを前述の基盤地図情報DEMコンバータ Ver.1.4.0.8で一つのgeotiffにできたので,r.patchの必要性がない。一括変換モードでフォルダ毎ドラッグアンドドロップ。簡単に載る。そしてGeotiff変換であるが,4分弱であった。
 次ぎに全領域図幅配置を示す。ここで表示されているのは1/2500国土基本図の範囲である。各xmlファイルは1図幅が四分割されたものである。

 

3.1 誤り: 世界測地系平面直角座標系X(m)から世界測地系UTM54m座標系への変換 by gdalwarp

 5mメッシュデータがレーザースキャナーで作成されたもので,世界測地系平面直角座標系というから,平面位置は(easting, northing)m だと思っていた。そのため,gdalwarpでの座標系の変換を完全に誤っていた。国土地理院や日本地図センターでの説明も勘違いさせる。http://mues.m78.com/R5Mhmes.html の説明が一般に認知されているところであろう。この一部を抜粋すると,「データ形式は、国土地理院が刊行している数値地図5mメッシュ(標高)のCDに格納されている、5mメッシュの 標高データです。標高データは横2km、縦1.5kmの所謂2500分1国土基本図の図葉にのっとって、LEMという 拡張子を持ったグリッドデータで格納されています。5mメッシュ(標高)という名の通り、平面直角座標の5m四方 をメッシュとして標高が取られ、横2km、縦1.5kmの2500分1国土基本図に対し、東西400、南北300のグリッド で構成されています」。勘違いしてしまわないだろうか。とにかく,国土地理院が現在公開している10mメッシュも5mメッシュも経度緯度座標系を使っている。経緯度主義は測地系2000の発足前からであり,現在も維持されているのである。

 2.の始めに述べたように,5mメッシュは測地系2000の平面直角座標系(m)である。ここではGrassのUTMm座標系のLocationを作成して取り込むので,gdalwarpで座標系の変換をする必要がある。
 仙台は,世界測地系平面直角座標系X,つまり,JGD2000 / Japan Plane Rectangular CS Xで,EPSG:2452と当初は考えたのである。


 

 そして,宮城県のUTM54座標系は,JGD2000 / UTM zone 54Nで,EPSG3100である。

 

  上述のように,gdalwarp -s_srs "EPSG:????" -t_srs "EPSG:????" <入力ファイル名> <出力ファイル名> でコマンドを実行できるから,
GRASS 6.4.0 (UTM54N-JGD2000):~ > gdalwarp -s_srs "EPSG:2452" -t_srs "EPSG:3100" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTM54.TIF"

そして,Windows上のFWTools shellでも下記のコマンドを実行したが同じエラーが出た。

gdalwarp -s_srs "EPSG:2452" -t_srs "EPSG:3100" -tr 5 5 -r bilinear -dstnodata -9999 "\\.psf\.mac\Users\moto\grassdata\FileConvert_folder\Sendai5mDEM\Sendai_5m.TIF" "\\.psf\.mac\Users\moto\grassdata\FileConvert_folder\Sendai5mDEM\Sendai_5mUTM54.TIF"

次のようなエラーメッセージである。
Creating output file that is 0P x 0L.
ERROR 1: Attempt to create 0x0 dataset is illegal,sizes must be larger than zero.
これは一種のクラッシュであるが,試行錯誤の結果,次のように出力ファイルの解像度を決める -tr 5 5 (-tr xres yres:  set output file resolution (in target georeferenced units)を削除することでクラッシュを回避できた。次のようなメッセージである。

Creating output file that is 6533P x 4062L.
Processing input file /Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF.
Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF.
0...10...20...30...40...50...60...70...80...90...100 - done.

 UTM54座標系への変換済である仙台5mメッシュで作成したリージョンが次のものである。下記のように行列1つずつで1セルで構成されている。ここには示していないが,解像度が極端に小さくなっている。

projection: 1 (UTM)
zone: 54
datum: towgs84=0,0,0,0,0,0,0
ellipsoid: grs80
north: 4427808.61117545
south: 4427808.38557595
west: 485914.14657204
east: 485914.50940848
nsres: 0.2255995
ewres: 0.36283644
rows: 1
cols: 1
cells: 1

Grassに入れる前のgeotiff画像を次ぎに示す。

 Gdalではどうにもならないと考えて,株式会社エコリス製のフリーウェア基盤地図情報標高DEMデータ変換ツール(経緯度,UTM,平面直角座標系の変換に対応と謳っている) http://www.ecoris.co.jp/contents/demtool.html をダウンロードして試したが,dem.exeが機能しない。以前も凄惨な時間を費やしたが今回もだめ。ぼくのParallels Desktop上のXPのためなのか。まさか使えないものを企業のウェブサイトに載せている訳はないし。

 

3.2 正しい: 世界測地系平面直角座標系X(経度緯度座標系)から世界測地系UTM54m座標系への変換 by gdalwarp

 もう一度,とgdalwarp頼み。まさか平面直角座標系なのに,(x,y)じゃなくて,(Lon, Lat)なのかあ(経度緯度座標系) ?
epsg4947(更新年 2007年)のProj4を開くと,
+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs

epsg 4612 (更新年 2007年)のProj4を開くと,
+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
  EPSG:4947を次のように使うと,

GRASS 6.4.0 (UTM54N-JGD2000):~ > gdalwarp -s_srs "EPSG:4947" -t_srs "EPSG:3100" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTMm.TIF"
ERROR 6: EPSG PCS/GCS code 4947 not found in EPSG support files. Is this a valid
EPSG coordinate system?
ERROR 1: Translating source or target SRS failed:

となり,座標変換不可。

 EPSG:4612を使うと,

GRASS 6.4.0 (UTM54N-JGD2000):~ > gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:3100" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTMm.TIF"
Creating output file that is 6353P x 4999L.
Processing input file /Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF.
Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF.
0...10...20...30...40...50...60...70...80...90...100 - done.

できたがな。

EPSG:4612を参考のために次ぎに示す。経緯度座標系は球面の復元が可能なので,日本全体が一つの座標系でカバーできる。

 そして,Grassに取り込む。

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTMm.TIF output=Sendai_5mUTMm
Projection of input dataset and current location appear to match
r.in.gdal complete. Raster map <Sendai_5mUTMm> created.
できた。うれしい。次の図に,両方表示したよー。



3.3 仙台5mメッシュを宮城県海岸10mメッシュに生かす: r.patch

  仙台5mメッシュがあるのだから,宮城県海岸10mメッシュに生かしたいと思う。
g.region rast=map1[,map2[,...]]で,パッチする領域を用意する必要がある。
 今回の場合は,宮城県海岸部の領域内に仙台5mメッシュが含まれるから,前者の領域を表示しておれば問題ない。
r.patch [-qz] input=name1[,name2,…] output=name3 [--overwrite] [--verbose] [--quiet]
では,次の左図がname1,中図がname2,そして右図がname3に対応する。name1の上にname2が重なってゆく形である。左図の0(no data cells)の上に右の対応セルの値が埋め込まれる。左図のno data cellsの値は確定してしまう。

 このように考えると,仙台5mメッシュのrasterがname1に宮城県海岸10mメッシュのrasterがname2に対応すると考えて良い。

r.patch [-qz] input=Sendai_5mUTMm,MiyagiPreCoast_10mUTMm output=Sendai5mMiyagi10m --overwrite --quiet
であるが,-qzは-q,つまりquiet,-zはUse zero (0) for transparency instead of Nullを意味する。
 ここでは,仙台市5mメッシュ内に0はない。それ以外の範囲にも0はなく,nullである。それゆえ,-qzは不要である。

r.patch input=Sendai_5mUTMm@PERMANENT,MiyagiPreCoast_10mUTMm@PERMANENT output=Sendai5mMiyagiCoast10mpatched --overwrite --quiet
実行は一瞬。r.patchのパネルのoutputタブにコマンド行が表示されるだけ。

 次の図はMiyagiPreCoast10mDEMの仙台を中心とする部分である。カラーはぼくが作成したrulesを使っている。

次の図がpatchしたものである。

参考のためにほぼ同じ縮尺で仙台5mメッシュを次ぎに示す。

 patchする前の10mメッシュだけの方が平地の表現力があるように見える。これは,color rulesはセル数の高度頻度で決めているので,5mメッシュの数が10mメッシュの数よりも大きくなり,低い高度値の頻度分布がかなり多くなった結果であろう。低地部の海抜20mぐらいまでを詳細に表示するcolor rulesを作るとまた違ってくる可能性がある。

 さて,そのように考えて,rules.file2を作成した。

0 cyan
1 black
2 indigo
3 black
4 green
5 black
6 orange
7 black
8 blue
9 black
10 magenta
15 red
20 aqua
25 indigo
30 purple
35 violet
40 yellow
nv white

 ここで,nvはno valueで,ここでは海抜高度情報がない部分をいう。国土地理院のxmlファイルは水域は-9999であるが,ここでのrules.file2の定義の範囲外であるからwhiteになっている。Grassで表示したのが次のようなものである。奇数部分をblackにして,40m以上をyellowにした。わかりやすいが,かなり暗い印象を受ける。

 次の図は仙台市5mメッシュを中心とする領域を示す。

 次の図は,ズームアウトしている。

 

 暗い印象をさけるために,yellowとblackの役割を入れ替えた。つまり,rules.file2を下記の記述にした。

0 cyan
1 yellow
2 indigo
3 yellow
4 green
5 yellow
6 orange
7 yellow
8 blue
9 yellow
10 magenta
15 red
20 aqua
25 indigo
30 purple
35 violet
40 black
nv white

 次の図がこの結果で,明るい印象をうけるし,周囲の彩りもいい。

 さらに参考に,石巻を中心に示す。

 

4. 北摂吹田周辺5m_mesh.TIFを作成しGrass-GISへ Oct. 8, rev. Oct. 30, 2012

 東北の震災があって,国土地理院にDEM公開の姿勢が以前に比べて拡大し,半月余り前には,北摂域だと平地に限られていたのに,何と北摂山地まで5mメッシュが公開されていた。これからGrassに取り込むので,本当に5mメッシュが公開されたのか,まだ懐疑的ではある。見るのが楽しみ。もう終わった朝ドラの,梅ちゃん先生やまた始まったGood Wife 3rd Ser.ぐらい楽しみ。授業用の教材作成に時間を費やすことについては,焦燥感があるのだけど。

1. 5mメッシュDEMのダウンロード

http://fgd.gsi.go.jp/download/ 国土地理院ホーム > 基盤地図情報 > 基盤地図情報の閲覧・ダウンロード > ダウンロードサービス
 ダウンロードするには登録する必要がある。君たち学生も可能(メールしたらほぼすぐに返事がくる)。つぎにダウンロードファイルの形式選択の画面が出る。このうち,上段右端の「基盤地図情報 数値標高モデル」の,JPGIS(GML)形式を選ぶ。
地図から選択するので,5mメッシュのボタンを選ぶ。

ここでは,京都及大阪(5235),を選択,次に京都及び大阪内の25,000分の1地形図の8x8=64枚が表示されるのだがわかりにくいので,先に地図インデックスを示す。

 さて,このダウンロードサイトで見える地図を次に示す。上の図のほぼ中央の「高槻」図幅(京都及び大阪,の字の「都 及」が載る場所)が,下の523524 図幅に対応する。

 523544亀岡から523503大阪西北部の矩形領域をすべて選択する。各図幅には基(国土地理院,青色の文字だが選ぶと灰色に変わる),公(国土交通省,赤色の文字だが選ぶと灰色に変わる)のいずれかを求める全領域についてクリック,クリックで,まとめて選ぶことが可能である(図廓内で基と公がダブっても問題がないようで,「広根」523523は両方のダウンロードが必要である)。この選択画面の左のペーンの選択状況の窓にリストが追加されてゆく。523524法貴図幅だけが公しかないので,公を選んだ。選択完了のボタンをクリックする。最後にログアウトする。長くログインしていると自動でログアウトされる。

 表示ソフトウエアは,http://fgd.gsi.go.jp/download/ のリンクからダウンロードする。最近,更新されている。必ず,古いアプリを削除して新たにインストールする必要がある。私は上書きして,というかこの作業に関連した操作で,Windows XPがひどいことになり,復旧で休日を台無しにした。

 ダウンロードしたDEMはこのページの頭で紹介した,赤木実さん(三匹のウリボウ)さんのアプリでGrassで使えるGeotiffに変換が可能なのであるが,国土交通省(公マーク)の523524「高槻」図幅はDEMでは無いと,拒否される。やられたあ,と思った(ぼくが一番欲しい場所)けど,考え直した。下に紹介した国土地理院のソフトは,DEMの方もこの基盤地図情報ビューアー・コンバーターで取り込みと表示ができ,「シェープファイルへの出力」が可能とのことなので,まずはシェープファイルで出力して,Grassに取り込んでGeotiff化すればいいのではと考えている。まだ実行していない。


 基盤地図情報閲覧コンバートソフト (8.2MB zipファイル) (2012年7月19日更新) インストールしてヘルプでversionをみると,3.20となっている。デフォルトでは,次のパスにインストールされる。
C:\Documents and Settings\Administrator\スタートメニュー\プログラム\基盤地図情報ビューア−・コンバーター,である。ここには,アンインストーラーも同時にインストールされる。

 上述の基盤地図情報DEMコンバータ Ver.1.5で,モードを一括変換に設定して,ダウンロードしたzipファイル(自動解凍しないでzipファイルのままで実行するのが)を,まとめてドラッグアンドドロップして,融合して一つのgeotiffファイルを作成することができる。この方法では,貴(国土地理院)も公(国交省)も変換が可能である。この際に,保存先を/grassdata/FileConvert_folder/に入れること。ファイルの整理上,たとえば,Suita_et_rastのフォルダを前もって作成して,ここにこのgeotiffファイルを保存すれば良い。

 基盤地図情報ビューアー・コンバーターを立ち上げて,メーンメニューから見ることができるhelpに従って,ダウンロードしたファイル群を指定して取り込む。ファイル/新規プロジェクトを作成し,追加機能でダウンロードしたJPGIS(GML)ファイルを複数選択機能(最上部と最下部のファイルをshiftキーで選ぶとまとめて選択できる(一つ一つはcotrolキー)。

2. Grassへの取り込み

 これは上の仙台市の5mメッシュの取り込みと全く同様である。必要な文をコピペ。

 gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:3100" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTMm.TIF"

 この北摂吹田周辺5m用に換えるには,ファイル名だけでなく,平面直角座標系第Y系のEPSGコード番号を知る必要がある。
http://spatialreference.org/ref/?search=Japan&srtext=Search に次の様に掲載されている。
EPSG:2448: JGD2000 / Japan Plane Rectangular CS VI

 gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5mCS6.TIF"

で良いはず。さて,Grassで実行してみよう。成功−。

GRASS 6.4.0 (Plane6_JGD2000):~ > gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5m.TIF" "/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5mCS6.TIF"
Creating output file that is 4617P x 9267L.
Processing input file /Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5m.TIF.
Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5m.TIF.
0...10...20...30...40...50...60...70...80...90...100 - done.
GRASS 6.4.0 (Plane6_JGD2000):~ >

 Oct.30, 2012での実習で失敗が多かった。その理由は,変換すべきgeotiffファイルのパス指定のミスとUSB上のファイルのパスが作成されていないことが原因であった。例えば,/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5m.TIFのパス指定をしながら,grassdataフォルダの名称をgrassdateとしていたり,Suitaet_5mDEMというフォルダが無かったりである。実習ではこの形で変換した。 Grass上では変換できず,OSGeo4Wのシェルを使用した。
 gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "E:¥grassdata¥FileConvert_folder¥Suita_et_rast¥Suita_et2.TIF" "E:¥grassdata¥FileConvert_folder¥Suita_et_rast¥Suita_et_5mCS6.TIF"

 MacやLinuxではパス指定の階層区分は,スラッシュで実施するが,Windowsではバックスラッシュ(\ 日本語OSでは¥)を使用する。

 さて,Grassで表示しようと思ったら,そういえばGrassに取り込んでいない。上の仙台市のところで述べたように,仙台市のは次の様だから,

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/Sendai5mDEM/Sendai_5mUTMm.TIF output=Sendai_5mUTMm

 この場合は次の様に。

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5mCS6.TIF output=a_Suitaet_5mDEM

 この命令のパス指定は,私のマック用のものである。USBを使う場合は,/Users/moto/grassdata の代わりに/Volumes/KOBA_USB/grassdata という表現になる。なお,KOBA_USBは,私がつけたUSBの名称である。つまり,
r.in.gdal input=/Volumes/KOBA_USB/grassdata/FileConvert_folder/Suita_et_rast/Suita_et_5mCS6.TIF output=a_Suitaet_5mDEM

 実習の場合は,

r.in.gdal input=E:\grassdata\FileConvert_folder\Suita_et_rast\Suita_et_5mCS6.TIF output=a_Suitaet_5mDEM

 ここでは¥マークに対して,\が使われているが,上の行を日本語OSのWindowsにペーストすれば,半角の¥マークに代わる。

 outputファイル名は,Grassのファイルリストの表示がアルファベット順になっているので,トップにa_をつけて,座標系はわかっているわけだからから,CS6の代わりにDEMとした。

 この実行もGIS.mが面倒なので,上の文を,GRASS 6.4.0 (Plane6_JGD2000):~ >  にそのままコピペして実行しよう。下のように成功−。

 なお,Windowsの場合は,Grassを立ち上げてPythonで実行することができる。

GRASS 6.4.0 (Plane6_JGD2000):~ > r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5mCS6.TIF output=a_Suitaet_5mDEM
Projection of input dataset and current location appear to match
100%
r.in.gdal complete. Raster map <a_Suitaet_5mDEM> created.
GRASS 6.4.0 (Plane6_JGD2000):~ >

 でGrassでまずはデフォルトで表示したのが次のもの。ガックリ。

 

 この図の南部には淀川がみえ,北部の亀岡を中心とする部分はほぼ全域をカバーするが,中央部の北摂山地南部は10mメッシュで表現されている。図幅でいうと,「広根」と「高槻」については,低地以外は情報がない。

 さて,基盤地図情報DEMコンバータなどでファイルを取り込んだ時にミスをしたのかと考え,基盤地図情報ビューワー・コンバーターで表示したのが,次のもの。

 この図に表示されているのは,上のGrassと同じ領域。

 

5.広根・高槻図幅の地盤高度のシェープ出力をGrass-GISでraster型DEMへ 

5.1 数値地図ビューワ・コンバータでシェープ出力した地盤高データのGrassへの取り込み

 そこで,「広根」については,「公」(国土交通省)のものと,すでにダウンロードした「基」(地理院)のものと,そして,「高槻」については,基盤地図情報DEMコンバータで取り込みを失敗した「公」(国土交通省)を念のためJPGIS(GMLではない方)をダウンロードして,基盤地図情報ビューワー・コンバーターに取り込んで表示した。それが次の図。

 中央左寄りの南西から北東に延びる蛇のようなものは余野川,この南東部にある同様のものは箕面川の谷底付近が示されている。この図の東よりにも北摂山地に伸びる谷底が示されている。

 これを エクスポート/標高メッシュをシェープ出力して,Grass-GISでImport vector map/Multiple format using OGR。その結果,が次のメッセージ。

 GRASS 6.4.0 (Plane6_JGD2000):~ > r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/Suitaet_5mDEM/Suitaet_5mCS6.TIF output=a_Suitaet_5mDEM
Projection of input dataset and current location appear to match
100%
r.in.gdal complete. Raster map <a_Suitaet_5mDEM> created.
GRASS 6.4.0 (Plane6_JGD2000):~ >

Output -GIS.mの表示を参考のために示す。

0 areas built 0 isles built Attaching islands... Attaching centroids... Number of nodes: 2188503
Number of primitives: 2188503 Number of points: 2188503 Number of lines: 0 Number of boundaries: 0 Number of centroids: 0 Number of areas: 0 Number of isles: 0 2188503 primitives registered 2188503 vertices registered Building areas... Registering primitives...
Input data contains 3D features. Created vector is 2D only, use -z flag to import 3D vector

 Grassで表示すると,この直近で示した図の部分が,線か面を赤に設定すると,真っ赤になる。線も面も表示しないと,全く表示されない。点ベクトルだけでは何も表示されない。上述のように,2188503 primitives registered 2188503 vertices となっている。

 

 上の図は,Grassに取り込まれた a_Suitaet_5mDEM の属性情報の表である。数字は

v.info -c map=a_Takatsuki_Hirone_5mmesh@PERMANENT layer=1
Displaying column types/names for database connection of layer 1:

INTEGER|cat
DOUBLE PRECISION|xW__

 の数値である。個々のデータの表示のラストの行(Output - GIS.mの表示は行数が多く,ここでは見るのがかなり厳しい。そこで,Saveのボタンを押して,テキスト保存すればいい)は,362888|172.57 (362888行が172.57mということ)であった。上の図の表の後ろにMap Display 1の表示をしている。等間隔で小さな●が表示されている。

 さて,以上のように,地盤高のベクトル情報はGrassに取り込まれている。これをrasterのdemに変換する必要がある。

5.2 Grass内での地盤高ベクトルのラスタ化の前に,またGrassへの取り込み作業

 このままでは全く使えないので,これをRaster化してみよう。v.to.rastを実行するとエラーメッセージ。

 dbfファイルの標高列のフィールド名が,「標高」になっているのが問題のようだ。

 ビューワ・コンバータでシェープ出力したファイルに戻る必要がある。一応,dbfファイルをDBF Viewer 2000にて,標高からElevに変更した。再び,grassdata/FileConvert_folder などへ移動するのに,ファイル名をローマ字表記する必要がある。
 次のサイトで,v.to.rast のヘルプを見ることができる。 http://grass.fbk.eu/gdp/html_grass62/v.to.rast.html

 v.to.rast will only affect data in areas lying inside the boundaries of the current geographic region. Before running v.to.rast, the user should therefore ensure that the current geographic region is correctly set and that the region resolution is at the desired level.
Either the column parameter or the value parameter must be specified. The use option may be specified alone when using the dir option.

use options are:

attr - read values from attribute table (default)
cat - read values from category
val - use value specified by value option
z - use z coordinate (points or contours only)
dir - output as flow direction in degrees (lines only)
The column parameter uses an existing column from the vector map database table as the category value in the output raster map. Existing table columns can be shown by using db.describe.

An empty raster map layer will be created if the vector map layer has not been assigned category/attribute labels (e.g., through use of v.category option=add).

Otherwise:

Labeled areas and/or centroids will produce filled raster coverages with edges that straddle the original area boundary as long as the boundary is NOT labeled.
(Use v.category option=del type=boundary to remove.)
Labeled lines and boundaries will produce lines of raster cells which touch the original vector line. This tends to be more aggressive than area-only conversions.
Points and orphaned centroids will be converted into single cells on the resultant raster map.
Flow directions are given in degrees counterclockwise from east.

EXAMPLES

1. Convert a vector map and use column SPEED from attribute table
db.describe -c table=vect_map

ncols:3
Column 1: CAT
Column 2: SPEED
Column 3: WIDTH
v.to.rast in=vect_map out=raster_map col=SPEED
2. Calculate stream directions from a river vector map (Spearfish)
v.to.rast in=streams out=streamsdir use=dir
SEE ALSO db.describe, v.category  

v.in.ogr
ゼロ以外の数値が出たメッセージを次に。
Number of nodes: 2188503

Number of primitives: 2188503

Number of points: 2188503

2188503 primitives registered

2188503 vertices registered

ウォーニング: Input data contains 3D features. Created vector is 2D only, use -z flag to import 3D vector

ひえー。
やりなおし。

Convert OGR vector layers to GRASS vector mapのOptionsタブでCreate 3D outputにチェックして,実行。

 作成されたものが前記と同じだけど,ウォーニングは出なかった。
Grassで表示したが,表示そのものは変わらなかった。
Show attribute columnsで見ると,
Displaying column types/names for database connection of layer 1:
INTEGER|cat
DOUBLE PRECISION|Elev
で名称がxW__ではなくて,Elevになった。
Draw linesやLabel vectorsのチェックを外しても表示されるので,間違いなく,point vectorだ。

|----------------------------------------------------------------------------|
Type of Map: vector (level: 2)
Number of points: 2188503 Number of areas: 0
Number of lines: 0 Number of islands: 0
Number of boundaries: 0 Number of faces: 0
Number of centroids: 0 Number of kernels: 0
Map is 3D: Yes
Number of dblinks: 1
Projection: x,y
N: -120025.57268555 S: -129359.46273242
E: -34282.1734 W: -57162.67227974
B: 4.71 T: 453.5
Digitization threshold: 0

Comments:
+----------------------------------------------------------------------------+

 

5.3 Grass内で,標高ポイントベクタをDEMラスタに

v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mmesh use=z type=point layer=1 column=Elev value=1 rows=4096 labelcolumn=Elev --overwrite

で実行すると,
Column parameter cannot be combined with use of z coordinate
というメッセージ。だから,column=Elevは削除。
また同じメッセージ。だからlabelcolumn=Elevも削除。

v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mmesh use=z type=point layer=1 value=1 rows=4096 --overwrite 

で実行する。

Loading data...
Converted points/lines: 2188503 of 2188503

v.to.rast complete.
成功したのか? raster fileのリストに無い。

v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mDEM use=attr type=point layer=1 column=Elev value=1 rows=4096 --overwrite

で実行する。

Loading data...
Converted points/lines: 2188503 of 2188503
v.to.rast complete.
こうしても,リストにない。

直接,コマンドモードでやってみる。

GRASS 6.4.0 (Plane6_JGD2000):~ > v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mDEM use=attr type=point layer=1 column=Elev value=1 rows=4096 --overwrite
Loading data...
Pass 1 of 3:
Reading features...
100%
Writing raster map...
100%
Pass 2 of 3:
Reading features...
100%
Writing raster map...
100%
Pass 3 of 3:
Reading features...
100%
Writing raster map...
100%
Converted areas: 0 of 0
Converted points/lines: 2188503 of 2188503
v.to.rast complete.
GRASS 6.4.0 (Plane6_JGD2000):~ >

できた。リストに表示される。TclTkは表示にはいいのだが,ファイルの入力や変換には弱い。

すでに作成した10mメッシュや5mメッシュとともに,新たに作成できた5mDEMを表示した。次の様である。

 

 新たに作成した5mDEM付近を拡大したのが次の図。

 まさに,点ベクトルを受け継いでいる。この付近の断面図を作成するとラインにはならずに,点が並ぶ。

 このようになった理由を考えると,上の英語の記述に在ったように,カレントリージョンの設定を解像度5mに前もって設定して,ベクトルからラスタへの変換作業をすればいいのではと考えられる。

 

5.4 カレントリージョンの解像度の変更で,標高ポイントベクタをDEMラスタに

 現在のリージョンの確認。

config/region/display region setting

g.region -p
projection: 99 (Transverse Mercator)
zone: 0
datum: towgs84=0,0,0,0,0,0,0
ellipsoid: grs80
north: -117000
south: -136654
west: -47000
east: -35262
nsres: 2
ewres: 2
rows: 9827
cols: 5869
cells: 57674663

解像度2mの設定が下のような中途半端なDEMができることになったのではないか。

 そこで,
config/region/change region setting
で,Existingタブでこれまでのregionを残す場合は名前をつけて,BoundsではNSEWの平面直角座標系の領域を設定。ぼくの場合は,
north: -92000
south: -176000
west: -77000
east: 14000
ResolutionタブのGrid resolution 2Dで,
nsres: 5
ewres: 5
Optionタブで,
Allow overwrite

そして,実行。
config/region/display region setting
で確認のこと。

さて,もう一度,v.to.rast を実施。GIS.mでは不可能。コマンドモードで。
Passが3から5に増えている。

GRASS 6.4.0 (Plane6_JGD2000):~ > v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mDEM2 use=attr type=point layer=1 column=Elev value=1 rows=4096 --overwrite
Loading data...
Pass 1 of 5:
Reading features...
100%
Writing raster map...
100%
Pass 2 of 5:
Reading features...
100%
Writing raster map...
100%
Pass 3 of 5:
Reading features...
100%
Writing raster map...
100%
Pass 4 of 5:
Reading features...
100%
Writing raster map...
100%
Pass 5 of 5:
Reading features...
100%
Writing raster map...
100%
Converted areas: 0 of 0
Converted points/lines: 2188503 of 2188503
v.to.rast complete.
GRASS 6.4.0 (Plane6_JGD2000):~ >

が得られた。航空レーザー測量の軌跡が見えている。解像度5mではまだ細かいということか。8mにして,再度,実行してみよう。

GRASS 6.4.0 (Plane6_JGD2000):~ > v.to.rast input=a_Takatsuki_Hirone_5mmesh@PERMANENT output=a_Takatsuki_Hirone_5mDEMres8 use=attr type=point layer=1 column=Elev value=1 rows=4096 --overwrite
Loading data...
Pass 1 of 3:
Reading features...
100%
Writing raster map...
100%
Pass 2 of 3:
Reading features...
100%
Writing raster map...
100%
Pass 3 of 3:
Reading features...
100%
Writing raster map...
100%
Converted areas: 0 of 0
Converted points/lines: 2188503 of 2188503
v.to.rast complete.
GRASS 6.4.0 (Plane6_JGD2000):~ >
またpass数が3に戻っている。

 

ほんのちょっと孔があるが,これで十分だ。これ以上すると折角の詳細なDEMが崩れてしまう。

 なお,前述のように,基盤地図情報DEMコンバータ Ver.1.5を使って所定の範囲について一括モードで実行すると,国土地理院と国交省の5mメッシュファイルを一つのGeotiffファイルにまとめることができる。その結果を示したものが次の画像である。

6.2012年秋学期11月初 宿題

 次の各問いの回答をまとめて,木庭にメールしなさい。

問1 この授業開始以来,この授業で実施したことを日程に沿って,示しなさい。

問2 Grass-GISに習熟することで何が可能なのか。木庭のこのウェブサイトまたは他のサイトを見て,系統的にまとめなさい。

問3 君のLocationに入れたベクトルマップのうち,最も利用価値が高いと思われるものは何か。それは何故か。

問4 5mメッシュDEMはラスタマップの一つである。このようなDEMが無いとほとんどGISを使う意味が無いと言って良い。なぜか。

 以上を回答する上で,用語集 は参考になるだろう。

7. 練習:鳥取市およびその周辺の5mmeshDEMダウンロード,fgddem by Python(三匹のうり坊)でgeotiff化,座標変換,座標変換(経緯度から平面直角座標系),Grassへの取り込み,r.patchで融合 Nov. 12, 2013

 これまで述べてきた方法で可能であるが,まとめて,簡便な練習をする。他のページでも繰り返し述べたことをここで簡便に繰り返す。

1. Grassのデータフォルダとして,ブラウザ(Macではファインダ)で,ルートディレクトリーにgrassdataフォルダを作る。Windowsの場合,C:\grassdata。作業フォルダとして,この下位にFileConvert_folderというフォルダを作る。さらにこの下位に国土地理院のサイトからダウンロードしたファイルを保存する場所として,Tottori_5mmeshフォルダを作成しておく。FileConvert_folderをGrass関連のファイル群を保管する倉庫として利用するのである。

2. 次に,Grassに鳥取市関連のLocationを作成することになる。新規のLocation名はPlane5JGD2000_Tottoriとする。鳥取市はJGD2000平面直角座標系V(鳥取県,岡山県,兵庫県)で,epsg:2447にあたる。原点は北緯36度0分0秒 東経134度20分0秒である。電子国土ポータルで原点を地図上でみることができる。epsgサイトでは,epsg: 2447にカバーされている範囲を知ることができる。地図が表示され,Google mapで見られるようなマークは表示されている地図の中央にくるようになっており,その地点の経緯度値と平面直角座標系値を見ることができるので,これを使って,Grassのregion設定の,東西南北辺の原点からの距離値を知ることができる。平面直角座標系のペア値は,左が東西easting,右が南北northingになっている。例えば,次のよう。

南東を設定
Input Coordinates: 134.39352035523, 35.228862762453 Output Coordinates: 5478.473534, -85548.906577
北西を設定
Input Coordinates: 133.37179183961, 35.61887741089 Output Coordinates: -87103.966168, -41857.720206

解像度EW, NS1mとすると,
4045000162 cells

3. 国土地理院の基盤地図情報から5m高度データをダウンロードする。初めて使用する場合,登録する必要がある。メール受信はsmartphoneでも問題がない。まずは仮登録,(放置していると)その後遅れて,本登録が実施される。入ると,2行3列の入口があり,右上の,基盤地図情報数値標高モデル,の,JPGIS (GML)形式を選ぶ。その後は5mメッシュを採用して,複数のファイルを一気にダウンロードする。来年の実習調査旅行で使用するので,
鳥取県の次の6枚を選んだ。
5334-20, -21, -22
5334-10, -11, -12
 ダウンロードすると,最近のWindowsの場合,Packフォルダになっており,これをクリックすると中のzipファイルが見えるが,このままでは使用できないので,中味を別のフォルダに移動して,Packフォルダ自体は削除すること。これは他のアプリなどでも同様である。

4. xml形式のままではGrassなどでは使用できないので変換が必要である。国土地理院提供のソフト(基盤地図情報閲覧コンバートソフト8.2MB 2012.7.19更新,前述のサイトからダウンロードしたファイル可能)はベクトル形式でマージすることができるが,種々の問題があり,作業に時間がかかる。
 三匹のうり坊作成のソフトは直接geotiffファイルに変換してくれるのでこれを使うことにする。次のものは,国土地理院の基盤地図情報 数値標高モデル JPGIS(GML)形式をGeoTIFFに変換するPythonスクリプト。
3匹のうり坊 fgddem python用 http://space.geocities.jp/bischofia_vb/python/fgddem/
 バッチファイルへのドラッグ&ドロップによる方法(Windowsのみ)
   1. fgddem_droptarget.batをテキストエディタで開き,2行目のOSGEO4W_ROOTの値をOSGeo4Wがインストールされているフォルダパスに変更する。
   2. 国土地理院のダウンロードサイトからダウンロードしたZIPファイルをfgddem_droptarget.batにドラッグ&ドロップする。
 1.のパスは通常はこのままでよい。2.では複数のファイルを選んで一気にドラッグアンドドロップすれば,解凍して,元のzipファイル一つの範囲のマージを実効してゆく。変換されたファイル名はたとえば,FG-GML-5334-10-DEMSA.tifなどである。

5. 経緯度座標系からJGD2000平面直角座標系V(鳥取県,岡山県,兵庫県)への変換

 この方法については,他の例2: 仙台5mメッシュ(経度緯度座標系)を参照のこと。

6. geotiff 8ファイルをGrassに取り込んで,r.patchというコマンドで8マップファイルを融合して1マップファイルにする。そして,幾つかの段彩表現を指定して,観察してみよう。これらの作業はこのページの上の方に記述している。

8. 2016年春の数値基盤情報に関連して:吉野山と新子のDEM利用 Feb. 5, 2016

 上に書いてきた流れではあるが,基盤地図情報(高度)が充実し,整理されてきた。現状を知るために,多少,長いけども,DEM利用のプロセスを示す。

1. 地図閲覧サービスは充実してきた。基盤地図情報を利用するには,求める場所の範囲を特定する必要がある。基盤地図情報の提供単位は二万五千分の一地形図の区分と関連があり,現在では, 二万五千分の一地形図の地図情報を表示しつつ,図廓範囲を知ることができる。
 ウオッ地図 http://watchizu.gsi.go.jp/ に入って,地図を表示しつつ,左上隅の「情報」という枠をクリックするとその選択肢の一つとして,選ぶことができる。表示できる情報のうち,/地図空中写真/二万五千分の一地形図枠,を選ぶと,赤線で表示され,現在の地形図ではダブリ部分があるので,平行する二つの直線が比較的近接して表示されている。 この例では,範囲として,新子513547ではあるが,青根ヶ峰(あおねがみね)も入れたい。この山は大峰山脈北部、奈良県吉野郡吉野町の吉野山最南端にある標高858mの山である。新子(あたらし)図幅の南西隅に含まれるようであるが, 新子図幅の西隣の吉野山513546図幅にも及んでいるので,この図幅も追加することになる。以前のように,ダウンロードサイトで,基(国土地理院ソース),公(国土交通省ソース)の区別が無くなったしまった。 ぼくが前にみたこのサイトでは,前述のように,2万五千分の一図廓範囲が細分されていたが,表示が図廓単位になった。考えてみると,実質上,使い安くなったということだ。
 下に両図廓表示を示す。

2.  ダウンロードの際に注意が必要である。ぼくの環境では,「まとめてダウンロード」が反応しない。一時間待っても終わらなかった,表最右列の「個別」の列で,「ダウンロード」のボタンをクリックした方がいい。しかし,「選択済」と変わっても,ダウンロードしていない場合があり,ダウンロードフォルダをチェックして,まだダウンロードできていないのであれば,「選択済」ボタンをクリックしなおすと,ダウンロードできる。
 基盤地図情報基本項目もダウンロードする。 で,驚いたことに, 基盤地図情報基本項目,に入ると,基盤地図情報数値標高も一緒に入っていた(ヒエー)。基盤地図情報基本項目は,2014.7.31に 文字コードがSHIFT-JISからUTF-8へ変更されている。

3. fgddem.pyを使って,geotiffを作成した。 吉野山も新子も二個のgeotiffからなるので, 経緯度座標系からCS6への変換後のファイル名は,
FG-GML-5135-46-DEM5A.tifは,Yoshino5mDEMaCS6.TIF
FG-GML-5135-46-DEM5B.tifは,Yoshino5mDEMbCS6.TIF
FG-GML-5135-47-DEM5A.tifは,Atarashi5mDEMaCS6.TIF
FG-GML-5135-47-DEM5B.tifは,Atarashi5mDEMbCS6.TIF とする。

4. 座標変換 経緯度からCS6へ。
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/FG-GML-5135-46-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/Yoshino5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/FG-GML-5135-46-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/Yoshino5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/FG-GML-5135-47-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/Atarashi5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999
"/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/FG-GML-5135-47-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/Atarashi5mDEMbCS6.TIF"

5. Grassへの取り込み
r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM
/Yoshino5mDEMaCS6.TIF output=Yoshino5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM
/Yoshino5mDEMbCS6.TIF output=Yoshino5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM
/Atarashi5mDEMaCS6.TIF output=Atarashi5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM
/Atarashi5mDEMbCS6.TIF output=Atarashi5mDEMbCS6

  さて,Grassで4ファイルを表示したのが,次の図であるが,地形図との関連がわかりにくいので,前掲の図を併表記している。

6. 4ファイルを接合する必要がある。r.patchだ。このコマンドを実行する前に,
接合後の範囲全体またはこれよりちょっと大きい領域を設定しておかなければならない。解像度は5m。東西南北の座標値を確認する必要がある。
 gis.mでは,
Raster/Reports and statistics/Reports and information で,
Print raster map resolution (NS-res, EW-res)only と,
Print map region only.
を選んで実行する。
r.info Yoshino5mDEMaCS6@Asuka r.info -s -g map=Yoshino5mDEMaCS6@Asuka
north=-175616.09298896 south=-183036.09298896 east=-11488.76673005 west=-22998.76673005 nsres=5 ewres=5 Yoshino5mDEMbCS6@Asuka

r.info -s -g map=Yoshino5mDEMbCS6@Asuka north=-175616.09298896 south=-184881.09298896 east=-11488.31710339 west=-23003.31710339 nsres=5 ewres=5 Atarashi5mDEMaCS6@Asuka

r.info -s -g map=Atarashi5mDEMaCS6@Asuka north=-176561.66976064 south=-184891.66976064 east=3.35149173 west=-11501.64850827 nsres=5 ewres=5 Atarashi5mDEMbCS6@Asuka

r.info -s -g map=Atarashi5mDEMbCS6@Asuka north=-175637.34591292 south=-182112.34591292 east=-6893.23538803 west=-11498.23538803 nsres=5 ewres=5

結局, north: -175616 south: -184882 west: -23004 east: 4 nsres=5 ewres=5。

で,Grassのgis.mで,領域指定を次のようにする。
Config/Region/Change region settings/でパネルを開いて,Boundsで東西南北のCS m 値を入力し,ResolutionはGrid resolution 2Dに5 mを入力すればいい。
このようにして,作成したregionを次ぎに示す。
g.region n=-175616 s=-184882 e=4 w=-23004 nsres=5 ewres=5 --overwrite --quiet

さて,x-windowsでのコマンドを次に。
r.patch input=Yoshino5mDEMaCS6@Asuka,Yoshino5mDEMbCS6@Asuka,
Atarashi5mDEMaCS6@Asuka,Atarashi5mDEMbCS6@Asuka
output=Yoshino_Atarashi_5mDEM --overwrite --quiet

(表示上,強制改行しているが実際は改行しない)

大和高田/洞川(どろがわ)の3x4図幅の10mメッシュの場合も一応示しておく。
r.patch input=Nara_Fuki10mDEM@Asuka,Nara_Nakato10mDEM@Asuka,
Nara_Dorogawa10mDEM@Asuka,Nara_Gojo10mDEM@Asuka,
Nara_Yoshinoyama10mDEM@Asuka,Nara_Atarashi10mDEM@Asuka,
Nara_Gose10mDEM@Asuka,Nara_Unebiyama10mDEM@Asuka,
Nara_Furuichiba10mDEM@Asuka,Nara_Yamatotakada10mDEM@Asuka,
Nara_Sakurai10mDEM@Asuka,Nara_Hase10mDEM@Asuka output=Nara_YamatotakadaToDorogawa --overwrite --quiet
(表示上,強制改行しているが実際は改行しない)

 input=,output=,の次にスペースが入っているとコマンドエラーになる。

 実行後の吉野宮周辺を次に示す。基盤地図情報とgrassの等高線作成機能の間に齟齬があるようで,一部の等高線が破壊されている。10m等高線を作成しても同じ場所に問題が生じる。
10mメッシュでは問題がない。

9. 既存DEM周辺にDEMを追加したくなった Sep. 30 - Oct. 09, 2016

  このすぐ上の,「8. 2016年春の数値基盤情報に関連して:吉野山と新子のDEM作成」と共に作成履歴を伝えるべく,ここに奈良盆地南部およびその周辺のDEMのGrassGISへの取り込み手順を記録する。Oct.2016からテキスト関係はShift-JIS(Windows標準)からUnicode(Mac標準)に変更されるようである。 この章は長くなりました。試行錯誤をほぼそのまま書いています。
  Wordのアウトラインで書いたものをコピペしています。アウトラインの章立てやリンクがそのまま,このDWに反映されます。これは知りませんでした。ですので,Wordで計画的に入力してコピペすればいいのです。
  挿入図は無理だろうと思って図は別途にせねばと思ったが,ちょっとやってみたら,反映されてしまった。しかしながら,パス指定に限界があったので使い物にならない。イメージデータ用に,下記のパスの最下部のAsuka_etフォルダを作った。
ユーザー/moto/サイト/motochan_site/public_html/GISContents/image/Asuka_et

  GIS上の現存ファイルの確認
1. 1/2500ベクトルは,BldA, BldL, RdEdgm Road Compt 明日香村,桜井市,橿原市,まで。
2. 5m mesh DEMの確認。ファイル名Asuka5mDEMCS6,そして,上記8.で得た「吉野山と新子のDEM」
参考:現存ファイルから追加ファイルを決める  ここで関心がある1/2500高度基盤情報は次の図の範囲である。

図:市町村対応図とDEMファイルの対応関係

   すでにGISに取り込んでいた明日香村全域513556とそれに続く藤原京域を含む扇状地域513566のGIS表示を見ると,甘樫丘周辺などに5mメッシュDEMの穴が見られるので,最新のDEMがこれを埋めている可能性があり,取り込み既存ファイルを含めて次のようにdnldした。 (追加: 全く,更新されていなかった)

  

1. 新たに国土地理院の基盤地図情報ダウンロードサイトから

 基盤地図情報ダウンロードサイト
http://fgd.gsi.go.jp/download/menu.php
に入る。基盤地図情報ビューア (8.8MB zipファイル)は,2015年9月29日更新,とされており,当方手持ちのものは2014年秋なので,新たにダウンロードして,Windowsに再インストールした。 ただ,ぼくには全く必要がない。以前はマップ接合そしてtif出力機能があったが今はなく,ただ見るだけのもの。
  この,国土地理院ホーム > 基盤地図情報 > ダウンロードサービス >  条件選択(数値標高モデル),で,一括でダウンロードすることになる。必要ファイルを選択して,下部の,選択完了,ボタンをクリックすると,ダウンロードファイルリストが表示される。まとめてダウンロード,をクリックし,今回は問題無くできた。ダウンロードが完了すると,PackDLMap,というフォルダーが現れる。これを開くと,多数のzipファイルが入っているのがわかる。次の処理過程の点からこれらを解凍してはならない。

 

2. JPGIS(GML)形式をGeoTIFFに変換

  fgddem.py(2014年8月版が最新だが2014年1月版でも全く問題ない)で,基盤地図情報 数値標高モデル JPGIS(GML)形式をGeoTIFFに変換する。ダウンロードしたDEMのZIPファイルをfgddem_droptarget.batにドラッグ&ドロップするだけ。複数zipファイルの一括変換が可能。

  Parallels Desktop内のWindows XPとマックとの共有フォルダーに全ZIPファイルを移動して,全ファイルを選んで,fgddem_droptarget.bat,上にドラッグアンドドロップすると,実行が開始され,個々のzipファイルについて,進行プロセスが%表示され,最終的にcompletedと表示されて完成する。zipファイル元のフォルダーには,エクステンションtifファイルがzipファイルの下位にまとまって並ぶ。各zipファイルには複数のxmlファイルが含まれるがこれらはそれぞれのzipファイル内ではマージされる。

3. ファイル名を2万5千分のT地形図の名称に変える

  ファイル名を2万5千分のT地形図の名称に変える。
FG-GML-5135-46-DEM5A.tifは,Yoshino5mDEMaCS6.TIF
ただし,この2万5千分のT地形図は吉野山ではあるが,混乱が生じないので吉野としている。
 地図・空中写真閲覧サービスで図幅名がわかるので,次のサイトで図幅番号と対照する。
http://mapps.gsi.go.jp/history.html#ll=33.4589428,139.5043945&z=6&target=t25000
 ファイル名を変えたのちに,「8. 2016年春の数値基盤情報………DEM利用」のように,grassdataの作業フォルダーに入れる。
/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM/Yoshino5mDEMaCS6.TIF
 /FileConvert_folderに,奈良南部を示すようなフォルダーを作ることになる。ただ,ここでは,桜井,吉野山,新子,図幅は含まれていないが,桜井周辺NS5EW3図幅内であることを示すために,aroundSakuraiDEMとする。 五條の例を次に示す。
/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM/Gojo5mDEMaCS6.TIF

  変換済tifファイルが入るフォルダー名を,aroundSakuraiDEM,として,/Users/moto/grassdata/FileConvert_folder,に移動する必要がある。ファインダ(ウィンドウズの場合,ブラウザ)で名前順に配列すると,ファイル名の変更の際に,誤りにくいであろう。先に,次のようにWord上で,ファインダ上でのファイル配列順に従って新たなファイル名を入力してコピペするのがいいだろう。
5135-45-DEM5A     Gojo5mDEMaCS6
5135-45-DEM5B     Gojo5mDEMbCS6
5135-55-DEM5A     Gose5mDEMaCS6
5135-55-DEM5B     Gose5mDEMbCS6
5135-56-DEM5A     Unebiyama5mDEMaCS6
5135-56-DEM5B     Unebiyama5mDEMbCS6
5135-57-DEM5A     Furuichiba5mDEMaCS6
5135-57-DEM5B     Furuichiba5mDEMbCS6
5135-65-DEM5A     Yamatotakada5mDEMaCS6
5135-65-DEM5B     Yamatotakada5mDEMbCS6
5135-67-DEM5A     Hase5mDEMaCS6
5135-67-DEM5B     Hase5mDEMbCS6
5135-75-DEM5A     Shigisan5mDEMaCS6
5135-75-DEM5B     Shigisan5mDEMbCS6
5135-76-DEM5A     Yamatokoriyama5mDEMaCS6
5135-76-DEM5B     Yamatokoriyama5mDEMbCS6
5135-77-DEM5A     Yamatoshiraishi5mDEMaCS6
5135-77-DEM5B     Yamatoshiraishi5mDEMbCS6
5235-05-DEM5A     Ikomayama5mDEMaCS6
5235-05-DEM5B     Ikomayama5mDEMbCS6
5235-06-DEM5A     Nara5mDEMaCS6
5235-06-DEM5B     Nara5mDEMbCS6
5235-07-DEM5A     Yagyu5mDEMaCS6
5235-07-DEM5B     Yagyu5mDEMbCS6

  この作業過程で文字間に半角スペースが入ることがあるので注意する必要がある。
次の座標変換の際に,このファイル名の変更をすればいいのに,今回はファインダでファイル名を変更してしまった。そのために,次のステップでは,折角ファイル名を変更したので,ファイル名は同じにして,返還前と返還後のフォルダを別にすることにした。

 

4. 座標変換: 経緯度からCS6へ

  この機械的な入力は,テキストエディタで実施した方がエラーを生じにくい。コマンドベースで実施。マックの場合,X windowで,Windowsの場合,OSGeo4W shellで,いずれもコマンドベースで実施する。ファイルのパス指定は,下記については,当方のマックのもので,Windowsの場合は,grassdataフォルダをusbのルートに置けば,より単純なものになる。usbがFドライブ相当にあれば,下記のパス指定は,マックの,/,は,Windowsでは,\,となるので,
"/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMaCS6.TIF"
は,
"F:\grassdata\FileConvert_folder\aroundSakuraiDEM_grid\Gojo5mDEMaCS6.tif" "F:\grassdata\FileConvert_folder\aroundSakuraiDEM_CS6\Gojo5mDEMaCS6.TIF"
となる。

別件の亀岡市本梅町の,WondowsでのOSGeo4W.shellでの実行し成功した際の命令を示す。

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "E:\grassdata\FileConvert_folder\5235Taniha_5mDEM_tif\FG-GML-5235-44-DEM5A.tif" "E:\grassdata\FileConvert_folder\5235Taniha_5mDEM_CS6\FG-GML-5235-44-DEM5A_CS6.tif"

なお,参考のために,Macでの実行例を次に示しておく。 Windowsメモ帳での入力は混乱が多く,注意が必要である。

GRASS 6.4.2 (Plane6_JGD2000):~ > gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMaCS6.TIF"
Creating output file that is 2305P x 1856L.
Processing input file /Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMaCS6.tif.
Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMaCS6.tif.
0...10...20...30...40...50...60...70...80...90...100 - done.
GRASS 6.4.2 (Plane6_JGD2000):~ >

  この結果,確かに,aroundSakuraiDEM_CS6フォルダに,Gojo5mDEMaCS6.TIF,が作成されている。

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gojo5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gose5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gose5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Gose5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gose5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Unebiyama5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Unebiyama5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Unebiyama5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Unebiyama5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Furuichiba5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Furuichiba5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Furuichiba5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Furuichiba5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatotakada5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatotakada5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatotakada5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatotakada5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Hase5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Hase5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Hase5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Hase5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Shigisan5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Shigisan5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Shigisan5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Shigisan5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatokoriyama5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatokoriyama5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatokoriyama5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatokoriyama5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatoshiraishi5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatoshiraishi5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yamatoshiraishi5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatoshiraishi5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Ikomayama5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Ikomayama5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Ikomayama5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Ikomayama5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Nara5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Nara5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Nara5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Nara5mDEMbCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yagyu5mDEMaCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yagyu5mDEMaCS6.TIF"

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_grid/Yagyu5mDEMbCS6.tif" "/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yagyu5mDEMbCS6.TIF"

 

5. Grassへの取り込み

  ぼくのマックでは次のようなパス指定をすればいい。Grassへの取り込みについては,Windowsでは通常のGUI(graphic user interface)を使っていいだろう。ぼくは面倒なので,コマンドベースで使用している。なお,ファイル名をコピペする際に,Wordでは,/ と = の手前に半角スペースが自動的に入るので,このスペースを削除する必要がある。
 もちろん,Grassの該当Locationに入っての作業である。 成功例も直下に示す。


GRASS 6.4.2 (Plane6_JGD2000):~ > r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMaCS6.TIF output=Gojo5mDEMaCS6
Projection of input dataset and current location appear to match
 100%
r.in.gdal complete. Raster map <Gojo5mDEMaCS6> created.
GRASS 6.4.2 (Plane6_JGD2000):~ >

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMaCS6.TIF output=Gojo5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMbCS6.TIF output=Gojo5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gose5mDEMaCS6.TIF output=Gose5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gose5mDEMbCS6.TIF output=Gose5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Unebiyama5mDEMaCS6.TIF output=Unebiyama5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Unebiyama5mDEMbCS6.TIF output=Unebiyama5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Furuichiba5mDEMaCS6.TIF output=Furuichiba5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Furuichiba5mDEMbCS6.TIF output=Furuichiba5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatotakada5mDEMaCS6.TIF output=Yamatotakada5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatotakada5mDEMbCS6.TIF output=Yamatotakada5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Hase5mDEMaCS6.TIF output=Hase5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Hase5mDEMbCS6.TIF output=Hase5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Shigisan5mDEMaCS6.TIF output=Shigisan5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Shigisan5mDEMbCS6.TIF output=Shigisan5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatokoriyama5mDEMaCS6.TIF output=Yamatokoriyama5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatokoriyama5mDEMbCS6.TIF output=Yamatokoriyama5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatoshiraishi5mDEMaCS6.TIF output=Yamatoshiraishi5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yamatoshiraishi5mDEMbCS6.TIF output=Yamatoshiraishi5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Ikomayama5mDEMaCS6.TIF output=Ikomayama5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Ikomayama5mDEMbCS6.TIF output=Ikomayama5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Nara5mDEMaCS6.TIF output=Nara5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Nara5mDEMbCS6.TIF output=Nara5mDEMbCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yagyu5mDEMaCS6.TIF output=Yagyu5mDEMaCS6

r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Yagyu5mDEMbCS6.TIF output=Yagyu5mDEMbCS6

6. 既存ファイルの確認

   取り込みファイルの表示の前に,まずは既存ファイルの確認
 図(現存gis上のdem)は,この作業に関連する既存登録demを表示している。
 以前に作成していた2図幅(吉野山と新子)4ファイルを接合したファイル名は,Yoshino_AtarashiDEM。
2図幅(畝傍山と桜井)4ファイルを接合したファイル名はAsuka5mDEMCS6。

 この図のバックは10mDEMで,奈良盆地南部の明日香村と橿原市の5mDEM部分は,10mDEMと接合しているので,同色の段彩表現がなされており,吉野山と新子の部分は,10mDEMと別ファイルのため,重なったことで暗色表示されている。

図:現存gis上のdem

 

7. 新規取り込みファイルの確認

  g.list type=rast  を実行した際のmapset <Asuka>:のリストのうち,5mDEMだけを次に示す。
----------------------------------------------
raster files available in mapset <Asuka>:
Asuka5mDEMCS6
Asuka5mover10mDEMCS6: これはAsuka10mDEMCS6上にAsuka5mDEMCS6を重ねて,この範囲のAsuka5mDEMCS6を優先し,Asuka10mDEMCS6に融合したものである。
下記4ファイル
Atarashi5mDEMaCS6,Atarashi5mDEMbCS6,Yoshino5mDEMaCS6,Yoshino5mDEMbCS6
から,Yoshino_AtarashiDEMを作成している。

下記が新たに取り込んだファイル群である。
Shigisan5mDEMaCS6,Shigisan5mDEMbCS6
Unebiyama5mDEMaCS6,Unebiyama5mDEMbCS6
Yagyu5mDEMaCS6,Yagyu5mDEMbCS6
Yamatokoriyama5mDEMaCS6,Yamatokoriyama5mDEMbCS6
Yamatoshiraishi5mDEMaCS6,Yamatoshiraishi5mDEMbCS6
Yamatotakada5mDEMaCS6,Yamatotakada5mDEMbCS6
Furuichiba5mDEMaCS6,Furuichiba5mDEMbCS6
Gojo5mDEMaCS6,欠落
Gose5mDEMaCS6,Gose5mDEMbCS6,
Hase5mDEMaCS6,Hase5mDEMbCS6
Ikomayama5mDEMaCS6,Ikomayama5mDEMbCS6
Nara5mDEMaCS6,Nara5mDEMbCS6

このように並べると,Gojo5mDEMbCS6が取り込まれていないことがわかった。前の段階に戻って,
r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMbCS6.TIF output=Gojo5mDEMbCS6
を実行した。その結果が次のよう。

GRASS 6.4.2 (Plane6_JGD2000):~ > r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/aroundSakuraiDEM_CS6/Gojo5mDEMbCS6.TIF output=Gojo5mDEMbCS6
Projection of input dataset and current location appear to match
 100%
r.in.gdal complete. Raster map <Gojo5mDEMbCS6> created.
GRASS 6.4.2 (Plane6_JGD2000):~ >

8. 全領域ファイルのr.patchによる接合前に

  全領域のファイルをr.patchによって,接合する必要がある。このコマンドを実行前に,範囲全体またはこれよりちょっと大きい領域を設定しておかなければならない。解像度は5m。東西南北の座標値を確認する必要がある。上の図(現存gis上のdem)の塗色範囲は,Asuka10mDEMCS6,のものである。この範囲の東,西,南,は今回の5mDEM全範囲と一致するが,北辺はAsuka10mDEMCS6を超える。そのため,生駒山をGIS上に表示したのが図(5mDEM全範囲の北縁の確認),である。

図(5mDEM全範囲の北縁の確認)

  前節では,画像の範囲をr.infoで確認するのであるが,面倒なので,図上で確認する。map displayの最上段にあるツールアイコンquerryで確認した。この場合,次のようになる。GrassGISでは,座標値は,(easting, northing)表示される。次の値では,m未満は省略している。
ほぼ西縁: -34758, -157397
ほぼ東縁: 118, -159499
ほぼ南縁: 118, -185023
ほぼ北縁: -32148, -138181
 それゆえ,
easting値は,118から-34758
northing値は,-185023から-138181
となる。
  そこで,X-windowsでは次のようにする。
g.region n=-138181 s=-185023 e=118 w=-34758 nsres=5 ewres=5 --overwrite –quiet

  r.patch後のまとまった5mDEMファイルを北西隅と南東隅の図幅名から,生駒山_新子,つまりIkomayama_Atarashi_5mDEMとする。

  前述のように,Yoshino_AtarashiDEM@Asukaは,吉野山と新子の2図幅を接合したもので,Asuka5mDEMCS6@Asukaは,畝傍山と桜井の2図幅を接合したものであるから,新たに作成したUnebiyama5mDEMaCS6@Asuka,Unebiyama5mDEMbCS6@Asukaは不要であり,下記のinputファイルから除いている。
 gis.mでは実行できなかった。X-windowsで可能であるが, 進行の非表示時間が2分ほど続いて,完了のメッセージは一切,ない。

GRASS 6.4.2 (Plane6_JGD2000):~ > r.patch input=Shigisan5mDEMaCS6@Asuka,Shigisan5mDEMbCS6@Asuka,Yagyu5mDEMaCS6@Asuka,Yagyu5mDEMbCS6@Asuka,Yamatokoriyama5mDEMaCS6@Asuka,Yamatokoriyama5mDEMbCS6@Asuka,Yamatoshiraishi5mDEMaCS6@Asuka,Yamatoshiraishi5mDEMbCS6@Asuka,Yamatotakada5mDEMaCS6@Asuka,Yamatotakada5mDEMbCS6@Asuka,Furuichiba5mDEMaCS6@Asuka,Furuichiba5mDEMbCS6@Asuka,Gojo5mDEMaCS6@Asuka,Gojo5mDEMbCS6@Asuka,Gose5mDEMaCS6@Asuka,Gose5mDEMbCS6@Asuka,Hase5mDEMaCS6@Asuka,Hase5mDEMbCS6@Asuka,Ikomayama5mDEMaCS6@Asuka,Ikomayama5mDEMbCS6@Asuka,Nara5mDEMaCS6@Asuka,Nara5mDEMbCS6@Asuka,Yoshino_AtarashiDEM@Asuka,Asuka5mDEMCS6@Asuka output=Ikomayama_Atarashi_5mDEMCS6 --overwrite --quiet
GRASS 6.4.2 (Plane6_JGD2000):~ >

  outputしたIkomayama_Atarashi_5mDEMCS6@Asukaを,図Ikomayama_Atarashi_5mDEMCS6に示す。図Asuka10mDEMCS6にはAsuka10mDEMCS6@Asukaを示す。これから,5mメッシュデータが低地部分に限定されていることが良くわかるであろう。

図Ikomayama_Atarashi_5mDEMCS6

 

図Asuka10mDEMCS6


  そのため,全域をカバーする10mメッシュデータを下敷きにして,5mメッシュデータがある所はそれに上書きすることになるのであるが, 上記の「3.3 仙台5mメッシュを宮城県海岸10mメッシュに生かす: r.patch」内に,この手法を示す。
コマンド例:  r.patch input=Sendai_5mUTMm@PERMANENT,MiyagiPreCoast_10mUTMm@PERMANENT output=Sendai5mMiyagiCoast10mpatched --overwrite --quiet

  

9. 全領域ファイルのr.patchとv.contour

  全領域のファイル10mDEMの上に,5mDEMを重ねようと思ったが,,5mDEMの範囲が,10mDEMの範囲を超えていた。つまり,2万5千分のT地形図の,生駒山,奈良,柳生,の範囲について,すでに取り込んでいる10mDEMには含まれていない。そこで,前述のように, DEMのダウンロードに始まる作業を実施して(10mメッシュの方),r.patchで三枚のDEM(10mメッシュでは2万5千分のT地形図の範囲に対し1ファイル)とAsuka10mDEMCS6を接合して,NaraS10mDEMCS6を作成した。そして,r.contourでは,NaraS10m_10mContoursを作成した。
 で,この全域の5mDEMの空白部分をNaraS10mDEMCS6で埋めた。つまり,前述の仙台平野で実施したように,
r.patch input=Ikomayama-Ikomayama_Atarashi_5mDEMCS6@Asuka,NaraS10mDEMCS6@Asuka output=NaraS_5mDEMover10mDEM --overwrite --quiet
である。このNaraS_5mDEMover10mDEMが次の図で,Windows版guiに取り込んだものである。

 

  この 5mDEM over 10mDEM に対して,2mContoursを描くことは難しい。DEM値が錯綜しているからである。上の仙台平野と同様のピクセル単位の高度分布区分による色づけは可能であるが。

 5mメッシュについても,前章で述べたように,DEMデータに乱れがあって,2m等高線の作成は難しい。作成高度幅を制限したり,ピクセルの連続性をcutで大きく設定したが,うまく行かなかった。幸い,”偶然”にもcut=

リージョン設定
g.region rast=NaraS10mDEMCS6@Asuka
等高線高度幅を限定
r.contour input=NaraS_5mDEMover10mDEM@Asuka output=NaraS_5mover10m_2mcontours maxlevel=270 step=2 --overwrite --quiet
この結果は,

GRASS 6.4.2 (Plane6_JGD2000):~ > r.contour input=NaraS_5mDEMover10mDEM@Asuka output=NaraS_5mover10m_2mcontours maxlevel=270 step=2 --overwrite --quiet
WARNING: 5670 crossings founds
GRASS 6.4.2 (Plane6_JGD2000):~ >
などのように, crossing foundsと出る。

成功例 (cut=50) ⇒
GRASS 6.4.2 (Plane6_JGD2000):~ > g.region rast=NaraS10mDEMCS6@Asuka
GRASS 6.4.2 (Plane6_JGD2000):~ > r.contour input=Ikomayama_Atarashi_5mDEMCS6@Asuka output=Ikomayama_Atarashi_5mDEM_2mcontours step=2.0 cut=50 --overwrite
WARNING: Vector map <Ikomayama_Atarashi_5mDEM_2mcontours> already exists
and will be overwritten
Reading data...
100%
Displacing data...
100%
Writing vector contours (total levels 559)...
100%
WARNING: 75006 crossings founds
Building topology for vector map <Ikomayama_Atarashi_5mDEM_2mcontours>...
Registering primitives...
54235 primitives registered
88460469 vertices registered
Building areas...
100%
0 areas built
0 isles built
Attaching islands...
Attaching centroids...
100%
Number of nodes: 54236
Number of primitives: 54235
Number of points: 0
Number of lines: 54235
Number of boundaries: 0
Number of centroids: 0
Number of areas: 0
Number of isles: 0
GRASS 6.4.2 (Plane6_JGD2000):~ >

図Ikomayama_Atarashi_5mDEM_2mcontours全域

 

図Ikomayama_Atarashi_5mDEM_2mcontoursの明日香村周辺

  ベクトル出力例を次に。
Converts Grass vector map to one of the supported OGR vector formats
v.out.ogr
Users/moto/の下に4ファイルが出力される
出力ファイル名でフォルダが作成される。shpをダブルクリックするとQgisが立ち上がり,見事に表示される。

その一部を次に示す

 なお,Qgisでのpdf出力が可能で,このファイルで652MBもある。 pdf出力の方法は水田さん作のファイルに示す。
なお,元のベクトルファイルは2.13GB。

<p><a name="10" id="10"></a></p>

10. さらに奈良盆地と吉野川のDEM追加と更新 Jan. 4, 2017

0. 目的

  r.horizonを実行するなどの必要性から,奈良盆地全域の10mDEMが必要になった。さらに,5mDEMがSep.2016では不完全であったことと,亀岡盆地の5mDEMが完結していることなどから,2ヶ月であってもさらなる更新が期待された。その結果,この地域の更新速度は意外と早いが,未だ途上にあることがわかった。Mar.2017には完結する可能性も感じた次第である。
  行政界表示をGEで見ると,奈良盆地は北に開いており,盆地域を捉えるのには奈良市域の北隣の交野市や枚方市などがある枚方図幅5235-15,木津川市や精華町や井出町などがある田辺図幅5235-16,笠置町や和束町がある笠置山図幅5235-17までが必要となる。明日香村がある5135-55と橿原市や桜井市や田原本町のある5135-66の5mメッシュの更新を確認したい。飛鳥の谷は両図でカバーされている。更新年月日を見ると,2016年10月01日になっている。前回ダウンロードしたのは,9月の日付だったので,更新されている。ただ,-55, -66ともに,DEM5A,5Bがあるが,10Bもリストされており,5mDEMだけで図幅全体がカバーされているかどうか,わからなかった。

1. ダウンロードからGrassへのまずは取り込みまで

  三匹のウリ坊で,tif化,したものをFileConvert_folderの,NarakenDEMDec2016に入れる。
FG-GML-5135-56-DEM5A.tif
FG-GML-5135-56-DEM5B.tif
FG-GML-5135-56-DEM10B.tif
FG-GML-5135-66-DEM5A.tif
FG-GML-5135-66-DEM5B.tif
FG-GML-5135-66-DEM10B.tif
FG-GML-5235-15-DEM10B.tif
FG-GML-5235-16-DEM10B.tif
FG-GML-5235-17-DEM10B.tif

コード番号を図幅名に変更する。

UnebiyamaDEM5a.tif
UnebiyamaDEM5b.tif
UnebiyamaDEM10b.tif
SakuraiDEM5a.tif
SakuraiDEM5b.tif
SakuraiDEM10b.tif
HirakataDEM10b.tif
TanabeDEM10b.tif
KasagiyamaDEM10b.tif

  そして,経緯度座標系からCS6に下記のようなコマンドを実行して,変換した。

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/NarakenDEMDec2016/tif/SakuraiDEM5a.tif" "/Users/moto/grassdata/FileConvert_folder/NarakenDEMDec2016/cs6/SakuraiDEM5aCS6.TIF"

  で,tcl/tkで畝傍山図幅の5mDEMa, bを取り込んだが,10mDEMはファイル名が以前取り込んだものと一致していたので,エラー終了した。

再度,tkl/tkをたちあげて,畝傍山の5mDEMa,bを見た。9月に取り込んだ畝傍山と10月作成とされる今回の畝傍山は明らかに後者の方がいい。
次にその画像を2枚示す。

上の画像は,Unebiyama_5mDEM_Sep2016

上の画像は,Unebiyama_5mDEM_Oct2016

  たしかにSep2016の画像は,作成過程であって,Oct2016は完成している。それゆえ,飛鳥を知る上で重要な畝傍山については,古い5mメッシュとcontoursは捨てた。

  で,これまで飛鳥研究で使用してきた5mDEMは,Asuka5mDEMCS6と,Asuka5mover10mDEMCS6であり,これらは,畝傍山図幅と桜井図幅のものであり,5mDEMは低地部分に限定されており,いずれも削除する予定である。しかしながら,このAsuka5mDEMCS6を使って,aspectなどを求めており,今のところは廃棄しない。

  Asuka5mover10mDEMCS6というのは,奈良盆地中央部以南の10mDEMの上にAsuka5mDEMCS6をr.patchしたものであり,今後の解析には使えない。

次の図は,Asuka5mover10mDEMCS6の上にAsuka5mDEMCS6を,そして,UnebiyamaDEM5aCS6,UnebiyamaDEM5bCS6,を重ねて,表示したものである。

上の図は,Old_Asuka_maps

  河川や三輪山などの分析対象の広がりを考えると,畝傍山と桜井の両図幅の周り一周の12図幅の5mDEMが必要と考える。

Unebiyama_Sakurai_1Around

 さて, 2016年9月に作成した既存の5mDEMの存在の確認をすると,2016年9月の5mDEMは,橿原図幅のみOct2016年と同様であった。

上の図は,5mDEMSep2016

2. CS6化した10mDEMをGrassにまずは入れてしまおう。橿原,桜井,そして,北辺の3図幅。

tcl/tkでは実施できないので,x-windowsで実施した。そして,接合した。

r.patch input=Asuka10mDEMCS6@Asuka,HirakataDEM10bCS6@Asuka,TanabeDEM10bCS6@Asuka,KasagiyamaDEM10bCS6@Asuka,Ikomayama10mDEMCS6@Asuka,Yagyu10mDEMCS6@Asuka,Nara10mDEMCS6@Asuka output=NaraBasin10mDEM --overwrite

このコマンドを見ると,以前の奈良盆地中部南部と吉野川を接合したAsuka10mDEMCS6をそのまま使っている。北側3x2図幅は新規のものか。


上の図は,before_patch_10mDEMNaraB


上の図は,after_patch_10mDEMNaraB
   生駒山の西縁,と,奈良の北縁の欠落,が反映している。生駒山と奈良をもう一度ダウンロードする必要があるようだ。

3. 5mDEMについては

  tcl/tkでは実施できなかったので,x-windowsで実施した。5mDEMについては,前述のように,生駒山,信貴山,吉野山,新子,古市場,が一部欠落している。
今までダウンロードしたことがないのが,

柳生,奈良,さらに,
枚方,田辺,笠置山
結局,10mDEMは5mDEMのダウンロードファイルの中にも同じものがあった。

FG-GML-5235-17-DEM5B.tif
KasagiyamaDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-17-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/KasagiyamaDem5b.TIF"

FG-GML-5235-17-DEM5A.tif
KasagiyamaDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-17-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/KasagiyamaDem5a.TIF"

FG-GML-5235-16-DEM5B.tif
TanabeDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-16-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/TanabeDem5b.TIF"

FG-GML-5235-16-DEM5A.tif
TanabeDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-16-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/TanabeDem5a.TIF"

FG-GML-5235-15-DEM5B.tif
HirakataDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-15-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/HirakataDem5b.TIF"

FG-GML-5235-15-DEM5A.tif
HirakataDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-15-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/HirakataDem5a.TIF"

FG-GML-5235-07-DEM5B.tif
YagyuDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-07-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/YagyuDem5b.TIF"

FG-GML-5235-07-DEM5A.tif
YagyuDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-07-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/YagyuDem5a.TIF"

FG-GML-5235-06-DEM10B.tif
NaraDem10b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 10 10 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-06-DEM10B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/NaraDem10b.TIF"

FG-GML-5235-06-DEM5B.tif
NaraDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-06-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/NaraDem5b.TIF"

FG-GML-5235-06-DEM5A.tif
NaraDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-06-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/NaraDem5a.TIF"

FG-GML-5235-05-DEM10B.tif
IkomayamaDem10b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 10 10 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-05-DEM10B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/IkomayamaDem10b.TIF"

FG-GML-5235-05-DEM5B.tif
IkomayamaDem5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-05-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/IkomayamaDem5b.TIF"

FG-GML-5235-05-DEM5A.tif
IkomayamaDem5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-05-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/IkomayamaDem5sa.TIF"
ミスった。saの代わりにaとすること。

FG-GML-5135-75-DEM5B.tif
ShigisanDEM5b

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-75-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/ShigisanDEM5b.TIF"

FG-GML-5135-75-DEM5A.tif
ShigisanDEM5a

gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-75-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/ShigisanDEM5a.TIF"

FG-GML-5135-57-DEM5B.tif
FuruichibaDEM5b
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-57-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/FuruichibaDEM5b.TIF"

FG-GML-5135-57-DEM5A.tif
FuruichibaDEM5a
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-57-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/FuruichibaDEM5a.TIF"

FG-GML-5135-47-DEM5B.tif
AtarashiDEM5b
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-47-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/AtarashiDEM5b.TIF"

FG-GML-5135-47-DEM5A.tif
AtarashiDEM5a
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-47-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/AtarashiDEM5a.TIF"

FG-GML-5135-46-DEM5B.tif
YoshinoyamaDEM5b
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-46-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/YoshinoyamaDEM5b.TIF"

FG-GML-5135-46-DEM5A.tif
YoshinoyamaDEM5a
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5135-46-DEM5A.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/YoshinoyamaDEM5a.TIF"

4. 10mDEMをまずは完成する

 前述の5mDEMファイル群にあった10mDEM 生駒山+奈良をGrassへ取り込む。
下の図に, NaraBasin10mDEMの上に2枚の10mDEM IkomayamaDEM10b_CS6 + NaraDEM10b_CS6を表示している。これで高度情報の欠落がなくなった。

上の図は,AfterPatch+Ikoma+Nara

  で,r.patchすれば,いいだろう。
例によって,NaraBasin10mDEMでregionをまずは設定。

r.patch input=NaraBasin10mDEM@Asuka,IkomayamaDem10b_CS6@Asuka,NaraDem10b_CS6@Asuka output=NaraBasin10mDEMpatched --overwrite

これでは,元のNaraBasin10mDEMと全くかわらなかった。

r.patch input=IkomayamaDem10b_CS6@Asuka,NaraDem10b_CS6@Asuka,NaraBasin10mDEM@Asuka output=NaraBasin10mDEMpatched2 --overwrite

成功だ。重ねる関係は,ベース側は後ろに並べるのだな。
NaraBasin10mDEMpatchedを削除して,
NaraBasin10mDEMpatched2を
NaraBasin10mDEMpatchedに名称変更。

  田辺と笠置山の間に白線がみえたり,生駒山と枚方,枚方と奈良の間に切れ目が見えたりする。

そこで
枚方  田辺
生駒山 奈良
をr.patchした。 r.patch input=IkomayamaDem10b_CS6@Asuka,NaraDem10b_CS6@Asuka,HirakataDEM10bCS6@Asuka,TanabeDEM10bCS6@Asuka output=Ikoma4_10mDEM --overwrite

しかし,改善しないので,Ikoma4_10mDEMは削除した。そして,これまでの古いDEMラスターは削除した。

  10m_contours_NaraBasin10mDEMpatchedとして,10m等高線を作成しようとしたが,Grassは数字を先頭とするマップ名称は受け付けないので, NaraBasin10mDEMpatched_10m_contours として, 下記のように,コマンドモードで,作成した。

r.contour input=NaraBasin10mDEMpatched@Asuka output=NaraBasin10mDEMpatched_10m_contours step=10 cut=0 --overwrite

  奈良盆地全域を10mコンターで表示すると完全に潰れる。50mにしてみる。

r.contour input=NaraBasin10mDEMpatched@Asuka output=NaraBasin10mDEMpatched_50m_contours step=50 cut=0 --overwrite

なかなかいいが,100mがより重ならないだろう。

r.contour input=NaraBasin10mDEMpatched@Asuka output=NaraBasin10mDEMpatched_100m_contours step=100 cut=0 --overwrite

すばらしい。


上図は,NaraBasin_100m

5. 奈良盆地10mDEMの更新

  前述のように, NaraBasin10mDEMは, 
r.patch input=Asuka10mDEMCS6@Asuka,HirakataDEM10bCS6@Asuka,TanabeDEM10bCS6@Asuka,KasagiyamaDEM10bCS6@Asuka,Ikomayama10mDEMCS6@Asuka,Yagyu10mDEMCS6@Asuka,Nara10mDEMCS6@Asuka output=NaraBasin10mDEM
で作成されたものである。Asuka10mDEMCS6 はかなり前に作成したものである。5mDEMが更新された現在,とくに問題となる2図幅の畝傍山と桜井は最新のものをした方がいいと思う。

  この図幅の古いものと新しいものでどの程度の違いがあるのか。

左は2016年12月に取り込んだもので,右は先ほどのr.patchされたものである。
カラーテーブルに違いがあるので,左の明瞭な改善点は見えない。古い10mDEMはすでに削除しているのでわからない。ただ,左の図を見ると,高度段彩が詳細のように見えるので,この際,更新することにした。ただ,等高線作成については僅差なので新たに作成はしない。

r.patch input=SakuraiDEM10bCS6@Asuka,UnebiyamaDEM10bCS6@Asuka,NaraBasin10mDEMpatched@Asuka output=NaraBasin10mDEM_Jan2017

6 5mDEMにかかる

  それでは,5mDEMを取り込む。できたけど,大変だった。
10mDEMでregionを設定していたのがまずかった。5mDEMを表示して,一応,regionを設定したからうまくいった。
guiのコマンド表示

r.in.gdal -o -e input=/Users/moto/grassdata/FileConvert_folder/NarakenDec24_2016DEM/AtarashiDEM5a.TIF output=AtarashiDEM5a --overwrite

失敗例を一応次に

GRASS 6.4.2 (Plane6_JGD2000):~ > gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "/Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-17-DEM5B.tif" "/Users/moto/grassdata/FileConvert_folder/temp/cs6/KasagiyamaDem5b.TIF"
Creating output file that is 1602P x 1111L.
Processing input file /Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-17-DEM5B.tif.
Using internal nodata values (eg. -9999) for image /Users/moto/grassdata/FileConvert_folder/temp/tif/FG-GML-5235-17-DEM5B.tif.
0...10...20...30...40...50...60...70...80...90...100 - done.

GRASS 6.4.2 (Plane6_JGD2000):~ > v.in.ogr dsn=/Users/moto/grassdata/FileConvert_folder/temp/cs6/KasagiyamaDEM5b.TIF output=AtarashiDEM5b min_area=0.0001 snap=-1
ERROR: Unable to open data source
</Users/moto/grassdata/FileConvert_folder/temp/cs6/KasagiyamaDEM5b.TIF>
GRASS 6.4.2 (Plane6_JGD2000):~ >

Sep2016にダウンロードしたのに比べての更新があったかどうかを含めて,lateDec2016の現状を確認する。

上図は,Revised5mDEM_list.jpg

   南東隅の新子AtarashiDEM5a,bはちょっと谷沿いの範囲が増えただけで,谷沿いのみと言える。この西隣の吉野山YoshinoyamaDEM5a,bについては,北西部の穴が埋まった。古市場FuruichibaDEM5a,bは更新されず,新子から続く空白部はそのままである。中西部の信貴山ShigisanDEM5a,bは,完成していた。北部の生駒山IkomayamaDem5a.b,奈良NaraDem5a,b,柳生YagyuDem5a,bは柳生北東端を除いてほぼ完成していた。新たに北方の続きである枚方HirakataDem5a.b,田辺TanabeDem5a.b,笠置山KasagiyamaDem5a.bを取り込んだ。笠置山は中央部が未完となっている。

  更新された旧ファイルは削除した。

  で,この範囲の5mDEMのr.patchを実施することにする。

workspaceの5mDEMを見て,全Rasterファイルのリストを次に作成した。そして,r.patchコマンドを作成。
  regionを次のように設定した。 g.region -p rast=AtarashiDEM5b@Asuka,AtarashiDEM5a@Asuka,FuruichibaDEM5a@Asuka,FuruichibaDEM5b@Asuka,Gojo5mDEMaCS6@Asuka,Gojo5mDEMbCS6@Asuka,Gose5mDEMaCS6@Asuka,Gose5mDEMbCS6@Asuka,Hase5mDEMaCS6@Asuka,Hase5mDEMbCS6@Asuka,HirakataDem5a@Asuka,HirakataDem5b@Asuka,IkomayamaDem5a@Asuka,IkomayamaDem5b@Asuka,KasagiyamaDem5a@Asuka,KasagiyamaDem5b@Asuka,NaraDem5a@Asuka,NaraDem5b@Asuka,SakuraiDEM5aCS6@Asuka,SakuraiDEM5bCS6@Asuka,ShigisanDEM5a@Asuka,ShigisanDEM5b@Asuka,TanabeDem5a@Asuka,TanabeDEM5b@Asuka,YagyuDEM5b@Asuka,YagyuDEM5a@Asuka,Yamatokoriyama5mDEMaCS6@Asuka,Yamatokoriyama5mDEMbCS6@Asuka,Yamatoshiraishi5mDEMaCS6@Asuka,Yamatoshiraishi5mDEMbCS6@Asuka,Yamatotakada5mDEMaCS6@Asuka,Yamatotakada5mDEMbCS6@Asuka,YoshinoyamaDEM5b@Asuka,YoshinoyamaDEM5a@Asuka,UnebiyamaDEM5aCS6@Asuka,UnebiyamaDEM5bCS6@Asuka

一瞬で実行された。つぎにパッチを実行。  r.patch -qz input=AtarashiDEM5b@Asuka,AtarashiDEM5a@Asuka,FuruichibaDEM5a@Asuka,FuruichibaDEM5b@Asuka,Gojo5mDEMaCS6@Asuka,Gojo5mDEMbCS6@Asuka,Gose5mDEMaCS6@Asuka,Gose5mDEMbCS6@Asuka,Hase5mDEMaCS6@Asuka,Hase5mDEMbCS6@Asuka,HirakataDem5a@Asuka,HirakataDem5b@Asuka,IkomayamaDem5a@Asuka,IkomayamaDem5b@Asuka,KasagiyamaDem5a@Asuka,KasagiyamaDem5b@Asuka,NaraDem5a@Asuka,NaraDem5b@Asuka,SakuraiDEM5aCS6@Asuka,SakuraiDEM5bCS6@Asuka,ShigisanDEM5a@Asuka,ShigisanDEM5b@Asuka,TanabeDem5a@Asuka,TanabeDEM5b@Asuka,YagyuDEM5b@Asuka,YagyuDEM5a@Asuka,Yamatokoriyama5mDEMaCS6@Asuka,Yamatokoriyama5mDEMbCS6@Asuka,Yamatoshiraishi5mDEMaCS6@Asuka,Yamatoshiraishi5mDEMbCS6@Asuka,Yamatotakada5mDEMaCS6@Asuka,Yamatotakada5mDEMbCS6@Asuka,YoshinoyamaDEM5b@Asuka,YoshinoyamaDEM5a@Asuka,UnebiyamaDEM5aCS6@Asuka,UnebiyamaDEM5bCS6@Asuka output=NaraBasin5mDEMpatched --overwrite --verbose

実行時間は2分ほどであった。

  表示するとrainbowなので盆地底は白抜きになるのでelevation表示にしたのが次の図である。


上図は,NaraBasin5mDEMpatched

  そして。2m contoursを作成する。

r.contour input=NaraBasin5mDEMpatched@Asuka output=NaraBasin5mDEMpatched_2m_contours step=2 --overwrite --verbose
Grass 7 for macのguiでのみできた。 次に, 飛鳥周辺を拡大表示している。


上図は, Asuka_5mDEM2mContours

  ベクトルマップの幾つかを削除した。  g.remove vect=Yoshino_Atarashi_cont_5m,contours100m_on10mDEM,contours10m_on5mover10mDEM,
NaraS10m_10mContours,contours1m_on5mDEM,NaraS_5mover10m_5mcontours,
contours20m_on10mDEM,contours2m_on5mDEM,Nara_YamatotakadaToDorogawa_10mCont,
contours5m_on5mover10mDEMCS6,Nara_YamatotakadaToDorogawa_50mCont,oshino_Atarashi_Cont10m --verbose

  以上で, r.horizonなどの実行の準備ができた。

11. 2016年実習 空中写真判読とGIS表示   Nov. 26, Dec. 6, 2016;Dec. 17, 2016

  これまで繰り返し述べてきたのであるが, データベースの書式の更新や情報のバージョンアップなどがあって, これまでtcl/tkで処理できなかっり,guiで出来ず, コマンドベースでしか実施できなかった作業が, 前者で可能になったりしているので, その辺の部分も強調したいと思う。

  追加: 5コマ程度でGrassGISで国土地理院提供の(海抜高度)DEMラスターマップと道路や建物などのベクトルマップをダウンロードして表示までできるようにする。これに関連して追加したものは,この茶色で表示する。実習の際には,必ず,USBメモリー(空容量6GB程度)を持参ください。
  なお,例えば, バッファロー BUFFALO RUF3-WB8G-BK [USBメモリ 8GB]¥580 at ヨドバシカメラ , ヨドバシカメラ梅田店なら注文した当日に到着,送料無料
  持参するUSBメモリーには,次の構造のフォルダーfolderを作っておくこと。USBメモリーmemoryには自分の名前をつけること。例えば, KOBAというように。変換なしの英数字で(これを以前は半角英数字と称することが多い)。USBの中身を開いてすぐに(これをルートrootと言う),grassdataフォルダーを作成する。その中にFileConvert_folderフォルダーを作り,その中にKameoka_InputFilesフォルダーを作成すること。さらに,FileConvert_folderの中に,Appliフォルダーも用意すること。なお,USBの名称以下,ファイル名まで,GISに関連するものはすべて半角英数字以外を使ってはならない。さらに,編集したファイルの名称は,2016Kameoka.tif よりも,Kameoka2016.tif とした方がいいかとは思う。ハイフンはできるだけ使わないように。ハイフンを使いたい時は, _ underscoreを使うこと。underscoreはunderlineと同義ではあるが,例えばKameoka_2016というようにハイフンに類似した使い方をした場合,概してunderlineよりもunderscoreが使用される傾向がある。
  上の作業の結果, USBを開くと,grassdataフォルダーが見えるのであるが, Kameoka2016.tifは, Windowsでは,次のようにパスpathされる。
E:\grassdata\FileConvert_folder\Kameoka_InputFiles\Kamaoka2016.tif
なお,階層間は,Windowsでは,バックスラッシュ  \ (日本語のPCでは¥),が,Unixやmacでは,スラッシュ / が使われる。
  下記の必要としたアプリはダウンロードして,Appliフォルダーに保管すること。なお, DBF Viewerはダンロード後,1ヶ月だったかの有効期限であったように思う。所有するパソコンにインストールしてしまうと,期限がすぎると,もう使えない。$40ほどで購入する必要がある(僕はもちろん購入している)。学内の共同利用パソコンでは使用履歴が失われるので,何度でもダウンロードして使えてしまう ?

0. grassのLocation/mapsetを作成
  このページの,「7. 練習:鳥取市およびその周辺の5mmeshDEMダウンロード,fgddem by Python(三匹のうり坊)でgeotiff化,座標変換(経緯度から平面直角座標系),Grassへの取り込み,r.patchで融合」 (ジャンプ機能をあえて使わず,こういう書き方をしているのは,読者がこのページの全体がわからなくなることを防ぐためである。ジャンプしたければ,ブラウザーのページ内検索機能を使えば良い。)のうちの,1.と2.が参考になる。君たちは自分のusbにgrassdataフォルダなどを作成することになる。
  左のペーンの,はじめに,の,GrassのLocation作成,のおわりの方での,領域設定,の部分を参考にすること。  

1. 国土数値情報のダウンロード
 ダウンロードする前に,左のペーンの「国土数値情報をGrassで」の,0,に示したように,前もってダウンロードする1〜3次メッシュファイル名を調べるべきである。これを怠ると,その後の作業が水泡に帰する場合がある, 一つ一つのステップを誠実に実行してほしいのである。

 国土地理院の次のサイト
http://www.gsi.go.jp/MAP/NEWOLDBL/25000-50000/index25000-50000.html
で図郭を確認して,
http://fgd.gsi.go.jp/download/menu.php
の,「基盤地図情報数値標高モデル」,からダウンロードした5mメッシュDEMファイルを次に。PackDLmap.zipというフォルダーの形でダウンロードされる。これを開くと,2万5千分の1地形図の東西に並ぶ,西から,埴生(はぶ)FG-GML-5235-43-DEM5A.zipFG-GML-5235-43-DEM5B.zip亀岡FG-GML-5235-44-DEM5A.zipFG-GML-5235-44-DEM5B.zip,京都西北部FG-GML-5235-45-DEM5A.zipFG-GML-5235-45-DEM5B.zip,のzipファイルが, 図郭ごとに2ファイルの5mDEMが入っている。これは図郭全域が5mメッシュデータでカバーされていることを示す。なお,このページの,それぞれのファイル名をクリックするとダウンロードできるようにしている。

2. tif化と経緯度座標系から採用座標系への変換
  tif化は,このページの「1. 国土地理院によって作成された基盤地図情報(数値標高モデル)10mメッシュと5mメッシュDEMをGRASS-GISで」に示したように,三匹のうりぼう,の,fgddem.py v.1.8,で実施する。

  このダウンロードサイトは,次。必ず, Appliフォルダーに入れること。 http://space.geocities.jp/bischofia_vb/python/fgddem/

 亀岡3図郭のtiff化されたファイルを次に示す。
埴生(はぶ)FG-GML-5235-43-DEM5A.tif,  FG-GML-5235-43-DEM5B.tif,  亀岡FG-GML-5235-44-DEM5A.tifFG-GML-5235-44-DEM5B.tif, 京都西北部 FG-GML-5235-45-DEM5A.tif,  FG-GML-5235-45-DEM5B.tif  


  座標系の変換は,Windowsの場合,Osgeo4W.shell,でコマンド実行する。ただし,コマンド実行のための,Windowsのメモ帳を使うことになるが,メモ帳,が自動でスペースなどを作ってしまうことがあり,折り返し表示はしない方がよい。一例を次に示す。 
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "E:\grassdata\FileConvert_folder\5235Taniha_5mDEM_tif\FG-GML-5235-44-DEM5A.tif" "E:\grassdata\FileConvert_folder\5235Taniha_5mDEM_CS6\FG-GML-5235-44-DEM5A_CS6.tif"

5コマ演習の場合では,パス指定が上と少し異なっており,例えば,次のようになる。
gdalwarp -s_srs "EPSG:4612" -t_srs "EPSG:2448" -tr 5 5 -r bilinear -dstnodata -9999 "E:\grassdata\FileConvert_folder\Kameoka_InputFiles\FG-GML-5235-44-DEM5A.tif" "E:\grassdata\FileConvert_folder\Kameoka_InputFiles\KameokaDEM5A_CS6.tif"
亀岡3図服fifファイルのCS6への変換済みファイルを次に示す。なお,Grassへの取り込みに備えて,ファイル名のコード番号を図郭名に変えている。
埴生            HabuDEM5A_CS6.tif , HabuDEM5B_CS6.tif
亀岡            KameokaDEM5A_CS6.tif , KameokaDEM5B_CS6.tif
京都西北部  KyotoNW_DEM5A_CS6.tif , KyotoNW_DEM5B_CS6.tif

 

3.  GrassへのdemファイルのGrass guiを使って取り込み
 OSGeo4WのGrass guiから自らのLocation/mapsetに取り込むことになる。前述の「7. 練習……………」などに方法を示している。

  2.までの作業はGrassGISの外での作業であったが,この段階で初めて,Grassを開くことになる。Grassのロケーションやマップセットの設定は繰り返し述べてきたので,ここでは省略する。ここの例は近畿地方の主部なので,CS6のLocationを設定し,マップセット名をKameokaとする。grassdataフォルダーの中身はブラウザーで簡単に見ることができるが,FileConvert_folder以外のフォルダーは決して触ってはならない。簡単に触れるが,Location全体が壊れる。
  Locationの作成の際に,規定の領域を設定するオプションが表示される。これはスルーしても問題はないが,Grassに慣れていない場合,せっかく取り込んだファイルを表示できないということがある。とはいえ,取り込む前のCS6の座標値を知るには経緯度からCS6値の変換が必要で,面倒なので,スルーすればいいだろう。
  GrassのJGD2000のCS6のLocationのmapset  Kameokaを開いて,これまで作ってきたCS6のDEMファイル,つまり,ラスターマップを取り込む。guiでの取り込みは成功する場合もあるが失敗する場合もある。
  繰り返し述べてきたが,ここに,コマンドでの取り込み例を次に示す。下記はマックの場合である。
r.in.gdal input=/Users/moto/grassdata/FileConvert_folder/YoshinoAtarashiDEM
/Yoshino5mDEMaCS6.TIF output=Yoshino5mDEMaCS6

ここでの例を一つ,下に作成している。
r.in.gdal input=E:\grassdata\FileConvert_folder\Kameoka_InputFiles\KameokaDEM5A_CS6.tif output=KameokaDEM5A_CS6

 

4.  Grass tcl/tkを使ってファイルの表示
  ひょっとすると,guiを使わなくても,tcl/tkでファイルの取り込みもできるかも知れない。guiはコマンド入力が可能であったり,地形断面図が詳細であったりするので有用なアプリであるが,workspaceを保存できないという大きなデメリットがあるので,表示を主として,tcl/tkを使う利便性は極めて高いのである。
 
5.  r.patch
  ぼくの今回の場合は,父が設立した施設の周辺ということで,2万5千分のT地形図の西から,「埴生」,「亀岡」,「京都西北部」の3域の5mメッシュDEMを使用した。これまでは,低地域しか5mメッシュは無かったが,800mを超える山地域を含む全域でデータがあった。
  r.patchを実行る場合には,必ず猟奇の設定を実施すること。
 まずは,接合したい地図を表示し,マップ表示の上部のアイコンのうち, クエリquerryをクリックした上で,マップの範囲の東西南北辺の少し外側をクリックして,出力画面に表示される,(easting値,northing値,海抜高度)を読んで,領域設定値を求める。100m以上の値を仮設定すれば問題がない。
 そして,設定/領域/領域の変更,を選んで,新たな領域を設定した上で,r.patchを実行する。僕は驚いたのであるが,この3地形図の範囲の5mDEM情報に欠落はなかった。
  もちろん, patchする複数のraster mapsで領域設定できるし,前述の方法より簡便である。しかしながら,各自が実行しているマップの座標範囲を知ることはのちに役に立つのである。

r.patchのコマンドベースでの実行は,Windowsの場合,Grass guiのコマンドタブを選んで,最下部の小さな窓に入力する必要がある。
https://grass.osgeo.org/grass70/manuals/r.patch.html
に使用法が示されている。操作自体は簡便でコマンドの構造も極めてシンプルである。
EXAMPLE

Create a list of maps matching a pattern, extend the region to include them all, and patch them together to create a mosaic. Overlapping maps will be used in the order listed.
MAPS=`g.list type=raster sep=, pat="map_*"`
g.region raster=$MAPS
r.patch in=$MAPS out=mosaic

例えば,上記の亀岡図幅2枚だけの場合(注意: コマンド内の項目間のスペースにはtake care),

r.patch in=KameokaDEM5A_CS6.tif,KameokaDEM5B_CS6.tif out=Kameoka5mDEM_patched

6. 2m間隔の等高線の作成
 実行時間はパソコンなどの環境とファイルの大きさに依存するが,結構の時間がかかる。
 作成後,父の施設周辺を表示したものが次の図である。ある高度以下では段彩されていないが,これはデフォルトのままだからである。
 

https://grass.osgeo.org/grass73/manuals/r.contour.html
For an example of using steps with r.contour this example uses the LiDAR data derived elevation map from the North Carolina database: 

g.region raster=elev_lid792_1m -p
r.contour input=elev_lid792_1m output=elev_lid792_1m_contours \
minlevel=100 maxlevel=150 step=10

ここでは,
g.region raster=Kameoka5mDEM_patched -p
r.contour input=Kameoka5mDEM_patched output=Kameoka5mDEM_patched_2m step=2

なお,g.region の -pフラッグは,printオプションであり,モニターに処理過程が表示される。
https://grass.osgeo.org/grass73/manuals/g.region.html

次のサイトは日本語で説明されている。

http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/software/grass/commands/r.contour.html

7. DEMのカラーテーブル設定
  カラーテーブルの作成のためには, DEM内の海抜高度データの,最小値と,最大値を得る必要がある。Grass guiのアプリでは,レイヤー表示して,対象とするマップを選び,右クリックして,リストのうち,プロパティを選ぶと,次のような情報が表示される。このうち,Range of data: min = 21.52744 max = 946.851,から,海抜高度は,21〜947mの範囲であることがわかる。0〜1000mのカラー指定をするようなカラー定義ファイルを選べばいいことになる。

(Wed Nov 30 13:43:40 2016)
r.info map=Habu_Kameoka_KyotoNW_patched@Kameoka
+----------------------------------------------------------------------------+
| Layer: Habu_Kameoka_KyotoNW_patched@ Date: Sat Nov 26 12:18:57 2016 |
| Mapset: Kameoka Login of Creator: Administrator |
| Location: Plane6_JGD2000 |
| DataBase: //.psf/.home/grassdata |
| Title: ( Habu_Kameoka_KyotoNW_patched ) |
| Timestamp: none |
|----------------------------------------------------------------------------|
| Type of Map: raster Number of Categories: 0 |
| Data Type: FCELL |
| Rows: 1879 |
| Columns: 6851 |
| Total Cells: 12873029 |
| Projection: Transverse Mercator |
| N: -101515.82047709 S: -110910.16814319 Res: 4.99965283 |
| E: -22794.72463483 W: -57049.7909009 Res: 5.00000967 |
| Range of data: min = 21.52744 max = 946.851 |
| Data Description: |
| generated by r.patch |
| Comments: |
| r.patch input="HabuDEM5A_CS6,HabuDEM5B_CS6,KameokaDEM5A_CS6,KameokaD\ |
| EM5B_CS6,KyotoNW_DEM5A_CS6,KyotoNW_DEM5B_CS6" output="Habu_Kameoka_K\ |
| yotoNW_patched" |
+----------------------------------------------------------------------------+
(Wed Nov 30 13:43:40 2016) コマンド終了 (0 sec)

  このページの,はじめに,の,「カラーテーブル color tableの意味と作成」を参照して,自らのマップにあったcolor tableを作ってください。そのファイルを呼び出すGrass は,Windowsについては,tcl/tkでは駄目で,瞬時にクラッシュする。guiの方では問題なく,実行できる。

  ラスター/カラー調勢/カラーテーブル,を選ぶと,新たなパネルが表示される。このうち,色タブの「ルールファイルへのパス」欄で,「参照」ボタンをクリックして,FileConvert_folder/colors/内,の,自ら作成したtextファイルを選ぶ。

  実行の際のコマンド出力は次のようであった。

(Tue Nov 29 20:30:27 2016)
r.colors map=Habu_Kameoka_KyotoNW_patched@Kameoka rules=\\.psf\.home\grassdata\FileConvert_folder\colors\lessthan1000m.txt
ぼくが用意したlessthan1000m.txtを使って表示したものが次のものである。


 


8.  基盤地図情報基本項目のダウンロード, シェープ出力

   左のペーンの,国土数値情報をGrassで,の,「基盤地図情報基本項目をGISで利用可能な shape file(.shp .shx .dbf で一組)へ変換するソフトである国土地理院提供の数値地図ビューアーをインストール」を参照して実行すること。ここで取り込んだベクトルファイルは,まとめて一つのベクトルマップとして出力することができる。今後の使用範囲も考慮してのベクトルマップ合体作業である。

  上記の,数値地図ビューアーを前もって, ダウンロードしておくこと。
  このビューワーでありコンバーターを使って,亀岡の3図幅の「基盤地図情報基本項目」をダウンロードするのであるが,左のペーンの,
☆ 基盤地図情報2500 25000(含5000土地利用)のGrass(平面直角座標系 UTM座標系)への取り込み
には,ベクトルマップの 
http://fgd.gsi.go.jp/download/menu.php

での, 「基盤地図情報基本項目」のダウンロード,
前もって,項目を選択してから,2次メッシュを選択して,ダウンロードする。基本項目のうち,ここでは,
水涯線, 行政区画の境界線及び代表点, 建築物の外周線, 道路縁, 軌道の中心線,を選ぶ。
そして, 上方の図郭単位で選択する。ここでは,523543, 523544, 523545,の3図郭である。PackDLMap.zipの中の3zipファイルのままで使用すること。この3zipファイルは解凍しないこと。
FG-GML-523543-ALL-20161001.zip
FG-GML-523544-ALL-20161001.zip
FG-GML-523545-ALL-20161001.zip
上記3zipファイル群を,前述の数値地図ビューアーのメーンペーンにドラッグアンドドロップして,表示する。そして, 表示されているベクトルマップは, Export機能を使って出力すると, 複数の図郭が接合され, 表示領域全体のベクトルマップが, シェープ出力(接合された一つの種類に関わる4 files, .shx, shp, .prj, .dbf)される。

9.  Grassへの取り込みだが

  左のペーンの,
「☆ 基盤地図情報2500 25000(含5000土地利用)のGrass(平面直角座標系 UTM座標系)への取り込み」, の 「2.3 Grassへの取り込みだが」, と
「4. 県域25000の数値地図情報のGrassへの取り込み」,を参考にすること。
   シェープ出力されたベクトルマップは,,一つのマップについて,4ファイルが生成される。拡張子を,.shp, .shx, .dbf, .prjとするものであるが,grassは.prjファイルは使わない。Grassは2バイト文字に対応していないので,.dbfファイルのフィールド名を1バイト文字に変更する必要がある。使用するソフトは有料ソフト$40ほどであるが,1ヶ月無料なので,関大のpc利用環境では毎回,利用者の変更がクリアされるので,一時的インストールは何回やっても問題ないことになる。
  で,1バイト文字化したdbfファイルを含むシェープファイルをgrassに取り込むのであるが,この方法も上記の, 「2.3 Grassへの取り込みだが」,に示している。 guiで取り込みは大きなベクトルの場合,失敗することが多く,コマンドベースで実施した方がいい。Grass on Macの場合は,X windowsが開いているので,ここで,例えば,次のようなコマンドで実行できる。ここで,赤字は,君たちの使用環境によって異なる。君たちはgrassdataフォルダーの中の,FileConvert_folderの中のフォルダーに入れているし,Windowsだから,dsn=E:¥grassdata¥FileConvert_folder¥Kameoka3¥KibanVectors¥.....,などとなるだろうし,Grass guiのコマンドタブを開いて,最下部のコマンド入力欄にメモ帳からのテキストをコピペすることになるだろう。

出力されたシェープファイルのフィールイド名を,  DBF Viewer で1byte文字化したファイルの圧縮ファイルが次のもので,WL, WA, RdEdg, RailCL, BldA, AdmA,それぞれに拡張子4種のファイルがある。
Kameoka3_ExportedVectors

上の圧縮ファイルは32MBあるので結構重くダウンロードに時間がかかる。内容は次のものである。Kameoka_InputFilesフォルダーの中に, Kameoka3_ExportedVectorsフォルダーを作成して,上記zipファイルを解凍して格納する。解凍されたファイル名は次のようである。

Kameoka3_WL.shx Kameoka3_WL.shp Kameoka3_WL.prj Kameoka3_WL.dbf
Kameoka3_WA.shx Kameoka3_WA.shp Kameoka3_WA.prj Kameoka3_WA.dbf
Kameoka3_RdEdg.shx Kameoka3_RdEdg.shp Kameoka3_RdEdg.prj Kameoka3_RdEdg.dbf
Kameoka3_RailCL.shx Kameoka3_RailCL.shp Kameoka3_RailCL.prj Kameoka3_RailCL.dbf
Kameoka3_BldA.shx Kameoka3_BldA.shp Kameoka3_BldA.prj Kameoka3_BldA.dbf
Kameoka3_AdmA.shx Kameoka3_AdmA.shp Kameoka3_AdmA.prj Kameoka3_AdmA.dbf

次はマックの場合のベクトルマップの取り込みのための,コマンドである。guiした方がもちろん楽であるがエラーが出る場合は,コマンドでの作業になるだろう。
V.in.ogr -o -e dsn=/Users/moto/Desktop/Mac_Win_Shared/Kameoka_3maps/Kameoka_ExportedVectors/Kameoka3_WL.shp output=Kameoka3_WL min_area=0.0001 snap=1 --overwrite

この補講の場合,次のようになるだろう。
V.in.ogr -o -e dsn=E:\grassdata\FileConvert_folder\Kameoka_InputFiles\Kameoka3_ExportedVectors\Kameoka3_WL.shp output=Kameoka3_WL min_area=0.0001 snap=1 --overwrite

 

10.  で, イラレで使用する画像を出力

  画像出力とは言っても, Grassで必要なマップ表示をして,厳密な意味で枠内の東西南北の座標値を記録して,イラレに画像を取り込んで,それをベースにベクトル情報(point, polygon, polyline)を加えて,その後,イラレに取り込んだ画像の東西南北座標値に基づいて座標値を付与して,PlugX-shapeでシェープ出力することになる。
   なお,polyline(下の上図)はいわば,領域が閉じていないpolygonである。イラレのペンツールを使って,クリックを繰り返して繋いだ線分群である。例えば円であっても,polylgonで表現できるように,曲線もpolylineで表現できる。ただし,PlugX-shape 4.5は4.0と違って,ベジェ (Pierre Bézier)曲線(下の下図)からもpolylineに自動的に分割して出力するようになった。
  

  左のペーンの,  「☆ PlugX-shapeでIllustrator ベクトル入出力」,の,

14. イラレにUTM座標系表示画像を取り込んでポリゴン(ベクトル)を作成しUTM座標系に新たに取り込むプロセス
15. イラレでの地形分類図などの製図

を参考に, 君たちが空中写真判読した結果を, イラレに移して, シェープ化して, grassに取り込んで, 表示して,
ラスターマップやベクトルマップと合わせて,効果的に表示して,印刷してみよう。
一応,半期で,ここまでかな ?

PlugX-Shape4.5
http://www.chiri.com/plugx_shape.htm
   なんと知らんまに情報演習室に2014年にSRAによってインストールされていた。SRAからユーザーへも担当事務室にも連絡が無かった。ひどすぎる。
インストールされているpcは,下記のようだ。2年間, 教育が停滞した??

情報演習室A
ex-a01, a02, a07, a08, a09, a10, a13, a14, a19, a20

情報演習室C
ex-c07, c08, c09, c10, c11, c13, c14, c15, c16, c17


 

メモ:

空中写真判読結果とGIS表示
 空中写真判読の範囲について,プリントアウトしてそこに判読結果を写す作業が必要となる。とはいえ,

以 上