IRAFを触ったことがある プログラミングをかじったことがある (Pythonでなくてもよい) 日程進行状況によって変更することもあります 1 日目 13:00-13:30 受付 13:30 - 講習開始世話人の話 ( 計算機の説明ほか ) 13:40-17:00 ( 演習と休憩をはさみながら )
|
|
|
- みさえ ありはら
- 7 years ago
- Views:
Transcription
1 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights Branch: master adc2017python2 / README.md Find file Copy path yas-nakajima Update README.md 74b44be 23 hours ago 1 contributor 68 lines (50 sloc) 5.88 KB Raw Blame History Python+Jupyter notebook による光赤外天文データ解析入門 (2017 年 2 回目 ) IRAFなどでFITSのデータ処理を行い Rなどで統計処理を行い Gnuplotなどで描画する それらの手順を手書きのノートやPCのファイルに書き留める ( あるいは記憶しておくつもりでどんどん忘れていく ) インタラクティブにも行うし スクリプトで一括処理をすることもある これらをPython+Jupyter notebookのエコシステムにまとめてみませんか? その一歩あるいは数歩を踏み出すための講習会です 開催日 : 2017 年 8 月 24 日 ( 木 )-25 日 ( 金 ) 場所 : 国立天文台三鷹キャンパス南棟 2 階共同利用室内容 : Python+Jupyter notebookを用いての光赤外データ ( 撮像 ) 解析の初歩 2017 年 7 月に行った1 回目の内容より変更しています ( より初心者むけ + 演習の時間をより多く ) - 今回の講習を受けたのちに1 回目の資料 ( を自習することでステップアップできます 概要 : Jupyter notebookの使い方 PythonからIRAFを使う方法 Numpy astropy.io.fits matplotlibなどデータ処理に必要な Pythonモジュールの基本を講習し PyRAFの使い方 撮像データのアパーチャ測光 そのデータ整理 可視化を実習する 対話的なコマンドの使い方からPythonプログラミングの基本までを習得する 対象 : データ処理初心者 資料 (Jupyter notebook 形式のファイル ) をこのサイトで公開しています この内容であれば講習を受けてみたいと思う人なら 学部生からシニアまで誰でも githubの.ipynbファイルのリンクをクリックするとブラウザで閲覧可能 ここの上部のWikiのリンクにjupyter notebookの使い方などの補足説明もあります 講習までに多少の修正 加筆がありますが 本質的な内容に大きく変更はありません この手のものに慣れている人はこの資料だけで自習できちゃうかもしれませんね どうぞご利用ください 必須 Linux/UNIX(Macを含む ) のOSでの基本的な操作 ( ターミナルを開く アプリを立ち上げる...) が可能である Linux/UNIX(Macを含む ) のコマンドラインで ls, cd, more(less), cp, rm, mkdir くらいはできる テキストエディタが使える 望ましい経験など
2 IRAFを触ったことがある プログラミングをかじったことがある (Pythonでなくてもよい) 日程進行状況によって変更することもあります 1 日目 13:00-13:30 受付 13:30 - 講習開始世話人の話 ( 計算機の説明ほか ) 13:40-17:00 ( 演習と休憩をはさみながら ) Jupyter notebookの使いかた IRAF(PyRAF) 基本 PyRAFでのアパーチャ測光 2 日目 9:30-11:30 ( 演習と休憩をはさみながら ) Numpy 基本 astropy.io.fits 基本 13:00-14:30 ( 演習と休憩をはさみながら ) matplotlib 基本 scriptにまとめる等 14:30-17:00 予備 相談相談とは自分の環境へのインストールに困っているこういうデータ処理 解析をPythonを用いて行いたいが どうしたら良いか? 端末 : 基本的に天文データセンターの端末 (Linux) を使用する 持ち込みノートPCで実習も可 その場合にはあらかじめ必要なソフトをインストールしておくこと Python(3.5), Jupyter notebook, IRAF, PyRAF, Numpy, astropy, matplotlib, ds9 補足 : スタータパック Pythonには多くのライブラリが用意されています 数値計算 データ可視化をはじめ データベース 機械学習など様々なものが利用できます 天文関係だけにしぼったとしても さあ Pythonで天文データ処理を始めよう と思った場合に どれを使えばよいのか どこから始めればよいのか 迷ってしまいます この講習会では光赤外データ ( 撮像 ) 用の スタータパック を提案します 対話的処理とスクリプトによる処理この講習会では ユーザインタフェースとしてJupyter notebookを使い インタラクティブ ( 対話的 ) な処理を通じて処理方法を学びます インタラクティブといっても Jupyter notebookでは一行のコマンド ( でもできますが ) というよりも数行のコマンドからなるCellという単位で処理の入力を行います Cellの中では forループやif 文 関数定義などを使ったプログラミングを行います 対話的に試行錯誤しながら作成したCellを後からまとめてやり.pyという拡張子をもつテキストファイルに保存してやれば 独立したPythonプログラム ( スクリプト ) が出来上がります 対話的なコマンドの使い方だけではなく Pythonプログラミングの基本も学ぶことになります 書き残し共有する Jupyter notebookはユーザインタフェース以上の役割があります Jupyter notebookで行った対話的な処理 ( 入力と出力 ) はファイルとして保存することが可能です メモやコメントも (TeX 形式で数式も ) その中に書き込んで残すことも可能です 日々のデータ処理 解析の足跡をファイルに残しておくことができます データ処理の手順や使ったパラメータなどを未来の自分のために残す 共同研究者あるいは同分野の人たちと情報を共有する そのための強力なツールになります
3
4
5 course0_python 講習 Python と notebook この講習資料の使い方の説明を兼ねて Python のインデントとモジュールの解説 および notebook の変数読み込みについて解説します Python のインデントとモジュール C 言語などの他のプログラミング言語の経験があれば Python の習得は簡単です ただし いくつか Python に特徴的な事項があります 一番顕著なのは インデント ( 字下げ ) が意味を持つということでしょう for ループの構造を紹介しながら説明します もう一つは モジュールの import とモジュール内の関数の使い方です インデント for ループ C 言語と比べるとずいぶん勝手がちがいます 1. インデントされたブロックが 繰り返される部分です 2. リストの各要素を順番に繰り返し変数に代入して使います In [1]: for i in [0,1,2,3]: print (i) In [2]: sum = 0 for i in range(6): # range() 関数は0から引数の一つ前までの整数を順に返す print (i) sum += i print (sum) モジュールと関数 標準の組み込み関数 (print() range() open() など ) をのぞいて 関数を使用する際には 親となるモジュールを import する必要があります math モジュールの sqrt() 関数を使う場合には次のようにします 1 of 2
6 course0_python In [3]: import math In [4]: math.sqrt(30) Out[4]: を の と読んで math( モジュール ). ( の ) sqrt() とコマンドします In [5]: math.pi Out[5]: In [6]: a = math.e In [7]: print (a) 関数だけではなく 定数も含まれています notebook の変数の読み込み この ipynb ファイルを開いてすぐに このすぐ上の print(a) のセルを実行 ([Shift]+[enter]) してみてください エラーがでます a なんて定義されていない と言われちゃいます ファイルを開いただけでは.ipynb の中の文字列が表示されただけなのです 変数の読み込み モジュールの import などはちゃんと実行してやらないといけません 講習では 話を聞きながら 資料をなぞる感じで 一つづつ Cell を実行していってはいかがでしょうか? 面倒な場合には 上部のメニューバーの Cell > Run All を選ぶと ノートブック内の Cell が上から順番に全て実行されます ただし 講習 1 では ds9 を立ち上げて そこに画像を表示させて という対話的な部分があるので そのような場合には Run All は途中で止まってしまいます 2 of 2
7 course1_iraf_1 講習 IRAF を使ってみる 旧来の IRAF の操作は ターミナルから CL コマンドラインを使って対話的に行うものです この対話的な操作を python + Jupyter notebook を使っても行うことができます ここでは IRAF の基本的なタスク display, imexam, imstat を使ってみます pyraf のための準備 python から IRAF を使うには pyraf を利用します pyraf を ( 便利に ) 使うためには ホームディレクトリに iraf というディレクトリを作成そのディレクトリ内で mkiraf を実行し login.cl を作成必要に応じてその login.cl を編集 ( 今回のサンプルデータの場合 26 行目あたりの '#set stdimage = imt800' を 'set stdimage = imt4096' にしておくとよいでしょう 冒頭の # を取り除き 800 を 4096 に ) をしておきます こうしておくと login.cl での設定が pyraf 利用時に反映されます また ~/iraf/uparm/ に各タスク (imexam, imstat など ) のパラメータが保存されます 補足 : ~/.iraf/login.cl がある場合には そちらの設定が使用されます 自分のホームディレクトリに IRAF をローカルインストールした場合 ~/.iraf というディレクトリが作成されます ~/iraf/login.cl を編集したのに それが反映されない場合は ~/.iraf/login.cl を調べてみてください モジュールの読み込み In [1]: from pyraf import iraf これで iraf のタスクを python で関数として使うことができます (IRAF の外部パッケージ stsdas がきちんとインストールされていない場合 'Warning : sscanf library not installed on... ' がでます とりあえず無視してください ) 1 of 5
8 course1_iraf_1 サンプルデータ サンプルデータとして すばる Suprime Cam で取得したデータを使います (SMOKA で公開されているデータです ) 同じディレクトリの data1 および data2 の中の FITS ファイルです この講習では の観測データの一部を利用します フィルターは B バンドで ドームフラットおよび二種類のターゲットの生データです Suprime Cam は 10 枚の CCD から成ります ファイル名 ( 拡張子除く ) の末尾の数字が CCD の番号を示しています data1 には 5 番フレーム data2 には 2 番フレームのデータがあります 例えば data1/supa fits と data2/supa fits は同じ積分のそれぞれ 5 番フレームと 2 番フレームのデータです 講習のなかでは主に 5 番フレームを用いて説明をします 演習の中で 2 番フレームを使うことがあります FITSファイル OBJECT フィルター積分時間 ( 秒 ) data1/supa003175[0-6]5.fits ドームフラット B 10 data1/supa fits target1 B 10 data1/supa fits target2 B 30 data2/supa003175[0-6]2.fits ドームフラット B 10 data2/supa fits target1 B 10 data2/supa fits target2 B 30 <img src='./img/supa x.png', width='500'> Unix コマンド Unix コマンドを使い カレントディレクトリおよびその中身を確認することができます In [2]: Out[2]: pwd '/Users/nakajima/git/adc2017python2' In [3]: ls data1 SUPA fits SUPA fits SUPA fits SUPA fits SUPA fits SUPA fits SUPA fits SUPA fits SUPA fits いくつかの Unix コマンドは このように jupyter notebook で直接使えます 使えないものもあります その場合! を冒頭につけて使用してやります In [6]:! date 2017 年 8 月 21 日月曜日 10 時 01 分 36 秒 JST それでは IRAF のコマンド display, imexam, imstat を使って それらファイルの表示やデータの吟味 統計量の測定をしてみましょう 2 of 5
9 course1_iraf_1 DS9 に FITS データを表示してみる 別のターミナルから ds9 を立ち上げておきます iraf モジュールの display() 関数を使い 引数としてファイルを指定します target1 の 5 番フレームを表示してみます In [7]: iraf.display('data1/supa fits') z1= z2= ds9 に 星がいくつか写っている視野が表示されましたね (FAQ ~/iraf/login.cl で set stdimage = imt800 のままだと視野の中心付近の 800x800 の領域しか表示されません ) imexam ds9 に FITS 画像を表示した状態で 次のコマンドを実行し マウスカーソルを 星のないところにあてて m あるいは星にあてて a や r をタイプしてみましょう 終わるときには q をタイプしてください m は カウスカーソルを当てた部分の 5x5 ピクセルの範囲のカウント値の統計を表示します バックグラウンドの値 ばらつきなどを調べるときに使います a は 星 ( 点光源 ) の特徴量 ( ピーク値 fwhm など ) を表示します r は 星の radial profile を表示します 星がサチっていれば一目でわかります In [8]: iraf.imexam() # SECTION NPIX MEAN MEDIAN STDDEV MIN MAX [1170:1174,1963:1967] # COL LINE COORDINATES # R MAG FLUX SKY PEAK E PA BETA ENCLOSED MOFFAT DIRECT imexam では r とか e コマンドを使うとさらに別のグラフィックウィンドウが現れます ブラウザとかの後ろに隠れているかもしれません imstat FITS 画像の統計量を調べるタスク imstat を使ってみましょう In [9]: iraf.imstat.unlearn() # パラメータをデフォルト値に In [10]: iraf.imstat('data1/supa fits') # IMAGE NPIX MEAN STDDEV MIN MAX data1/supa fits of 5
10 course1_iraf_1 epar でパラメータ設定 iraf.epar(' タスク名 ') で パラメータ設定の画面が別ウィンドウで開きます GUI でパラメータ設定ができます ( MacOS Sierra + Python Jupyter Notebook では iraf.epar('display') などで UnicodeDecodeError が生じる ) In [11]: iraf.epar('imstat') Task imstatistics is running... # MIDPT MEAN STDDEV このように GUI でもパラメータ設定ができるのですが ここでは次の方法をおすすめします 変数としてパラメータ設定 Cell でタスクの変数にパラメータを代入してやります この方法だと 使ったパラメータがこのノートブックに残るので あとになって この処理でどんなパラメータ使ったっけ? となったときに助けになります In [12]: iraf.imstat.fields = 'midpt, mean, stddev' iraf.imstat.lower = 9950 iraf.imstat.upper = In [13]: iraf.imstat('data1/supa fits') # MIDPT MEAN STDDEV どんな値がパラメータに入っているかを確認するには それを print() してやればよいです In [14]: print (iraf.imstat.fields) midpt, mean, stddev 結果の値を変数へ 上では imstat() の結果が標準出力に表示されました それぞれの値を変数に保存するには次のようにします 4 of 5
11 course1_iraf_1 In [15]: out = iraf.imstat('data1/supa fits', format='no', Stdout=1) # format='no' でヘッダ行非表示 Stdout=1 で戻り値を返す v = out[0].split() # 戻り値はリスト median = float(v[0]) # 文字列をfloatに変換しておく mean = float(v[1]) stddev = float(v[2]) print (median) print (mean) print (stddev) print (median + 3 * stddev) # float に変換しておかないとここでおかしなことになる デフォルトでは Stdout=0 なので標準出力に値が返ります 戻り値を変数として返す場合には Stdout=1 とします help ドキュメント このノートブック内で help を読むこともできます help の表示が縦に長すぎる場合 左の余白部分 (In[]: の下あたり ) をクリックするとスクロールバーつきウインドウ表示になります ( 私の環境でブラウザ Chrome の場合にはデフォルトでスクロールバー表示されます ) In [16]: #iraf.help('imstat') # Github では表示が長くなってしまうのでコメントアウトしておきます 演習 1 data1/supa fits は target2 の生データです 新しいノートブックファイルを作成し 1. imexam でバックグラウンドの値とばらつき 星の特徴量 を調べる 2. imstat でカウント値の median, mean, standard deviation を求める 3. imstat の nclip を 2 以上にしてみてください どうなりましたか? 5 of 5
12 course2_iraf_2 講習 IRAF で 1 次処理 IRAF のタスクを使って 1 次処理 ( 生データからバイアスを引き それをフラットで割る ) を行ってみましょう ここでは IRAF の基本タスク imarith, imcombine を使います ドームフラットでターゲットのフレームをフラット処理する ( 簡易版 ) 講習 1 で扱った './data1/supa fits' は target1 を観測した生データです これを バイアス値を引いたあとに フラットで割ることで CCD の感度ムラと光学系の透過率のムラを補正します 視野全体で一様な強度で光っている ( と考えている ) ものを観測してフラットを作成します ( 最近の )CCD ではダークを生データから引くことはしません ( 地上観測の近赤外アレイでは ダークを引いてフラットで割り スカイバイアスを引くという処理が必要になります ) まず このフラットを作成する必要があります ドームフラットの生データからバイアス値を引いたのちに規格化 ( メジアン値で割る ) してフラットを作成します もし CCD の感度ムラがなく 光学系の透過率も完全に一様であれば フラットは全てのピクセルで 1.0 の値をもちます でもそんなことはまずあり得ません 通常は複数のフラットの平均から より尤もらしいフラットを作成します 下ではまず ドームフラット 1 枚だけからフラット作成します imstat と imarith を使用します 次に ドームフラット 7 枚からフラット作成します imcombine を使用します ドームフラット 1 枚だけを使う './data1/supa fits' はドームフラットの B バンドの生データです CCD のフレームには 観測した光に加えて X 方向に一様なバイアス値が加算されています この簡易版の処理では そのバイアス値が Y 方向にも一様として処理をします ( のちに Y 方向の依存も考慮に入れた手法を紹介します ) そのバイアス値をオーバースキャン領域から推定します Suprime Cam の 5 番フレームでは 2049 列目あたりから右側がオーバースキャン領域です In [2]: from pyraf import iraf In [3]: iraf.unlearn('imstat') iraf.imstat.fields = 'midpt, mean, stddev' iraf.imstat.nclip = 3 In [4]: iraf.imstat('./data1/supa fits[2049:2080, *]') # MIDPT MEAN STDDEV ドームフラットの光があたっている部分のメジアンを求めておきます In [5]: iraf.imstat('./data1/supa fits[1:2048, *]') # MIDPT MEAN STDDEV imarith の出番です バイアス値を引いてから メジアン値で規格化してフラットを作成しましょう In [6]: iraf.imarith('./data1/supa fits', '-', 9984, 'bflatn5a.fits') iraf.imarith('bflatn5a.fits', '/', 8949, 'bflatn5a.fits') # = of 6
13 course2_iraf_2 このフラットでターゲットの生データを割ります このときも まず 生データからバイアス値を引きます In [7]: iraf.imstat('./data1/supa fits[2049:2080, *]') # MIDPT MEAN STDDEV In [8]: iraf.imarith('./data1/supa fits', '-', 9989, 'btarget1n5a.fits') iraf.imarith('btarget1n5a.fits', '/', 'bflatn5a.fits', 'btarget1n5a.fits') これでできました btarget1n5a.fits を ds9 で表示して確かめてみましょう ドームフラット 7 枚を使う iraf.imcombine の出番です './data1/supa003175[0-6]5.fits' は B バンドのドームフラットです In [9]: import glob # python の組み込みモジュール ワイルドカードを使ったファイル処理など In [10]: flist = glob.glob('./data1/supa003175[0-6]5.fits') In [11]: print(flist) ['./data1/supa fits', './data1/supa fits', './data1/supa fits', './data1/supa fits', './data1/supa fits', './data1/sup A fits', './data1/supa fits'] for ループを使って このリストからファイルを一つづつ imstat に入力します In [12]: for img in flist: iraf.imstat(img + '[2049:2080, *]') # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV # MIDPT MEAN STDDEV 上では glob.glob で抽出したリストをいったん変数に代入しましたが 以下のように直接 for ループに入れても大丈夫です 2 of 6
14 course2_iraf_2 In [13]: iraf.imstat.fields = 'midpt' # どうせメジアンしか使わない for img in glob.glob('./data1/supa003175[0-6]5.fits'): out1 = iraf.imstat(img + '[2049:2080, *]', format='no', Stdout=1) out2 = iraf.imstat(img + '[1:2048, *]', format='no', Stdout=1) print (out1, out2) [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] [' '] out1, out2 は それぞれ 1 つしか要素を持たないリストとして得られました 下のように リストの最初の要素を抽出することで値を得ることができます ただし 文字列です In [14]: Out[14]: out1[0] ' ' float() 関数で数値 ( 浮動小数点数 ) に変換してやります In [15]: float(out1[0]) Out[15]: それでは 各ドームフラットからフラットを作成し それらをメジアンでコンバインします 3 of 6
15 course2_iraf_2 In [16]: iraf.imstat.fields = 'midpt' num = 0 comstr = '' for img in glob.glob('./data1/supa003175[0-6]5.fits'): out1 = iraf.imstat(img + '[2049:2080, *]', format='no', Stdout=1) # オーバースキャン領域 out2 = iraf.imstat(img + '[1:2048, *]', format='no', Stdout=1) # 光のあたってる領域 med1 = float(out1[0]) # 文字列を数値に変換 med2 = float(out2[0]) nflat = 'tmp' + str(num) + '.fits' # それぞれのフラットを作成 iraf.imarith(img, '-', med1, nflat) # バイアス値をひく iraf.imarith(nflat, '/', med2 - med1, nflat) # バイアスを考慮して規格化 num += 1 comstr += nflat + ',' # imcombine の引数として与えるための文字列 print (comstr) 示 # なぜ下で comstr[:-1] と 末尾の一文字を削除するか理解するためにあえて表 iraf.imcombine(comstr[:-1], 'bflatn5.fits', combine='median') iraf.imdelete(comstr[:-1]) # 中間ファイルを削除 お掃除お掃除 tmp0.fits,tmp1.fits,tmp2.fits,tmp3.fits,tmp4.fits,tmp5.fits,tmp6.fits, Aug 21 13:22: IMCOMBINE combine = median, scale = none, zero = none, weight = none blank = 0. Images tmp0.fits tmp1.fits tmp2.fits tmp3.fits tmp4.fits tmp5.fits tmp6.fits Output image = bflatn5.fits, ncombine = 7 これでドームフラットを 7 枚使ったフラットができました 生データをこれで処理してやります In [17]: iraf.imarith('./data1/supa fits', '-', 9989, 'btarget1n5.fits') iraf.imarith('btarget1n5.fits', '/', 'bflatn5.fits', 'btarget1n5.fits') 4 of 6
16 course2_iraf_2 演習 別ターゲット target2 を観測した './data1/supa fits' について バイアス引き + フラット割りの処理をしましょう これは 5 番フレームです フィルターも同じ B バンドなので フラット割りには 'bflatn5.fits' が使えます この結果のフレームを 'btarget2n5.fits' と呼ぶことにします ( 後の演習で利用します ) 2-2. './data1/supa fits' と同じ観測の 2 番フレームの生データ './data2/supa fits' について バイアス引き + フラット割りの処理をしましょう 先ほどの 5 番フレームとは違い これは 2 番フレームなので 2 番フレームのためのフラットを作成する必要があります (1) './data2/supa fits' を規格化したものをフラットとして作成する (1 枚フラット ) (2) './data2/supa003175[0-6]2.fits' から平均のフラットを作成する (3) 上のどちらか ( あるいは両方 ) のフラットを使って バイアス引き後のフラット割りを行う 注意 : 2 番フレームはオーバースキャン領域が 5 番とは異なる 補足バイアス値の Y 方向依存も考慮に入れる 今回使用するフラットでは 0.1 x 数パーセントの違いしかありませんが Y 方向の依存も考慮に入れた方法を紹介しておきます ドームフラットのデータを 1 枚だけ使うケースを例にします iraf の blkavg を使って オーバースキャン領域の各 line の算術平均を求めます ( 本当はメジアンがよいが ) In [18]: iraf.blkavg('./data1/supa fits[2049:2080, *]', 'bias1.fits', 32, 1) bias1.fits はサイズが (1,4100) の 1 次元データです これを X 方向に 2080 倍のばします In [19]: iraf.blkrep('bias1.fits', 'bias2.fits', 2080) このバイアスを生データから引いてやります In [20]: iraf.imarith('./data1/supa fits', '-', 'bias2.fits', 'bflatn5by.fits' ) In [21]: iraf.imstat('bflatn5by.fits[1:2048, *]', fields='midpt') # MIDPT In [22]: iraf.imarith('bflatn5by.fits', '/', 8957, 'bflatn5by.fits') バイアスの Y 方向依存も考慮に入れたフラットができました 次にターゲットのフレームをフラットで割ります ここでもバイアス値の Y 方向依存を考慮にいれます 5 of 6
17 course2_iraf_2 In [23]: iraf.blkavg('./data1/supa fits[2049:2080, *]', 'bias1t.fits', 32, 1) iraf.blkrep('bias1t.fits', 'bias2t.fits', 2080) iraf.imarith('./data1/supa fits', '-', 'bias2t.fits', 'btarget1n5by.f its') iraf.imarith('btarget1n5by.fits', '/', 'bflatn5by.fits', 'btarget1n5by.fits') 6 of 6
18 course3_iraf_3 講習 星の測光 点光源の明るさを測定してみます ここでは IRAF の APPHOT を用いて アパーチャ測光を行います 準備のトリミング 講習 2 で作成した btarget1n5.fits をトリミングして オーバースキャン領域など不要な部分を除いておきます ( 左端に明るい部分が見られます これは何らかのバイアスがのっているものと思われるのでここ (25 列目まで ) も除きます ) In [1]: from pyraf import iraf In [2]: iraf.imcopy('btarget1n5.fits[25:2048, *]', 'btarget1n5trim.fits') btarget1n5.fits[25:2048,*] -> btarget1n5trim.fits パラメータ設定 iraf.apphot 関連のタスクのためのパラメータを適切に設定する必要があります 準備 星のサイズ (fwhm) を求めておく背景のレベルとばらつきをもとめておく ds9 を立ち上げておき iraf.display と iraf.imexam で星の fwhm を調べておきます このあとの作業では 'btarget1n5trim.fits' に対して繰り返し処理をおこなうので In [3]: targetfits = 'btarget1n5trim.fits' とファイル名を変数に代入しておきます In [4]: iraf.display(targetfits) z1= z2= In [5]: iraf.imexam() # COL LINE COORDINATES # R MAG FLUX SKY PEAK E PA BETA ENCLOSED MOFFAT DIRECT of 6
19 course3_iraf_3 fwhm=7.0 pixel としておきます 次に背景の median とノイズの評価をします In [6]: iraf.unlearn('imstat') iraf.imstat.fields = 'midpt, mean, stddev' iraf.imstat.nclip = 3 In [7]: iraf.imstat(targetfits) # MIDPT MEAN STDDEV メジアンは 69 でノイズは 7.4 とします パラメータの設定 apphot モジュールを import します In [8]: from iraf import apphot login.cl の記載内容によっては from iraf import noao from iraf import digiphot も必要かもしれません 次に 測光に必要なパラメータを設定します パラメータ設定の参考にした文献は "A Reference Guide to the IRAF/DAOPHOT Package" です ( からダウンロード (daorefman.pdf) できます 2 of 6
20 course3_iraf_3 In [9]: med = 69. # 背景レベルとばらつき fwhm std = 7.4 fwhm = 7.0 iraf.apphot.unlearn() # デフォルト値に戻しておく iraf.apphot.datapars.datamax = # サチった星を数えない iraf.apphot.datapars.readnoise = 10 # 検出器に特有な値 iraf.apphot.datapars.epadu = 2.5 # 検出器に特有な値 iraf.apphot.datapars.itime = 10 # 積分時間 iraf.apphot.findpars.threshold = 7 iraf.apphot.findpars.sharphi = 0.8 # 7シグマ以上のものを検出せよ # 星っぽくないものを除くため # fwhm で決まるパラメータ iraf.apphot.datapars.fwhmpsf = fwhm iraf.apphot.centerpars.cbox = max(5.0, fwhm) iraf.apphot.fitskypars.annulus = 3 * fwhm iraf.apphot.photpars.apertures = 2 * fwhm iraf.apphot.fitskypars.dannulus = 10. # 背景のレベルとばらつきで決まるパラメータ iraf.apphot.datapars.sigma = std iraf.apphot.datapars.datamin = med - 5 * std iraf.apphot.photpars.zmag = 27 # 等級のゼロ点 # IRAF と対話的 ( 確認など ) に行わないための設定 iraf.apphot.daofind.interac = 'no' iraf.apphot.daofind.verify = 'no' iraf.apphot.phot.interactive = 'no' iraf.apphot.phot.verify = 'no' iraf.apphot.phot.verbose = 'no' まずは iraf.daofind() で星を検出させます In [10]: iraf.daofind(targetfits, output='out1.coo') どれが星として検出されたか FITS 上にプロットしてみましょう ( 線が細いので半径を 3 つ指定することで 3 つのマルを描く ) In [11]: iraf.tvmark('1', 'out1.coo', mark='circle', radii='15,16,17', color=207) In [13]: #iraf.help('tvmark') 星じゃないものも検出されちゃってますが ここでは気にせず daofind の出力の 'out.coo' を iraf.phot() に読み込ませて測光します In [14]: iraf.phot(targetfits, coords='out1.coo', output='out1.mag') 3 of 6
21 course3_iraf_3 最初の引数は 測光する対象の FITS ファイル名です coords= で読み込ませる座標ファイルの名前 output= で結果を書き出すファイル名を指定します 結果のファイルは iraf.phot() 固有の形式で書き出されています In [15]: #cat 'out1.mag' # github では長くなるのでコメントアウトしておきます 通常 必要なのは xcenter, ycenter, mag, merr です iraf.txdump() を使って それらだけを抜き出します In [16]: iraf.txdump('out1.mag', fields='xc,yc,mag,merr') INDEF INDEF INDEF INDEF INDEF INDEF INDEF なんてのもあります これは たまたまバッドピクセルが測光領域に含まれていた 視野の端である あるいは サチった星などです 測光誤差を ( 例えば )0.2 等以下のものだけに絞ることで INDEF のものも削除できます 誤検出のものもここで削除できます 4 of 6
22 course3_iraf_3 In [17]: iraf.txdump('out1.mag', fields='xc,yc,mag,merr', expr='merr<0.2') Stdout='' でファイル名を指定すると そのファイルに書き出してくれます In [18]: iraf.txdump('out1.mag', fields='xc,yc,mag,merr', expr='merr<0.2', Stdout='resu lt1.txt') これで 星の機械等級がもとまりました 5 of 6
23 course3_iraf_3 測光値の較正 ここで求まったものは 機械等級です 等級のゼロ点を適当に設定したものです どうやって本当の等級に直せば良いでしょうか 実は この視野には標準星が写っています Landolt(1992) のカタログの標準星のうち以下が写っています <img src='./img/sa104.png', width='200'> 標準星 カタログB 等級 ( エラー ) 上記結果 ( 機械等級 ) 3 列 - 2 列カタログB-V 測定回数 ( カタログ ) SA (0.029) (0.005) SA (0.006) (0.001) SA (0.010) (0.001) SA (0.010) (0.003) SA104-L (0.033) (0.008) 列 - 2 列 の等級較正値にはばらつきがあります Landolt カタログで測定回数が 10 回以下のものは ここでは 信頼性が低いとして採用しないことにします ( それでもなお SA は SA および SA と比べて 0.07 等も較正値が異なります これは SA の B-V の値が他の 2 つと比べて大きいので カラー変換の影響を考慮にいれなければいけないのかもしれません ) 結果として 較正値の平均は 等 標準偏差は 0.03 等となりました 従って result.txt の等級から を引き 等級エラーには 0.03 等の誤差伝搬を加えておけばよいことになります In [19]: import math with open('result1c.txt', 'w') as fout: # result_c.txtを書き出し先ファイルとする with open('result1.txt') as fin: # result.txtを開く for line in fin: # 1 行づつ読み込み v = line.rstrip().split() # rstrip() で改行コードを削除し split() で空白文字で行を分割 mag = float(v[2]) # 等級は3 列目なので それをfloatに変換して1.6 72を引く merr = math.sqrt(float(v[3])** **2) print (v[0], v[1], mag, merr, file=fout) # 書き出し 次の講習でとりあげる numpy を使うと 上のテキストファイル (result.txt) の読み出し 計算 書き出しのプログラムが非常に簡単になります 演習 3 演習 2-1 で処理をした 'btarget2n5.fits' で測光をしてみましょう このときも オーバースキャン領域などの不要な部分を削除して行いましょう 'btarget2n5.fits' の視野の中には測光標準星は写っていません ただし 上の target1 と近い時間に観測したデータですので 等級ゼロ点は同じだと仮定し 上と同じ較正値 (1.672) を使ってください 6 of 6
24 course4_numpy 講習 Numpy の基本 この次に IRAF を使わずに FITS ファイルの処理をする方法を扱いますが その準備として Numpy の基本を知っておきましょう Numpy は 数値計算を効率よく処理するためのサードパーティモジュールです 特に 多次元配列を取り扱う際に処理速度が速くなり コードの表記も効率的になります python の標準の配列であるリスト型では処理が遅いため 科学計算では Numpy の ndarray という多次元配列のデータ型を使います Numpy はサードパーティモジュールですが 科学計算では標準的に使われます このあと紹介する astropy.io.fits および matplotlib でも この ndarray を採用しています 以下 ndarray の基本について説明し numpy の基本的で使える関数について説明します リスト型 まずは python の標準のリスト型を見てみましょう In [1]: a = [1, 2, 3, 4] b = [10, 20, 30, 40] + 演算子はリストとリストの結合になります * 演算子はリストの繰り返しを作成します In [2]: a + b Out[2]: [1, 2, 3, 4, 10, 20, 30, 40] In [3]: a * 4 Out[3]: [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] ベクトル的に演算したい場合には 下のように for ループを回して各要素を取り出してから演算をする必要があります In [4]: n = len(a) c = [0] * n for i in range(n): c[i] = a[i] + b[i] c Out[4]: [11, 22, 33, 44] In [5]: print (c) [11, 22, 33, 44] Numpy の ndarray Numpy ではもっとすっきりした処理 ベクトル処理 ができます 処理速度も速いです In [6]: import numpy as np # 一般的に np と省略される 1 of 8
25 course4_numpy numpy.array() 関数を使って python のリストを ndarray に変換します In [7]: an = np.array(a) bn = np.array(b) In [8]: cn = an + bn cn Out[8]: array([11, 22, 33, 44]) In [9]: print (cn) [ ] In [10]: an * 4 Out[10]: array([ 4, 8, 12, 16]) 部分のとりだし ~ スライシング ( 直前追加分 ) ndarray の一部分だけを取り出す場合には スライシングをしてやります In [11]: myarr = np.array([[7, 3, 8], [13, 11, 16], [105, 121, 153]]) In [12]: myarr Out[12]: array([[ 7, 3, 8], [ 13, 11, 16], [105, 121, 153]]) 1 番目のインデックスは全部で 2 番目のインデックスは 1 以上のものを取り出す場合には In [13]: myarr[:, 1:] Out[13]: array([[ 3, 8], [ 11, 16], [121, 153]]) 2 番目のインデックスも 1 以上のものを取り出す場合にはさらに In [14]: myarr[1:, 1:] Out[14]: array([[ 11, 16], [121, 153]]) 次の講習で FITS の一部分を取り出す場合に使います 2 of 8
26 course4_numpy numpy の関数 (1) ~ 基本 + いくつか numpy で用意されている関数は数多くあります cell の中で np. とタイプしてタブキーを押すと候補が表示されます あるいは np.m でタブキーを押すと m で始まる関数の候補が表示されます In [15]: np.max(cn), np.min(cn), np.mean(cn) Out[15]: (44, 11, 27.5) numpy.where() 天文のデータ処理では ( でなくても?) 次の numpy.where( ) が便利です バッドマスク処理や外れ値の除外に使えます In [16]: dn = np.array([1, 1, 3, 1, 1]) np.where( ) 関数は ( ) 内の条件を満たす要素の index を返します 下の例では 2 以上の値をとる要素に -99 を代入するという意味です In [17]: dn[np.where(dn > 2)] = -99 In [18]: dn Out[18]: array([ 1, 1, -99, 1, 1]) 次の講習で 3 シグマクリップを使うときに登場します numpy.zeros( ) 下のように numpy.zeros( ) を使って 全要素が 0 の 5 x 5 の二次元配列を作成することができます In [19]: data = np.zeros((5, 5)) In [20]: data Out[20]: array([[ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.]]) In [21]: data[0, 1] = 2 # [0, 1] の要素に 2 を代入する numpy に限らず python では index は 0 から始まります C 言語と同じです 3 of 8
27 course4_numpy In [22]: data Out[22]: array([[ 0., 2., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.]]) この data の表示を見て気づいたかとも思いますが 左下を原点とした二次元画像としたときに ndarray では (y, x) のように x と y の index を逆にして要素が格納されます 後で astropy.io.fits のところでも再び触れます numpy の関数 (2) ~ 画像重ね合わせの準備 IRAF の imcombine を使わずに astropy.io.fits + numpy で重ね合せる ( つまり 複数画像の各ピクセルでの average や median を求めて combine をする ) ための準備として numpy.stack(), numpy.average(), numpy.median() などを紹介します 1 次元 まずは 1 次元配列で見てみましょう 3 つの 1 次元配列 a, b, c があるとき In [23]: a1 = np.array([1, 2, 3]) b1 = np.array([2, 3, 4]) c1 = np.array([2, 2, 5]) numpy.stack() 関数を使うことでこれらをまとめて一つ次元の高い配列にする ( スタックする ) ことができます In [24]: s1 = np.stack((a1, b1, c1)) In [25]: s1 Out[25]: array([[1, 2, 3], [2, 3, 4], [2, 2, 5]]) そのうえで 配列を重ねてできた新しい次元の軸に沿って median をとります 上の表示例だと 縦方向に median をとります 具体的には np.median([ スタックされた配列 ], axis=0) として median の配列を得ます In [26]: meddata = np.median(s1, axis=0) In [27]: print(meddata) [ ] average や sum も同様です In [28]: print (np.average(s1, axis=0)) [ ] 4 of 8
28 course4_numpy In [29]: print (np.sum(s1, axis=0)) [ ] axis=0 を省略すると全ての要素について計算します In [30]: print (np.average(s1)) 次元 2 次元の場合も同様です In [31]: a2 = np.array([[1, 2, 1],[20, 21, 13]]) b2 = np.array([[2, 2, 2],[22, 23, 15]]) In [32]: print (a2) print () print (b2) print () print (np.average(np.stack((a2, b2)), axis=0)) [[ 1 2 1] [ ]] [[ 2 2 2] [ ]] [[ ] [ ]] ( 次に紹介する ) astropy.io.fits で読み込んだ画像の場合も同様にスタックをして median や average をとります np.append() 最初からスタックする配列がそろっていれば上のように np.stack() を使うのが簡単ですが 通常のデータ処理の場合には リストから次々にファイルを読みこんでスタックに追加していくことでより効率よくプログラミングができます 次々にファイルを読み込んでスタックに追加する場合には np.append() を使用します In [33]: s2 = a1[np.newaxis, :] s2 = np.append(s2, b1[np.newaxis, :], axis=0) s2 = np.append(s2, c1[np.newaxis, :], axis=0) In [34]: s2 Out[34]: array([[1, 2, 3], [2, 3, 4], [2, 2, 5]]) 上で求めた s1 と同じですね 5 of 8
29 course4_numpy 補足 np.empty() ( 直前追加分 ) プログラム中で for ループで回す場合には まず空の ndarray を作っておき そこに追加していくほうが都合のいいことが多いです その場合には np.empty() を使います In [35]: s3 = np.empty((0, 2, 3)) s3 = np.append(s3, a2[np.newaxis, :], axis=0) s3 = np.append(s3, b2[np.newaxis, :], axis=0) In [36]: print (s3) [[[ ] [ ]] [[ ] [ ]]] In [37]: print(np.average(s3, axis=0)) [[ ] [ ]] numpy の関数 (3) ~ テキストデータの読み込み Numpy がなくても Python の標準機能でテキストファイルの読み書きはできますが 数値テーブルであることが分かっていれば numpy.loadtxt() を使ってもっと簡単に読み込み ndarray に保存することができます In [38]: np.set_printoptions(precision=3, suppress=true) # suppress=trueで指数表示禁止 この行は必須ではない In [39]: mlist = np.loadtxt('./sample/result1c.txt') 6 of 8
30 course4_numpy In [40]: mlist Out[40]: array([[ , , , 0.03 ], [ , , , 0.03 ], [ , , 14.02, 0.03 ], [ , , , 0.03 ], [ , , 18.2, 0.044], [ , , , 0.056], [ , , , 0.03 ], [ , , 19.05, 0.079], [ , , , 0.046], [ , , , 0.068], [ , , , 0.03 ], [ , , , 0.156], [ , , , 0.03 ], [ , , , 0.031], [ , , , 0.032], [ , , , 0.03 ], [ , , , 0.05 ], [ , , , 0.03 ], [ , , , 0.03 ], [ , , , 0.128], [ , , 11.89, 0.03 ], [ , , , 0.031], [ , , , 0.048]]) In [41]: np.savetxt('result1calib.txt', mlist, fmt='%.3f') numpy.loadtxt() のオプションにて ヘッダ行を無視 区切り文字 ( カンマ区切りやタブ区切り ) どの列を読み込むか などを指定することができます 演習 4 ( 直前追加分 ) (1) 下の二次元配列の演算を numpy を用いて行ってください <img src='./img/ex4-1.png', width='300'> (2) 下の 3 つの二次元配列のメジアンを numpy.stack() と numpy.median() を用いて求めてください <img src='./img /ex4-2.png', width='350'> 補足ブロードキャスティング ある 2 次元配列があるとき そのどちらかの軸の大きさと同じ大きさの 1 次元配列の足し算 引き算をすると もう一つの軸に沿って同じ演算をしてくれます In [42]: data1 = np.array([0, 1, 2]) data2 = np.array([[0, 0, 0], [10, 10, 10], [20, 20, 20], [30, 30, 30]]) In [43]: data2 + data1 Out[43]: array([[ 0, 1, 2], [10, 11, 12], [20, 21, 22], [30, 31, 32]]) 7 of 8
31 course4_numpy <img src='./img/broadcasting.png', width='500'> In [44]: data3 = np.array([0, 100, 200]) data2 + data3 Out[44]: array([[ 0, 100, 200], [ 10, 110, 210], [ 20, 120, 220], [ 30, 130, 230]]) 次の astropy.io.fits のところで Y 方向に依存したバイアス値を引くケースで使います 補足配列について Python の配列には リストとタプルがあります リストは [ ] で囲まれ変更可能なオブジェクトです タプルは ( ) で囲まれ変更不可能なオブジェクトです In [45]: aa = [1, 2, 3, 4] In [46]: aa[2] = 10 In [47]: aa Out[47]: [1, 2, 10, 4] In [48]: bb = (10, 20, 30, 40) In [49]: bb Out[49]: (10, 20, 30, 40) In [50]: bb[2] = TypeError Traceback (most recent call last) <ipython-input-50-c69fd0eaa82a> in <module>() ----> 1 bb[2] = 100 TypeError: 'tuple' object does not support item assignment タプルの要素を書き換えようとしたら怒られました 8 of 8
32 course5_iofits 講習 astropy.io.fits の基本 FITS データの読み書きが可能なモジュールです 元々 pyfits と呼ばれていたものです astropy に吸収されてそちらで統一的に管理されるようです astropy.io.fits の使い方は ( /index.html) が非常に参考になります 例が多く記載されているのでわかりやすいです PyRAF でも FITS データの読み書きはできるのですが ndarray としてデータを読み出しておくとより自由な処理を行うことができます 例えば IRAF には存在しない統計アルゴリズムを適用する あるいは matplotlib を用いた自由度の高い可視化などです In [1]: from astropy.io import fits まず astropy.io から fits を import しておきます 基本の getdata と getheader まずは簡単なデータ読み出し方法 fits.getdata( ) と fits.getheader( ) です 主にインタラクティブなケースで使われます まずはピクセル値を getdata で ndarray として読み出します In [2]: data = fits.getdata('./data1/supa fits') # ドームフラットの生データ In [3]: data Out[3]: array([[15798, 15697, 14527,..., 9985, 9981, 9976], [18091, 33233, 30777,..., 9991, 9987, 9978], [15287, 31092, 25091,..., 9986, 9981, 9979],..., [19053, 36375, 25385,..., 10004, 10007, 9997], [16965, 34236, 24216,..., 9998, 10001, 10000], [18178, 32768, 22645,..., 10015, 10008, 10013]], dtype=uint16) ndarray として読み出すので numpy の関数が使えます In [4]: import numpy as np In [5]: np.median(data), np.std(data), np.min(data), np.max(data) Out[5]: ( , , 9681, 38631) オーバースキャンの部分も含めて統計をとっているので 標準偏差 (np.std) が大きな値になっています オーバースキャンの部分を除いて統計をとってみましょう ndarray なので [y, x] の順に範囲を指定します [y_start:y_end, x_start:x_end] のように範囲をしていします 値を省略すると 最初から あるいは 最後まで となります 左右両方を省略すると 全部 です 1 of 6
33 course5_iofits In [6]: subdata = data[:, :2045] np.median(subdata), np.std(subdata), np.min(subdata), np.max(subdata) Out[6]: ( , , 9739, 38594) 上限値と下限値を適切に設定し 3-sigma クリッップすると標準偏差がもう少し小さくなります In [7]: xx = np.where((subdata > 15000) & (subdata < 30000)) med = np.median(subdata[xx]) std = np.std(subdata[xx]) xx = np.where((subdata > med - 3 * std) & (subdata < med + 3 * std)) med = np.median(subdata[xx]) std = np.std(subdata[xx]) print ('{} {:.2f}'.format(med, std)) # format() 関数使ってみた 次に getheader を使って FITS ヘッダを読み出します In [8]: header = fits.getheader('./data1/supa fits') ここで header あるいは print(header) を cell で実行すると FITS ヘッダの中身が表示されます In [9]: # header # これをすると github では表示が長くなるのでここではコメントアウト 最初の 10 項目だけを表示させます In [10]: header[:10] Out[10]: SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 2080 / length of data axis 1 NAXIS2 = 4100 / length of data axis 2 EXTEND = F / FITS dataset may contain extensions BZERO = / offset data range to that of unsigned short BSCALE = 1.0 / default scaling factor BUNIT = 'ADU ' / Unit of original pixel value BLANK = / Value used for NULL pixels In [11]: Out[11]: header['object'] 'DOMEFLAT' このようにヘッダのキーワードを指定して その値を取り出すことができます [ 小技 ] 実は fits.getdata( ) でヘッダも読み出すことができます 2 of 6
34 course5_iofits In [12]: tdata, thdr = fits.getdata('./data1/supa fits', header = True) In [13]: thdr[:10] Out[13]: SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 2080 / length of data axis 1 NAXIS2 = 4100 / length of data axis 2 EXTEND = F / FITS dataset may contain extensions BZERO = / offset data range to that of unsigned short BSCALE = 1.0 / default scaling factor BUNIT = 'ADU ' / Unit of original pixel value BLANK = / Value used for NULL pixels データの加工と書き出し このドームフラット 1 枚を使って フラットを作成しましょう バイアス値が Y 方向に一様とする簡易版で行います ここでは IRAF を使わず numpy を使って行います In [14]: omed = np.median(data[:, 2049:]) # オーバースキャン部分のメジアン imed = np.median(data[:, :2048]) # 光が当たる部分のメジアン data = ( data - omed ) / (imed - omed) # ゲタを引き 規格化 整数データを割り算した結果 浮動小数点数になります デフォルトでは 64 ビットになります In [15]: Out[15]: data.dtype dtype('float64') 無駄にファイルサイズが大きくなるので 32 ビットに変更します In [16]: data = data.astype(np.float32) ヘッダの BITPIX は自動的に変更されます ヘッダの OBJECT の文字列を変更してみます In [17]: header['object'] = 'B_FLAT' ヘッダキーワードの BLANK はデータが整数のときのみ有効です それ以外のときにこの項目があると アプリケーションによっては Warning がでます ここでは削除しておきましょう In [18]: del header['blank'] このデータとヘッダを新しい FITS ファイルに書き出します fits.writeto() を使います 3 of 6
35 course5_iofits In [19]: fits.writeto('bflatn5pa.fits', data, header) # p for python フラットなんて中間ファイルなので盛りだくさんなヘッダは不要ですよ という時には fits.writeto() の引数の header を省略すると 最低限必要なヘッダを勝手に作ってくれます In [20]: fits.writeto('bflatn5pa_simple.fits', data) 元の FITS ファイルに上書き更新する場合には fits.update( ) を使います In [21]: data = fits.getdata('bflatn5pa.fits') data[:, 2049:] = # オーバースキャン部の値を負の大きな値にしておく fits.update('bflatn5pa.fits', data, header) fits.getdata( ) や fits.getheader( ) fits.writeto( ) などは簡単で便利 ( これらは astropy.io.fits の中で 'convinience functions' と呼ばれている ) なのですが 効率の悪いことをしています その都度にファイルのオープンとクローズをしています その理由から 一般にプログラムコードの中で FITS ファイルの読み書きをする場合には fits.open() でファイルを開き.header メソッドと.data メソッドを使ってヘッダーとデータを読み取ります ここでは fits.open() の講習は省略します 興味のある人は adc2017python の 1 回目のほうの資料を参照してください 複数枚のドームフラットからフラットを作成 IRAF を使わずに combine します numpy.median(), numpy.append() を使います In [22]: import glob stack = np.empty((0, 4100, 2080)) # 空の配列を作成 for img in glob.glob('./data1/supa003175[0-6]5.fits'): imdata = fits.getdata(img) omed = np.median(imdata[:, 2049:]) imed = np.median(imdata[:, :2048]) imdata = ( imdata - omed ) / (imed - omed) stack = np.append(stack, imdata[np.newaxis, :], axis=0) immed = np.median(stack, axis=0) immed = immed.astype(np.float32) fits.writeto('bflatn5p.fits', immed) ターゲットの生データのバイアス引きとフラット割り target1 の 5 番フレームの生データを IRAF を使わずに astropy.io.fits と numpy で処理してみます 4 of 6
36 course5_iofits In [23]: imdata = fits.getdata('./data1/supa fits') flat = fits.getdata('bflatn5p.fits') flat[np.where(flat == 0.0)] = # 0での割り算を回避 omed = np.median(imdata[:, 2049:]) imdata = ( imdata - omed ) / flat fits.writeto('btarget1n5p.fits', imdata) トリミング オーバースキャン領域はバイアス値の引き算が終わったあとは不要ですね 切り取ってやりましょう In [24]: imdata = fits.getdata('bflatn5p.fits') fits.writeto('bflatn5ptrim.fits', imdata[:, :2048]) 人工的な画像 ピクセル値が全部ゼロの 10 x 10 の FITS ファイルを作り いくつかのピクセルにだけ正の値を与えてやります In [25]: imdata = np.zeros((10, 10), dtype='float32') # 全て 0 の 10x10 の ndarray を作成 imdata[0, 1] = 100. # (x,y)=(1,0) に 100 を代入 x と y が反転していることに注意 imdata[4, 6] = 50. fits.writeto('my10x10.fits', imdata) 出来上がった FITS ファイルを DS9 で見てみましょう そして x と y が反転していることを確かめてください 演習 上の my10x10.fits を作成し DS9 で見て x と y が反転していることを確かめてください 5-2. astropy.io.fits と numpy を使って以下の処理をしてください (1) './data2/supa003175[0-6]2.fits' から 2 番フレーム用のフラットを作成 (2) './data2/supa fits' について バイアス引き + フラット割りの処理 (3) trimming して (2) の結果からオーバスキャン部をとりのぞく 補足バイアス値を Y 方向も考慮に入れる (numpy 編 ) numpy を使うと IRAF でやるよりもすっきり書けます まずはフラットを作成します 5 of 6
37 course5_iofits In [27]: imdata = fits.getdata('./data1/supa fits') bias = np.median(imdata[:, 2049:], axis=1) # X 軸に沿って median を計算 bias はサイズ の 1 次元配列 bias = bias.reshape(4100,1) # ブロードキャスティングできるように整形 imdata = imdata - bias # ブロードキャスティングで引き算 med = np.median(imdata[:, :2045]) imdata = imdata / med imdata = imdata.astype(np.float32) fits.writeto('bflatn5pby.fits', imdata) # ヘッダは生データのものを継承しない 次に 生データもバイアス値の Y 方向依存を考慮して引きます In [31]: flat = fits.getdata('bflatn5pby.fits') flat[np.where(flat==0)] = tdata = fits.getdata('./data1/supa fits') bias = np.median(tdata[:, 2049:], axis=1) bias = bias.reshape(4100,1) tdata = tdata - bias tdata = tdata / flat fits.writeto('btarget1n5pby.fits', tdata) 6 of 6
38 course6_matplotlib 講習 6 matplotlib の基本 matplotlib はデータ可視化のためのパッケージです ( のページの gallery のページには膨大な数のサンプルがあり どんなグラフを作成できるのかを見る事ができます 一度ご覧になるのをお勧めします さらに それぞれのサンプルコードも見る事ができます gallery ページのサンプルは膨大なので 代表的なものだけを取り上げた次のページを見るのがまずはいいかもしれません ( /users/screenshots.html) ここでは 光赤外撮像データ解析によく使いそうな ヒストグラム 等級 - エラープロット FITS データの表示の例を紹介します inline 表示 inline 表示にしてやると notebook 内にグラフを表示することができます 下のように宣言しておきます In [1]: %matplotlib inline matplotlib パッケージの中で最もよく使うモジュールは pyplot です matplotlib.pyplot as plt の省略がよく使われます In [2]: import matplotlib.pyplot as plt 測光結果データをグラフ化する 講習 3 で得られた測光結果 result1c.txt には ( 列 1) x 座標 ( 列 2)y 座標 ( 列 3) 等級 ( 列 4) 等級エラーが記されています numpy.loadtxt() を用いてこのデータを読み込みます In [3]: import numpy as np In [4]: mlist = np.loadtxt('result1c.txt') ndarray 形式で読み込まれます array([[x, y, 等級, 等級エラー ], [x, y, 等級, 等級エラー ],... ] ) ここでまずは欲しいのが 各星の等級と等級エラーのペアです このあとグラフ作成時の分かりやすさのために mag と merr を分けて別々の配列にしておきます 下のようにいくつか例を書き出してみると分かると思いますが 2 番目のインデックスが 2 のものが等級で 2 番目のインデックスが 3 のものが等級エラーです In [5]: print (mlist[0,0], mlist[0,1], mlist[0,2], mlist[0,3]) print (mlist[1,0], mlist[1,1], mlist[1,2], mlist[1,3]) print (mlist[2,0], mlist[2,1], mlist[2,2], mlist[2,3]) In [6]: mag = mlist[:, 2] merr = mlist[:, 3] 1 of 11
39 course6_matplotlib [:, 2] は 2 番目のインデックスが 2 のものを全て取り出すという意味です このようにして 特定の列だけを抽出して mag および merr の配列に保存しておきます In [7]: mag[:10] # 長いので最初の 10 コだけ抽出 Out[7]: array([ , , 14.02, , 18.2, , , 19.05, , ]) 光度関数のヒストグラム まずは何も考えずに等級のヒストグラムを描いてみます plt.hist() を使います In [8]: plt.hist(mag) plt.show() 次に オプションをいくつか加えてみます 2 of 11
40 course6_matplotlib In [9]: plt.figure(figsize=(7, 5)) # 図のサイズ plt.hist(mag, bins=10, range=(10,20), color='red') 色を指定 plt.xlim(10, 20) # グラフのX 軸の範囲 plt.title('b-band', fontsize=20) plt.xlabel('mag', fontsize=15) plt.ylabel('n', fontsize=15) plt.show() # ビンの数 ヒストグラムの範囲 関数でどんな引数が使えるかを調べたい時には 下のように? をおしりにつけます In [10]: plt.hist? 等級 vs. 等級エラープロット まずは何も考えずにプロット plt.scatter() を使います In [11]: plt.scatter(mag, merr) plt.show() 3 of 11
41 course6_matplotlib これも いくつかオプションを加えてみます In [12]: plt.figure(figsize=(7, 5)) plt.scatter(mag, merr, marker='+', color='red') plt.xlim(10, 20) plt.xlabel('mag', fontsize=20) plt.ylabel('$\sigma_{mag}$', fontsize=20) # TeX の表記がつかえます plt.show() FITS 画像の表示 FITS 画像を notebook 内に表示します そのためには astropy.io.fits でデータを ndarray として読み込む必要があります In [13]: from astropy.io import fits In [14]: img = fits.getdata('btarget1n5trim.fits') WARNING: VerifyWarning: Invalid 'BLANK' keyword in header. The 'BLANK' keyword is only applicable to integer data, and will be ignored in this HDU. [astropy.i o.fits.hdu.image] IRAF で処理した FITS ヘッダには BLANK というキーワードの行が残ってしいます するとこのような警告が出ます ここでは無視して大丈夫です まずは何も考えずに表示してみます 4 of 11
42 course6_matplotlib In [15]: plt.figure(figsize=(7, 14)) plt.imshow(img, plt.cm.gray, origin='lower', interpolation='none') plt.show() plt.cm.gray はカラーマップです plt.cm.[ カラーの名前 ] で指定します ( 上のままではよくわかりません 表示レベルをちゃんと設定してやります 講習 3 で btarget1n5trim.fits のバックグラウンドのメジアンが 69 でばらつきが 7.4 であることを求めました これをもとに表示レベルを設定します 5 of 11
43 course6_matplotlib In [16]: med = 69 std = 7.4 表示レベルの最小と最大 (vmin と vmax) を med - std, および med + 5 std に設定します In [17]: plt.figure(figsize=(7, 14)) plt.imshow(img, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, origin='low er', interpolation='none') plt.show() 6 of 11
44 course6_matplotlib ここに印をいれてみます result1c.txt の中から最初の二つの星を選んでみます In [18]:! head -2 result1c.txt 原点ピクセルの XY 座標は IRAF では (1, 1) で Python では (0, 0) です なので 下では座標値から 1 を引いてやります In [21]: xcoo = [1383.5, ] ycoo = [705.4, 920.9] この xcoo, ycoo を plt.scatter() でオーバープロットします xcoo, ycoo のそれぞれの配列から順番にペアがプロットされます 等級 vs 等級エラーのときと同じです plt.scatter() のオプションの s=100 は印の円の大きさです 面積で指定します 半径を倍にしたければ値を 4 倍にします 7 of 11
45 course6_matplotlib In [22]: plt.figure(figsize=(7, 14)) plt.imshow(img, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, origin='low er', interpolation='none') plt.scatter(xcoo, ycoo, edgecolors='yellow', facecolors='none', s=100) plt.show() 標準星の周辺だけ拡大します plt.xlim() と plt.ylim() が加わっただけです あとは 拡大したので印の大きさも変えました 8 of 11
46 course6_matplotlib In [24]: plt.figure(figsize=(7, 14)) plt.imshow(img, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, origin='low er', interpolation='none') plt.scatter(xcoo, ycoo, edgecolors='yellow', facecolors='none', s=1000) plt.xlim(1250, 1600) plt.ylim(600, 950) plt.show() せっかくなので 測光した全ての星をプロットします In [25]: xstar = mlist[:, 0] - 1 ystar= mlist[:, 1] -1 9 of 11
47 course6_matplotlib In [28]: plt.figure(figsize=(7, 14)) plt.imshow(img, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, origin='low er', interpolation='none') plt.scatter(xstar, ystar, edgecolors='yellow', facecolors='none', s=100) plt.show() #plt.savefig('myfig.png') # 上のplt.show() をコメントアウトし この行を実行するとファイルに保存できる 10 of 11
48 course6_matplotlib 演習 4 演習 3 で行った 'btarget2n5.fits' の測光結果を用いて (1) 光度関数のヒストグラム と 等級 vs 等級エラーのプロット を作成してください (2) FITS 画像を notebook に表示して そこに測光した星をプロットしてください 11 of 11
49 course7_myscripts 講習 プログラムの使い回し ~ スクリプト作成等 ここまで jupyter notebook でインタラクティブに処理を行い いろいろなコマンドの使い方 簡単な python のプログラミングを見てきました 次に ひとかたまりのプログラムに汎用性をもたせるという観点で話をすすめます ここでは まず 関数の定義の仕方から始め python スクリプトの作成 コマンドライン引数の使い方 自作モジュールの使い方を説明します 自作関数 ここまでの処理の中で いくつかの処理の かたまり は 読み込むファイル名だけが変わって 繰り返し出てきました そのような かたまり は関数として定義しておくと効率的にコードを作成することができます <img src='./img/def_function.png', width='500'> バックグラウンドのメジアンとノイズを 3 シグマクリップして評価する処理なんていうのは よく使うので関数にしておくと便利です In [1]: import numpy as np from astropy.io import fits In [2]: def getbackground(infits): data = fits.getdata(infits) med = np.median(data) std = np.std(data) for i in range(5): xx = np.where((data > med - 3 * std) & (data < med + 3 * std)) med = np.median(data[xx]) std = np.std(data[xx]) return med, std In [3]: med, std = getbackground('sample/btarget1n5small.fits') print(med, std) FITS を表示する処理もよく使うでしょう 関数にしておきます ここでは getbackground( ) も中で使っています In [4]: import matplotlib.pyplot as plt 1 of 5
50 course7_myscripts In [5]: def showfits(infits): med, std = getbackground(infits) imdata = fits.getdata(infits) plt.figure(figsize=(10, 10)) plt.imshow(imdata, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, orig in='lower', interpolation='none') plt.show() In [6]: showfits('sample/btarget1n5small.fits') python スクリプトを作成 さて notebook から飛び出して python スクリプトを作成しましょう python スクリプトを作成するのは難しいことではありません テキストエディタで セルに書き込んでいた内容を下記ならべ 拡張子が.py のファイルとして保存すればよいのです さらに unix/linux 系ではファイル冒頭に #!/usr/local/bin/python3.5 のように python の path を書き込むのが一般的です 2 of 5
51 course7_myscripts In [7]: import numpy as np data1 = np.array([0, 1, 2]) data2 = np.array([[0, 0, 0], [10, 10, 10], [20, 20, 20], [30, 30, 30]]) data3 = data2 + data1 print(data3) [[ 0 1 2] [ ] [ ] [ ]] これを mycode.py というファイルに書き込みましょう なんでもお好みのテキストエディタを使ってください あるいは jupyter notebook にはテキストエディタ機能もあります jupyter notebook 起動画面の右上の New > Text File を選ぶと新規テキストファイルの画面になります そのうえで (chmod +x してから ) コマンドラインで実行します あるいは下のように cell からも実行できます In [8]: %run mycode.py [[ 0 1 2] [ ] [ ] [ ]] コマンドライン引数 スクリプトに書き出したのであれば コマンドライン引数も使いたくなります In [9]: targetfits = 'sample/btarget1n5small.fits' In [10]: from astropy.io import fits import numpy as np data = fits.getdata(targetfits) med = np.median(data) std = np.std(data) for i in range(5): xx = np.where((data > med - 3 * std) & (data < med + 3 * std)) med = np.median(data[xx]) std = np.std(data[xx]) print ('{:.2f} {:.2f}'.format(med, std)) of 5
52 course7_myscripts ここで targetfits をコマンドライン引数として読み込めれば いろんな FITS ファイルに対してこのプログラムが使えます コマンドライン引数を取り込むには import sys sys.argv を使います コマンドラインに入力された文字列が空白で区切られて リスト sys.argv に格納されます sys.argv[0] はプログラム名そのものです 1 番目の引数は sys.argv[1] です In [11]: cat getbackground.py import sys import numpy as np from astropy.io import fits data = fits.getdata(sys.argv[1]) med = np.median(data) std = np.std(data) for i in range(5): xx = np.where((data > med - 3 * std) & (data < med + 3 * std)) med = np.median(data[xx]) std = np.std(data[xx]) print ('{:.2f} {:.2f}'.format(med, std)) In [12]: %run getbackground.py sample/btarget1n5small.fits モジュール作成 よく使う処理を notebook の中で関数として定義して使用するのは楽チンなのですが notebook ファイルを作成するたびに 前の notebook からコピペして使うのはちょっと面倒ですね 頻繁に使う自作の関数はモジュールにしておきましょう /home/nakajima/mypylib/mymodule.py のようなファイルを作成します 必要なモジュールを冒頭で import しておき あとは自前の関数をどんどん書き込んでいけばよいです そして 他のプログラムから使うときには import sys sys.path.append('/home/nakajima/mypylib/') として path を通しておき import mymodule を宣言します mymodule.py の.py は import で呼ぶときには不要です ここでは このディレクトリの中に 'mypylib' というディレクトリを作成し その中に mymodule.py を作りました 4 of 5
53 course7_myscripts In [13]: cat mypylib/mymodule.py import numpy as np from astropy.io import fits import matplotlib.pyplot as plt def getbackground(infits): data = fits.getdata(infits) med = np.median(data) std = np.std(data) for i in range(5): xx = np.where((data > med - 3 * std) & (data < med + 3 * std)) med = np.median(data[xx]) std = np.std(data[xx]) return med, std def showfits(infits): med, std = getbackground(infits) imdata = fits.getdata(infits) plt.figure(figsize=(10, 10)) plt.imshow(imdata, plt.cm.gray, vmin=med - std, vmax = med + 5 * std, origi n='lower', interpolation='none') plt.show() 次々とこの続きに 自分の関数を書き込んでいけばよいです さて ここの例では次のようにして path を通し In [14]: import sys sys.path.append('./mypylib/') mymodule を import して mymodule.getbackground( ) を使います In [15]: import mymodule In [16]: med, std = mymodule.getbackground('sample/btarget1n5small.fits') print(med, std) 余談ですが 私は /home/nakajima/mynotebook/ のようなディレクトリを作成し その中に.ipynb ファイルをまとめています データのあるディレクトリには notebook の中で cd で change directory して移動して処理を行います まとまっていると何がいいかというと 検索できるんですね ipynb ファイルは JSON という形式のテキストファイルです grep で検索できます たくさんたまってくると あれどこでやったかなあ なんてこともよくあります 5 of 5
54
55
56 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights 1. はじめて jupyter notebook yas.nakajima edited this page 6 days ago 1 revision jupyter notebookは もともとはipython notebookとよばれていたも をpython 以外 プログラミング言語にも対応すべくグレードアップしたも です julia, python, Rといった最近 データサイエンスなんかで使われているプログラミング言語から文字をとってjupyterという名前が作られました によると40 以上 プログラミング言語に対応していると ことです もともとipython notebookだった で jupyter notebook ファイル 拡張子は.ipynbになっています jupyter notebook 起動 コマンドラインで jupyter notebook を実行するとデフォルトブラウザ内でjupyter notebookが起動します 下 ような画面がブラウザで表示されます ( 中身が空 ディレクトリで起動すると 下 ように Notebook list emptyと表示されます ) Pages 7 Home 1. はじめて jupyter notebook 2. メモを書き込む ~ markdown 3. 資料 ダウンロードとファイル オープン 4. 参考図書 appendix 1. Mac(ElCapitan 以降 ) へ IRAFインストール appendix 2. Jupyter ってどう発音する? Clone this wiki locally どこ ディレクトリでも起動しますが ノートブックファイル (.ipynbファイル) を保存する作業ディレクトリや解析したいFITSファイルなど データがあるディレクトリなどがよいでしょう 前者はファイル 整理 管理 観点から 後者はデータへ パスが簡単になるという観点からです 新規ノートブック 作成 右 New からプルダウンメニューで Python3 を選択します
57 すると下 ような新規ノートブック画面が出現します python と対話してみましょう Cell 中に Python コマンドを入力して [shift]+[enter] します コマンド 入力に対する出力が そ Cell 下に表示されます コマンドが複数行にわたる場合 [enter] で改行します そ Cell を実行する場合には そ Cell をマウスで選択した状態で [shift]+[enter] します こ 対話を保存しましょう 上部 Untitled あたりにマウスカーソルを合わせると 背景がグレイにかわる でクリックし ます ファイル名を入力して Rename ボタンを押します (Jupyter バージョンによっては OK ボタ
58 ン ) 上部メニューバー 下 フロッピー アイコンを押すと保存です デフォルトでは 2 分おきに自動保存されます ノートブック 終了 上部メニューバー File プルダウンメニュー 一番下 Close and Halt を選んで終了 jupyter を起動したとき 画面に戻ります ちゃんと名前をつけたファイルができていますね ここで ファイル名 リンクをクリックすれば そ ノートブック 実行および編集が可能になります ブラウザを閉じて終了です ターミナルCntrl+Cでjupyter notebook プロセスを終了させます ターミナルを閉じます
59 Features Business Explore Marketplace Pricing This repository Search yas-nakajima / adc2017python2 Code Issues 1 Pull requests 0 Sign in or Sign up Watch Projects 0 Wiki 0 Star 0 Fork 0 Insights 2. メモを書き込む ~ markdown yas.nakajima edited this page 6 days ago 1 revision マウスのカーソルでCellを選んだうえで jupyter notebookの上部のデフォルトでは Code になっ ているところをMarkdownにすると そのセルに文章を書き込むことができます markdown形式 で文章を書き込めます markdownでは マークアップ言語であるhtmlよりもかなり簡単な表記 Pages 7 Home ルールで 文章に構造を持たせることができます 1. はじめてのjupyter notebook 文章を書き込んだあとで [shift]+[enter]するとmarkdownのルールに従ったレイアウトで表示さ 2. メモを書き込む ~ markdown れます 3. 資料のダウンロードとファイ ルのオープン 4. 参考図書 appendix 1. Mac(ElCapitan以 降)へのIRAFインストール appendix 2. Jupyterってどう発 音するの Clone this wiki locally Clone in Desktop
60 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights 3. 資料 ダウンロードとファイル オープン yas-nakajima edited this page 23 hours ago 4 revisions 資料 ダウンロード adc2017python2 トップページ 右 緑 [Clone or download] をクリックすると [Download ZIP] を選択できる で そこをクリックしてください するとあなた PC ダウンロードフォルダにzip ファイルがダウンロードされます Pages 7 Home 1. はじめて jupyter notebook 2. メモを書き込む ~ markdown 3. 資料 ダウンロードとファイル オープン 4. 参考図書 appendix 1. Mac(ElCapitan 以降 ) へ IRAFインストール appendix 2. Jupyter ってどう発音する? Clone this wiki locally そ ZIPファイルを展開するとadc2017python2-masterというフォルダが現れます ( 自動的に展開されてるかもしれません ) そ フォルダを 適宜 どこか フォルダに移動してください そ フォルダ 中に.ipynbファイルなどがあります 圧縮データ 解凍 data1など ディレクトリ 中 FITSファイルはbzip2で圧縮されています adc2017python2-masterにはuncompress.shというシェルスクリプトを用意しています./uncompress.sh を実行すれば全て 圧縮ファイルは解凍されます ファイル オープン (!!GUIで.ipynbファイル アイコンをクリックしてもオープンできません!!) ターミナルでそ adc2017python2-master ディレクトリに移動します そ ディレクトリで jupyter notebook を実行すると jupyter notebookが起動し 下 ような画面が現れます
61 こ ブラウザ.ipynb リンクをクリックするとファイルを jupyter notebook でオープンできま す 実行や編集が可能になります 2017 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About
62 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights 4. 参考図書 yas.nakajima edited this page 6 days ago 1 revision これからPythonを始める であればPython3 系で勉強することを勧めます 2020 年にはPython2 系 サポートが切れるからです 初心者向け Pythonスタートブック出版社 : 技術評論社 ISBN-10: ,678 プログラミング初心者 人向け 変数とは何か 関数とか何か といったレベルからわかりやすい説明があります おそらく こ 講習会 参加者には物足りない内容でしょう 残念ながら Python2 系向けに書かれているが こ 内容であればあまり支障はないでしょう Python3 系へ 改訂が望まれます Pages 7 Home 1. はじめて jupyter notebook 2. メモを書き込む ~ markdown 3. 資料 ダウンロードとファイル オープン 4. 参考図書 appendix 1. Mac(ElCapitan 以降 ) へ IRAFインストール appendix 2. Jupyter ってどう発音する? 中級者向け 実践力を身につける Python 教科書 Clone this wiki locally 出版社 : マイナビ出版 ISBN-10: ,786 Pythonについて広くカバーしています 内容も整理されています プログラミング経験者あるいはPython 初心者がもう少し勉強しようという場合にオススメ 入門 Python3 出版社 : オライリージャパン ISBN-10: ,996 入門とありますが 中級者 + 向けです 初級者 + から中級者 足元固め 600ページあります 上級者向け 科学技術計算 ため Python 入門出版社 : 技術評論社 ISBN-10: ,456 NumpyやMatplotlibなど 科学計算に使うライブラリについて 記載あり Pythonそ も についても 掘り下げた解説が含まれています リファレンス
63 Python ライブラリ厳選レシピ出版社 : 技術評論社 ISBN-10: ,110 Pythonには数多く ライブラリが用意されています 自分で関数なんかを作ったあとに なんだ こんな もうあった か! はありがちです 多く ライブラリがサンプルとともに簡潔に紹介されています 2017 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About
64 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights appendix 1. Mac(ElCapitan ) IRAF yas.nakajima edited this page 6 days ago 1 revision private installation /Users/myname/!. iraf iraf/iraf mkdir /Users/myname/iraf mkdir /Users/myname/iraf/iraf $. /Users/myname/iraf/iraf iraf.macx.x86_64.tar ( ~/Downloads/ ) cd /Users/myname/iraf/iraf tar xvf ~/Downloads/iraf.macx.x86_64.tar %../install (2 ) sudo -system /Users/myname/.iraf IRAF ~/.bashrc &. source ~/.bashrc unalias mkiraf mkiraf login.cl cl IRAF CL (pyraf /Users/myname/iraf login.cl /Users/myname/iraf iraf ) Pages 7 Home 1. jupyter notebook 2. ~ markdown appendix 1. Mac(ElCapitan ) IRAF appendix 2. Jupyter Clone this wiki locally Clone in Desktop sudo./install -system /iraf/iraf/ Mac ElCapitan SIP(System Integrity Protection) /usr (/usr/local ) root sudo./install --system /usr /include/iraf.h Mac private installation SIP : 4 unalias mkiraf IRAF mkiraf /Users/myname/iraf/iraf/unix/hlib/mkiraf.csh alias ( alias ) mkiraf.csh iraf set iraf = "/iraf/iraf" /iraf/iraf/ iraf.macx.x86_64.tar mkiraf.csh IRAF /Users/myname/.iraf/bin PATH mkiraf( /Users/myname/iraf/iraf/unix/hlib/mkiraf.sh ) iraf="/users/myname/iraf/iraf/ unalias mkiraf mkiraf /Users/myname/.iraf/bin/mkiraf (El Capitan Sierra )
65 Features Business Explore Marketplace Pricing This repository Search Sign in or Sign up yas-nakajima / adc2017python2 Watch 0 Star 0 Fork 0 Code Issues 1 Pull requests 0 Projects 0 Wiki Insights appendix 2. Jupyter ってどう発音する? yas-nakajima edited this page 6 days ago 3 revisions どうでもいい話ですが ジュピター? ジュパイター? 私はずっとジュピターとよんできました 木星とまぎらわしいですし Python パイ (py) な でジュパイターがいいような気もします ですが Jupyterを使用しているネイティブはジュピターとよんでいるようです 好きなほうでよんでください :) Pages 7 Home 1. はじめて jupyter notebook 2. メモを書き込む ~ markdown 3. 資料 ダウンロードとファイル オープン 4. 参考図書 appendix 1. Mac(ElCapitan 以降 ) へ IRAFインストール appendix 2. Jupyter ってどう発音する? Clone this wiki locally GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
Microsoft Word - CygwinでPython.docx
Cygwin でプログラミング 2018/4/9 千葉 数値計算は計算プログラムを書いて行うわけですが プログラムには様々な 言語 があるので そのうちどれかを選択する必要があります プログラム言語には 人間が書いたプログラムを一度計算機用に翻訳したのち計算を実行するものと 人間が書いたプログラムを計算機が読んでそのまま実行するものとがあります ( 若干不正確な説明ですが ) 前者を システム言語
version 1.0 November 2010 PyRAF Y. Nakajima Computer and Data Management Division Subaru Telescope NAOJ
version 1.0 November 2010 PyRAF Y. Nakajima Computer and Data Management Division Subaru Telescope NAOJ Chapter 1 PyRAF 1.1 PyRAF PyRAF IRAF Python STScI 1998 (1) IRAF-CL (2) CL-? (3) IRAF Python wrapper
引き算アフィリ ASP 登録用の日記サイトを 作成しよう Copyright 株式会社アリウープ, All Rights Reserved. 1
引き算アフィリ ASP 登録用の日記サイトを 作成しよう 1 目次 ASP 登録用の日記サイトを作成しよう... 3 日記サイト作成時のポイント... 4 (1) 子ページを5ページ分作成する... 5 (2)1 記事当たり600 文字以上書く... 6 (3) アップロードする場所はドメインのトップが理想... 7 日記サイトを作成しよう... 8 日記サイト用テンプレートをダウンロードする...
情報処理概論(第二日目)
情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 8 回 2005 年 6 月 9 日 前回の演習の解答例 多項式の計算 ( 前半 ): program poly implicit none integer, parameter :: number = 5 real(8), dimension(0:number) :: a real(8) :: x, total integer
数量的アプローチ 年 6 月 11 日 イントロダクション データ分析をマスターする 12 のレッスン ウェブサポートページ ( 有斐閣 ) 水落研究室 R http:
イントロダクション データ分析をマスターする 12 のレッスン ウェブサポートページ ( 有斐閣 ) http://yuhikaku-nibu.txt-nifty.com/blog/2017/09/22103.html 水落研究室 R http://depts.nanzan-u.ac.jp/ugrad/ps/mizuochi/r.html 1 この授業では統計ソフト R を使って分析を行います データを扱うソフトとして
基本的な利用法
(R で ) 塩基配列解析 基本的な利用法 Macintosh 版 到達目標 : このスライドに書かれている程度のことは自在にできるようにしてエラーへの対処法を身につける 1. 必要なパッケージのインストールが正しくできているかどうかの自力での判定 および個別のパッケージのインストール 2. 作業ディレクトリの変更 3. テキストエディタで自在に入出力ファイル名の変更 ( どんなファイル名のものがどこに生成されるかという全体像の把握
書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf
情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている
PowerPoint プレゼンテーション
情報システム基礎演習 B 2016/01/28 (Thurs.) テーマ 4 JavaScript による電卓 Web アプリを作成しましょう 健山智子 ([email protected]) 広島工業大学情報学部知的情報システム学科知的情報可視化戦略研究室 (ival) 講義のアウトライン 2 1. グループの決定 : 1. 5 人での 6 グループ ( ランダム
Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]
Borland C++ Compiler の 使用方法 解説書 (v1.1) 1 準備 (1/2) 1. スタートメニューから コントロールパネル を開いて その中に デスクトップのカスタマイズ フォルダーオプション があるので開く エクスプローラー内の ツール フォルダーオプション などからも開ける 2. 表示 タブにある 登録されている拡張子は表示しない のチェックを外して OKを押す これでファイルの拡張子が表示されるようになった
第4回
Excel で度数分布表を作成 表計算ソフトの Microsoft Excel を使って 度数分布表を作成する場合 関数を使わなくても 四則演算(+ */) だけでも作成できます しかし データ数が多い場合に度数を求めたり 度数などの合計を求めるときには 関数を使えばデータを処理しやすく なります 度数分布表の作成で使用する関数 合計は SUM SUM( 合計を計算する ) 書式 :SUM( 数値数値
ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar
ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spark API との通信 このラーニングモジュールでは Python を使用した Spark API とのインターフェイスを扱います
キリしていて メニューのボタンも大きくなっているので マウス操作はもちろん タッチ操作でも使いやすくなっているのが特長です アドレスバー画面上部にあるアドレスバーは インターネット検索も兼ねています ここにキーワードを直接入力して検索を実行できます 現在表示されているタブの右横にある + をクリック
Windows 10 の新ブラウザー Microsoft Edge とは なお これまでの標準ブラウザーだった Internet Explorer は Windows 10 でも残されています 互換性の問題で Microsoft Edge で表示できない Web ページがある場合に Internet Explorer で開くという使い方ができます あくまでも Windows 10 ではメインのブラウザーが
FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り
FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます
3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多
Cygwin 使いこなしマニュアル 2011/10/17 1.Cygwin の起動 Cygwin のインストールが完了したら 一般ユーザーで Windows にログインし Cygwin を起動してみましょう 下の図は ユーザー名 densan でログインして Cygwin を起動した後 いくつかコマンドを実行してみたところです 2.Cygwin のファイルはどこにある? Windows から Cygwin
DocDesk かんたん操作マニュアル
1 はじめに... 3 1.DocDeskを起動しよう... 4 2. デスクトップフォルダを用意しよう... 6 3. データを登録してみよう... 11 4. データの表示方法を変えてみよう... 15 5. スタックしてみよう... 16 6. ファイルに情報をつけておこう... 19 7.DocDesk 上でファイルを使ってみよう... 20 8. 検索機能を使ってみよう... 24 9.
Microsoft PowerPoint - prog04.ppt
プログラミング言語 2 第 04 回 (2007 年 05 月 14 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 14 日分と書いてある部分が 本日の教材です 本日の内容
スクールCOBOL2002
3. 関連資料 - よく使われる機能の操作方法 - (a) ファイルの入出力処理 - 順ファイル等を使ったプログラムの実行 - - 目次 -. はじめに 2. コーディング上の指定 3. 順ファイルの使用方法 4. プリンタへの出力方法 5. 索引ファイルの使用方法 6. 終わりに 2 . はじめに 本説明書では 簡単なプログラム ( ファイル等を使わないプログラム ) の作成からコンパイル 実行までの使用方法は既に理解しているものとして
ゲームプログラミング講習 第0章 導入
ゲームプログラミング講習 第 0 章 導入 ゲーム制作に必要なものをインストールします ゲームプログラミング講習第 0 章導入 1 ゲーム制作に必要なもの Microsoft Visual Studio DXライブラリ プロジェクトテンプレート C 言語の知識 ゲームプログラミング講習第 0 章導入 2 Microsoft Visual Studio とは C 言語でプログラミングして Windows
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編
手順 4 Excel データを活用する ( リスト / グラフ 色分け ) 外部の表データ (CSV 形式 ) を読み込み リスト表示やカード表示 その値によって簡単なグラフ ( 円 正方形 棒の 3 種類 ) や色分け表示することができます この機能を使って地図太郎の属性情報に無い項目も Excel で作成し CSV 形式で保存することにより 自由に作成することができます (Excel でデータを保存するとき
NGSハンズオン講習会
207.08.08 版 プラスアルファの内容です NGS 解析 ( 初 ~ 中級 ) ゲノムアセンブリ後の各種解析の補足資料 ( プラスアルファ ) 東京大学 大学院農学生命科学研究科アグリバイオインフォマティクス教育研究プログラム寺田朋子 門田幸二 Aug 29-30 207 Contents Gepard でドットプロット 連載第 8 回 W5-3 で最も長い sequence 同士のドットプロットを実行できなかったが
スライド 1
ラベル屋さん HOME かんたんマニュアル リンクコース 目次 STEP 1-2 : ( 基礎編 ) 用紙の選択と文字の入力 STEP 3 : ( 基礎編 ) リンクの設定 STEP 4 : ( 基礎編 ) リンクデータの入力と印刷 STEP 5 : ( 応用編 ) リンクデータの入力 1 STEP 6 : ( 応用編 ) リンクデータの入力 2 STEP 7-8 : ( 応用編 ) リンク機能で使ったデータをコピーしたい場合
◎phpapi.indd
PHP や HTML の知識がなくても大丈夫 PHP や HTML の基本も学べる FileMaker データベースを Web に公開したい FileMaker を使って動的な Web サイトを作りたい FileMaker しか知らない人が Web アプリケーションを作れるようになる! はじめに まず 本書を手に取ってくださりありがとうございます 本書はある程度 FileMaker Pro の扱いに慣れ
サイボウズ Office「リンク集」
サイボウズ Office Cybozu 商標について 記載された商品名 各製品名は各社の登録商標または商標です また 当社製品には他社の著作物が含まれていることがあります 個別の商標 著作物に関する注記については 弊社のWebサイトを参照してください https://cybozu.co.jp/logotypes/other-trademark/ なお 本文および図表中では (TM) マーク (R)
Microsoft PowerPoint - prog06.ppt
プログラミング言語 2 第 06 回 (2007 年 06 月 11 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 11 日分と書いてある部分が 本日の教材です 本日の内容
JavaプログラミングⅠ
Java プログラミング Ⅰ 2 回目 ようこそ Java へ 今日の講義で学ぶ内容 画面へのメッセージの表示 文字や文字列 数値を表現するリテラル 制御コードを表すエスケープシーケンス 画面出力の基本形 ソースファイル名 : クラス名.java class クラス名 System.out.println(" ここに出力したい文字列 1 行目 "); System.out.println(" ここに出力したい文字列
Microsoft Word - SKY操作マニュアル.doc
2. 使用方法 SKY の使用方法について説明する前に 画面構成について説明する SKY は図 c-2 に示すようにシングルインターフェースドキュメント (SDI) で作成しており 図 3 に示すメニュバーに機能拡張処理を実行可能な項目を作成している また メニューの構成を図 4 に示すとおり 1ファイル 2イメージ 3 設定 4フィルタの4つの大きな項目に分かれる 1 図 2 SKY のメイン画面
更新履歴 変更履歴 版数 リリース日 更新内容 第 1 版 2017/5/15 第 1 版発行 第 2 版 2017/7/13 更新履歴 変更内容を追加 (2ページ) 編集の前に を追加(8 ページ ) ブロックエディタ スマートモード エディタモード の説明を追加 (10~12 ページ ) ブロッ
使い方ガイド 第 4 版 ログインする~サイト編集画面を開く... 3 テンプレートを選ぶ ~ 編集モードを選択する... 4 編集画面の見かた... 6 編集の前に... 8 テキストを変える... 9 ブロックの編集画面 ( スマートモード )... 10 ブロックの編集画面 ( エディタモード )... 11 スマートモードからエディタモードへ変更... 12 ブロックの複製 移動 削除など...
< 目次 > 1. 練習ファイルのダウンロード 表計算ソフト Excel の基本 Excel でできること Excel の画面 セル 行 列の選択 セルにデータを入力する ( 半角英数字の場合 )
2005 年度茅ヶ崎市情報教育研修会 < 目次 > 1. 練習ファイルのダウンロード... 2 2. 表計算ソフト Excel の基本... 3 2-1 Excel でできること... 3 2-2 Excel の画面... 3 2-3 セル 行 列の選択... 4 2-4 セルにデータを入力する ( 半角英数字の場合 )... 4 2-5 セルにデータを入力する ( 日本語の場合
Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シート
Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シートのズームを 100% に設定するとよいです 2 道路を描く 次ページから説明書きがありますのでよく読んで操作してください
Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharm
Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharmaceutical Co., Ltd. 要旨 : PC SAS での Jupyter Notebook
GSLetterNeo vol 年 7 月 形式手法コトハジメ TLA + Toolbox を使って (2)- 熊澤努 sra.co.jp はじめに GSLetterNeo Vol.130 で TLA + Toolbox を紹介しました 今回からより詳しく T
GSLetterNeo vol.132 2019 年 7 月 形式手法コトハジメ TLA + Toolbox を使って (2)- 熊澤努 kumazawa @ sra.co.jp はじめに GSLetterNeo Vol.130 で TLA + Toolbox を紹介しました 今回からより詳しく TLA + Toolbox について説明していきます 今回は TLA + Toolbox のインストールの仕方から
今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること
C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順
このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更
ファイル操作 アプリケーションソフトウェアなどで作成したデータはディスクにファイルとして保存される そのファイルに関してコピーや削除などの基本的な操作について実習する また ファイルを整理するためのフォルダの作成などの実習をする (A) ファイル名 ファイル名はデータなどのファイルをディスクに保存しておくときに付ける名前である データファイルはどんどん増えていくので 何のデータであるのかわかりやすいファイル名を付けるようにする
Section1_入力用テンプレートの作成
入力用テンプレートの作成 1 Excel には 効率よく かつ正確にデータを入力するための機能が用意されています このセクションでは ユーザー設定リストや入力規則 関数を利用した入力用テンプレートの作成やワークシート操作について学習します STEP 1 ユーザー設定リスト 支店名や商品名など 頻繁に利用するユーザー独自の連続データがある場合には ユーザー設定リスト に登録しておけば オートフィル機能で入力することができ便利です
目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..
Office 365 Excel Online - 利用マニュアル - 発行日 2015/11/01 1 目次 第 1 章はじめに... 5 1.1. 取扱いについて... 6 1.2. 記載内容について... 6 第 2 章基本操作... 7 2.1. Excel Online を開く... 8 2.2. ファイル ( ブック ) を作成する... 10 2.3. ファイル ( ブック ) を開く...
PowerPoint プレゼンテーション - 物理学情報処理演習
物理学情報処理演習 13. LATEX 2015 年 7 月 24 日 本日の推奨作業 directory lesson13 13.1 LATEX 参考文献 身内賢太朗レポート提出 :[email protected] 13.1 LATEX これまで 物理データを処理するための方法を学んできた (C++) 計算機の使用は C++ にとどまらない 一例として 文書作成のための
Microsoft PowerPoint - kougi2.ppt
C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し
PowerPoint プレゼンテーション
かんたんマニュアル 差し込み印刷編 目次 STEP:1 STEP:2 STEP:3 STEP:4 元となるラベル カードのデータを作ろうP.2 差し込みデータの関連付けを設定しよう P.7 データの差し込みをしよう P.11 印刷しよう P.17 STEP1: 画面の確認をしよう 差し込み印刷とは 表計算ソフトで作った住所録を宛名ラベルに印刷したり 名簿をも とに同じ形式のカードを作ったりするときに便利な機能です
Microsoft Word - VB.doc
第 1 章 初めてのプログラミング 本章では カウントアップというボタンを押すと表示されている値が1ずつ増加し カウントダウンというボタンを押すと表示されている値が1ずつ減少する簡単な機能のプログラムを作り これを通して Visual Basic.NET によるプログラム開発の概要を学んでいきます 1.1 起動とプロジェクトの新規作成 Visual Studio.NET の起動とプロジェクトの新規作成の方法を
cp-7. 配列
cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標
プログラミング基礎
C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス
テキストファイルの入出力1
テキストファイルの入出力 1 0. 今回の目的前回までは 2 回にわたって繰り返しについて学んできました 今回からテキストファイルの入出力について学ぶことにします 1. テキストファイルへの出力 1.1 テキストファイルについてテキストファイルとは コンピュータで扱うことが出来るファイルの中で最も基本的なファイルであり どの様な OS でもサポートされているファイル形式です Windows においては
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
Cプログラミング1(再) 第2回
C プログラミング 1( 再 ) 第 2 回 講義では Cプログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ 1 前回のレポートから 前回の宿題 数あてゲーム の説明において 次のように書いていたものがいた : これはコンピュータがランダムに設定した数字を人間が当てるゲームである この説明でどこかおかしなところはないだろうか? 2 コンピュータの用語と日常的な用語の違い 物理において
3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]
ご購入はこちら. http://shop.cqpub.co.jp/hanbai 第 1 章操作メニュー ソフトウェアの立ち上げ時に表示されるトップ メニューと, 各メニューの役割について紹介します. ソフトウェアを使うにあたり, どこからスタートさせるのか確認しましょう. 最初に, 操作メニューから確認していきましょう. ソフトウェアを立ち上げると, 図 1-1 が現れます. この画面で, 大きく三つの操作メニュー
Microsoft Word - 206MSAccess2010
第 6 章データベース 6.1 MS-Access 2010 の起動 終了 1.Access2010 の起動 (1) マウスの左ボタンでスタートボタンをクリックします (2) 表示されるメニューの [ すべてのプログラム ] にマウスカーソルを移動します (3) 表示されるプログラム一覧から [Microsoft Office] [Microsoft Access 2010] の順にクリックすると
PowerPoint2003基礎編
はじめに 1 PowerPoint の概要 2 1 PowerPoint とは 2 2 プレゼンテーションとは 2 3 PowerPoint でできること 3 4 プレゼンテーション作成の流れ 4 5 PowerPoint の起動 5 6 PowerPoint の画面 6 7 作業ウィンドウを閉じる 8 8 ツールバーを 2 行にしたい時は 9 第 1 章新しいプレゼンテーションを作ろう 1 レッスン
2.Picasa3 の実行 デスクトップの をダブルククリック 一番最初の起動の時だけ下記画 面が立ち上がります マイドキュメント マイピクチャ デスクトップのみスキャン にチェックを入れ続行 これはパソコン内部の全画像を検索して Picasa で使用する基本データを作成するものですが 完全スキャン
Picasa3 を使った写真の整理 写真の整理はエクスプローラーを開いてフォルダの作成から写真の移動やコピーを行うことが望ましいのですが エクスプローラーの操作を覚えられずに写真の整理が進んでいない人のために画像管理ソフト Picasa3 を使った整理方法を説明します なお このソフトは画像に関する多くの機能を持ったものですが 画像整理だけの利用では容量も大きいですからエクスプローラーの使い方をマスターしている人はこのソフトを使う必要はありません
Java Bridgeを利用した他言語によるデータロード&プロットデモ
Java Bridge を利用した他言語による データロード & プロットデモ 担当 : 阿部 ( 九大 ICSWSE) 2013/08/21 2013 年度データ解析講習会 @NIPR 1 Outline 1. Java bridgeとは 2. JUDASとは 3. Java bridgeを使う Purpose Java bridge とその仕組みを知る 他の言語から Java クラスを呼び出して
Microsoft PowerPoint - InfPro_I6.pptx
今日の学習内容 ファイルとディレクトリ ( 続 )(pp.34-36) 色々なUNIXのコマンド (pp.203-209) 今日の基礎教養セミナ講演会 Yahooの坂本さん 3コマ (13:10~) A204 ディレクトリ ( 復習 ) UNIXファイルシステムにはファイルとディレクトリがあり ツリー状の階層型構造をしている ツリー構造の頂点 ( ツリー構造の根の部分 ) 一番上の唯一のディレクトリをルートディレクトリと呼ぶ
PowerPoint プレゼンテーション
レッスン (1) あるワークシート中のあるセルを指定する Worksheets(" ワークシート名 ").Range(" セル ").Value ( 例 ) Worksheets(" データ収集 ").Range("A2").Value あるワークシートのセルから 別のワークシートのセルへ転記する Worksheets(" シート A").Range(" セル ").Value = Worksheets("
サイボウズ Office 10「リンク集」
サイボウズ Office 10 バージョン 10.6 リンク集 Copyright (C) 2013-2016 Cybozu 商標について 記載された商品名 各製品名は各社の登録商標または商標です また 当社製品には他社の著作物が含まれていることがあります 個別の商標 著作物に関する注記については 弊社の Web サイトを参照してください http://cybozu.co.jp/company/copyright/other_companies_trademark.html
立ち読みページ
ケーススタディ 6 Web サイトへのアクセス数を集計 分析する Lesson1 アクセス数の集計 あなたは スポーツ用品を販売する FOMスポーツ株式会社の宣伝部に所属し Webサイトの運営 管理を担当しています この程 新聞折り込みちらしにて取扱商品を宣伝し 合わせて URL アドレスの掲載も行いました 上司から 新聞折り込みちらしを実施した 014 年 9 月 13 日 ( 土 ) を基準に
メソッドのまとめ
メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか
Microsoft PowerPoint - テキスト-Web掲載版.pptx
1 IRAF/PyRAF インストール講習会 磯貝瑞希国立天文台天文データセンター 2017.12.19 ウェブ掲載版 2 はじめに 本日の講習会の目的 : IRAF/PyRAFをシステム (Linux, CentOS 7) にインストールできるようになること 講習内容 : 1. IRAF (v2.16.1) のインストール IRAF, STSDAS/TABLES, x11iraf, SAOimageds9
<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6
簡易 e ラーニングシステム EL for USB 操作マニュアル ( 管理者用 ) 香川高等専門学校情報工学科宮武明義平成 22 年 8 月 17 日 URL: http://www.di.kagawa-nct.ac.jp/~miyatake/open/ 1. はじめに 本システムの機能は, システム管理 ( 管理者用 ), レポート, 小テスト, アンケート, 掲示板, 配布ファイル, 講義記録,
処理手順 1) 健康保険組合から受領した 賞与支払届ターンアラウンド CD を パソコンの CD ドライ ブにセットします 2) マイコンピュータ CD ドライブ の順にダブルクリックして オープンしたウィン ドウにある KPFD0006.txt というアイコンをダブルクリックします すると CD
賞与支払届の CD 届出データ作成マニュアル 健保提供 ターンアラウンド CD の活用 概要 1) 健康保険組合が提供する 賞与支払届ターンアラウンドCD は 日本年金機構により示された 届書作成仕様書 ( 健康保険 厚生年金保険適用関係届書 ) に基づく CDによる賞与支払届出の形式で作成されています 2) 賞与支払届ターンアラウンドCD には 健康保険組合の加入者データベースより被保険者の氏名
すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は
DC さくらの画面構成 DC さくらが起動している間は デスクトップ右下のタスクトレイに DC さくらのアイコンが表示されます この DC さくらのアイコンを右クリックしてください ( 下の図はスクリーンショットです ) この青色のアイコンが DC さくらのアイコンです DCさくらのアイコンを右クリックすると 以下の図のような操作メニューが表示されます メニュー項目には 操作を行うための各コマンドが配置されております
目次 新規ユーザー登録... 3 初期設定... 6 (1) 特定商取引法に基づくページのURLを設定する... 7 (2) コンバージョン測定タグを設定する... 7 サイトを作成してみよう
雛形サイト作成ツールの ご利用マニュアル 1 目次 新規ユーザー登録... 3 初期設定... 6 (1) 特定商取引法に基づくページのURLを設定する... 7 (2) コンバージョン測定タグを設定する... 7 サイトを作成してみよう... 10 2 新規ユーザー登録 1 まず 以下の URL から新規ユーザー登録をお願いします 新規ユーザー登録フォーム http://r3-sys.com/tool/site/register
旅のしおり
ワードでワクワク旅のしおり Word2007 のいろいろな機能を使って楽しい旅のしおり作成に挑戦しましょう! 1. ワード (Word) の起動 2. ページ設定 3. 文字のレイアウト 6. 表のレイアウト 7. ファイルの保存 8. クリップアート挿入 4. セクション区切りの挿入 5. 表の挿入 下記のような 旅のしおり を作成します 1 1. ワード (Word) の起動 [ スタート ]
C#の基本
C# の基本 ~ 開発環境の使い方 ~ C# とは プログラミング言語のひとつであり C C++ Java 等に並ぶ代表的な言語の一つである 容易に GUI( グラフィックやボタンとの連携ができる ) プログラミングが可能である メモリ管理等の煩雑な操作が必要なく 比較的初心者向きの言語である C# の利点 C C++ に比べて メモリ管理が必要ない GUIが作りやすい Javaに比べて コードの制限が少ない
PowerPoint プレゼンテーション
FLEXSCHE Excel 帳票 入門ガイド 1 目次 2 EXCEL 帳票とは EDIF を用いて出力された一時データを元に それを EXCEL 形式の帳票として出力する機能です 利用するには FLEXSCHE EDIF の他 Microsoft Excel 2003 以降が必要です レイアウトデザインも EXCEL で行うので 多くの方に操作に抵抗なく編集していただけます この入門ガイドでは
Java講座
~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト
スクールCOBOL2002
(h) 登録集原文の指定方法 . 登録集原文の指定方法 複数の COBOL プログラムに共通の記述を別のソースファイルとしておき COPY 文で取り込むことができます 登録集原文の概念図を下欄に示します このようにすると コーディング量を削減でき 記述ミスもなくなるため 開発効率を高めることができます ここでは 第 章で実習した reidai.cbl というソースファイルの DATA0 と YYMMDD
Maser - User Operation Manual
Maser 3 Cell Innovation User Operation Manual 2013.4.1 1 目次 1. はじめに... 3 1.1. 推奨動作環境... 3 2. データの登録... 4 2.1. プロジェクトの作成... 4 2.2. Projectへのデータのアップロード... 8 2.2.1. HTTPSでのアップロード... 8 2.2.2. SFTPでのアップロード...
