如何將 SEG-Y 檔案轉換成 ZGY
在本文中,您將瞭解如何將 SEG-Y 格式化的數據轉換成 ZGY 格式。 儲存在業界標準 SEG-Y 格式的地震數據可以轉換成 ZGY,以透過 Seismic DMS 在 Petrel 等應用程式中使用。 如需 ZGY 轉換常見問題和更多背景,請參閱這裡的 OSDU® 社群:SEG-Y 至 ZGY 對話。 本教學課程是如何執行轉換的逐步指導方針。 請注意,實際生產工作流程可能會有所不同,並做為完成轉換所需步驟集的指南。
必要條件
- Azure 訂閱
- 在 Azure 訂用帳戶中建立的 Azure Data Manager for Energy 實例。
- SEG-Y 檔案
- 您可以使用 Volve 資料集中的任何下列檔案作為測試。 Volve 數據集本身可從 Equinor 取得。
取得適用於能源實例的 Azure 數據管理員詳細數據
第一個步驟是從 Azure 入口網站 中的 Azure Data Manager for Energy 實例取得下列資訊:
參數 | 值 | 範例 |
---|---|---|
client_id | 應用程式 (用戶端) 識別碼 | 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx |
client_secret | 用戶端密碼 | _佛羅里達州****************** |
tenant_id | 目錄 (租用戶) 識別碼 | 72f988bf-86f1-41af-91ab-xxxxxxxxx |
base_url | URL | https://<instance>.energy.azure.com |
data-partition-id | 資料分割(秒) | <data-partition-name> |
您稍後會在教學課程中使用這項資訊。
設定 Postman
接下來,設定Postman:
下載並安裝 Postman 傳統型應用程式。
在 Postman 中匯入下列檔案:
若要匯入檔案:
- 選取 [ Postman 中的匯 入]。
- 將每個檔案的 URL 貼到搜尋方塊中。
在 Postman 環境中,使用適用於能源實例的 Azure 數據管理員資訊更新 CURRENT VALUE
在 Postman 的左側功能表中,選取 [環境],然後選取 [SEGYtoZGY 環境]。
在 [ CURRENT VALUE] 數據行中,輸入「取得您的 Azure Data Manager for Energy 實例詳細數據」數據表中所述的資訊。
將 SEG-Y 檔案轉換成 ZGY 檔案的逐步程式
提供的 Postman 集合具有作為指南的所有範例呼叫。 您也可以按下 [程序代碼] 按鈕,擷取 Postman 呼叫的對等 cURL 命令。
建立法律標籤
準備數據集檔案
準備數據集的元數據/指令清單檔/記錄檔。 指令清單檔案包括:
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
轉換會使用您稍後上傳至記憶體帳戶的指令清單檔案來執行轉換。 此指令清單檔案是使用多個 JSON 檔案和執行腳本所建立。 此程式的 JSON 檔案會 儲存在這裡 供 Volve 資料集使用。 如需 Volve 的詳細資訊,例如數據集定義的來源,請瀏覽 其網站。 完成下列步驟,以建立指令清單檔:
- 複製存放 庫 並瀏覽至資料夾
doc/sample-records/volve
- 編輯bash文稿中的
prepare-records.sh
值。 回想一下,法律標籤的格式前面會加上適用於能源的 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
JSON 檔案中的 和work_product_id
值,以用於轉換步驟。 如此一來,轉換器就會知道要在哪裡尋找您all_records.json
的內容。
注意
檔案 all_records.json
也必須包含每個元素的適當數據。
範例:計算 的 ZGY 座標 SeismicBinGrid
時,會使用下列參數:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
persistableReferenceCrs
asIngestedCoordinates
從 區塊 如果SeismicBinGrid
具有 指定的AsIngestedCoordinates
P6 參數和 CRS,則轉換本身應該能夠順利完成,但 Petrel 將不會瞭解檔案的問卷幾何,除非它也會在 、AsIngestedCoordinates
、SpatialArea
和Wgs84Coordinates
下SpatialArea
取得 5 個角點。
使用者存取
用戶必須是群組的 users.datalake.admins
一部分。 使用下列呼叫驗證使用者目前的權利:
稍後在本教學課程中,您至少需要一個 owner
和至少一個 viewer
。 這些使用者群組看起來像 data.default.owners
和 data.default.viewers
。 請務必記下清單中的其中一個。
如果使用者不是必要群組的一部分,您可以使用下列範例呼叫來新增必要的權利:email-id:這是從上述呼叫傳回的值“ID”。
如果您尚未建立權利群組,請依照如何管理使用者中所述的指示操作。 如果您想要查看您擁有哪些群組,請使用 取得指定使用者的權利群組。 數據存取隔離是透過指定資料分割內每個物件的這個專用 ACL (存取控制清單) 來達成。
準備子專案
1.向地震註冊數據分割
2.建立子專案
使用您先前建立的權利群組,您想要新增為 ACL (存取控制 List) 系統管理員和檢視者。 數據分割權利不一定會轉譯為其中子專案,因此請務必明確說明每個子專案的 ACL,不論其位於哪個數據分割。
3.建立數據集
注意
只有在您不使用 sdutil
上傳地震檔案時,才需要此步驟。
上傳檔案
有兩種方式可以上傳 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 是用來存取地震服務的 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>/
將您的地震檔案上傳至地震存放區。 以下是名為的 SEGY 格式檔案 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 呼叫的要求本文。
執行轉換器
觸發 ZGY 轉換 DAG,以使用您先前儲存的執行內容值來轉換您的數據。
從 sdutil 擷取上傳檔案的標識碼令牌,或使用 Postman 的存取/持有人令牌。
python sdutil auth idtoken
- 讓 DAG 執行至
succeeded
狀態。 您可以使用工作流程狀態呼叫來檢查狀態。 執行標識碼是在上述呼叫的回應中
您可以在 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® 是開放群組的商標。
下一步
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: