ژئوباکس سرور، به عنوان هسته اصلی ژئوباکس، یک سرور مدرن و قدرتمند GIS است که از پایه (from scratch)  برای استفاده در محیط‌های ابری طراحی‌و پیاده‌سازی شده است. ژئوباکس سرور شامل مجموعه از سرویس‌ها منجمله سرویس‌های ذخیره‌سازی، سرویس‌های داده‌ای (برداری/رستری/شبکه)، سرویس‌های نمایشی (رندرینگ/تایلینگ)، سرویس‌های پردازشی، سرویس‌های پایه‌ای (احرازهویت/میزان‌استفاده/واقعه‌نگاری) می‌باشد. ژئوباکس‌سرور دارای مشخصات فنی زیر است:

    • استفاده از فناوری داکر (Docker) برای توسعه میکروسرویس‌ها
    • قابل استفاده بر روی محیط‌های ابری و غیرابری
    • قابلیت راه‌اندازی بر روی یک دستگاه چندهسته‌ای یا چندین دستگاه به صورت کلاستر شده (Cluster)
    • استفاده از همه پردازنده‌ها با استفاده از قابلیت چندپردازشی (Multi-processing)
    • دارای صف وظایف (Task Queue) توزیع‌یافته برای اولویت‌بندی تسک‌ها و اجرای تسک‌های طولانی مدت در پس‌زمینه
    • مستندسازی API بر مبنای مشخصات OpenAPI
    • سازگاری با OGC (پیاده‌سازی بخش‌هایی از OGC API)
ژئوباکس‌سرور براساس معماری میکرو‌سرویس طراحی‌شده است

سرویس‌ها و امکانات ژئوباکس سرور

سرویس‌های ذخیره‌سازی

  • آپلود/دانلود انواع محتوای داده‌ای (مکانی/غیرمکانی) به‌صورت فایل
  • پشتیبانی از فضای ذخیره‌سازی ابری (S3)
  • جستجو و مشاهده فایل‌های آپلود شده

سرویس‌های برداری

  • انتشار انواع محتوای مکان‌محور آپلود‌شده (Shapefile, GeoJSON, GeoPackage, FileGDB, KML, CSV, DXF و غیره) به صورت سرویس‌های‌ برداری به صورت غیرهمگام (مبتنی بر تسک)
  • ایجاد انواع لایه‌های برداری (خطی/نقطه ای/سطحی) از پایه (From Scratch) یا بر اساس تمپلت یا قالب‌های آماده
  • درج اقلام توصیفی (فیلد) جدید در لایه موجود
  • ویرایش (تغییر، حذف) ویژگی‌های موجود عوارض
  • پرس و جوی (Query) موضوعی و مکانی (بر اساس OGC CQL) از عوارض یک لایه با امکان مرتب‌سازی و صفحه‌بندی (Pagination)
  • درج عوارض جدید در لایه موجود
  • ویرایش (مکانی/توصیفی) و حذف عوارض موجود
  • ویرایش/حذف دسته‌ای عوارض (Batch Editing) به صورت غیرهمگام (مبتنی بر تسک)
  • بارگذاری (Import) عوارض از فایل‌های با فرمت‌های مختلف به صورت غیرهمگام (مبتنی بر تسک)
  • خروجی گرفتن (Export) از عوارض لایه موجود به فرمت‌های مختلف (Shapefile, GeoJSON, GeoPackage, FileGDB, KML, CSV, DXF و غیره) به صورت غیرهمگام (مبتنی بر تسک)
  • ایجاد زیرلایه یا نما (view) از عوارض منتخب لایه موجود
  • پشتیبانی از فرمت TopoJSON برای کدگذاری (Encoding) عوارض
  • ارائه سرویس تایل برداری (Vector Tile) بر اساس Mapbox Vector Tile Specification از لایه موجود
  • انتشار سرویس استاندارد WFS-T OGC یا سرویس نظیر در OGC API (WFS 3.0) از لایه برداری موجود

سرویس‌های رستری

  • انتشار فایل‌های رستری حجیم (Big GeoTIFF) به صورت سرویس رستری به صورت غیرهمگام (مبتنی بر تسک)
  • مشاهده اطلاعات آماری (به صورت هیستوگرام) و فراداده لایه‌های رستری به تفکیک باندهای مختلف
  • پشتیبانی از داده‌های رستری ابرطیفی (Hyperspectral)
  • بصری‌سازی لایه‌های رستری با تنظیم باندهای قابل مشاهده، اختصاص کانال مرئی (RGB) به باند دلخواه، تعریف باندهای محاسباتی با فرمول‌نویسی (مثلاٌ برای محاسبه NDVI)، تنظیم نقشه یا جدول رنگی برای باند دلخواه (Colormap)، تنظیم مقادیر NoData، نگاشت مقادیر یک باند به محدوده دلخواه (Rescale) و سایر تنظیمات نمایشی
  • مشاهده سه‌بعدی تصاویر (مثلاً DEM) با امکان تنظیم میزان اغراق (Exaggeration)
  • انتشار سرویس استاندارد OGC WCS از لایه رستری موجود

