物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1269|回复: 0

用C写的读雷达头文件

[复制链接]
发表于 2013-2-20 13:16:51 | 显示全部楼层 |阅读模式
半年前在网上找了好久了没有找到一个完整读雷达头文件的程序源码,这几天自己用C语言写了一个读DZT格式的,想读其它格式的头文件,自己把格式结构体改一下就OK了。后面附上一个DZT数据和C源码。
  

#include "stdio.h"
#include "conio.h"
struct DztRDdate /*DZT格式头文件时间结构体*/
{
  unsigned sec2 :5;/*0-30的秒数,显示时要乘2*/
  unsigned min  :6;
  unsigned hour :5;
  unsigned day  :5;
  unsigned month:4;
  unsigned year :7;

} radaDate;


struct DztradaHand/*DZT格式头文件结构体*/
{
  unsigned short rh_tag; /*DZT头文件标记一般为FF(ASCII为255)*/
  unsigned short rh_data; /*DZT格式头文件的数据偏移量(1024XChannel)*/
  unsigned short rh_nsamp; /*扫描率(采样率)*/
  unsigned short rh_bits;/*数据保存采用的位数(一般为8,16,24,32)*/
  short          rh_zero;
  float          rh_sps;/*扫描道数/秒*/
  float          rh_spm; /*扫描道数/米*/
  float          rh_mpm; /*打MARK标记*/
  float          rh_position;/*点(ns)*/
  float          rh_range;/*时窗*/
  unsigned short rh_npass;
  struct DztRDdate  rh_create;/*创建时间*/
  struct DztRDdate  rh_modif; /*修改时间*/
  unsigned short rh_rgain; /*增益量*/
  unsigned short rh_nrgain; /*增益数*/
  unsigned short rh_text;
  unsigned short rh_ntext;
  unsigned short rh_proc;
  unsigned short rh_nproc;
  unsigned short rh_nchan;/*仪器的通道数量*/
  float          rh_epsr;
  float          rh_top; /*顶点*/
  float          depth; /*所设置时窗的最大深度*/
  char           reserved[31];
  char           rh_dtype;
  char           rh_antname[14];/*所采用的天线频率*/
  unsigned short rh_chanmask;
  char           rh_name[12];/*文件名*/
  unsigned short rh_chksum;
  char           variable[896];

} DztHead;

struct get8  /*定义8位存储*/
{
  unsigned gdv :8;
}gd8;

struct get16 /*定义16位存储*/
{
  unsigned gd :16;
}gd16;


main()
{
    FILE *fp,*fo;/*设置一个打开指针fp,一个保存指针fo*/

    fp=fopen("c:/file1.dzt","rb");/*二进制方式打开DZT格式的文件*/
     fread(&DztHead,sizeof(DztHead),1,fp);/*按头文件大小进行块读取*/

    fclose(fp);
    printf("FileName:%s\nChannel:%d\nAntname:%s\n",DztHead.rh_name,DztHead.rh_nchan,DztHead.rh_antname);
    printf("%d\n",DztHead.rh_data);
    printf("day and time:%d-%d-%d%6d:%d:%d\n%f\n",DztHead.rh_create.month,DztHead.rh_create.day,DztHead.rh_create.year,DztHead.rh_create.hour,DztHead.rh_create.min,2*DztHead.rh_create.sec2,DztHead.rh_sps);

   fo=fopen("c:/test.txt","w");
     fwrite(&DztHead,sizeof(DztHead),1,fo);
     printf("OK");
    fclose(fo);
    getch();
}
getRadaHead.rar (12.94 KB, 下载次数: 2)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-4-28 21:01 , Processed in 0.150951 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表