GPSRINEX(1) GPSD Documentation GPSRINEX(1)

gpsrinex - خواندن داده‌ها از gpsd، تبدیل به RINEX و ذخیره در یک پرونده

gpsrinex [OPTIONS] [server[:port[:device]]]

gpsrinex -h

gpsrinex -V

ابزار gpsrinex برای اتصال به gpsd و خروجی دادن سنجش‌های خام دریافت‌شده در قالب یک پرونده مشاهدات RINEX به کار می‌رود. این قابلیت برای ارسال سنجش‌های خام (pseudorange و carrierphase) از gpsd به یک برنامه یا سرویس تعیین موقعیت دقیق نقطه (PPP) مفید است.

دستور gpsrinex نیازی به دسترسی ریشه ندارد، اما می‌تواند با دسترسی ریشه نیز اجرا شود. برخی از مثال‌های این صفحه ممکن است هنگام اجرا تحت sudo کار نکنند. این ابزار می‌تواند هم‌زمان با سایر ابزارهایی که به یک gpsd محلی یا ریموت متصل هستند، بدون ایجاد مشکل اجرا شود.

ابزار gpsrinex نیاز دارد که گیرنده GNSS سنجش‌های خام را به gpsd ارسال کند. تنها تعداد کمی از گیرنده‌های GNSS این قابلیت را دارند. علاوه بر این، درایور gpsd برای آن GNSS باید از حالت خام پشتیبانی کند. در حال حاضر فقط درایور u-blox این پشتیبانی را دارد. تنها برخی از گیرنده‌های u-blox سری 8، 9 و 10 پیام مورد نیاز UBX-RXM-RAWX را پیاده‌سازی می‌کنند. گیرنده NEO-M8T به کارکرد درست شناخته شده است، اما نیاز به پیکربندی با ubxtool دارد.

پیش از استفاده از ubxtool، حتماً متغیر محیطی UBXOPTS را با نسخه پروتکل صحیح گیرنده u-blox خود تنظیم کنید. اگر نسخه پروتکل شما 32.00 است، این کار را انجام دهید:

export UBXOPTS="-P 32.00"

فرمت RINEX تعاریف و اختصارات خاص خود را دارد؛ حتماً به مستندات آن مراجعه کنید. یک پرونده مشاهدات (.obs) شامل مجموعه‌داده‌هایی به نام مبدأ زمانی (epoch) است که حاوی pseudorange و carrierphase برای هر ماهواره مشاهده‌شده است.

دستور gpsrinex به صورت پیش‌فرض ۲۰ مبدأ زمانی (epoch) با فاصله زمانی ۳۰ ثانیه از یکدیگر دریافت می‌کند. این فرآیند ۱۰ دقیقه طول خواهد کشید. بیشتر کاربران بازه ۳۰ ثانیه‌ای را بهینه می‌دانند. بسیاری از برنامه‌های PPP به دست‌کم ۱ یا ۲ ساعت داده نیاز دارند، اما نباید بیش از ۲۴ یا ۴۸ ساعت داده ارسال شود. بیشتر کاربران ۴ تا ۶ ساعت داده را حداقل میزان لازم برای دقت مناسب می‌دانند. ساعت‌های بیشتر بهبود چندانی ایجاد نخواهد کرد.

خروجی شامل یک پرونده مشاهدات RINEX خواهد بود که آماده خوانده شدن توسط برنامه PPP شما است. نام پرونده پیش‌فرض به این شکل خواهد بود: gpsrinexYYYYjjjHHMMSS.obs. می‌توانید این نام پرونده را با گزینه -f تغییر دهید.

به صورت اختیاری می‌توان سرور، شماره پورت TCP/IP و دستگاه ریموت را مشخص کرد. در صورت عدم ذکر، gpsrinex به localhost روی پورت پیش‌فرض (2947) متصل می‌شود و تمام دستگاه‌های باز شده توسط gpsd را رصد می‌کند.

-?, -h, --help

نمایش پیام راهنمای نحوه استفاده و خروج.

-D LVL, -debug LVL

تنظیم سطح اشکال‌زدایی روی LVL.

-f OUTFILE, --fileout OUTFILE

ذخیره خروجی RINEX در پرونده OUTFILE.

-F INFILE, --filein INFILE

خواندن JSON جی‌پی‌اس از پرونده، به جای خواندن مستقیم از یک gpsd زنده.

-g CODES, --gnss CODES

خروجی دادن سامانه GNSS تنها در صورتی که کد RINEX آن در CODES موجود باشد. کدها عبارتند از: C = BeiDou, E = Galileo, G = GPS, I = IRNSS, J = QZSS, R = GLONASS, S = SBAS.

-i SECS, --interval SECS

مکث به مدت [interval] ثانیه بین هر مبدأ زمانی (epoch). این بازه زمانی را می‌توان تا دقت میلی‌ثانیه مشخص کرد. سرویس OPUS بازه‌های ۱، ۲، ۳، ۵، ۱۰، ۱۵ یا ۳۰ ثانیه‌ای را می‌پذیرد. سپس OPUS داده‌ها را به بازه‌های ۳۰ ثانیه‌ای کاهش می‌دهد. مقدار پیش‌فرض 30.000 است.

-n COUNT, --count COUNT

تعیین تعداد COUNT مبدأ زمانی (epoch) در خروجی. سرویس OPUS حداقل به ۱۵ دقیقه و حداکثر به ۴۸ ساعت داده نیاز دارد.

-V, --version

چاپ نسخه gpsrinex و خروج.

گزینه‌های زیر رشته‌هایی را تعیین می‌کنند که در پرونده مشاهدات RINEX 3 تولیدشده قرار می‌گیرند. این گزینه‌ها تغییری در نحوه محاسبات gpsrinex ایجاد نمی‌کنند.

--agency AGENCY

نام سازمانی که پرونده جاری را ایجاد می‌کند.

--ant_num NUMBER

شماره سریال آنتن.

--ant_type TYPE

نوع آنتن.

--comment CMT

توضیحات یا یادداشت دلخواه.

--marker_name NAME

نام نشانگر (marker).

--marker_type TYPE

نوع نشانگر (marker).

--observer OBSERVER

نام مشاهده‌کننده (شما).

--rec_num NUM

شماره سریال گیرنده.

--rec_type TYPE

نوع گیرنده.

--rec_vers VERS

نسخه گیرنده.

گزینه‌های زیر مقادیر اعشاری شناوری را تعیین می‌کنند که در پرونده مشاهدات RINEX تولیدشده قرار می‌گیرند. این گزینه‌ها تغییری در محاسبات gpsrinex ایجاد نمی‌کنند.

--ant_e EASTING

فاصله شرقی آنتن از نشانگر به متر.

--ant_h HEIGHT

ارتفاع آنتن از نشانگر به متر.

--ant_n NORTHING

فاصله شمالی آنتن از نشانگر به متر.

به صورت پیش‌فرض، کلاینت‌ها داده‌ها را از دیمن محلی gpsd که روی localhost در حال اجراست و با استفاده از پورت پیش‌فرض 2947 مربوط به GPSD جمع‌آوری می‌کنند. آرگومان اختیاری برای هر کلاینت می‌تواند این رفتار را لغو کند: [server[:port[:device]]]

برای توضیحات و مثال‌های بیشتر، بخش ARGUMENTS را در صفحه راهنمای gps(1) مشاهده کنید.

مثال ۱:

ایجاد یک پرونده .obs چهار ساعته. با یک gpsd در حال اجرا که روی localhost قابل دسترسی است، تمام موارد زیر را به ترتیب انجام دهید. ترتیب مراحل اهمیت دارد.

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

gpsctl -s 115200

غیرفعال کردن تمام پیام‌های NMEA و فعال کردن پیام‌های دودویی:

ubxtool -d NMEA
ubxtool -e BINARY

گیرنده NEO-M8N تنها زمانی سنجش‌های خام را به طور پایدار خروجی می‌دهد که فقط منظومه‌های ماهواره‌ای GPS و QZSS فعال باشند. اگر سرویس PPP شما می‌تواند از GLONASS استفاده کند، آن را نیز فعال کنید. حتماً قبل از فعال‌سازی، ابتدا غیرفعال کنید تا موقتاً منظومه‌های زیادی انتخاب نشده باشند. ابزار ubxtool طبق توصیه u-blox، منظومه QZSS را به همراه GPS فعال می‌کند. تمام منظومه‌ها به جز GPS (و QZSS) را غیرفعال کنید:

