كيفية تحويل ملف SEG-Y إلى ZGY

في هذه المقالة، ستتعلم كيفية تحويل البيانات المنسقة SEG-Y إلى تنسيق ZGY. يمكن تحويل البيانات الزلزالية المخزنة في تنسيق SEG-Y القياسي للصناعة إلى ZGY للاستخدام في تطبيقات مثل Petrel عبر Seismic DMS. انظر هنا للحصول على الأسئلة المتداولة حول تحويل ZGY ويمكن العثور على مزيد من الخلفية في مجتمع OSDU® هنا: محادثة SEG-Y إلى ZGY. هذا البرنامج التعليمي هو إرشادات خطوة بخطوة كيفية إجراء التحويل. لاحظ أن سير عمل الإنتاج الفعلي قد يختلف ويستخدم كدليل لمجموعة الخطوات المطلوبة لتحقيق التحويل.

المتطلبات الأساسية

الحصول على Azure Data Manager لتفاصيل مثيل الطاقة

الخطوة الأولى هي الحصول على المعلومات التالية من Azure Data Manager لمثيل الطاقة في مدخل Microsoft Azure:

المعلمة القيمة مثال
client_id معرف التطبيق (العميل) 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxxxx
client_secret أسرار العميل _فلوريدا******************
tenant_id معرف الدليل (المستأجر) 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx
base_url عنوان URL https://<instance>.energy.azure.com
معرف قسم البيانات قسم (أقسام) البيانات <data-partition-name>

يمكنك استخدام هذه المعلومات لاحقا في البرنامج التعليمي.

إعداد Postman

بعد ذلك، قم بإعداد Postman:

  1. قم بتنزيل تطبيق Postman لسطح المكتب وتثبيته.

  2. استيراد الملفات التالية في Postman:

    لاستيراد الملفات:

    1. حدد استيراد في Postman.

    لقطة شاشة تعرض زر الاستيراد في Postman.

    1. الصق عنوان URL لكل ملف في مربع البحث.

    لقطة شاشة تعرض استيراد ملفات المجموعة والبيئة في Postman عبر عنوان URL.

  3. في بيئة Postman، قم بتحديث CURRENT VALUE بالمعلومات من Azure Data Manager لتفاصيل مثيل الطاقة

    1. في Postman، في القائمة اليسرى، حدد Environments، ثم حدد SEGYtoZGY Environment.

    2. في العمود CURRENT VALUE ، أدخل المعلومات الموضحة في الجدول في "الحصول على تفاصيل مثيل Azure Data Manager for Energy".

    لقطة شاشة توضح مكان إدخال القيم الحالية في بيئة SEGYtoZGY.

عملية خطوة بخطوة لتحويل ملف SEG-Y إلى ملف ZGY

تحتوي مجموعة Postman المقدمة على جميع المكالمات النموذجية لتكون بمثابة دليل. يمكنك أيضا استرداد الأمر cURL المكافئ لاستدعاء Postman بالنقر فوق الزر Code .

لقطة شاشة تعرض زر Code في Postman.

لقطة شاشة لإنشاء علامة قانونية.

إعداد ملفات مجموعة البيانات

قم بإعداد ملف بيانات التعريف / ملف البيان / السجلات لمجموعة البيانات. يتضمن ملف البيان ما يلي:

  • منتج العمل
  • SeismicBinGrid
  • FileCollection
  • SeismicTraceData

يستخدم التحويل ملف بيان تقوم بتحميله إلى حساب التخزين الخاص بك لاحقا لتشغيل التحويل. يتم إنشاء ملف البيان هذا باستخدام ملفات JSON متعددة وتشغيل برنامج نصي. يتم تخزين ملفات JSON لهذه العملية هنا لمجموعة بيانات Volve. لمزيد من المعلومات حول Volve، مثل المكان الذي تأتي منه تعريفات مجموعة البيانات، قم بزيارة موقع الويب الخاص بهم. أكمل الخطوات التالية لإنشاء ملف البيان:

  1. استنساخ المستودع والانتقال إلى المجلدdoc/sample-records/volve
  2. تحرير القيم في prepare-records.sh البرنامج النصي bash. تذكر أن تنسيق العلامة القانونية مسبوق باسم مثيل Azure Data Manager ل Energy واسم قسم البيانات، لذلك يبدو مثل <instancename>-<datapartitionname>-<legaltagname>.
DATA_PARTITION_ID=<your-partition-id>
ACL_OWNER=data.default.owners@<your-partition-id>.<your-tenant>.com
ACL_VIEWER=data.default.viewers@<your-partition-id>.<your-tenant>.com
LEGAL_TAG=<legal-tag-created>
  1. prepare-records.sh تشغيل البرنامج النصي.
  2. الإخراج هو صفيف JSON مع كافة الكائنات ويتم حفظه في all_records.json الملف.
  3. احفظ filecollection_segy_id القيم و work_product_id في ملف JSON هذا لاستخدامها في خطوة التحويل. بهذه الطريقة يعرف المحول مكان البحث عن محتويات .all_records.json

إشعار

all_records.json يجب أن يحتوي الملف أيضا على بيانات مناسبة لكل عنصر.

مثال: يتم استخدام المعلمات التالية عند حساب إحداثيات ZGY ل SeismicBinGrid:

  • P6BinGridOriginEasting
  • P6BinGridOriginI
  • P6BinGridOriginJ
  • P6BinGridOriginNorthing
  • P6ScaleFactorOfBinGrid
  • P6BinNodeIncrementOnIaxis
  • P6BinNodeIncrementOnJaxis
  • P6BinWidthOnIaxis
  • P6BinWidthOnJaxis
  • P6MapGridBearingOfBinGridJaxis
  • P6TransformationMethod
  • persistableReferenceCrsasIngestedCoordinates من الكتلة إذا كان يحتوي على SeismicBinGrid معلمات P6 و CRS المحددة ضمن AsIngestedCoordinates، يجب أن يكون التحويل نفسه قادرا على إكمال بنجاح، ولكن Petrel لن يفهم هندسة الاستطلاع للملف ما لم يحصل أيضا على نقاط الزاوية 5 ضمن SpatialAreaوAsIngestedCoordinatesSpatialArea و وWgs84Coordinates.

وصول المستخدم

يجب أن يكون المستخدم جزءا من users.datalake.admins المجموعة. تحقق من صحة الاستحقاقات الحالية للمستخدم باستخدام الاستدعاء التالي:

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات للحصول على مجموعات المستخدمين في Postman.

لاحقا في هذا البرنامج التعليمي، تحتاج إلى واحد owner على الأقل وواحد على الأقل viewer. تبدو مجموعات المستخدمين هذه مثل data.default.owners و data.default.viewers. تأكد من ملاحظة أحد كل منها في قائمتك.

إذا لم يكن المستخدم جزءا من المجموعة المطلوبة، يمكنك إضافة الاستحقاق المطلوب باستخدام نموذج الاستدعاء التالي: email-id: هل يتم إرجاع القيمة "ID" من المكالمة أعلاه.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لتسجيل مستخدم كمسؤول في Postman.

إذا لم تكن قد أنشأت مجموعات استحقاقات بعد، فاتبع الإرشادات كما هو موضح في كيفية إدارة المستخدمين. إذا كنت ترغب في معرفة المجموعات التي لديك، فاستخدم الحصول على مجموعات الاستحقاقات لمستخدم معين. يتم تحقيق عزل الوصول إلى البيانات باستخدام قائمة التحكم بالوصول المخصصة (قائمة التحكم في الوصول) لكل كائن داخل قسم بيانات معين.

إعداد المشروع الفرعي

1. تسجيل قسم البيانات في Seismic

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لتسجيل قسم بيانات كمستأجر سيزمي في Postman.

2. إنشاء مشروع فرعي

استخدم مجموعات الاستحقاق التي تم إنشاؤها مسبقا والتي ترغب في إضافتها كمسؤولي ACL (قائمة التحكم بالوصول) والعارضين. لا تترجم استحقاقات قسم البيانات بالضرورة إلى المشاريع الفرعية داخله، لذلك من المهم أن تكون صريحا حول قوائم التحكم في الوصول لكل مشروع فرعي، بغض النظر عن قسم البيانات الذي يوجد فيه.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لإنشاء مشروع فرعي سيزمي في Postman.

3. إنشاء مجموعة بيانات

إشعار

هذه الخطوة مطلوبة فقط إذا كنت لا تستخدم sdutil لتحميل الملفات الزلزالية.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لإنشاء مجموعة بيانات سيزمية في Postman.

تحميل الملف

