معرفی RINEX مشاهداتی نسخه 3.03

مطالعه این نوشته در 35 دقیقه

حتما تاکنون نام فایل راینکس RINEX به گوشتان خورده است. در برنامه های مختلف پردازش داده های GNSS با این فایل ها برخورد کرده اید و شاید در مورد اطلاعات موجود در این فایل ها کنجکاو شده اید. در این نوشته به معرفی این فرمت پرکاربرد می پردازم.

RINEX مشاهداتی

ایده اولیه معرفی فرمت RINEX توسط موسسه نجوم دانشگاه Bern معرفی و طراحی شد. هدف اصلی از ایجاد این فرمت، سهولت در جابه جایی داده های GPS بود. در طول طراحی این فرمت، این نکته را در نظر گرفتند که بیشتر نرم افزارهای پردازش داده های GPS از مشاهدات زیر استفاده می کنند:

  • مشاهده فاز موج حامل
  • مشاهده کد (شبه فاصله)
  • مشاهده زمان

در نوشته مربوط به انواع مشاهدات GNSS به بررسی این مشاهدات پرداخته ام. بیشتر نرم افزارهای پردازش، فقط نیاز به این مشاهدات و نیز اطلاعات اولیه ای درباره ایستگاه مشاهدات دارند و بسیاری از اطلاعات اضافی که در فرمت های مخصوص گیرنده ها جمع آوری می شوند، کمکی به فرآیند تعیین موقعیت نمی کنند. در نتیجه فرمت RINEX به عنوان یک فرمت بهینه که فقط اطلاعات مورد نیاز برای پردازش سیستم های تعیین موقعیت ماهواره ای توسط نرم افزارها را شامل می شد، به وجود آمد.

ساختار کلی فرمت RINEX مشاهداتی

همانطور که می دانید RINEX مخفف Receiver Independent Exchange format می باشد. این فرمت برای ارائه فایل های مشاهداتی ایستگاه های زمینی، پارامترهای ناوبری ماهواره های GNSS و نیز پارامترهای اتمسفری به کار می رود. در این نوشته قصد دارم فرمت مشاهداتی راینکس ورژن 3.03 ،که تا زمان نگارش این نوشته آخرین نسخه راینکس ارائه شده می باشد، را معرفی کنم.  این فرمت از یک سری اطلاعات تشکیل شده است که در ادامه به معرفی آن ها می پردازم. این اطلاعات در قالب فایل هایی نوشتاری تحت استاندارد ASCII تولید می شوند. اطلاعات در هر خط که از 80 کاراکتر تشکیل شده است، قرار می گیرند. هر فایل راینکس از دو قسمت اصلی Header و Data تشکیل شده است. قسمت Header اطلاعات مهمی درباره ایستگاه مشاهداتی، نوع مشاهدات، نوع گیرنده و غیره در اختیار قرار می دهد. قسمت data نیز شامل اپک های مشاهداتی و اندازه گیری های انجام شده توسط گیرنده های GNSS می باشد.

اسم یک فایل RINEX

اسم یک فایل راینکس مشاهداتی حاوی اطلاعات مهمی است. ساختار این اسم را در شکل زیر مشاهده می کنید.

RINEX مشاهداتی

برای درک بهتر نحوه نام گذاری فایل راینکس به مثال زیر دقت کنید:

ALGO00CAN_R_20121601000_01H_01S_MO.rnx

