Преобразование файла SEG-Y в ZGY

В этой статье вы узнаете, как преобразовать отформатированные данные SEG-Y в формат ZGY. Сейсмические данные, хранящиеся в стандартном формате SEG-Y, можно преобразовать в ZGY для использования в таких приложениях, как Петрель через сейсмический DMS. См. здесь сведения о часто задаваемых вопросых о преобразованиях ZGY и дополнительные сведения см. в сообществе OSDU® здесь: SEG-Y в ZGY. Это пошаговое руководство по выполнению преобразования. Обратите внимание, что фактический рабочий процесс может отличаться и использовать в качестве руководства для требуемого набора шагов для достижения преобразования.

Необходимые компоненты

Получение сведений об экземпляре Azure Data Manager для энергетики

Первым шагом является получение следующих сведений из экземпляра Azure Data Manager для энергии в портал Azure:

Параметр Значение Пример
client_id Идентификатор приложения (клиент) 3dbbbcc2-f28f-44b6-a5ab-xxxx
client_secret Секреты клиента _fl******************
tenant_id Идентификатор каталога (клиента) 72f988bf-86f1-41af-91ab-xxxxx
base_url URL https://<instance>.energy.azure.com
data-partition-id Секции данных <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 в меню слева выберите "Среды" и выберите "Среда SEGYtoZGY".

    2. В столбце CURRENT VALUE введите сведения, описанные в таблице "Получение сведений об экземпляре Azure Data Manager для энергии".

    Снимок экрана: место ввода текущих значений в среде SEGYtoZGY.

Пошаговый процесс преобразования файла SEG-Y в ZGY-файл

Коллекция Postman предоставляет все примеры вызовов, которые будут использоваться в качестве руководства. Вы также можете получить эквивалентную команду cURL для вызова Postman, нажав кнопку "Код ".

Снимок экрана: кнопка

Снимок экрана: создание юридического тега.

Подготовка файлов набора данных

Подготовьте метаданные/ файл манифеста / файл записей для набора данных. Файл манифеста включает:

  • WorkProduct
  • SeismicBinGrid
  • FileCollection
  • SeismicTraceData

Преобразование использует файл манифеста, который вы отправляете в учетную запись хранения позже, чтобы запустить преобразование. Этот файл манифеста создается с помощью нескольких JSON-файлов и выполнения скрипта. ФАЙЛЫ JSON для этого процесса хранятся здесь для набора данных Volve. Дополнительные сведения о Volve, например о том, откуда приходят определения набора данных, посетите свой веб-сайт. Выполните следующие действия, чтобы создать файл манифеста:

  1. Клонируйте репозиторий и перейдите в папкуdoc/sample-records/volve
  2. Измените значения в скрипте prepare-records.sh Bash. Помните, что формат юридического тега префиксируется с именем экземпляра Azure Data Manager для энергетики и именем секции данных, поэтому выглядит следующим <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, само преобразование должно быть в состоянии успешно завершиться, но Петрель не будет понимать геометрию опроса файла, если он также не получает 5 угловых точек под SpatialArea,AsIngestedCoordinates, SpatialAreaи Wgs84Coordinates.

Доступ пользователей

Пользователь должен быть частью users.datalake.admins группы. Проверьте текущие права для пользователя с помощью следующего вызова:

Снимок экрана: вызов API для получения групп пользователей в Postman.

Далее в этом руководстве вам потребуется по крайней мере один owner и хотя бы один viewer. Эти группы пользователей выглядят как data.default.owners и data.default.viewers. Обязательно запишите один из них в списке.

Если пользователь не является частью требуемой группы, можно добавить необходимое право с помощью следующего примера вызова: email-id: значение "ID", возвращаемое из приведенного выше вызова.

Снимок экрана: вызов API для регистрации пользователя в качестве администратора в Postman.

Если вы еще не создали группы прав, следуйте указаниям, описанным в руководстве по управлению пользователями. Если вы хотите узнать, какие группы у вас есть, используйте группы прав получения для данного пользователя. Изоляция доступа к данным достигается с помощью выделенного списка ACL (списка управления доступом) для каждого объекта в заданной секции данных.

Подготовка подпроекта

1. Регистрация секции данных в сейсмическом режиме

Снимок экрана: вызов API для регистрации секции данных в качестве сейсмического клиента в Postman.

2. Создание подпроекта

Используйте ранее созданные группы прав, которые вы хотите добавить в качестве администраторов и зрителей ACL (контроль доступа list). Права секции данных не обязательно преобразуются в подпроекты внутри него, поэтому важно быть явным в отношении списков управления доступом для каждого подпроекта независимо от того, в какой секции данных она находится.

Снимок экрана: вызов API для создания сейсмического подпроекта в Postman.

3. Создание набора данных

Примечание.

Этот шаг необходим только в том случае, если вы не используете sdutil для отправки сейсмических файлов.

Снимок экрана: вызов API для создания набора сейсмических данных в 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:

Снимок экрана: вызов API для получения URL-адреса отправки GCS в Postman.

Отправьте файл:

Необходимо выбрать файл для отправки в разделе "Текст" вызова API.

Снимок экрана: вызов API для отправки файла в Postman.

Снимок экрана: вызов API для отправки двоичного файла в Postman.

Проверка отправки

Снимок экрана: вызов API для проверки передачи двоичного файла в Postman.

Метод 2. SDUTIL

sdutil — это программа рабочего стола OSDU для доступа к сейсмической службе. Мы используем его для отправки и скачивания файлов. Используйте тег azure-stable из SDUTIL.

Примечание.

При выполнении python sdutil config initInsert the azure (azureGlabEnv) application key:не нужно вводить ничего при появлении запроса.

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

Отправьте сейсмический файл в хранилище Сейсмических данных. Ниже приведен пример с именем SEGY-format file 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 файла в хранилище для рабочих продуктов, данных сейсмической трассировки, сейсмической сетки и сбора файлов. Скопируйте и вставьте содержимое этого файла в текст запроса вызова API.

Снимок экрана: вызов API для создания записей хранения в Postman.

Запуск конвертера

  1. Активируйте DAG преобразования ZGY, чтобы преобразовать данные с помощью значений контекста выполнения, сохраненных выше.

    Извлеките маркер идентификатора из sdutil для отправленного файла или используйте маркер доступа или носителя из Postman.

python sdutil auth idtoken

Снимок экрана: вызов API для запуска рабочего процесса преобразования в Postman.

  1. Пусть DAG запускается в succeeded состояние. Вы можете проверить состояние с помощью вызова состояния рабочего процесса. Идентификатор выполнения находится в ответе приведенного выше вызова.

Снимок экрана: вызов API для проверки состояния рабочего процесса преобразования в Postman.

  1. Можно увидеть, присутствует ли преобразованный файл с помощью следующей команды в sdutil или в вызове API Postman:

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

Снимок экрана: вызов API для проверки того, был ли преобразован файл.

  1. Вы можете скачать и проверить файл с помощью команды sdutilcp:

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

OSDU® — это товарный знак Open Group.

Следующие шаги