Преобразование файла 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.

    Screenshot that shows the import button in Postman.

    1. Вставьте URL-адрес каждого файла в поле поиска.

    Screenshot that shows importing collection and environment files in Postman via URL.

  3. В среде Postman обновите CURRENT VALUE с информацией из azure Data Manager для экземпляра энергетики.

    1. В Postman в меню слева выберите "Среды" и выберите "Среда SEGYtoZGY".

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

    Screenshot that shows where to enter current values in SEGYtoZGY environment.

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

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

Screenshot that shows the Code button in Postman.

Screenshot of creating Legal Tag.

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

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

  • 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_idwork_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 группы. Проверьте текущие права для пользователя с помощью следующего вызова:

Screenshot that shows the API call to get user groups in Postman.

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

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

Screenshot that shows the API call to get register a user as an admin in Postman.

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

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

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

Screenshot that shows the API call to register a data partition as a seismic tenant in Postman.

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

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

Screenshot that shows the API call to create a seismic subproject in Postman.

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

Примечание.

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

Screenshot that shows the API call to create a seismic dataset in 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:

Screenshot that shows the API call to get a GCS upload URL in Postman.

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

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

Screenshot that shows the API call to upload a file in Postman.

Screenshot that shows the API call to upload a file binary in Postman.

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

Screenshot that shows the API call to verify a file binary is uploaded in 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.

Screenshot that shows the API call to create storage records in Postman.

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

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

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

python sdutil auth idtoken

Screenshot that shows the API call to start the conversion workflow in Postman.

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

Screenshot that shows the API call to check the conversion workflow's status in Postman.

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

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

Screenshot that shows the API call to check if the file has been converted.

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

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

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

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