هناك طريقتان لتحميل ملف SEGY. يتم استخدام خيار واحد sasurl من خلال استدعاء Postman / curl. تحتاج إلى تنزيل Postman أو إعداد Curl على نظام التشغيل الخاص بك. الطريقة الثانية هي استخدام SDUTIL. لتسجيل الدخول إلى مثيل ADME عبر الأداة، تحتاج إلى إنشاء رمز تحديث للمثيل. راجع كيفية إنشاء رمز المصادقة المميز. بدلا من ذلك، يمكنك تعديل التعليمات البرمجية ل SDUTIL لاستخدام بيانات اعتماد العميل بدلا من ذلك لتسجيل الدخول. إذا لم تكن قد قمت بالفعل، تحتاج إلى إعداد SDUTIL. قم بتنزيل قاعدة التعليمات البرمجية config.yaml وتحرير في الجذر. استبدل محتويات ملف التكوين هذا ب yaml التالي.

seistore:
    service: '{"azure": {"azureEnv":{"url": "<instance url>/seistore-svc/api/v3", "appkey": ""}}}'
    url: '<instance url>/seistore-svc/api/v3'
    cloud_provider: azure
    env: glab
    auth-mode: JWT Token
    ssl_verify: false
auth_provider:
    azure: '{ 
        "provider": "azure", 
        "authorize_url": "https://login.microsoftonline.com/", "oauth_token_host_end": "/oauth2/v2.0/token", 
        "scope_end":"/.default openid profile offline_access",
        "redirect_uri":"http://localhost:8080",
        "login_grant_type": "refresh_token",
        "refresh_token": "<RefreshToken acquired earlier>" 
        }'
azure:
    empty: none

الطريقة 1: Postman

احصل على sasurl:

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات للحصول على عنوان URL لتحميل GCS في Postman.

تحميل الملف:

تحتاج إلى تحديد الملف لتحميله في قسم النص الأساسي لاستدعاء واجهة برمجة التطبيقات.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لتحميل ملف في Postman.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لتحميل ملف ثنائي في Postman.

التحقق من التحميل

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات للتحقق من تحميل ملف ثنائي في Postman.

الطريقة 2: SDUTIL

sdutil هي أداة سطح مكتب OSDU للوصول إلى الخدمة الزلزالية. نستخدمه لتحميل/تنزيل الملفات. استخدم علامة azure-stable من SDUTIL.

إشعار

عند تشغيل python sdutil config init، لا تحتاج إلى إدخال أي شيء عند مطالبتك ب Insert the azure (azureGlabEnv) application key:.

python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/

قم بتحميل الملف الزلزالي إلى متجر Seismic. فيما يلي مثال مع ملف بتنسيق SEGY يسمى source.segy:

python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy

على سبيل المثال:

python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy

إنشاء سجلات التخزين

قم بإدراج محتويات all_records.json الملف في التخزين لمنتج العمل وبيانات التتبع الزلزالي والشبكة الزلزالية ومجموعة الملفات. انسخ محتويات هذا الملف والصقها في نص الطلب لاستدعاء واجهة برمجة التطبيقات.

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لإنشاء سجلات تخزين في Postman.

تشغيل المحول

  1. قم بتشغيل ZGY Conversion DAG لتحويل بياناتك باستخدام قيم سياق التنفيذ التي قمت بحفظها أعلاه.

    إحضار الرمز المميز للمعرف من sdutil للملف الذي تم تحميله أو استخدام رمز مميز للوصول/الحامل من Postman.

python sdutil auth idtoken

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات لبدء سير عمل التحويل في Postman.

  1. السماح بتشغيل DAG إلى succeeded الحالة. يمكنك التحقق من الحالة باستخدام استدعاء حالة سير العمل. معرف التشغيل في استجابة الاستدعاء أعلاه

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات للتحقق من حالة سير عمل التحويل في Postman.

  1. يمكنك معرفة ما إذا كان الملف المحول موجودا باستخدام الأمر التالي في sdutil أو في استدعاء واجهة برمجة تطبيقات Postman:

    python sdutil ls sd://<data-partition-id>/<subproject>
    

لقطة شاشة تعرض استدعاء واجهة برمجة التطبيقات للتحقق مما إذا كان الملف قد تم تحويله.

  1. يمكنك تنزيل الملف وفحصه باستخدام الأمر sdutilcp :

    python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
    

OSDU® هي علامة تجارية للمجموعة المفتوحة.

الخطوات التالية