.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "GIE" "1" "10 avril 2026" "9.8" "PROJ" .SH "نام (NAME)" gie \- محیط بررسی یکپارچگی اطلاعات مکانی (Geospatial Integrity Investigation Environment) .SH "خلاصه دستور (SYNOPSIS)" .INDENT 0.0 .INDENT 3.5 \fBgie\fP [ \fB\-hovql\fP [ args ] ] file[s] .UNINDENT .UNINDENT .SH "توضیحات (DESCRIPTION)" .sp ابزار gie (محیط بررسی یکپارچگی اطلاعات مکانی)، یک محیط آزمون پس‌رفت (regression testing) برای کتابخانهٔ تبدیل‌های PROJ است. هدف اصلی از طراحی آن، فراهم آوردن امکان اجرای آزمون‌های پس‌رفت روی کدهای متعلق به PROJ است، بدون آنکه به هیچ ابزاری فراتر از همان کامپایلر C استفاده‌شده برای کامپایل کتابخانه نیاز باشد. .INDENT 0.0 .TP .B \-h, \-\-help نمایش اطلاعات نحوهٔ استفاده .UNINDENT .INDENT 0.0 .TP .B \-o , \-\-output مشخص کردن نام فایل خروجی .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-verbose پرگویی: ارائه خروجی‌های اطلاعاتی غیرضروری. برای جزئیات بیشتر \fB\-v\fP را تکرار کنید (مانند \fB\-vv\fP) .UNINDENT .INDENT 0.0 .TP .B \-q, \-\-quiet بی‌صدا: نقطهٔ مقابل پرگویی. در حالت بی‌صدا حتی خطاها نیز گزارش نمی‌شوند. تنها راه تعامل از طریق کد بازگشتی است (۰ برای موفقیت، و مقدار غیرصفر نشان‌دهندهٔ تعداد آزمون‌های ناموفق است) .UNINDENT .INDENT 0.0 .TP .B \-l, \-\-list فهرست کردن کدهای خطای سامانه داخلی PROJ .UNINDENT .INDENT 0.0 .TP .B \-\-version نمایش شماره نسخه .UNINDENT .sp آزمون‌های gie در فایل‌های متنی ساده تعریف می‌شوند که معمولاً دارای پسوند \fB\&.gie\fP هستند. این آزمون‌ها به زبان دستوری ویژه‌ای نوشته می‌شوند که منحصراً برای gie طراحی شده است. کارکرد پایهٔ زبان دستوری gie تنها با ۳ فعل دستوری پیاده‌سازی شده است: \fBoperation\fP که عملیات PROJ مورد آزمایش را مشخص می‌کند، \fBaccept\fP که مختصات ورودی جهت خواندن را تعیین می‌کند، و \fBexpect\fP که نتیجهٔ مورد انتظار را مشخص می‌سازد. .sp یک نمونه فایل آزمون برای gie که از سه دستور پایهٔ فوق استفاده می‌کند به شکل زیر است: .INDENT 0.0 .INDENT 3.5 .sp .EX \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Test output of the UTM projection \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- operation +proj=utm +zone=32 +ellps=GRS80 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- accept 12 55 expect 691_875.632_14 6_098_907.825_05 .EE .UNINDENT .UNINDENT .sp تجزیهٔ یک فایل gie از \fB\fP آغاز شده و با رسیدن به \fB\fP پایان می‌یابد. هر محتوایی قبل از \fB\fP و بعد از \fB\fP نادیده گرفته می‌شود. موارد آزمون با تعریف یک \fBoperation\fP ایجاد می‌شوند که مختصات ورودی را با \fBaccept\fP دریافت کرده و مختصات خروجی را با \fBexpect\fP انتظار دارد. .sp به دلیل اینکه آزمون‌های gie درون برچسب‌های \fB\fP/\fB\fP قرار می‌گیرند، اضافه کردن موارد آزمون به فایل‌های init سفارشی \%<#\:init-files>\& نیز امکان‌پذیر است. این آزمون‌ها هنگام خواندن فایل init توسط PROJ با \fI+init\fP نادیده گرفته می‌شوند، و ابزار gie نیز هر متنی را که درون \fB\fP/\fB\fP نباشد نادیده می‌گیرد. .sp آزمون‌های gie توسط مجموعه‌ای از دستورها مانند \fBoperation\fP، \fBaccept\fP و \fBexpect\fP در مثال بالا تعریف می‌شوند. این دستورها در کنار یکدیگر زبان دستوری gie را تشکیل می‌دهند. هر خطی در فایل gie که با یک دستور شروع نشود نادیده گرفته خواهد شد. در مثال بالا مشاهده می‌شود که چگونه می‌توان از این امکان برای افزودن توضیحات، یادداشت‌ها و قالب‌بندی به فایل‌های آزمون gie استفاده کرد تا هم خوانایی آن‌ها بالاتر برود و هم هدف آزمون‌های گوناگون مستند شود. .sp در ادامه، زبان دستوری gie با جزئیات کامل شرح داده شده است..SH "مثال‌ها (EXAMPLES)" .INDENT 0.0 .IP 1. 3 اجرای تمام آزمون‌ها در یک فایل با فعال بودن تمامی اطلاعات اشکال‌زدایی .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX gie \-vvvv corner\-cases.gie .EE .UNINDENT .UNINDENT .INDENT 0.0 .IP 2. 3 اجرای تمام آزمون‌ها در چندین فایل .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX gie foo bar .EE .UNINDENT .UNINDENT .SH "زبان دستورات GIE (GIE COMMAND LANGUAGE)" .INDENT 0.0 .TP .B operation <+args> تعریف یک عملیات PROJ برای آزمایش. مثال: .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=utm zone=32 ellps=GRS80 # test 4D function accept 12 55 0 0 expect 691875.63214 6098907.82501 0 0 # test 2D function accept 12 56 expect 687071.4391 6210141.3267 .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B accept تعریف مختصات ورودی برای خواندن. مختصات آزمایشی را دریافت می‌کند. این مختصات می‌تواند با ۲، ۳ یا ۴ مقدار تعریف شود، که در آن دو مقدار اول مؤلفه‌های x\- و y\-، مقدار سوم مؤلفهٔ z\- و مقدار چهارم مؤلفهٔ زمان هستند. تعداد مؤلفه‌ها در مختصات مشخص می‌کند که کدام نسخه از عملیات مورد آزمایش قرار می‌گیرد (2D، 3D یا 4D). مختصات‌های متعددی را می‌توان برای یک \fBoperation\fP پذیرفت. برای هر \fBaccept\fP یک دستور متناظر \fBexpect\fP مورد نیاز است. .sp توجه داشته باشید که gie نویسهٔ زیرخط (\fB_\fP) را به عنوان جداکننده هزارگان می‌پذیرد. استفاده از آن الزامی نیست (در واقع، به طور کامل توسط روتین ورودی نادیده گرفته می‌شود)، اما خوانایی رشته‌های بسیار طولانی اعداد را که معمولاً در مختصات‌های تصویرشده مورد نیاز است، به طور چشمگیری بهبود می‌بخشد. .sp برای مشاهده مثال به \fBoperation\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B expect | تعریف مختصات مورد انتظاری که از مختصات پذیرفته‌شدهٔ عبور داده شده از یک عملیات بازگردانده خواهد شد. مختصات مورد انتظار مشابه \fBaccept\fP می‌تواند با ۲، ۳ یا ۴ مؤلفه تعریف شود. برای یک \fBoperation\fP می‌توان چندین مختصات را انتظار داشت. برای هر \fBexpect\fP یک \fBaccept\fP متناظر نیاز است. .sp برای مشاهده مثال به \fBoperation\fP مراجعه کنید. .sp علاوه بر انتظار داشتن مختصات، در صورتی که امکان ایجاد یک عملیات وجود نداشته باشد، امکان انتظار یک کد خطای PROJ نیز وجود دارد. این ویژگی زمانی مفید است که بخواهید بررسی کنید که آیا خطاها به درستی دریافت و مدیریت می‌شوند یا خیر. در زیر مثالی آورده شده است که آزمایش می‌کند عملگر پایپ‌لاین در هنگام ساخته شدن یک پایپ‌لاین غیرقابل معکوس، به درستی با خطا مواجه شود. .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=pipeline step proj=urm5 n=0.5 inv expect failure pjd_err_malformed_pipeline .EE .UNINDENT .UNINDENT .sp برای دیدن فهرستی از کدهای خطایی که می‌توان انتظار داشت، به \fBgie \-\-list\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B tolerance دستور \fBtolerance\fP مشخص می‌کند که مختصات‌های پذیرفته‌شده تا چه اندازه می‌توانند از مختصات مورد انتظار انحراف داشته باشند. این دستور برای آزمایش اینکه آیا یک عملیات با آستانهٔ رواداری عددی مشخصی مطابقت دارد یا خیر کاربردی است. از برخی عملیات‌ها انتظار می‌رود که در حد میلی‌متر دقیق باشند، در حالی که برخی دیگر ممکن است تنها در حد چند متر دقت داشته باشند. \fBtolerance\fP باید .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=merc # test coordinate as returned by \(ga\(ga\(gaecho 12 55 | proj +proj=merc\(ga\(ga tolerance 1 cm accept 12 55 expect 1335833.89 7326837.72 # test that the same coordinate with a 50 m false easting as determined # by \(ga\(gaecho 12 55 |proj +proj=merc +x_0=50\(ga\(ga is still within a 100 m # tolerance of the unaltered coordinate from proj=merc tolerance 100 m accept 12 55 expect 1335883.89 7326837.72 .EE .UNINDENT .UNINDENT .sp رواداری پیش‌فرض 0.5 mm است. برای دیدن فهرستی از واحدهای ممکن، به \fBproj \-lu\fP \%<#\:cmdoption-proj-lu> مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B roundtrip انجام آزمایش رفت‌وبرگشت (roundtrip) روی یک عملیات. دستور \fBroundtrip\fP برای عملکرد خود به دستورهای \fBoperation\fP و \fBaccept\fP نیاز دارد. مختصات پذیرفته‌شده ابتدا در حالت مستقیم (forward) به عملیات فرستاده می‌شود، سپس خروجی حاصل از عملیات مستقیم، مجدداً به عملیات معکوس (inverse) ارسال می‌گردد. این فرایند \fBn\fP بار تکرار می‌شود. اگر مختصات حاصل در محدودهٔ رواداری تعیین‌شده نسبت به مختصات اولیه باشد، آزمون با موفقیت قبول می‌شود. .sp مثال با ۱۰۰ تکرار پیش‌فرض و رواداری پیش‌فرض: .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=merc accept 12 55 roundtrip .EE .UNINDENT .UNINDENT .sp مثال با تعداد دفعات و رواداری پیش‌فرض: .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=merc accept 12 55 roundtrip 10000 .EE .UNINDENT .UNINDENT .sp مثال با تعداد دفعات و رواداری مشخص: .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=merc accept 12 55 roundtrip 10000 5 mm .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B direction دستور \fBdirection\fP مشخص می‌کند که یک عملیات در کدام جهت انجام شود. این مقدار می‌تواند \fBforward\fP یا \fBinverse\fP باشد. نمونه‌ای از این کاربرد در زیر مشاهده می‌شود که در آن بررسی می‌شود آیا یک پایپ‌لاین تبدیل متقارن، در هر دو جهت نتایج یکسانی بازمی‌گرداند یا خیر. .INDENT 7.0 .INDENT 3.5.sp .EX operation proj=pipeline zone=32 step proj=utm ellps=GRS80 step proj=utm ellps=GRS80 inv tolerance 0.1 mm accept 12 55 0 0 expect 12 55 0 0 # Now the inverse direction (still same result: the pipeline is symmetrical) direction inverse expect 12 55 0 0 .EE .UNINDENT .UNINDENT .sp جهت پیش‌فرض \(dqforward\(dq است. .UNINDENT .INDENT 0.0 .TP .B ignore این دستور به‌ویژه در مواردی از آزمون که به یک شبکه (grid) وابسته هستند که در دسترس بودنش تضمین نشده است، مفید است. در زیر مثالی از این وضعیت آمده است. .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=hgridshift +grids=nzgd2kgrid0005.gsb ellps=GRS80 tolerance 1 mm ignore pjd_err_failed_to_load_grid accept 172.999892181021551 \-45.001620431954613 expect 173 \-45 .EE .UNINDENT .UNINDENT .sp برای فهرستی از کدهای خطایی که می‌توان آن‌ها را نادیده گرفت، \fBgie \-\-list\fP را ببینید. .UNINDENT .INDENT 0.0 .TP .B require_grid در دسترس بودن شبکهٔ را بررسی می‌کند. اگر یافت نشود، تمام جفت‌های \fBaccept\fP/\fBexpect\fP تا \fBoperation\fP بعدی نادیده گرفته خواهند شد. \fBrequire_grid\fP را می‌توان چندین بار برای مشخص کردن چندین شبکه که حضور آن‌ها الزامی است، تکرار کرد. .UNINDENT .INDENT 0.0 .TP .B echo افزودن متن تعریف‌شده توسط کاربر به جریان خروجی. مثال زیر را ببینید. .INDENT 7.0 .INDENT 3.5 .sp .EX echo ** Mercator projection tests ** operation +proj=merc accept 0 0 expect 0 0 .EE .UNINDENT .UNINDENT .sp که نتیجهٔ زیر را بازمی‌گرداند: .INDENT 7.0 .INDENT 3.5 .sp .EX \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Reading file \(aqtest.gie\(aq ** Mercator projection test ** \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- total: 1 tests succeeded, 0 tests skipped, 0 tests failed. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B skip صرف‌نظر کردن از هر آزمونی پس از نخستین رخداد \fBskip\fP\&. در مثال زیر تنها آزمون نخست انجام خواهد شد و از آزمون دوم صرف‌نظر می‌شود. این ویژگی عمدتاً هنگام نوشتن آزمون‌های جدید برای اشکال‌زدایی کاربرد دارد. .INDENT 7.0 .INDENT 3.5 .sp .EX operation proj=merc accept 0 0 expect 0 0 skip accept 0 1 expect 0 110579.9 .EE .UNINDENT .UNINDENT .UNINDENT.SH "حالت سخت‌گیرانه (STRICT MODE)" .sp در نسخهٔ 7.1 اضافه شد. .sp گونه‌ای سخت‌گیرانه‌تر از نحو معمول gie را می‌توان با قرار دادن دستورهای gie میان \fB\fP و \fB\fP به کار برد\&. در حالت سخت‌گیرانه، خطوط توضیحات باید با نویسهٔ شارپ (#) آغاز شوند. دستورهای ناشناخته به عنوان خطا تلقی خواهند شد. یک دستور همچنان می‌تواند در چند خط شکسته شود، اما خطوط میانی باید با نویسهٔ فاصله و به دنبال آن یک بک‌اسلش برای مشخص کردن ادامهٔ خط خاتمه یابند. .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .INDENT 3.5 .sp .EX # This is a comment. The following line with multiple repeated characters too \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- # A command on several lines must use \(dq \e\(dq continuation operation proj=hgridshift +grids=nzgd2kgrid0005.gsb \e ellps=GRS80 tolerance 1 mm ignore pjd_err_failed_to_load_grid accept 172.999892181021551 \-45.001620431954613 expect 173 \-45 .EE .UNINDENT .UNINDENT .UNINDENT .UNINDENT .SH "پیش‌زمینه (BACKGROUND)" .sp مهم‌تر از این‌که gie سرواژه‌ای برای \(dqGeospatial Integrity Investigation Environment\(dq باشد، سرنام‌ها، شناسهٔ کاربری و نشانی ایمیل USGS متعلق به Gerald Ian Evenden (۱۹۳۵\-\-۲۰۱۶) بود؛ پیشگام داده‌های مکانی که از دههٔ ۱۹۸۰ پایه‌گذار چیزی شد که امروزه به PROJ تبدیل شده است. .sp دیدگاه روشن جرالد این بود که سیستم‌های تصویر نقشه \fIصرفاً توابعی خاص\fP هستند\&. برخی از آن‌ها نسبتاً پیچیده و بیشتر آن‌ها دو متغیره هستند، اما همگی \fIصرفاً توابعی خاص\fP می‌باشند، و تفاوت چندانی با \fBsin()\fP، \fBcos()\fP، \fBtan()\fP و \fBhypot()\fP که هم‌اکنون در کتابخانهٔ استاندارد C در دسترس هستند، ندارند. .sp و بنابراین، به باور جرالد، استفاده از آن‌ها برای یک برنامه‌نویس \fIنباید خیلی سخت‌تر\fP از توابع دم‌دستی \fBsin()\fP، \fBtan()\fP و \fBhypot()\fP باشد. .sp نبوغ جرالد در پیاده‌سازی این دیدگاه نیز نمایان شد؛ جایی که او سامانه‌ای جامع و در عین حال ساده از جفت‌های کلید\-مقدار را برای پارامتربندی سیستم تصویر نقشه، و ساختار بسیار منعطف \fBPJ\fP \%<#\:c\:.PJ> را برای ذخیره‌سازی نسخه‌های ترجمه‌شدهٔ زمان اجرای این کلید\-مقدارها ابداع کرد، تا فراخوانی تابع سیستم تصویر نقشه، \fBpj_fwd(PJ, point)\fP، به همان سادگی یک فراخوانی تابع سنتی مانند \fBhypot(x,y)\fP باشد\&. .sp اگرچه امروزه سامانه‌های فراداده‌ای با تعریف رسمی‌تر و بهتری داریم (که برجسته‌ترین آن‌ها نمایش OGC WKT2 است)، هیچ‌کدام از نظر خوانایی آسان (\(dqسازگار با انسان\(dq) به پای سامانهٔ کلید\-مقدار جرالد نمی‌رسند. این سامانه به‌ویژه، و سامانهٔ PROJ به‌طور کلی، هدیهٔ بزرگ جرالد به هر کسی بود که از داده‌های مکانی استفاده می‌کند یا پیرامون آن به تبادل اطلاعات می‌پردازد. .sp کاملاً منطقی و شایسته است که نام برنامه‌ای که بر یکپارچگی سامانهٔ PROJ نظارت دارد، به افتخار جرالد نام‌گذاری شود. .sp بنابراین به پاسداشت و امید است در راستای روحیهٔ Gerald Ian Evenden (۱۹۳۵\-\-۲۰۱۶)، این برنامه Geospatial Integrity Investigation Environment است. .SH "همچنین ببینید (SEE ALSO)" .sp \fBproj(1)\fP, \fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP .SH "گزارش باگ‌ها (BUGS)" .sp فهرستی از باگ‌های شناخته‌شده را می‌توانید در \% بیابید که در آن‌جا امکان ارسال گزارش‌های جدید باگ نیز فراهم است. .SH "صفحه اصلی (HOME PAGE)" .sp \% .SH "نویسندگان (AUTHORS)" Thomas Knudsen .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 1983-2026، مشارکت‌کنندگان PROJ .\" End of generated man page.