در مثال بالا:

  • ALGO00CAN بیانگر نام ایستگاه دائم ALGO که در کشور کانادا قرار دارد می باشد. 00 نیز شماره مارکر و گیرنده در آن ایستگاه است.
  • R بیانگر این است که این اطلاعات از طریق گیرنده جمع آوری شده است. اگر S بود یعنی از طریق Stream ارسال شده است. اگر U بود یعنی ناشناخته است و منبع جمع آوری اطلاعات مشخص نیست.
  • 20121601000 بیانگر تاریخ این فایل است. 2012 شماره سال، 160 تعداد روز از سال، 10 مربوط ساعت و 00 بیانگر دقیقه می باشند.
  • 01H بیانگر مدت زمان فایل می باشد. مثلا در اینجا طول مشاهدات یک ساعت می باشد.
  • 01S فرکانس مشاهدات یا همان فاصله زمانی مشاهدات را نشان می دهد. دراین مثال، مشاهدات با فاصله زمانی 1 ثانیه جمع آوری شده اند.
  • MO بیانگر نوع مشاهدات است. در اینجا MO مخفف Mixed Observation  می باشد. نوع دیگر این مشاهدات عبارتند از:
    • GO = فایل مشاهداتی GPS
    • RO = فایل مشاهداتی GLONASS
    • EO = فایل مشاهداتی Galileo
    • JO = فایل مشاهداتی QZSS
    • CO = فایل مشاهداتی BDS
    • IO = فایل مشاهداتی IRNSS
    • SO = فایل مشاهداتی SBAS
    • MO = فایل مشاهداتی چندین سیستم تعیین موقعیت ماهواره ای Mixed Observation
    • GN = فایل ناوبری GPS
    • RN = فایل ناوبری GLONASS
    • EN = فایل ناوبری Galileo
    • JN = فایل ناوبری QZSS
    • CN = فایل ناوبری BDS
    • IN = فایل ناوبری IRNSS
    • SN = فایل ناوبری SBAS
    • MN = فایل ناوبری تمامی سیستم های تعیین موقعیت ماهواره ای
    • MM = فایل مشاهدات اتمسفری
  • rnx فرمت فایل می باشد. در این مثال فرمت فایل، RINEX است. نوع دیگری از فرمت وجود دارد به نام Hatanaka که فشرده شده ی فرمت راینکس معمولی است و با فرمت crx ارائه می شود.
  • گاهی اوقات برای فشرده سازی از نرم افزارهایی نظیر gzip استفاده میکنند. اگر در آخر فایل، پسوند gz را مشاهده کردید باید با استفاده از نرم افزارهایی نظیر winrar و یا winzip فایل را از حالت فشرده خارج کنید.  بدیهی است این نوع فشرده سازی کاملا متفاوت با فشرده سازی Hatanaka است. در مورد این فرمت و نحوه تبدیل به راینکس معمولی در نوشته های بعدی اشاره خواهم کرد.

همانطور که می بینید نام یک فایل مشاهداتی اطلاعات خوبی ارائه می دهد. لازم به ذکر است که این نوع نام گذاری از راینکس نسخه 3 به بعد رایج شده است.

Header یک فایل راینکس مشاهداتی نسخه 3.03

بعد از شناخت نوع نام گذاری یک فایل راینکس، کافیست برای آشنایی با آن از یک ویرایشگر متن استفاده کنید. من ویرایشگر ++Notepad را پیشنهاد می کنم. بعد از باز کردن فایل شما اطلاعات زیر را در قسمت Header مشاهده می کنید. توجه کنید که قسمت Header از خط اول تا خطی که در آن عبارت End of Header را مشاهده می کنید، ادامه می یابد.

در ایتدای توضیحات یه این نکته توجه کنید که مثال های زیر از یک فایل راینکس استخراج شده است. برای دانلود این فایل با انتهای همین نوشته مراجعه کنید.

اولین خط هر فایل RINEX درباره نوع فایل و نسخه راینکس آن می باشد. به طور مثال در سطر زیر {که نمونه ای از یک فایل راینکس مشاهداتی است}، نوع فایل، فایل مشاهداتی و نسحه آن 3.03 می باشد.


در خط دوم به موسسه، نرم افزار و یا متخصصی که این فایل را ساخته است، اشاره می شود.


در هر خطی که انتهای آن کلمه COMMENT وجود دارد می توان توضیحاتی درباره فایل نوشت.


در خطی که انتهای آن عبارت MARKER NAME وجود دارد، نام نقطه ای که در آن ایستگاه مشاهداتی ایجاد شده است، بیان می شود.


