GPS使用マニュアル.

Slides:



Advertisements
Similar presentations
プログラミング演習 II 2005 年 1 月 19 日(第 9 回) 理学部数学科・木村巌. 前回までの復習 共用体( union type ) 共用体( union type ) 列挙 (enumerated type ) 列挙 (enumerated type ) 構造体、構造体のポインタ、
Advertisements

コーパス言語学実践 2006 年度 2 学期 第 9 回. 2 本日の内容 これまでと同様の作業 – プログラムで処理するケースの紹介.
P HI T S PSFC4PHITS の使い方 Multi-Purpose Particle and Heavy Ion Transport code System Title 年 2 月改訂.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
情報処理演習C2 ファイル操作について (2).
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
数個、数十個のデータ点から その特徴をつかむ
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
第13回 プログラミングⅡ 第13回
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
第2回 Microsoft Visual Studio C++ を使ってみよう
アーランの即時式モデル.
ニュートン法の解の計算 情報電子工学系学科 電気電子工学コース・情報通信システム工学コース
Cプログラミング演習 中間まとめ2.
Cプログラミング演習 第6回 ファイル処理と配列.
プログラミング 2 ファイル処理.
プログラミング論 ファイル入出力
第1回.リレーショナルデータベースを使ってみよう
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
Cプログラミング演習.
第10回関数 Ⅱ (ローカル変数とスコープ).
MATLAB測位プログラミングの 基礎とGT (2)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
プログラミング演習I 2003年6月25日(第10回) 木村巌.
プログラミング論 ファイル処理 (中級編)
最小自乗法.
プログラミング論 ファイル入出力
アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」
Multi-Purpose Particle and Heavy Ion Transport code System
Cの実行モデル.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
UNIX演習 情報ネットワーク特論.
PADのテンプレート 処理、連接 x0 ← x x ← x0+ u(x0) err ← |x - x0| 判断(選択) x2 ← x3
PADのテンプレート 処理、連接 x0 ← x x ← x0+ u(x0) err ← |x - x0| 判断(選択) x2 ← x3
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
第4回 ファイル入出力方法.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
Cプログラミング演習資料.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
プログラミング序論演習.
ファイルの読み込み #!/usr/bin/env perl #Perlスクリプトの指定 open(FILE, "food.txt");
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング入門 第12回 情報工学科 篠埜 功.
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
ファイル操作について (1).
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
モジュール分割.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
C言語プログラミング・課題 ファイルを読み込んで、その内容を表示するプログラムを作成せよ。
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
Cプログラミング演習資料.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
第4回 配列.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
PADのテンプレート 処理、連接 x0 ← x x ← x0+ u(x0) err ← |x - x0| 判断(選択) x2 ← x3
第5回 配列.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

GPS使用マニュアル

使用するPC 二宮机の隣にあるPCを使用 アカウントは個人用つくってもらうこと 管理者は二宮

モジュールのデータをすいあげる GPSBabelを使用 具体的な使い方は次ページの使用している画面と Helpを参照すること http://www.gpsbabel.org/ 具体的な使い方は次ページの使用している画面と Helpを参照すること 使用するデバイスはその都度かわるので、動かないときは別のCOM番号を試すこと。 GPSモジュールは2個あるので、別々のファイル名でデータを吸い上げること(例 GPS1, GPS2)

データの処理 吸い上げたデータはVMWARE上のLINUXのPerlとROOTで処理します。 VMWAREをたちあげ、LINUXをたちあげる Windows上と同じようにファイルを選択して、ドラッグして、ファイルを移動させる 移動させたファイルをLINUX上で中身を確認すること NMEフォーマットhttp://www.gpscompass.jp/info.html Perl で変換 perl conv.pl 入力ファイル名 > 出力ファイル名 conv.plの中身は次ページ 中でなにをやっているか理解しておくこと 出力ファイルはWGS84座標 2個のGPSファイルを変換 出力ファイル名は GPS1.txt GPS2.txt にすること ROOTを使って処理 マクロは t.Cを使ってntupleを作成 Ntupleの使い方は 猫ROOT、猿ROOT等の日本語ドキュメントを参照 VMWARE,LINUX、ROOT等については二宮君にきいてください。 LINUX, C++については3年実験で習得しているともと仮定して話を

conv.pl @Lines = <FILE>; close(FILE); $a = 6378137; $e2 = 2*$f - $f*$f; foreach $line ( @Lines ){ if ( $line =~ /GPGGA/ ){ @par = split( /,/, $line ); ($time, $phi, $rammda, $h ) = ($par[1], $par[2], $par[4], $par[9] ); # print "$time $phi $rammda $h\n"; $p = $phi; $r = $rammda; $pdeg = int($p/100); $pmin = $p - $pdeg*100; # print ("$pdeg $pmin\n"); $p = ($pdeg + $pmin/60.0 ) / 180.0* 2*3.1415926535; $phi = $p; $rdeg = int($r/100); $rmin = $r - $rdeg*100; # print ("$rdeg $rmin\n"); $r = ($rdeg + $rmin/60.0 ) / 180.0* 2*3.1415926535; $rammda = $r; # print ( "$time $phi $rammda $h \n"); print ( "$time $pdeg $pmin $rdeg $rmin $h \n"); $N = $a/sqrt( 1.0- $e2*sin($rammda)*sin($rammda) ); $x = ($N+$h)*cos($phi)*cos($rammda); $y = ($N+$h)*cos($phi)*sin($rammda); $z = ($N*(1.0-$e2)+$h)*sin($phi); # print "$time $x $y $z\n"; } conv.pl

#define ASIZE 3600 { FILE *fp; double clock, pdeg, pmin, rdeg, rmin, h; double phi, rammda; double PI = 3. 14159265358979323846; double a = 6378137.0; double f = 1.0/298.257223563; double e2 = 2.0*f + f*f; double x, y,z; double N; int t1[ASIZE], t2[ASIZE]; double x1[ASIZE], y1[ASIZE], z1[ASIZE]; double x2[ASIZE], y2[ASIZE], z2[ASIZE]; int id1, id2; id1=0; id2=0; fp = fopen( "GPS1.txt","r"); if ( fp == NULL ) { print ("file not opened \n"); exit(-1); } while ( fscanf( fp, "%lf %lf %lf %lf %lf %lf", &clock, &pdeg, &pmin, &rdeg, &rmin, &h ) !=EOF ){ //printf ( "%f %f %f %f %f\n", clock, pdeg, pmin, rdeg,rmin, h ); phi = (pdeg + pmin/60.0) /180.0 * PI; rammda = (rdeg + rmin/60.0) /180.0 * PI; // printf ( "%24.10f %f \n", phi, rammda ); N = a/sqrt( 1.0- e2*sin( phi) *sin(phi)); x = (N+h)*cos(phi) *sin(rammda); y = (N+h)*cos(phi) * cos(rammda); z = (N*(1-e2))*sin(phi); t.c

printf( "%f %f %f %f \n", clock, x,y,z ); t1[id1] = int( clock); x1[id1] = x; y1[id1] = y; z1[id1] = z; id1++; } fclose( fp ); fp = fopen( "GPS2.txt","r"); if ( fp == NULL ) { print ("file not opened \n"); exit(-1); while ( fscanf( fp, "%lf %lf %lf %lf %lf %lf", &clock, &pdeg, &pmin, &rdeg, &rmin, &h ) !=EOF ){ //printf ( "%f %f %f %f %f\n", clock, pdeg, pmin, rdeg,rmin, h ); phi = (pdeg + pmin/60.0) /180.0 * PI; rammda = (rdeg + rmin/60.0) /180.0 * PI; // printf ( "%24.10f %f \n", phi, rammda ); N = a/sqrt( 1.0- e2*sin( phi) *sin(phi)); x = (N+h)*cos(phi) *sin(rammda); y = (N+h)*cos(phi) * cos(rammda); z = (N*(1-e2))*sin(phi); t2[id2] = int( clock); x2[id2] = x; y2[id2] = y; z2[id2] = z; id2++;

ntu = new TNtuple("ntu","ntu","t:x1:y1:z1:x2:y2:z2"); int i1, i2; for ( i1=0; i1<id2; i1++ ){ for ( i2=0; i2<id1; i2++ ){ if ( t1[i1] == t2[i2] ){ printf( "t1[i1] \n"); ntu->Fill( t1[i1], x1[i1], y1[i1], z1[i1], x2[i2], y2[i2], z2[i2] ); } exit;