当前位置:网站首页>GPS from getting started to giving up (XX), antenna offset
GPS from getting started to giving up (XX), antenna offset
2022-07-06 21:56:00 【Chasing wind】
Antenna offset (Antenna Offsets) It refers to the offset between the phase center of the antenna and the centroid of the object , This offset will bring centimeter error to satellite positioning . In general positioning , This error can be ignored , But in precision positioning , The effect of this error needs to be eliminated . The concept of center of mass has been learned in physics in Middle School , Not much to say . Here explain the antenna phase center . The electromagnetic wave radiated by the antenna leaves the antenna at a certain distance , Its isophase plane will be approximately a sphere , The spherical center of the sphere is the equivalent phase center of the antenna , That is, the antenna phase center (Antenna Phase Center ). The phase center of the antenna is a theoretical point , in other words , Theoretically, the signal radiated by the antenna is radiated outward with this point as the center .
Antenna offset includes satellite antenna offset and receiver antenna offset .
One 、 Satellite antenna offset
Satellite antenna offset (Satellite Antenna Offsets) It refers to the offset between the antenna phase center of the satellite and the satellite centroid . In precise positioning , We need a precise ephemeris .IGS The precise ephemeris provided is relative to the centroid of the satellite , and GPS The navigation message of is relative to the phase center of the antenna , We must consider the difference between the two in our calculation . The measured value is obtained from the received signal , So its value is relative to the phase center of the antenna . After knowing the satellite antenna offset , We can convert all values into the relative phase center of the antenna , This is convenient for the later positioning solution .
Then we don't make satellites , How to know the antenna offset of the satellite ? In theory , Only those who make satellites know the satellite antenna offset , And each satellite may be different . Fortunately, we have IGS. Satellite antenna offset data will be reported to IGS, and IGS Uniformly arrange and release all satellite antenna offset data . Data can be obtained from IGS Of ftp Server download , The address is ftp://ftp.igs.org/pub/station/general/.
IGS There are mainly two documents related to satellite antenna offset provided :rcvr_ant.tab and igs14.atx
rcvr_ant.tab
The content of this document is IGS Naming rules for each device , Such as receiver 、 The antenna 、 Radome 、 Satellite antenna, etc . Only qualified names can be used in IGS Among the various documents provided by the station . let me put it another way , If in IGS I saw some confused names in some documents of , You can also find the corresponding meaning in this file .
igs14.atx
This is a symbolic link file , Link to the latest modified igs14_wwww.atx file , there wwww Express GPS Weeks . This file contains satellite and receiver antenna phase correction values , be based on IGS14 Earth reference frame .
atx The format of the document is Antenna Exchange Format (ANTEX), stay antex14.txt There is a detailed description of this format in the document (antex14.txt Documents can also be found in IGS Of ftp Server download ), Here is a brief introduction .
The following content is intercepted igs14.atx Part of :
START OF ANTENNA
BLOCK IIF G01 G063 2011-036A TYPE / SERIAL NO
0 29-JAN-17 METH / BY / # / DATE
0.0 DAZI
0.0 17.0 1.0 ZEN1 / ZEN2 / DZEN
2 # OF FREQUENCIES
2011 7 16 0 0 0.0000000 VALID FROM
IGS14_2082 SINEX CODE
G01 START OF FREQUENCY
394.00 0.00 1501.80 NORTH / EAST / UP
NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
G01 END OF FREQUENCY
G02 START OF FREQUENCY
394.00 0.00 1501.80 NORTH / EAST / UP
NOAZI 6.10 4.40 2.80 1.30 -0.20 -1.40 -2.80 -3.90 -4.40 -4.40 -3.70 -2.30 -0.20 3.00 5.70 12.40 18.20 23.50
G02 END OF FREQUENCY
END OF ANTENNA
This is a GPS In the system PRN by 01 Satellite antenna offset data . from “# OF FREQUENCIES” In this line, we know that it has 2 Frequency . For the first frequency ,“NORTH / EAST / UP” The three numbers in this line are the offset values in three directions , In millimetres .“ZEN1 / ZEN2 / DZEN” This line shows the range of the bottom of the sky from ZEN1 To ZEN2,DZEN Step length ,“NOAZI” In this line, the corresponding phase center change value is given according to the range and step size of the sky bottom angle (pcv: phase center variations). Take the first frequency as an example ,“NOAZI” Yes 18 It's worth , Corresponding “ZEN1 / ZEN2 / DZEN” The bottom of the sky 0.0 C to 17.0 degree , step 1.0 degree , Is just ( Z E N 2 − Z E N 1 ) / D Z E N = 18 (ZEN2-ZEN1)/DZEN=18(ZEN2−ZEN1)/DZEN=18 It's worth .“DAZI” The value of this line is 0.0 It indicates that the antenna offset data of this satellite is independent of azimuth (non-azimuth-dependent).“NOAZI” It also represents the value independent of azimuth . If it depends on azimuth , be “DAZI” Step length ,“NOAZI” There will be 360 / D A Z I 360/DAZI360/DAZI That's ok , Every line also has ( Z E N 2 − Z E N 1 ) / D Z E N (ZEN2-ZEN1)/DZEN(ZEN2−ZEN1)/DZEN It's worth , The change value of phase center corresponding to a azimuth at different nadir angles . Because the step resolution is limited , So in practical application , If the angle is between two values , Then it can be calculated by interpolation .
stay RTKLIB in , By calling readantex Function to parse atx Of documents , Here's the code , The process is straightforward , There's not much to explain .
static int readantex(const char *file, pcvs_t *pcvs)
{
FILE *fp;
static const pcv_t pcv0={0};
pcv_t pcv;
double neu[3];
int i,f,freq=0,state=0,freqs[]={1,2,5,6,7,8,0};
char buff[256];
trace(3,"readantex: file=%s\n",file);
if (!(fp=fopen(file,"r"))) {
trace(2,"antex pcv file open error: %s\n",file);
return 0;
}
while (fgets(buff,sizeof(buff),fp)) {
if (strlen(buff)<60||strstr(buff+60,"COMMENT")) continue;
if (strstr(buff+60,"START OF ANTENNA")) {
pcv=pcv0;
state=1;
}
if (strstr(buff+60,"END OF ANTENNA")) {
addpcv(&pcv,pcvs);
state=0;
}
if (!state) continue;
if (strstr(buff+60,"TYPE / SERIAL NO")) {
strncpy(pcv.type,buff ,20); pcv.type[20]='\0';
strncpy(pcv.code,buff+20,20); pcv.code[20]='\0';
if (!strncmp(pcv.code+3," ",8)) {
pcv.sat=satid2no(pcv.code);
}
}
else if (strstr(buff+60,"VALID FROM")) {
if (!str2time(buff,0,43,&pcv.ts)) continue;
}
else if (strstr(buff+60,"VALID UNTIL")) {
if (!str2time(buff,0,43,&pcv.te)) continue;
}
else if (strstr(buff+60,"START OF FREQUENCY")) {
if (sscanf(buff+4,"%d",&f)<1) continue;
for (i=0;i<NFREQ;i++) if (freqs[i]==f) break;
if (i<NFREQ) freq=i+1;
}
else if (strstr(buff+60,"END OF FREQUENCY")) {
freq=0;
}
else if (strstr(buff+60,"NORTH / EAST / UP")) {
if (freq<1||NFREQ<freq) continue;
if (decodef(buff,3,neu)<3) continue;
pcv.off[freq-1][0]=neu[pcv.sat?0:1]; /* x or e */
pcv.off[freq-1][1]=neu[pcv.sat?1:0]; /* y or n */
pcv.off[freq-1][2]=neu[2]; /* z or u */
}
else if (strstr(buff,"NOAZI")) {
if (freq<1||NFREQ<freq) continue;
if ((i=decodef(buff+8,19,pcv.var[freq-1]))<=0) continue;
for (;i<19;i++) pcv.var[freq-1][i]=pcv.var[freq-1][i-1];
}
}
fclose(fp);
return 1;
}
For the calculation of satellite antenna offset correction value ,RTKLIB Is called satantpcv Function . Personally, I think there is something wrong with this function , Only phase center variations, Without considering phase center offset.
Two 、 Receiver antenna offset
There are many similarities between receiver antenna offset and satellite antenna offset , Also use IGS The two documents provided :rcvr_ant.tab and igs14.atx.rcvr_ant.tab There is the name of the receiver ,igs14.atx There is receiver antenna offset data in .
The difference is , The receiver has another file antenna.gra, It provides the antenna reference point of the receiver (ARP: antenna reference point) And North reference point (NRP: north reference point) The definition of , And the physical size of the antenna . This is a plain text file , However, there are schematic diagrams of various antennas , I have to show my admiration to the cartographer , Interested students can go to see it by themselves .
In the algorithm, , When calculating the antenna offset of the receiver, we should not only consider the satellite antenna offset phase center offset and phase center variations, Also consider the position of the antenna reference point of the receiver . If in RTKLIB in , It's through antmodel Function to calculate the antenna offset correction value of the receiver , The code is as follows . among del Is the offset value relative to the antenna reference point ,azel Is azimuth and pitch angle ,pcv->off by phase center offset,pcv->var by phase center variations.
void antmodel(const pcv_t *pcv, const double *del, const double *azel,
int opt, double *dant)
{
double e[3],off[3],cosel=cos(azel[1]);
int i,j;
trace(4,"antmodel: azel=%6.1f %4.1f opt=%d\n",azel[0]*R2D,azel[1]*R2D,opt);
e[0]=sin(azel[0])*cosel;
e[1]=cos(azel[0])*cosel;
e[2]=sin(azel[1]);
for (i=0;i<NFREQ;i++) {
for (j=0;j<3;j++) off[j]=pcv->off[i][j]+del[j];
dant[i]=-dot(off,e,3)+(opt?interpvar(90.0-azel[1]*R2D,pcv->var[i]):0.0);
}
trace(5,"antmodel: dant=%6.3f %6.3f\n",dant[0],dant[1]);
}
边栏推荐
- mysql根据两个字段去重
- Quick news: the flybook players' conference is held online; Wechat payment launched "education and training service toolbox"
- 设置状态栏样式Demo
- 美国科技行业结束黄金时代,芯片求售、裁员3万等哀声不断
- string的底层实现
- Uni app app half screen continuous code scanning
- What about the spectrogram
- OpenCV300 CMake生成project在项目过程中的问题
- GPS从入门到放弃(十三)、接收机自主完好性监测(RAIM)
- 爬虫实战(五):爬豆瓣top250
猜你喜欢
Enhance network security of kubernetes with cilium
Michael smashed the minority milk sign
[daily] win10 system setting computer never sleeps
GPS从入门到放弃(十七) 、对流层延时
关于char[]数组通过scanf赋值使用上的一些问题。。
Aggregate function with key in spark
[Li Kou brush questions] 32 Longest valid bracket
Why is the cluster mode of spark on Yan better than the client mode
Tiktok will push the independent grass planting app "praiseworthy". Can't bytes forget the little red book?
[asp.net core] set the format of Web API response data -- formatfilter feature
随机推荐
It's not my boast. You haven't used this fairy idea plug-in!
Why is the cluster mode of spark on Yan better than the client mode
The golden age of the U.S. technology industry has ended, and there have been constant lamentations about chip sales and 30000 layoffs
C# 如何在dataGridView里设置两个列comboboxcolumn绑定级联事件的一个二级联动效果
PostgreSQL modifies the password of the database user
Solution to the problem of UOS boot prompt unlocking login password ring
Univariate cubic equation - relationship between root and coefficient
C language: comprehensive application of if, def and ifndef
JS learning notes OO create suspicious objects
50个常用的Numpy函数解释,参数和使用示例
关于char[]数组通过scanf赋值使用上的一些问题。。
Technology sharing | packet capturing analysis TCP protocol
Search map website [quadratic] [for search map, search fan, search book]
[daily] win10 system setting computer never sleeps
MySQL - transaction details
Microsoft technology empowerment position - February course Preview
新入职一家公司需要去实践和注意的内容
[Digital IC manual tearing code] Verilog automatic beverage machine | topic | principle | design | simulation
Comparison between multithreaded CAS and synchronized
Method return value considerations