Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*数値地図50mメッシュを汎用フォーマットデータに変換するプログラム
- ver1.1 m単位で出力 made by Yoshiyuki Yamamoto H16.5.10
- 参考文献:数値地図50mメッシュ(標高)について(インターネット)
- */
- #include <stdio.h>
- #include <stdlib.h> /*atoi*/
- #include <string.h>
- int main(int argc,char *argv[])
- {
- FILE *fpi,*fpo; /*ファイルポインタ*/
- int i,j,pos_line,data_m; /*変数*/
- short data; /*0.1m単位標高データ変数*/
- char line[6]; /*50mメッシュ標高データ標高値格納用変数*/
- if(argc!=3){
- fprintf(stderr,"Usage: %s 50m標高データファイル名.MEM,50m標高データファイル.raw\n",argv[0]);
- exit(1);
- }
- printf("OPEN FILE NAME:%s\n",argv[1]);
- if((fpi=fopen(argv[1],"rb"))==NULL){
- fprintf(stderr,"50m標高データファイル名.MEM\n");
- exit(1);
- }
- if((fpo=fopen(argv[2],"wb"))==NULL){
- fprintf(stderr,"50m標高データファイル.raw\n");
- exit(1);
- }
- for(i=0;i<=199;i++){
- fseek(fpi,i*1011+1020,SEEK_SET); /*ヘッダーファイルを飛ばす*/
- pos_line=ftell(fpi); /*ヘッダーファイルをきちんと飛ばしているかの確認*/
- printf("calc_pos=%2ld\n",pos_line); /*カレント位置の表示*/
- for (j=0;j<=199;j++){
- fseek(fpi,5*j+i*1011+1020,SEEK_SET);
- fgets(line, 6, fpi); /*数値地図50mメッシュファイルから標高値を取得する*/
- data=atoi(line); /*標高値文字から数値へ変換する*/
- data_m=(short)data/10; /*10cm単位をm単位に変換する*/
- if(data_m==-999)
- {
- data_m=0;
- }
- else
- {
- data_m=data_m;
- }
- printf("%d\n",data_m);
- fwrite(&data_m,sizeof(short),1,fpo); /*m単位標高データの書き込み*/
- }
- }
- fclose(fpi);
- fclose(fpo);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement