你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何将 SEG-Y 文件转换为 oVDS
本文介绍如何将 SEG-Y 格式的数据转换为 Open VDS (oVDS) 格式。 以行业标准 SEG-Y 格式存储的地震数据可以转换为 oVDS 格式,以便通过地震 DMS 在应用程序中使用。 请参阅 OSDU® 社区的以下内容:SEG-Y 到 oVDS 转换。 本教程是有关如何执行转换的分步指南。 请注意,实际生产工作流可能有所不同,可能用作实现转换所需的一组步骤的指南。
先决条件
- Azure 订阅
- 在 Azure 订阅中创建的一个 Azure Data Manager for Energy 实例。
- SEG-Y 文件
- 可以使用 Volve 数据集中的以下任意文件进行测试。 Volve 数据集本身可从 Equinor 获取。
获取 Azure Data Manager for Energy 实例详细信息
首先从 Azure 门户中的 Azure Data Manager for Energy 实例获取以下信息:
参数 | 值 | 示例 |
---|---|---|
client_id | 应用程序(客户端)ID | 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx |
client_secret | 客户端机密 | _fl****************** |
tenant_id | 目录(租户)ID | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | 代码 | https://<instance>.energy.azure.com |
data-partition-id | 数据分区 | <data-partition-name> |
本教程的后面部分需使用此信息。
设置 Postman
接下来,设置 Postman:
下载并安装 Postman 桌面应用。
将以下文件导入 Postman:
要导入这些文件:
- 选择在 Postman 中导入。
- 将每个文件的 URL 粘贴到搜索框中。
在 Postman 环境中,使用 Azure Data Manager for Energy 实例详细信息中的信息更新 CURRENT VALUE
在 Postman 的左侧菜单中,选择“环境”,然后选择“SEGY 到 VDS 环境”。
在 CURRENT VALUE 列中,输入获取 Azure Data Manager for Energy 实例详细信息的表中所述的信息。
将 SEG-Y 文件转换为 oVDS 的分步过程
提供的 Postman 集合包含用作指南的所有示例调用。 还可以通过单击“代码”按钮来检索 Postman 调用的等效 cURL 命令。
创建法律标记
准备数据集文件
此文件包含示例矢量标头映射,还包含 VDS 转换的示例存储记录。
用户访问
用户需要是 users.datalake.admins
组的一部分。 使用以下调用验证用户的当前权利:
稍后在本教程中,你需要至少一个 owner
和至少一个 viewer
。 这些用户组类似于 data.default.owners
和 data.default.viewers
。 请确保记下列表中的每一项。
如果用户不是所需组的一部分,则可以使用以下示例调用添加所需的权利:email-id: Is(上述调用返回的“ID”值)。
如果尚未创建权利组,请按照如何管理用户中的指导操作。 如果你要查看自己的组,请使用获取给定用户的权利组。 数据访问隔离是使用此专用 ACL(访问控制列表)根据给定数据分区中的对象实现的。
准备子项目
1.将数据分区注册到 Seismic
2.创建子项目
使用先前创建的要添加为 ACL(访问控制列表)管理员和查看者的权利组。 数据分区权利不一定会转换为其中的子项目,因此明确了解每个子项目的 ACL 非常重要,而不管它在哪个数据分区中。
3.创建数据集
注意
仅当不使用 sdutil
上传 Seismic 文件时,才需要此步骤。
上传文件
有两种方法可以上传 SEGY 文件。 一种方法是通过 Postman/curl 调用使用 sasurl。 需要在 OS 上下载 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 是用于访问 Seismic 服务的 OSDU 桌面实用工具。 我们使用它来上传/下载文件。 使用 SDUTIL 中的 azure 稳定标记。
注意
运行 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>/
将地震数据文件上传到地震数据存储。 下面是一个名为 source.segy
的 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
创建标头向量映射
创建标头向量映射
创建存储记录
运行转换器
触发 VDS 转换 DAG 以使用上面保存的执行上下文值转换数据。
从 sdutil 提取已上传文件的 ID 令牌,或者在 Postman 中使用访问/持有者令牌。
python sdutil auth idtoken
- 让 DAG 运行到
succeeded
状态。 可以使用工作流状态调用来检查状态。 运行 ID 在上述调用的响应中提供
可以在 sdutil 中使用以下命令查看转换后的文件是否存在,或者使用下面的 Postman API 调用进行查看:
python sdutil ls sd://<data-partition-id>/<subproject>
验证转换后的文件在 DAG 触发器中的指定位置上是否存在
python sdutil ls sd://<data-partition-id>/<subproject>/
如果想要下载并检查 VDS 文件,请不要使用
cp
命令,因为它不起作用。 VDS 转换会生成多个文件,因此cp
命令无法在一个命令中下载所有这些文件。 请改用 SEGYExport 或 VDSCopy 工具。 这些工具使用一系列 REST 调用,访问命名方案来检索有关所有生成的 VDS 文件的信息。
OSDU® 是 Open Group 的商标。