در خطی که انتهای آن عبارت MARKER NUMBER وجود دارد، شماره نقطه ای که در آن ایستگاه مشاهداتی ایجاد شده است، بیان می شود.


در خطی که انتهای آن عبارت MARKER TYPE وجود دارد، نوع نقطه ای که در آن ایستگاه مشاهداتی ایجاد شده است، بیان می شود.


در خطی که انتهای آن عبارت OBSERVER / AGENCY وجود دارد، موسسه یا سازمانی که مشاهدات این نقطه را برداشت کرده مشخص می شود.


خطی که انتهای آن عبارت REC # / TYPE / VERS وجود دارد، نوع گیرنده، شماره و نسخه نرم افزار آن را مشخص می کند.


خطی که انتهای آن عبارت ANT # / TYPE وجود دارد، نوع آنتن گیرنده، شماره و نوع پوشش  آن را مشخص می کند.


خطی که انتهای آن عبارت APPROX POSITION XYZ وجود دارد، مختصات تقریبی نقطه را در دیتوم WGS84 نشان می دهد.


در خطی که انتهای آن عبارت ANTENNA: DELTA H/E/N وجود دارد، فاصله بین نقطه مرجع آنتن یا ARP و نقطه مرجع ایستگاه را بیان می کند. برای فهم بهتر نقطه مرجع آنتن نوشته آفست مرکز فاز آنتن و تغییرات آن را مطالعه کنید.


در خطی که عبارت SYS / # / OBS TYPES را مشاهده می کنید، نوع مشاهداتی که توسط سیستم های تعیین موقعیت ماهواره ای ارائه می شوند را مشخص می کنند. در مثال زیر G بیانگر وجود مشاهدات GPS می باشد. از انواع مشاهدات GPS که در جدول های زیر مشاهده می کنید، مشاهده های C1C L1C S1C C1W S1W C2W L2W S2W C2L L2L S2L C5Q L5Q وجود دارند. برای اینکه متوجه هر کد شوید از جدول های زیر استفاده کنید، مثلا کد C1C مربوط به مشاهده شبه فاصله کد C/A می باشد. یا کد L1C یعنی کد C/A مشاهده شده که از L1 به دست می آید.

 

همان طور که مشاهده می کنید، این مشاهدات در راینکس نسخه 3 متفاوت از ساختارهای قبلی راینکس می باشد. علت این نامگذاری، افزایش تعداد سیگنال های سیستم های تعیین موقعیت ماهواره ای GNSS می باشد. برای فهم بهتر نوع نامگذاری این مشاهدات به جدول های زیر دقت کنید.

RINEX مشاهداتی
کدهای مشاهداتی سیستم GPS در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم GLONASS در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم Galileo در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم SBAS در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم QZSS در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم BDS در راینکس نسحه 3.03
RINEX مشاهداتی
کدهای مشاهداتی سیستم IRNSS در راینکس نسحه 3.03

 


در تمامی خط هایی که در انتهای آن ها SYS / PHASE SHIFT وجود دارد، مقدار شیفت فاز کدهای مشاهداتی مختلف نمایش داده می شود. در مورد این شیفت فاز در ادامه توضیح می دهم.

فاز موج حاملی که در فرکانس های مختلف و یا در مدولاسیون های مختلف توسط گیرنده اندازه گیری می شود، ممکن است به اندازه مثلا  1/4 فاز باهم متفاوت باشند. جدول زیر این تفاوت را نشان می دهد. تمامی مشاهدات فاز اندازه گیری شده در راینکس نسخه 3.03 باید با هم منطبق باشند. این انطباق به این صورت انجام می شود که یک فرکانس به عنوان فرکانس مرجع در نظر گرفته می شود و بقیه کانال ها و یا مدولاسیون های این فرکانس که نسبت به فرکانس مرجع شیفت دارند، اصلاح می شوند.  یعنی اگر این تفاوت فاز که به آن شیفت فاز نیز می گویند مشخص نباشد، مشاهده مربوط به آن نباید در فایل RINEX منتشر شود.

