初心者のためのポイント学習C言語 続き

参考:初心者のためのポイント学習C言語


ちょっと解読できた点:


構造体hdrを宣言し、その構造体変数としてhdr, hdr2を宣言している、と。

そしてその中には、構造体imhを宣言し、その構造体変数としてobjを宣言している、と。

struct hdr{
     struct imh obj;
} hdr, hdr2;


hdr1という構造体のobjという構造体のnpxというメンバをncol1に代入している、と。

ncol1 = hdr1.obj.npx;


ファイルポインタの宣言をしてますよ、と。

FILE *fp_im_in;


ファイルのオープンとエラー処理をしてますよ、と。

if( (fp_im_in = imropen_fits(argv[1], &hdr.obj, &cmt.obj ))
     == NULL ){
   (void) printf("ERROR: Can't open in_ints\n");
   (void) exit(-1);
}

作業2のために作成したコード

そんなわけで、ようやくボスの参考プログラムをおおざっぱに解読することができるようになりました。そして、適当にイジって平均を求めるプログラムはできたもよう。ただ、メジアンの方はいまだに対処に困っております。。。


備忘録。本日作成したコードは、、、


・code/average_2images_simple.c:
…2枚の画像を読んで、単純に平均をとる(単に0.5倍する)。


・code/average_n_images.c:
n枚の画像を足し合わせた画像を読み込んで、それをnで割る。


・task2/average_NB816_2images.sh:
…average_2images_simple.cを使って、単純に#1と#2の平均を取ってNB816_from1_to2.fitsに出力す
る。


・task2/average_NB816_34LAEs.sh:
…add_2images_simple.cを使って、34枚のNB816バンドでの画像を順次足し合わせてNB816_LAEs_sum.fitsというファイルを作る。そしてその平均をNB816_LAEs_average.fitsに出力する。


かけた時間のわりに、やってることがしょぼ。。。orz

makefile

参考:トリビアなmakefile入門


これまでコンパイル時には、いちいちg++だの-oだのと打ち込んでいましたが、makefileというものにまとめて書いておけば、

% make fugafuga

コンパイルできるんだそうで。しかも、これからコンパイルしたいファイルが依存しているファイルが更新されてるかどうか確認して、更新されてる場合にはそっちもコンパイルしてくれる、という賢い機能なんだとか。