IT pass HikiWiki - [itbase2020]Fortran 課題 問題 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
#このページは編集中です.
{{toc}}
= 問題
下に, 国内の電子基準点の 1997 年から 2019 年までの位置 (経度, 緯度) の
データファイルがある.
電子基準点を一地点(以上)選び, その位置の時間変化のグラフを gnuplot を用いて描きなさい. またその地点の移動速度を求めなさい.
* グラフは選んだ電子基準点の経度と緯度の時間変化を示すグラフ一つずつの合計二つとする.
* 複数地点のグラフを提出する場合にはそれぞれの地点ごとのグラフとしても良いし, 複数地点のデータを経度, 緯度ごとに重ね描きしても良い.
* また, グラフには観測データに加えて 1997 年から 2010 年の期間の経度と緯度の時間変化に最もよく合う一次関数を重ね描きすること. その一次関数は最小二乗法を用いて求めること.
* 描くグラフには必ず軸の名称を付けること.
作成したグラフと位置の時間変化に合う一次関数を求めるプログラムを提出すること. 計算して得られた移動速度はメール本文に記載しなさい. 移動速度は 3 桁まで求めればよく, その単位は m/year とする.
== データ
=== データファイル
((<[筑紫野]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Chikushino.txt>)),
((<[美東]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Mitou.txt>)),
((<[広島1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Hiroshima1.txt>)),
((<[倉敷1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Kurashiki1.txt>)),
((<[神戸中央]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_KobeChuo.txt>)),
((<[京都伏見]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_KyotoFushimi.txt>)),
((<[名古屋]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Nagoya.txt>)),
((<[静岡3]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Shizuoka3.txt>)),
((<[千葉市川]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_ChibaIchikawa.txt>)),
((<[水戸]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Mito.txt>)),
((<[福島]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Fukushima.txt>)),
((<[利府]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Rifu.txt>)),
((<[雫石]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Shizukuishi.txt>)),
((<[十和田]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Towada.txt>))
上記の名前は電子基準点の名称である.
=== 補足
* ファイルには下の数値が含まれている.
* 1 カラム目: 1997 年 1 月 1 日からの日数 (1997 年 1 月 1日が日を 1 とする)
* 2 カラム目: 年
* 3 カラム目: 月
* 4 カラム目: 日
* 5 カラム目: 電子基準点の経度 (単位は ° (degrees))
* 6 カラム目: 電子基準点の緯度 (単位は ° (degrees))
* 電子基準点のデータには欠損がある. データのない日の経度と緯度は -99999 としてある. これらのデータは計算に用いないこと.
* データは((<国土地理院電子基準点データ提供サービス|URL:https://terras.gsi.go.jp/>))より取得した.
= 結果の例
* 経度の時間変化 :
((<[その 1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_longitude_fake.pdf>)),
((<[その 2]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_longitude_fake-2.pdf>)) (縦軸の範囲を変えた図)
* 緯度の時間変化 :
((<[その 1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_latitude_fake.pdf>)),
((<[その 2]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_latitude_fake-2.pdf>)) (縦軸の範囲を変えた図)
注意: ただし, このグラフは正しい結果ではないことに注意すること.
例えば, このグラフに重ね描きしてある一次関数はデータに合っていない.
グラフの書式 (点と線, 線の色など) は上の図に倣う必要はない.
各自が見やすいと思うグラフを作成してよい.
= 補足
* 電子基準点とは, 全球測位衛星システム (Global Navigation Satellite System; GNSS) の観測点である. GPS はその一部. 詳細は((<国土地理院の解説ページ|URL:https://www.gsi.go.jp/denshi/denshi_about_GEONET-CORS.html>))を参照すること.
* 電子基準点の移動速度は本来 3 次元ベクトルであるが, ここでは水平 (東西と南北) の移動の速度のみ考えればよいことにする.
* 電子基準点の平均移動速度は, 電子基準点の経度と緯度のデータに対して最小二乗法を適用し, 最もよく合う一次関数の傾きを求めればよい.
* 今回用意したデータには, データの誤差情報 (標準偏差) は含めていないため, 最小二乗法においては各データの標準偏差はすべて 1 として扱えばよい.
* 経度と緯度の時間変化 (一次関数の傾き) と移動速度との関係は下のようになる.
((<URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/eq_gps.png>))
* 地球の半径は調べて適当な値を用いること.
* 計算する値の単位に注意すること.
* 移動速度は概ね cm/year のオーダーの値となるだろう.
# * 経度, 緯度 (単位は° (degrees)) の時間変化 (日毎の変化) に合う一次関数の傾きの単位は, °/日 (degrees/day) となるだろう.
# この値の単位を m/year に変換するためには, まず °をラジアンに変換した上で,
# 経度と緯度の変化にそれぞれ a cosφ, a をかければよい.
# ただし, a とφはそれぞれ地球半径と緯度である.
# そして最後に時間の単位を日から年に変換すればよい.
* 電子基準点の位置は地震などの影響により不連続に変化することもある. 観測エラーもあるだろう.
そのため, 適切な前処理なく最小二乗法を適用するだけでは, 意味のある平均移動速度を求めることはできない.
しかしここではそれらの前処理は行わなくても良いものとする.
## (模範) 解答
##
## 正しいと思っている図は
## https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gnuplot.pdf
## にあります.
{{toc}}
= 問題
下に, 国内の電子基準点の 1997 年から 2019 年までの位置 (経度, 緯度) の
データファイルがある.
電子基準点を一地点(以上)選び, その位置の時間変化のグラフを gnuplot を用いて描きなさい. またその地点の移動速度を求めなさい.
* グラフは選んだ電子基準点の経度と緯度の時間変化を示すグラフ一つずつの合計二つとする.
* 複数地点のグラフを提出する場合にはそれぞれの地点ごとのグラフとしても良いし, 複数地点のデータを経度, 緯度ごとに重ね描きしても良い.
* また, グラフには観測データに加えて 1997 年から 2010 年の期間の経度と緯度の時間変化に最もよく合う一次関数を重ね描きすること. その一次関数は最小二乗法を用いて求めること.
* 描くグラフには必ず軸の名称を付けること.
作成したグラフと位置の時間変化に合う一次関数を求めるプログラムを提出すること. 計算して得られた移動速度はメール本文に記載しなさい. 移動速度は 3 桁まで求めればよく, その単位は m/year とする.
== データ
=== データファイル
((<[筑紫野]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Chikushino.txt>)),
((<[美東]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Mitou.txt>)),
((<[広島1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Hiroshima1.txt>)),
((<[倉敷1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Kurashiki1.txt>)),
((<[神戸中央]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_KobeChuo.txt>)),
((<[京都伏見]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_KyotoFushimi.txt>)),
((<[名古屋]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Nagoya.txt>)),
((<[静岡3]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Shizuoka3.txt>)),
((<[千葉市川]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_ChibaIchikawa.txt>)),
((<[水戸]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Mito.txt>)),
((<[福島]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Fukushima.txt>)),
((<[利府]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Rifu.txt>)),
((<[雫石]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Shizukuishi.txt>)),
((<[十和田]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/data_Towada.txt>))
上記の名前は電子基準点の名称である.
=== 補足
* ファイルには下の数値が含まれている.
* 1 カラム目: 1997 年 1 月 1 日からの日数 (1997 年 1 月 1
* 2 カラム目: 年
* 3 カラム目: 月
* 4 カラム目: 日
* 5 カラム目: 電子基準点の経度 (単位は ° (degrees))
* 6 カラム目: 電子基準点の緯度 (単位は ° (degrees))
* 電子基準点のデータには欠損がある. データのない日の経度と緯度は -99999 としてある. これらのデータは計算に用いないこと.
* データは((<国土地理院電子基準点データ提供サービス|URL:https://terras.gsi.go.jp/>))より取得した.
= 結果の例
* 経度の時間変化 :
((<[その 1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_longitude_fake.pdf>)),
((<[その 2]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_longitude_fake-2.pdf>)) (縦軸の範囲を変えた図)
* 緯度の時間変化 :
((<[その 1]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_latitude_fake.pdf>)),
((<[その 2]|URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gps_latitude_fake-2.pdf>)) (縦軸の範囲を変えた図)
注意: ただし, このグラフは正しい結果ではないことに注意すること.
例えば, このグラフに重ね描きしてある一次関数はデータに合っていない.
グラフの書式 (点と線, 線の色など) は上の図に倣う必要はない.
各自が見やすいと思うグラフを作成してよい.
= 補足
* 電子基準点とは, 全球測位衛星システム (Global Navigation Satellite System; GNSS) の観測点である. GPS はその一部. 詳細は((<国土地理院の解説ページ|URL:https://www.gsi.go.jp/denshi/denshi_about_GEONET-CORS.html>))を参照すること.
* 電子基準点の移動速度は本来 3 次元ベクトルであるが, ここでは水平 (東西と南北) の移動の速度のみ考えればよいことにする.
* 電子基準点の平均移動速度は, 電子基準点の経度と緯度のデータに対して最小二乗法を適用し, 最もよく合う一次関数の傾きを求めればよい.
* 今回用意したデータには, データの誤差情報 (標準偏差) は含めていないため, 最小二乗法においては各データの標準偏差はすべて 1 として扱えばよい.
* 経度と緯度の時間変化 (一次関数の傾き) と移動速度との関係は下のようになる.
((<URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/eq_gps.png>))
* 地球の半径は調べて適当な値を用いること.
* 計算する値の単位に注意すること.
* 移動速度は概ね cm/year のオーダーの値となるだろう.
# * 経度, 緯度 (単位は° (degrees)) の時間変化 (日毎の変化) に合う一次関数の傾きの単位は, °/日 (degrees/day) となるだろう.
# この値の単位を m/year に変換するためには, まず °をラジアンに変換した上で,
# 経度と緯度の変化にそれぞれ a cosφ, a をかければよい.
# ただし, a とφはそれぞれ地球半径と緯度である.
# そして最後に時間の単位を日から年に変換すればよい.
* 電子基準点の位置は地震などの影響により不連続に変化することもある. 観測エラーもあるだろう.
そのため, 適切な前処理なく最小二乗法を適用するだけでは, 意味のある平均移動速度を求めることはできない.
しかしここではそれらの前処理は行わなくても良いものとする.
## (模範) 解答
##
## 正しいと思っている図は
## https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2020/kadai1/gnuplot.pdf
## にあります.