اگر مقدار این شیفت فاز در خط راینکس مربوط به آن صفر در نظر گرفته شود، یعنی مقدار شیفت فاز که در جدول زیر مشاهده می کنید به آن اعمال شده است و تصحیح دیگری نیاز ندارد. میتوان با توجه به جدول زیر مقدار تغییر فاز را به دست آورد. اگر در جلوی کدی که در قسمت SYS / PHASE SHIFT قرار دارد، عددی نوشته نشود یعنی اینکه در فایل هیچ جفت مشاهده ای که تحت تاثیر شیفت فاز باشند وجود ندارند و یا اینکه این مقدار تصحیح قابل مشخص شدن نیست.

RINEX مشاهداتی

RINEX مشاهداتی

برای فهم بهتر این قسمت باید اطلاعاتی درباره نحوه مدولاسیون سیگنال های مختلف سیستم های تعیین موقعیت ماهواره ای داشته باشید.


در خطی که کلمه INTERVAL را مشاهده می کنید، فاصله زمانی بین هر اپک مشاهداتی را نشان می دهد. در این مثال، فاصله زمانی بین هر دو اپک پشت سر هم 15 ثانیه می باشد.


در خطی که عبارت TIME OF FIRST OBS را مشاهده می کنید، زمان اولین اپک مشاهداتی را نشان می دهد. در این مثال زمان در سیستم GPS که با عنوان GPS Time شناخته می شود در نظر گرفته شده است.


در خطی که عبارت TIME OF LAST OBS را مشاهده می کنید، زمان آخرین اپک مشاهداتی را نشان می دهد.


در خطی که عبارت  OF SATELLITES # را مشاهده می کنید، تعداد ماهواره های موجود در فایل مشخص می شود.


در خطی که عبارت GLONASS COD/PHS/BIS مشاهده می شود، تصحیح بایاس فاز استفاده شده برای مشاهدات کد و فاز GLONASS معرفی می شود.


در خطی که عبارت SIGNAL STRENGTH UNIT را مشاهده می کنید، واحد نسبت سیگنال به نویز را مشخص می کند که معمولا دسی بل هرتز DBHZ می باشد.


در خطی که عبارت # GLONASS SLOT / FRQ قرار دارد، شماره ماهواره و فرکانس هر کدام از ماهواره های GLONASS معرفی می شود.


خطی که عبارت END OF HEADER در آن قرار دارد آخرین خط از قسمت Header فایل راینکس می باشد.

Data یک فایل راینکس مشاهداتی نسخه 3.03

قسمت دیتا در فایل راینکس مشاهداتی شامل اپک های مختلف و مشاهدات سیستم های تعیین موقعیت ماهواره ای می باشد.

در اولین خط این قسمت اطلاعات زیر موجود است:

  • اپک مشاهداتی شامل سال، ماه، روز، ساعت، دقیقه و ثانیه
  • Epoch flag: عددی است که اگر 0 باشد یعنی اپک مشکلی ندارد، اگر 1 باشد یعنی قطع منبع انرژی بین اپک قبلی و این اپک اتفاق افتاده است و اگر بیش از 1 باشد، اتفاق خاصی تحت عنوان Special Event رخ داده است. این اتفاق خاص می تواند موارد زیر باشد:
    • عدد 2 یعنی آنتن شروع به حرکت کرده است (حالت کینماتیک)
    • عدد 3 یعنی پایان حالت کینماتیک است.
    • عدد 4 یعنی تغییر اطلاعات قسمت Header می باشد.
    • عدد 5 یعنی اتفاقات خارجی رخ داده است.
    • عدد 6 یعنی قطع فاز یا Cycle Slip رخ داده است.
  • تعداد ماهواره های مشاهده شده در این اپک

