今回のように限られた領域内にある点群のデータから
surfaceや等値線を作る場合
(1) regionとresolutionを妥当な値に設定しておく必要がある。
(2) 「限られた領域」のMASKをかけてから計算を実行する必要がある。
まず、QGISのshellを立ち上がります。
(1) Region と Resolution
g.region -p n=54N s=17N e=136E w=73E res=0.05 save=china_prec
#エラー: 不正な入力 <n=54N>
というエラーが出たら、 N、Sを消して次のようにもう一度やってください
>g.region -p n=54 s=17 e=136 w=73 res=0.05 save=china_prec --o
zone: 0
datum: wgs84
ellipsoid: wgs84
north: 54N
south: 17N
west: 73E
east: 136E
などが出るはずです。
save=china_precは、他の領域や異なるresolutionで解析を進めたときに、すぐに g.region -p region=china_precで、この設定領域に戻れるように設定を保存しています。
ここで、一旦QGISを閉じる。
(2) MASK作成の手順
(a) QGISを普通に立ち上げ、すぐに(GRASSのマップセット選択をせずに)
* 「プラグイン」→「WFSレイヤの追加」を選択。
「新しいWFS接続を作成する」の「接続の詳細」で
「名称」をUNとし、「URL」に、
http://webservices.ionicsoft.com/unData/wfs/UN
を入れる。
ユーザー名やパスワードは空白のまま。「OK」(QGIS1.5ならいらないかもしれません)
* 「サーバーコネクション」で、上で入力した「UN」を選択し、「接続」。
しばらくすると、タイトル、名称、要約の下にレイヤが表示されるので、
その中から、"COUNTRIES 1:1M wfs:COUNTRY ..."を選び、「OK」。
全世界の国境線WFSデータがロードされるのしばらく待ちます。
ロードが終わると、"wfs:COUNTRY"というレイヤが地図画面に表示される。
* メニューから「レイヤ」→「Shapeファイルとして保存」→
ファイル名の欄にcountryと入れて、適当なディレクトリに「保存」。
「座標参照系選択」のwindowが出たら、デフォルトのWGS84のままで「OK」。
QGIS1.5なら、形式のところ ESRI Shapefileを選び、別名で保存のところcountryで、CRSのところ「ブラウズ」をクリックして、座標参照系のところWGS84を選らんでOKをクリックしてください
* 一旦、QGISを終わります。
(b) 再度QGIを立ち上げ、今度はGRASSのマップセットChinaで以下を実行。
v.in.ogr -o dsn=. la=country out=country
により、国境線・海岸線のシェープファイルをGRASSに取り込む。
QGIS1.5では以下のような警告が出るが、100%のところが合ってるなら一応大丈夫です
C:\>v.in.ogr -o dsn=. la=country out=country
警告: 説明内のバグ, <ポイント>内のオプション 'type' は存在しません
警告: 説明内のバグ, <ライン>内のオプション 'type' は存在しません
警告: 説明内のバグ, <境界>内のオプション 'type' は存在しません
警告: 説明内のバグ, <セントロイド>内のオプション 'type' は存在しませ
最優先の投影チェック
レイヤー: country
警告: デフォルトのドライバー/データベースはセットされています to:
ドライバー: dbf
データベース: $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/
マップ 251 フィーチャーをインポートしています...
ベクトルマップ <country> にトポロジーを作成しています...
プリミティブを登録しています...
2136 プリミティブは登録されました
237467 頂点は登録されました
領域を作成しています...
100%
作成された領域 2115
2114 アイルは作成されました
島を接続しています...
100%
セントロイドを接続しています...
100%
ノードの数: 2125
プリミティブの数: 2136
ポイントの数: 0
ラインの数: 0
境界の数: 2136
セントロイドの数: 0
領域の数: 2115
アイルの数: 2114
間違った境界の数: 22
セントロイドのないエリアの数: 2115
警告: ポリゴンを除いています、結果は保証されていません!
100%
ベクトルマップ <country> にトポロジーを作成しています...
ノードの数: 2125
プリミティブの数: 2136
ポイントの数: 0
ラインの数: 0
境界の数: 2136
セントロイドの数: 0
領域の数: -
アイルの数: -
ポリゴンを崩します:
複写を除去します:
境界をくずします:
複写を除去します:
ノードにある境界を除去します:
ダングルをラインに変更します:
ブリッジを除去します:
ベクトルマップ <country> にトポロジーを作成しています...
領域を作成しています...
100%
作成された領域 2128
1953 アイルは作成されました
島を接続しています...
100%
ノードの数: 2425
プリミティブの数: 3225
ポイントの数: 0
ラインの数: 0
境界の数: 3225
セントロイドの数: 0
領域の数: 2128
アイルの数: 1953
セントロイドのないエリアの数: 2128
レイヤー: country
ベクトルマップ <country> にトポロジーを作成しています...
プリミティブを登録しています...
4727 プリミティブは登録されました
210861 頂点は登録されました
領域を作成しています...
100%
作成された領域 2128
1953 アイルは作成されました
島を接続しています...
100%
セントロイドを接続しています...
100%
ノードの数: 4552
プリミティブの数: 4727
ポイントの数: 0
ラインの数: 0
境界の数: 2600
セントロイドの数: 2127
領域の数: 2128
アイルの数: 1953
セントロイドのないエリアの数: 1
2127 入力ポリゴン
トータルエリア: 1.472500e+014 (2128 エリア)
重複するエリア: 0.000000e+000 (0 エリア)
カテゴリーのない領域: 3.969970e+011 (1 areas)
* 「GRASSベクターレイヤ追加」で、画面に世界の国境線・海岸線が表示される。
下の画像の1というところ
* 「地物の特定」アイコン(白抜き矢印の右上にiがある)を選択し(画像の2のところ)、
中国の領土内をクリックすると、「結果を特定」の小窓が開き、フィーチャ・値
の情報が表示される。cat(カテゴリー番号)は182であることが分かる。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (wfs.png)
* GRASS ToolsからGRASS shellを立ち上げ、
v.extract in=country out=country_china list=182 new=1
により、中国領土だけのpolygonができる。表示。
* このポリゴンを
v.to.rast in=country_china out=country_china use=cat
により、ラスターに変換。表示。
* このラスターレイヤ(中国領土)から、
g.copy rast=country_china,MASK
により、MASKを作成する。
これ以後のラスター系処理は、このMASKの範囲内だけで行われる。
(3) r.surf.*** でsurface データを作る。
v.surf.rst in=mean_new_annual_prec elev=elev_prec_rst zcolumn=mean
or
v.surf.idw in=mean_new_annual_prec elev=elev_prec_idw zcolumn=mean
降水量データに関しては、経験上、r.surf.idw よりもr.surf.rstの方が
見栄えの良い結果が出てきます。
(4) r.contour で等降水量線の作成。
r.contour in=prec_line out=precipitation_idw step=250
or
r.contour in=prec_line out=precipitation_rst step=250
等値線の間隔は250mm/yearの方がいいと思います。
ほかには
r.contour in=*** out=*** minlevel=*** maxlevel=*** step=***
結果は以下の通りです
precipitation_idw
precipitation_rst
今回はここまでになります。
お疲れ様でした。
最終更新:2011年04月12日 13:06