CC雷达基数据格式说明附函数要点Word文档格式.docx
《CC雷达基数据格式说明附函数要点Word文档格式.docx》由会员分享,可在线阅读,更多相关《CC雷达基数据格式说明附函数要点Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
//区站号
charcRadarType[20];
//雷达型号
charcLongitude[16];
//天线所在经度
charcLatitude[16];
//天线所在纬度
longlLongitudeValue;
//具体经度
longlLatitudeValue;
//具体纬度
longlHeight;
//天线海拔高度
shortsMaxAngle;
//地物阻挡最大仰角
shortsOptAngle;
//最佳观测仰角
unsignedcharucSYear1;
//观测开始时间的年千百位(19-20)
unsignedcharucSYear2;
//观测开始时间的年十个位(00-99)
unsignedcharucSMonth;
//观测开始时间的月(1-12)
unsignedcharucSDay;
//观测开始时间的日(1-31)
unsignedcharucSHour;
//观测开始时间的时(0-23)
unsignedcharucSMinute;
//观测开始时间的分(0-59)
unsignedcharucSSecond;
//观测开始时间的秒(0-59)
unsignedcharucTimeFrom;
//时间来源0-计算机时钟(1天内未对时)
//1-计算机时钟(1天内已对时)
//2-GPS
//3-其它
unsignedcharucEYear1;
//观测结束时间的年千百位(19-20)
unsignedcharucEYear2;
//观测结束时间的年十个位(00-99)
unsignedcharucEMonth;
//观测结束时间的月(1-12)
unsignedcharucEDay;
//观测结束时间的日(1-31)
unsignedcharucEHour;
//观测结束时间的时(0-23)
unsignedcharucEMinute;
//观测结束时间的分(0-59)
unsignedcharucESecond;
//观测结束时间的秒(0-59)
unsignedcharucScanMode;
//扫描方式1-RHI
//10-PPI和ZPPI
//1XX=VPPI(XX为扫描圈数)
unsignedlongulSmilliSecond;
//以微秒为单位表示的秒的小数位
unsignedshortusRHIA;
//RHI所在的方位角(0.01度为单位)
//PPI和VPPI时为FFFF
shortsRHIL;
//RHI所在的最低仰角(0.01度为单位)
//PPI和VPPI时为FFFF
shortsRHIH;
//RHI所在的最高仰角(0.01度为单位)
unsignedshortusEchoType;
//回波类型0x405a-Z0x406a-V0x407a-W
//0x408a-ZVW三要素
unsignedshortusProdCode;
//数据类型0x8001-PPI数据0x8002-RHI数据
//0x8003-VPPI数据0x8004-单强度PPI数据
//0x8005-CAPPI数据
unsignedcharucCalibration;
//标校状态0-无1-自动2-1星期内人工
//3-1月内人工
unsignedcharremain1[3];
//保留字
unsignedcharremain2[660];
//保留字,放VPPISCANPARAMETER数据
//该结构的说明见后
longlAntennaG;
//天线增益(0.001dB)
longlPower;
//峰值功率(瓦)
longlWavelength;
//波长(微米)
unsignedshortusBeamH;
//垂直波束宽度(秒)
unsignedshortusBeamL;
//水平波束宽度(秒)
unsignedshortusPolarization;
//极化状态0-水平1-垂直2-双偏振
//3-圆偏振4-其它
unsignedshortusLogA;
//对数动态范围(0.01dB)
unsignedshortusLineA;
//线性动态范围(0.01dB)
unsignedshortusAGCP;
//AGC延迟量(微秒)
unsignedshortusFreqMode;
//频率方式1-单重复频率2-双重复频率3:
2
//3-双重复频率4:
3
unsignedshortusFreqRepeat;
//重复频率
unsignedshortusPPPPulse;
//PPP脉冲数
unsignedshortusFFTPoint;
//FFT间隔点数
unsignedshortusProcessType;
//信号处理方式1-PPP2-全程FFT
//3-单库FFT
unsignedcharucClutterT;
//杂波消除阀值(即STC)
charcSidelobe;
//第一旁瓣(dB)
unsignedcharucVelocityT;
//速度门限
unsignedcharucFilderP;
//地物消除方式0-无1-IIR滤波器1
//2-IIR滤波器23-IIR滤波器3
//4-IIR滤波器4
unsignedcharucNoiseT;
//噪声消除阀值(即强度门限)
unsignedcharucSQIT;
//SQI门限
unsignedcharucIntensityC;
//DVIP强度值估算采用的通道
//1-对数通道2-线性通道
unsignedcharucIntensityR;
//强度值估算是否距离订正
//0-无(dB)1-已订正(dBZ)
unsignedcharucCalNoise;
//噪声系数标定值
unsignedcharucCalPower;
//发射功率标定值
unsignedcharucCalPulseWidth;
//脉冲宽度标定值
unsignedcharucCalWorkFreq;
//工作频率标定值
unsignedcharucCalLog;
//对数斜率标定值
charremain3[92];
//保留字
unsignedlongintliDataOffset;
//数据偏移地址
}WEATHERRADAR;
//tagVPPISCANPARAMETER仰角层的结构
typedefstructtagVPPISCANPARAMETER
unsignedshortusMaxV;
//最大可测速度(厘米/秒)
unsignedshortusMaxL;
//最大可测距离(10米)
unsignedshortusBindWidth;
//库长(米)
unsignedshortusBinNumber;
//每径向库数
unsignedshortusRecordNumber;
//本圈径向数
unsignedshortusArotate;
//本圈转速(0.01度/秒)
unsignedshortusPrf1;
//本圈第一次重复频率(0.1Hz)对应单重频或双重频的高者
unsignedshortusPrf2;
//本圈第二次重复频率(0.1Hz)对应双重频的低者
unsignedshortusSpulseW;
//本圈脉宽(微秒)
shortusAngle;
//仰角(0.01度)
unsignedcharcSweepStatus;
//1=单要素2=三要素(单重频)3=三要素(双重频)
unsignedcharcAmbiguousp;
//0=无软件退模糊1=软件退模糊
}VPPISCANPARAMETER;
注:
在WEATHERRADAR结构的remain2处填写了的VPPISCANPARAMETER;
结构表明
本仰角层的参数(对PPI和VPPI而言)或其他含义(对RHI和单库FFT文件而言)
VPPI有几层填几个,PPIRHIFFT数据只填写一层即一个.
原始数据:
PPI RHIVPPI的数据排列如下:
第0个径向的数据:
Z(字) 500个
V(字) 500个
W(字) 500个
….
第512个径向的数据:
Z(字) 500个
注:
ZVW均为16位的字型数据(在C语言中用shortint有符整型)
所读出的值除以10得到一个小数就是最终的值.
Z以dBz为单位VW均以m/s为单位
读出的数据如果是0x8000,说明此处无回波.这样做的目的是为了必须区别回波强度
为0和无回波.
单库FFT数据排列如下:
当为256点时:
256个通道的功率值(字型单位:
dB)
当为128点时:
128个通道的功率值(字型单位:
附函数段:
//检查要打开的文件
//filename:
文件名
CStringCRadar:
:
CheckData(CStringfilename)
CFile*fp;
CStringstr="
INVALID"
error,tempfilename=filename;
try{
fp=newCFile(filename,CFile:
modeRead);
}
catch(CFileException*e){
ProcessFileError(e,1);
returnstr;
WEATHERRADARtempinfo;
fp->
SeekToBegin();
Read(&
tempinfo,sizeof(WEATHERRADAR));
if(strcmp(tempinfo.cFileType,"
CINRADC"
))
{
error.Format("
%s不是3830雷达数据文件!
"
tempfilename);
AfxMessageBox(error,MB_OK|MB_ICONSTOP);
deletefp;
if(tempinfo.usProdCode==0x8001)str="
PPI"
;
elseif(tempinfo.usProdCode==0x8002)str="
RHI"
elseif(tempinfo.usProdCode==0x8003)str="
VPPI"
elseif(tempinfo.usProdCode==0x8004)str="
ZPPI"
elseif(tempinfo.usProdCode==0x8005)str="
CAPPI"
elseif(tempinfo.usProdCode==0x8006)str="
FFT"
else
文件%s不是3830雷达数据文件!
deletefp;
returnstr;
}
//读取数据
要打开的文件名
BOOLCPPI:
LoadData(CStringfilename)
CStringstr;
radar->
ProcessFileError(e,1);
returnFALSE;
info,sizeof(WEATHERRADAR));
Seek(218L,CFile:
begin);
vppipara,sizeof(VPPISCANPARAMETER));
rmax=int(vppipara.usMaxL/100.0+0.5);
scanyj=vppipara.usAngle/100.0;
//装地图文件
longl;
//申请数据存储区
hData=:
GlobalAlloc(GHND,512L*1500L*2L);
if(!
hData)
AfxMessageBox("
内存不足"
MB_OK|MB_ICONSTOP);
:
GlobalFree(hData);
pData=(short*):
GlobalLock(hData);
for(l=0;
l<
(512*1500);
l++)pData[l]=short(0x8000);
//程序中用来表示有无数据,可以
//不用考虑
Seek(info.liDataOffset,CFile:
inti,BEGINPOS,angle;
longpos;
shorttempData[500];
//我的程序要把每一个径向的连续的ZVW数据块读出后再按每个点排列成
//第1个点的ZVW第2个点的ZVW…./第500个点的ZVW
//可以不用考虑
if(radar->
scanmode=="
)
for(angle=0;
angle<
512;
angle++)
{
for(BEGINPOS=0;
BEGINPOS<
=2;
BEGINPOS++)
{
fp->
Read(tempData,500L*2);
pos=long(angle*1500+BEGINPOS);
for(i=0;
i<
500;
i++)
{
pData[pos]=tempData[i];
pos+=3;
}
}
}
elseif(radar->
fp->
pos=long(angle*1500+0);
for(i=0;
pData[pos]=tempData[i];
pos+=3;
openfilename=filename;
returnTRUE;
BOOLCRHI:
rmax=int(vppipara.usMaxL/100);
scanfw=info.usRHIA/100.0;
beginyj=info.sRHIL/100.0;
endyj=info.sRHIH/100.0;
for(angle=0;
for(BEGINPOS=0;
pos=long(angle*1500+BEGINPOS);
if(pDC||pmemDC||pbackDC)ChangeDistanceOrHeight(rmax,hmax);
BOOLCVPPI:
LoadData(