در مثال زیر اپک مربوط به روز اول از سال 2018 بوده (ساعت 0 دقیقه 0 و ثانیه 0)؛ Epoch flag برابر با صفر می باشد در نتیجه مشکلی در اپک وجود ندارد؛ و تعداد ماهواره های مشاهده شده نیز برابر با 30 ماهواره است.


پس از معرفی زمان اپک و تعداد ماهواره های مشاهده شده، به ازای هر ماهواره یک (یا چند خط) برای معرفی مشاهدات مربوط به آن ماهواره با توجه به کدهای معرفی شده در قسمت SYS / # / OBS TYPES که در بالا به آن اشاره کردم اختصاص داده می شود. نحوه عملکرد آن به این صورت است که اولین آرایه داده شده در این خط نام ماهواره و سیستم تعیین موقعیت مربوط به آن می باشد. در ادامه به ترتیب آنچه در قسمت SYS / # / OBS TYPES به عنوان نوع مشاهدات ارائه شده است، مشاهدات قرار دارند. اگر مشاهده ای به هر علت در دسترس نباشد جای آن مشاهده خالی می باشد. برای فهم بهتر به مثال زیر توجه کنید.

در مثال زیر خط اول مربوط به ماهواره G05 سیستم GPS می باشد که به ترتیب مشاهدات زیر در آن آمده است:

عدد 24044428.218 بیانگر مشاهده C1C می باشد. بعد از آن یک کاراکتر خالی است که به آن Loss of lock indicator یا LLI می گویند و بیانگر از دست رفتن ارتباط با ماهواره است. اگر این کاراکتر 0 باشد یعنی ارتباط برقرار بوده و اگر خالی باشد یعنی اطلاعاتی در این زمینه وجود ندارد. عدد 6 نشان دهنده میزان سیگنال به نویز می باشد. این عدد از 1 تا 9 متغیر هست. هر چقدر به 9 نزدیکتر باشد یعنی قدرت سیگنال بیشتر است.

عدد 126354331.69806 بیانگر مشاهده L1C می باشد. عدد 41.250 همان مشاهده S1C است.

عدد 24044428.008 مشاهده C1W و عدد 4 نشان دهنده قدرت سیگنال به نویز است.

عدد 27.000 بیانگر مشاهده S1W می باشد. عدد 24044428.764 نشان دهنده مشاهده C2W و عدد 4 بعد از آن نیز قدرت سیگنال را بیان می کند.

عدد 98457927.27204 مشاهده L2W است. عدد 27.000 مشاهده S2W می باشد. عدد 24044429.323 همان مشاهده C2L و عدد 6 بعد از آن نشان دهنده نسبت سیگنال به نویز است.

عدد 98457923.27706 مشاهده L2L و عدد 38.500 مشاهده S2L می باشد. همان طور که مشاهده می کنید در این اپک برای ماهواره G05 مشاهده های C5Q، L5Q و S5Q وجود ندارد.

برای خط های بعدی که بیانگر ماهواره های دیگر سیستم های تعیین موقعیت ماهواره ای می باشند نیز این روند ادامه دارد.

بعد از پایان ارائه تمام مشاهدات مربوط به 30 ماهواره موجود در این اپک، اپک بعدی که 15 ثانیه با این اپک فاصله زمانی دارد شروع می شود و این روند تا ارائه آخرین اپک مشاهدات ادامه می یابد.

دانلود یک نمونه فایل راینکس نسخه 3.03


در آینده ای نزدیک یک بسته آموزشی برای معرفی انواع فایل های RINEX شامل فایل های مشاهداتی، ناوبری و اتمسفری نسخه های پر کاربرد به همراه کدهای برنامه نویسی شده برای استفاده از این فایل ها در Matlab ارائه می شود.

امیر اللهویردی زاده
دانشجوی دکترای GNSS دانشگاه Curtin، کارشناس ارشد ژئودزی از دانشگاه اصفهان، مدرس دانشگاه، علاقه مند به سیستم های تعیین موقعیت ماهواره ای، مدیریت پروژه، برنامه نویسی
LinkedinTelegram