سرویس‌های موزاییک رستری

  • ایجاد سرویس موزاییک از یک مجموعه عظیم از تصاویر (هزاران فایل رستری حجیم)
  • تنظیم متد انتخاب مقدار پیکسل در محدوده‌های مشترک تصاویر (Pixel Selection) به روش‌های مختلف نظیر مقدار کمینه، بیشینه، میانگین و غیره
  • افزودن/حذف رستر دلخواه به/از موزاییک
  • بصری‌سازی لایه موزاییک‌شده با تنظیم باندهای قابل مشاهده، اختصاص کانال مرئی (RGB) به باند دلخواه، تعریف باندهای محاسباتی با فرمول‌نویسی (مثلاٌ برای محاسبه NDVI)، تنظیم نقشه یا جدول رنگی برای باند دلخواه (Colormap)، تنظیم مقادیر NoData، نگاشت مقادیر یک باند به محدوده دلخواه (Rescale) و سایر تنظیمات نمایشی
  • انتشار سرویس استاندارد OGC WCS از لایه موزاییک موجود

سرویس‌های تایلینگ

  • ساخت تایل‌های برداری (فرمت Mapbox Vector Tile) از لایه‌های برداری موجود
  • ساخت تایل‌های رستری از نقشه‌ها یا لایه‌های رستری موجود
  • امکان ساخت و کَش کردن (Cache) تایل‌ها به صورت دینامیک و در هنگام درخواست (on-demand)
  • بروزرسانی و ساخت مجدد تایل‌های تغییر کرده به صورت دینامیک و در هنگام درخواست (on-demand)
  • ساخت یکجا (Seed) و کَش کردن تمام تایل‌های (Tileset) یک لایه یا نقشه در یک محدوده مکانی (bbox) و محدوده زوم دلخواه
  • ساخت مجدد تایل‌ها به صورت موضعی (صرفاً تایل‌هایی که تغییر کرده‌اند)
  • استفاده از پردازش چندگانه (Multi-processing) برای اجرای همزمان چندین وُرکر (Worker) برای ساخت تایل‌ها به منظور افزایش سرعت تایلینگ در یک محدوده وسیع (صدها میلیون تایل)
  • ارائه سرویس استاندارد OGC WMTS
  • پشتیبانی از اسکیمای تایلینگ XYZ (XYZ Tiling Scheme)

سرویس‌های نقشه‌ای (رندرینگ)

  • پشتیبانی از تایل‌های برداری (Vector Tiles) و ایجاد نقشه بر اساس استاندارد Mapbox Style Specification
  • امکان رندرکردن نقشه سمت سرور (Server Side Rendering) و تولید تایل‌های تصویری
  • ارائه تایل‌های برداری سه‌بعدی (3D Tilesets) و مشاهده سه‌بعدی نقشه‌ها
  • ارائه سرویس استاندارد OGC WMTS
  • پشتیبانی از اسکیمای تایلینگ XYZ (XYZ Tiling Scheme)

سرویس‌های سه‌بعدی

  • تولید سطح توپوگرافی زمین (Terrain) از تصاویر DEM (مدل رقومی ارتفاعی)
  • امکان قرار دادن تصاویر رستری بر روی Terrain جهت بصری‌سازی توپوگرافی زمین
  • امکان تنظیم مقدار اغراق (Exaggeration) ارتفاعی Terrain
  • تولید نقشه سایه روشن (Hillshade)
  • ساخت مدل‌‌های سه‌بعدی (glb ,glTF و غیره) از عوارض
  •  پشتیبانی از ابر نقطه (Point Cloud)
  • تحلیل‌های سه‌بعدی

سرویس‌های هوش مصنوعی

  • اجرای پردازش‌های استخراج عوارض، تشخیص تغییرات، قطعه‌بندی تصاویر و غیره با استفاده از مدل‌های یادگیری ماشین و شبکه عصبی مصنوعی
  • استفاده از سرویس هوش مصنوعی ژئوباکس در تولید پرس و جوی مکانی (Query) و نقشه‌سازی به صورت هوشمند

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

  • استفاده از پردازش چندگانه (Multi-processing) برای اجرای همزمان چندین وُرکر (Worker) برای افزایش سرعت انجام پردازش‌های پیچیده و زمانبر مکانی
  • سرویس‌های پردازش برداری (Clip, Buffer, Overlay, Conversion)
  • اجرای پرس و جوهای (Query) دلخواه با استفاده از ویرایشگر SQL ژئوباکس
  • سرویس‌های پردازش رستری (Clip, Map Algebra, VectorToRaster and RasterToVector)
  • سرویس‌های پردازش ارجاع‌دهی خطی (Linear Refrencing)
  • ارائه سرویس استاندارد OGC WPS یا سرویس نظیر در OGC API

سرویس‌های احراز هویت و کنترل دسترسی

  • پشتیبانی از سرویس OAuth2 و Social Login
  • پشتیبانی از SSO (Single Sign On)
  • پشتیبانی از مدل امنیتی RBAC (Role Based Access Control) برای تنظیم سطوح دسترسی
  • مدیریت توکن‌های دسترسی/کلیدهای API
  • مدیریت کاربران، گروه‌ها و نقش‌ها

سرویس‌های واقعه‌نگاری و میزان استفاده

  • مانیتور کردن میزان استفاده از منابع سرور (حجم، ترافیک و پردازنده)
  • ارائه آمار میزان استفاده به تفکیک کاربران و محدوده‌های زمانی دلخواه
  • ثبت، نمايش و پايش فعاليتهای کاربران به تفکيک نام کاربر، نوع فعاليت (ورود به سيستم، خروج از سيستم، اجراي دستور و غيره)، تاريخ و زمان فعاليت و غيره
  • اعمال محدودیت بر روی میزان منابع در اختیار کاربر (حجم ذخیره‌سازی، API Call و غیره)