SEG-Y ファイルを ZGY に変換する方法
この記事では、SEG-Y 形式のデータを ZGY 形式に変換する方法について説明します。 業界標準の SEG-Y 形式で格納されている地震データは、Seismic DMS を介して Petrel などのアプリケーションで使用するために ZGY に変換できます。 ZGY 変換に関する FAQ と、こちらの OSDU® コミュニティ「Segy から Zgy への変換」でその他の背景情報を参照してください。 このチュートリアルは、変換を実行する方法に関するステップバイステップのガイドラインです。 実際の運用ワークフローは異なる場合があることに注意し、変換を行うために必要な一連の手順のガイドとして使用してください。
前提条件
- Azure サブスクリプション
- Azure サブスクリプションで作成された Azure Data Manager for Energy のインスタンス。
- SEG-Y ファイル
- Volve データセットの次のいずれかのファイルをテストとして使用できます。 Volve データセット自体は、Equinor から入手できます。
Azure Data Manager for Energy インスタンスの詳細を取得する
最初の手順は、Azure portal で Azure Data Manager for Energy インスタンスから次の情報を取得することです。
パラメーター | 値 | 例 |
---|---|---|
client_id | アプリケーション (クライアント) ID | 00001111-aaaa-2222-bbbb-3333cccc4444 |
client_secret | クライアント シークレット | _fl****************** |
tenant_id | ディレクトリ (テナント) ID | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | 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 の左側のメニューで、[環境] を選択し、[SEGYtoZGY 環境] を選択します。
CURRENT VALUE 列に、「Azure Data Manager for Energy インスタンスの詳細を取得する」の表に記載されている情報を入力します。
SEG-Y ファイルを ZGY ファイルに変換するステップバイステップのプロセス
提供されている Postman コレクションには、ガイドとして機能するすべてのサンプル呼び出しがあります。 Postman 呼び出しの同等の cURL コマンドは、[Code] ボタンをクリックして取得することもできます。
法的タグを作成する
データセット ファイルを準備する
データセットのメタデータ/マニフェスト ファイル/レコード ファイルを準備します。 マニフェスト ファイルには次のものが含まれます。
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
変換では、後で変換を実行するためにストレージ アカウントにアップロードするマニフェスト ファイルが使用されます。 このマニフェスト ファイルは、複数の JSON ファイルを使用してスクリプトを実行することによって作成されます。 このプロセスの JSON ファイルは、Volve データセット用のこちらに格納されます。 データセット定義の基になる場所など、Volve の詳細については、この Web サイトを参照してください。 マニフェスト ファイルを作成するには、次のステップを完了します。
- リポジトリを複製し、フォルダー
doc/sample-records/volve
に移動します prepare-records.sh
bash スクリプトで値を編集します。 法的タグの形式には、Azure Data Manager for Energy インスタンス名とデータ パーティション名がプレフィックスとして付けられるので、<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
ファイルに保存されます。 - 変換のステップで使用するため、その JSON ファイルに
filecollection_segy_id
とwork_product_id
の値を保存します。 こうすることで、コンバーターが、all_records.json
のこのコンテンツを検索する場所を認識します。
Note
all_records.json
ファイルには、各要素の適切なデータも含まれている必要があります。
例: SeismicBinGrid
の ZGY 座標を計算するときに、次のパラメーターが使用されます。
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
asIngestedCoordinates
ブロックからpersistableReferenceCrs
。SeismicBinGrid
のAsIngestedCoordinates
に P6 パラメーターと CRS が指定されている場合、変換自体は正常に完了できるはずですが、Petrel では、SpatialArea
、AsIngestedCoordinates
、SpatialArea
、Wgs84Coordinates
で 5 つのコーナー ポイントも取得されない限り、アンケート ジオメトリが認識されません。
ユーザー アクセス
ユーザーは、users.datalake.admins
グループに属している必要があります。 次の呼び出しを使用して、ユーザーの現在のエンタイトルメントを検証します。
このチュートリアルの後半では、少なくとも 1 つの owner
と少なくとも 1 つの viewer
が必要になります。 これらのユーザー グループは data.default.owners
と data.default.viewers
のようになります。 ご使用のリストから各 1 つをメモしてください。
ユーザーが必要なグループに属していない場合は、次のサンプル呼び出しを使用して必要なエンタイトルメントを追加できます。email-id は上記の呼び出しから返される値 "ID" です。
エンタイトルメント グループをまだ作成していない場合は、「ユーザーを管理する方法」の説明に従ってください。 所有しているグループを確認する場合は、「特定のユーザーのエンタイトルメント グループを取得する」を使用します。 データ アクセスの分離は、特定のデータ パーティション内のオブジェクトごとに、この専用 ACL (アクセス制御リスト) で実現されます。
サブプロジェクトを準備する
1.データ パーティションを Seismic に登録する
2.サブプロジェクトを作成する
ACL (アクセス制御リスト) の管理者および閲覧者として追加する、以前に作成したエンタイトルメント グループを使用します。 データ パーティションのエンタイトルメントは、必ずしもその中のサブプロジェクトに変換されるとは限らないので、データ パーティションに関係なく、各サブプロジェクトの ACL について明示的に指定することが重要です。
3.データセットを作成する
Note
この手順は、seismic ファイルのアップロードに sdutil
を使用していない場合にのみ必要です。
ファイルをアップロードする
SEGY ファイルをアップロードする方法は 2 つあります。 1 つ目の選択肢は、Postman/curl 呼び出しを介して sasurl を使用することです。 Postman をダウンロードするか、OS で Curl をセットアップする必要があります。
2 つ目の方法は、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 呼び出しの [Body] セクションで、アップロードするファイルを選択する必要があります。
アップロードを検証する
方法 2: SDUTIL
sdutil は、seismic サービスにアクセスするための OSDU デスクトップ ユーティリティです。 ファイルのアップロード/ダウンロードに使用されます。 SDUTIL から azure-stable タグを使用します。
Note
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>/
地震ファイルを Seismic Store にアップロードします。 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
ストレージ レコードを作成する
成果物、地震追跡データ、地震グリッド、ファイル収集について all_records.json
ファイルの内容をストレージに挿入します。 そのファイルの内容をコピーして、API 呼び出しの要求本文に貼り付けます。
コンバーターを実行する
ZGY 変換 DAG をトリガーし、上で保存した実行コンテキスト値を使用してデータを変換します。
アップロードされたファイルの ID トークンを sdutil からフェッチするか、Postman からアクセス/ベアラー トークンを使用します。
python sdutil auth idtoken
- DAG を
succeeded
の状態になるまで実行します。 ワークフローの状態の呼び出しを使用して、状態を確認できます。 実行 ID は上記の呼び出しの応答に含まれます
sdutil または Postman API 呼び出しで次のコマンドを使用すると、変換されたファイルが存在するかどうかを確認できます。
python sdutil ls sd://<data-partition-id>/<subproject>
sdutil
cp
コマンドを使用すると、ファイルをダウンロードして検査できます。python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® は The Open Group の商標です。