متوسط امتیاز / 5. تعداد رای

8 دیدگاه در “معرفی RINEX مشاهداتی نسخه 3.03”

  1. با سلام
    مساله ای که در تبدیل فایل راینکس نسخه 2 به نسخه 3 به بالا مشاهده می شود، افزایش چند برابری حجم فایل است که بعضا تا حدود 500 مگ هم می رسد. از طرف دیگر نرم افزار ++Notepad نیز هنگام باز کردن چنین فایلی با مشکل مواجه شده و بسته می شود.
    راهکار چیست؟
    با تشکر

  2. با سلام
    من یه فایل راینکس دارم که حاصل مشاهدات یک شناور است اما در اولین سطر همه مشاهدات در قسمت Epoch flag عدد صفر نمایش میده و عدد دو یا سه نمایش نمیده.
    علت چی میتونه باشه؟

    1. سلام. وقت بخیر.
      Epoch flag با مقدار صفر یعنی این اپک شما مشکلی نداره و شرایط نرمالی داره. احتمالا مشکلی نباید داشته باشه. هرچند چون برداشت کینماتیک بوده باید اعداد ۲ و ۳ را در ابتدا و انتهای اپک های مربوط به برداشتتون مشخص باشه. شاید تبدیل کننده از فایل خام به راینکس باعث این تغییر شده باشه.
      در هر صورت یک بار فایل رو پردازش اولیه کنین و نتیجه رو بررسی کنین.
      موفق باشید.

  3. با سلام
    نمونه فایلی که نوع مشاهدات را نشان میدهد شامل مشاهده L2W هست. در جدول آمده که این مشاهده در زمان روشن بودن AS وجود دارد.
    چند سوال دارم
    1) نمونه فایلی که قرار داده اید برای گیرنده نظامی هست چون توانشته L2W را دریافت کند؟
    2) ایا خطای AS دیگر فعال نیست چون کد P را در زمان خاموش بودن آن قابل دسترس نشان داده و اگر چنین است اطلاع دارید از چه زمانی این اتفاق افتاده است؟
    3) با توجه به پیشرفتهایی که در زمینه PPP انجام شده است، آیا در حاضر سرویسهای SPS و PPS غیر از تفاوت در میزان ایمنی شان، از نظر صحت و دقت نیز با یکدیگر تفاوت دارند؟

    با تشکر فراوان از تلاشهای شما

    1. سلام. وقت بخیر.
      نمونه فایل مربوط به گیرنده یکی از ایستگاه های دائم شبکه IGS است و گیرنده نظامی نیست. این گیرنده ها از روش های موسوم به “Reduced” code tracking یا Z-tracking استفاده می کنند که برای آشنایی با آن ها می توانید از لینک زیر استفاده کنید.
      Z-Tracking

      روشن بودن AS یا Anti Spoofing به معنی این است که گیرنده توانایی تشخیص سیگنال هایی که به صورت عمدی دستکاری شده اند تا گیرنده را دچار گمراهی و اشتباه کنند را دارا می باشد و البته این با SA (که مخفف Selective Availability بود و تا سال 2000 به صورت عمدی در اطلاعات ساعت ماهواره ها خطا ایجاد می کردند) متفاوت است. خطای Spoofing در هر زمان و توسط هر شخصی می تواند ایجاد شود. الان با قیمت های بسیار پایینی می توان Spoofer هایی را تهیه کرد و برای خرابکاری از آن ها استفاده نمود. البته سازنده های گیرنده های GNSS نیز از روش هایی برای تشحیص این خطا استفاده می کنند تا از Spoofing جلوگیری کنند.

      در مورد سوال سوم: بدون شک تفاوت چشمگیری از نظر دقت و و صحت و اعتمادپذیری بین این روش ها وجود دارد. PPS در سطحی بالاتر از نظر فاکتور صحت و دقت قرار دارد.

      موفق باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *