Преобразование файла SEG-Y в ZGY
В этой статье вы узнаете, как преобразовать отформатированные данные SEG-Y в формат ZGY. Сейсмические данные, хранящиеся в стандартном формате SEG-Y, можно преобразовать в ZGY для использования в таких приложениях, как Петрель через сейсмический DMS. См. здесь сведения о часто задаваемых вопросых о преобразованиях ZGY и дополнительные сведения см. в сообществе OSDU® здесь: SEG-Y в ZGY. Это пошаговое руководство по выполнению преобразования. Обратите внимание, что фактический рабочий процесс может отличаться и использовать в качестве руководства для требуемого набора шагов для достижения преобразования.
Необходимые компоненты
- Подписка Azure
- Экземпляр Azure Data Manager для энергетики , созданный в подписке Azure.
- Файл SEG-Y
- В качестве теста можно использовать любой из следующих файлов из набора данных Volve. Сам набор данных Volve доступен из Equinor.
Получение сведений об экземпляре 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:
Скачайте и установите классическое приложение Postman .
Импортируйте следующие файлы в Postman:
Чтобы импортировать файлы, выполните следующие действия.
- Выберите "Импорт" в Postman.
- Вставьте URL-адрес каждого файла в поле поиска.
В среде Postman обновите CURRENT VALUE с информацией из azure Data Manager для экземпляра энергетики.
В Postman в меню слева выберите "Среды" и выберите "Среда SEGYtoZGY".
В столбце CURRENT VALUE введите сведения, описанные в таблице "Получение сведений об экземпляре Azure Data Manager для энергии".
Пошаговый процесс преобразования файла SEG-Y в ZGY-файл
Коллекция Postman предоставляет все примеры вызовов, которые будут использоваться в качестве руководства. Вы также можете получить эквивалентную команду cURL для вызова Postman, нажав кнопку "Код ".
Создание юридического тега
Подготовка файлов набора данных
Подготовьте метаданные/ файл манифеста / файл записей для набора данных. Файл манифеста включает:
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
Преобразование использует файл манифеста, который вы отправляете в учетную запись хранения позже, чтобы запустить преобразование. Этот файл манифеста создается с помощью нескольких JSON-файлов и выполнения скрипта. ФАЙЛЫ JSON для этого процесса хранятся здесь для набора данных Volve. Дополнительные сведения о Volve, например о том, откуда приходят определения набора данных, посетите свой веб-сайт. Выполните следующие действия, чтобы создать файл манифеста:
- Клонируйте репозиторий и перейдите в папку
doc/sample-records/volve
- Измените значения в скрипте
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>
- Выполните скрипт
prepare-records.sh
. - Выходные данные — это массив JSON со всеми объектами и сохраняется в
all_records.json
файле. - Сохраните
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
persistableReferenceCrs
asIngestedCoordinates
из блока, еслиSeismicBinGrid
у него есть параметры P6 и CRS, указанные в разделеAsIngestedCoordinates
, само преобразование должно быть в состоянии успешно завершиться, но Петрель не будет понимать геометрию опроса файла, если он также не получает 5 угловых точек подSpatialArea
,AsIngestedCoordinates
,SpatialArea
иWgs84Coordinates
.
Доступ пользователей
Пользователь должен быть частью users.datalake.admins
группы. Проверьте текущие права для пользователя с помощью следующего вызова:
Далее в этом руководстве вам потребуется по крайней мере один owner
и хотя бы один viewer
. Эти группы пользователей выглядят как data.default.owners
и data.default.viewers
. Обязательно запишите один из них в списке.
Если пользователь не является частью требуемой группы, можно добавить необходимое право с помощью следующего примера вызова: email-id: значение "ID", возвращаемое из приведенного выше вызова.
Если вы еще не создали группы прав, следуйте указаниям, описанным в руководстве по управлению пользователями. Если вы хотите узнать, какие группы у вас есть, используйте группы прав получения для данного пользователя. Изоляция доступа к данным достигается с помощью выделенного списка ACL (списка управления доступом) для каждого объекта в заданной секции данных.
Подготовка подпроекта
1. Регистрация секции данных в сейсмическом режиме
2. Создание подпроекта
Используйте ранее созданные группы прав, которые вы хотите добавить в качестве администраторов и зрителей ACL (контроль доступа list). Права секции данных не обязательно преобразуются в подпроекты внутри него, поэтому важно быть явным в отношении списков управления доступом для каждого подпроекта независимо от того, в какой секции данных она находится.
3. Создание набора данных
Примечание.
Этот шаг необходим только в том случае, если вы не используете sdutil
для отправки сейсмических файлов.
Отправка файла
Существует два способа отправки 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.
Проверка отправки
Метод 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>/
Отправьте сейсмический файл в хранилище Сейсмических данных. Ниже приведен пример с именем 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.
Запуск конвертера
Активируйте DAG преобразования ZGY, чтобы преобразовать данные с помощью значений контекста выполнения, сохраненных выше.
Извлеките маркер идентификатора из sdutil для отправленного файла или используйте маркер доступа или носителя из Postman.
python sdutil auth idtoken
- Пусть DAG запускается в
succeeded
состояние. Вы можете проверить состояние с помощью вызова состояния рабочего процесса. Идентификатор выполнения находится в ответе приведенного выше вызова.
Можно увидеть, присутствует ли преобразованный файл с помощью следующей команды в sdutil или в вызове API Postman:
python sdutil ls sd://<data-partition-id>/<subproject>
Вы можете скачать и проверить файл с помощью команды sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® — это товарный знак Open Group.