tomojitakasu / RTKLIB

2.54k stars 1.61k forks source link

SBAS MOPS DO-229D iono pierce point computation problem. #111

Open lguldur opened 9 years ago

lguldur commented 9 years ago

Dear all,

There was recently an issue discovered by the European Aviation Safety Agency in the DO-229D mops concerning the computation of a iono pierce point position.

In certain conditions, the parameter of an arcsin call can be > 1.

I have checked the source code of rtklib (file src/rtkcmn.c, lines 3347 and 3350) and it contains the same issue.

As RTKLIB is used in many positioning softwares, I thought it could be useful to warn you about it.

This issue is described in the following document: https://easa.europa.eu/system/files/dfu/ETSO.Dev_.C145_5_v11.pdf (formulas A-22 and A-22a page 2).

tomojitakasu commented 9 years ago

Dear Iguidur,

Thanks for important information.

In summery, the document states DO-229 gives wrong IPP positions at higher latitude,

The asin(a) returns nan if a>1 or a<-1 in many environments. So ionppp() outputs pos[] with nan values. In this case, sbsioncorr() in sbas.c the IGP search process failed and it would returns 0 (no correction). It means some satellites are unusable in higher latitude area with SBAS correction. Probably MSAS or GAGAN is not affected, but EGNOS, WAAS or SDCM has the problem.

I will be fixed in future releases.

regards,