ubxtool -d BEIDOU
ubxtool -d GALILEO
ubxtool -d GLONASS
ubxtool -d SBAS
ubxtool -e GPS

بررسی منظومه‌های فعال‌شده:

ubxtool -p CFG-GNSS

فعال کردن پیام‌های سنجش خام:

ubxtool -e RAWX

بررسی اینکه پیام‌های داده خام در حال ارسال هستند:

ubxtool | fgrep RAWX

باید این خروجی را مشاهده کنید:

UBX-RXM-RAWX:
UBX-RXM-RAWX:

جمع‌آوری ۴ ساعت نمونه در بازه‌های ۳۰ ثانیه‌ای و ذخیره مشاهدات RINEX در پرونده today.obs:

gpsrinex -i 30 -n 480 -f today.obs

۴ ساعت صبر کنید. یک وعده غذا میل کنید یا کمی ورزش کنید. هنگامی که gpsrinex به پایان رسید، پرونده today.obs را در سرویس PPP مورد علاقه خود بارگذاری کنید.

مثال ۲:

جمع‌آوری داده‌های سنجش خام از یک gpsd ریموت و سپس پردازش بعدی آن با gpsrinex و gpsprof.

مطمئن شوید گیرنده همان‌طور که در مثال ۱ نشان داده شد، به درستی پیکربندی شده باشد.

دریافت ۴ ساعت داده خام زنده از gpsd ریموت در آدرس 10.168.1.2:

gpspipe -x 14400 -R 10.168.1.2 > 4h-raw.ubx

پس از اتمام gpspipe، پرونده 4h-raw.ubx حاوی ۴ ساعت پیام دودویی خام UBX خواهد بود. آن داده‌های خام را با gpsdecode به فرمت JSON جی‌پی‌اس‌دی تبدیل کنید:

gpsdecode < 4h-raw.ubx > 4h-raw.json

پرونده 4h-raw.json اکنون حاوی داده‌های کدگذاری‌شده به عنوان JSON جی‌پی‌اس‌دی است. با استفاده از gpsrinex آن پرونده را بخوانید و یک پرونده RINEX ایجاد کنید:

gpsrinex -F 4h-raw.json

پرونده RINEX در دایرکتوری جاری با نامی مشابه gpsrinexYYYYjjjHHMMSS.obs قرار خواهد گرفت. برای نحوه قالب‌بندی تاریخ، strftime(1) را مشاهده کنید.

اکنون می‌توانید از پرونده JSON برای تولید نمودار قطبی ماهواره‌های استفاده‌شده بهره ببرید:

gpsprof -f polarused -T jpeg -r < 4h-raw.json > 4h-raw.plot
gnuplot < 4h-raw.plot > 4h-raw.png

از نمایشگر تصویر دلخواه خود برای مشاهده وضعیت آسمان در 4h-raw.png استفاده کنید.

0

در صورت موفقیت.

1

در صورت بروز خطا.

یک سرویس شناخته‌شده که با خروجی gpsrinex کار می‌کند: https://webapp.geod.nrcan.gc.ca/geod/tools-outils/ppp.php

سرویس OPUS به پرونده‌های مشاهدات ۲ فرکانسه نیاز دارد: https://www.ngs.noaa.gov/OPUS

علاقه‌مندان می‌توانند توضیحات قالب RINEX 3.04 را در اینجا بیابند: <ftp://igs.org/pub/data/format/rinex304.pdf>

قالب RINEX 4.02 در اینجا قرار دارد: https://files.igs.org/pub/data/format/rinex_4.02.pdf

gpsd(8), gps(1), gpsprof(1), gpsfake(1), ubxtool(1), gpsd_json(5), strftime(1)

تارنمای پروژه: https://gpsd.io

حق نشر این پرونده متعلق به پروژه GPSD است.
SPDX-License-Identifier: BSD-2-clause

Gary E. Miller

2025-11-22 GPSD, Version 3.27.5