你当前正在访问 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 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:

  1. 下载并安装 Postman 桌面应用。

  2. 将以下文件导入 Postman:

    要导入这些文件:

    1. 选择在 Postman 中导入

    显示 Postman 中导入按钮的屏幕截图。

    1. 将每个文件的 URL 粘贴到搜索框中。

    显示通过 URL 在 Postman 中导入集合和环境文件的屏幕截图。

  3. 在 Postman 环境中,使用 Azure Data Manager for Energy 实例详细信息中的信息更新 CURRENT VALUE

    1. 在 Postman 的左侧菜单中,选择“环境”,然后选择“SEGY 到 VDS 环境”

    2. 在 CURRENT VALUE 列中,输入获取 Azure Data Manager for Energy 实例详细信息的表中所述的信息。

    显示在“SEGY 到 VDS 环境”的何处输入当前值的屏幕截图。

将 SEG-Y 文件转换为 oVDS 的分步过程

提供的 Postman 集合包含用作指南的所有示例调用。 还可以通过单击“代码”按钮来检索 Postman 调用的等效 cURL 命令

显示 Postman 中的“代码”按钮的屏幕截图。

创建法律标记的屏幕截图。

准备数据集文件

此文件包含示例矢量标头映射,还包含 VDS 转换的示例存储记录

用户访问

用户需要是 users.datalake.admins 组的一部分。 使用以下调用验证用户的当前权利:

显示用于在 Postman 中获取用户组的 API 调用的屏幕截图。

稍后在本教程中,你需要至少一个 owner 和至少一个 viewer。 这些用户组类似于 data.default.ownersdata.default.viewers。 请确保记下列表中的每一项。

如果用户不是所需组的一部分,则可以使用以下示例调用添加所需的权利:email-id: Is(上述调用返回的“ID”值)。

显示用于在 Postman 中将用户注册为管理员的 API 调用的屏幕截图。

如果尚未创建权利组,请按照如何管理用户中的指导操作。 如果你要查看自己的组,请使用获取给定用户的权利组。 数据访问隔离是使用此专用 ACL(访问控制列表)根据给定数据分区中的对象实现的。

准备子项目

1.将数据分区注册到 Seismic

显示用于在 Postman 中将数据分区注册为 Seismic 租户的 API 调用的屏幕截图。

2.创建子项目

使用先前创建的要添加为 ACL(访问控制列表)管理员和查看者的权利组。 数据分区权利不一定会转换为其中的子项目,因此明确了解每个子项目的 ACL 非常重要,而不管它在哪个数据分区中。

显示用于在 Postman 中创建 Seismic 子项目的 API 调用的屏幕截图。

3.创建数据集

注意

仅当不使用 sdutil 上传 Seismic 文件时,才需要此步骤。

显示用于在 Postman 中创建 Seismic 数据集的 API 调用的屏幕截图。

上传文件

有两种方法可以上传 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:

显示用于在 Postman 中获取 GCS 上传 URL 的 API 调用的屏幕截图。

上传文件:

需要选择要在 API 调用的“正文”部分中上传的文件。

显示用于在 Postman 中上传文件的 API 调用的屏幕截图。

显示用于在 Postman 中上传二进制文件的 API 调用的屏幕截图。

验证上传

显示用于在 Postman 中验证二进制文件已上传的 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

创建标头向量映射

创建标头向量映射

显示用于在 Postman 中创建标头向量映射的 API 调用的屏幕截图。

创建存储记录

显示用于在 Postman 中创建存储记录的 API 调用的屏幕截图。

运行转换器

  1. 触发 VDS 转换 DAG 以使用上面保存的执行上下文值转换数据。

    从 sdutil 提取已上传文件的 ID 令牌,或者在 Postman 中使用访问/持有者令牌。

python sdutil auth idtoken

显示用于在 Postman 中启动转换工作流的 API 调用的屏幕截图。

  1. 让 DAG 运行到 succeeded 状态。 可以使用工作流状态调用来检查状态。 运行 ID 在上述调用的响应中提供

显示用于在 Postman 中检查转换工作流状态的 API 调用的屏幕截图。

  1. 可以在 sdutil 中使用以下命令查看转换后的文件是否存在,或者使用下面的 Postman API 调用进行查看:

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

显示用于检查文件是否已转换的 API 调用的屏幕截图。

  1. 验证转换后的文件在 DAG 触发器中的指定位置上是否存在

    python sdutil ls sd://<data-partition-id>/<subproject>/
    
  2. 如果想要下载并检查 VDS 文件,请不要使用 cp 命令,因为它不起作用。 VDS 转换会生成多个文件,因此 cp 命令无法在一个命令中下载所有这些文件。 请改用 SEGYExportVDSCopy 工具。 这些工具使用一系列 REST 调用,访问命名方案来检索有关所有生成的 VDS 文件的信息。

OSDU® 是 Open Group 的商标。

后续步骤