Konvertera en SEG-Y-fil till ZGY
I den här artikeln får du lära dig hur du konverterar SEG-Y-formaterade data till ZGY-formatet. Seismiska data som lagras i seg-Y-format för branschstandard kan konverteras till ZGY för användning i program som Petrel via Seismic DMS. Se här för vanliga frågor och svar om ZGY-konvertering och mer bakgrund finns i OSDU-communityn® här: SEG-Y till ZGY-konversation. Den här självstudien är en stegvis riktlinje för hur du utför konverteringen. Observera att det faktiska produktionsarbetsflödet kan skilja sig åt och användas som en guide för den nödvändiga uppsättningen steg för att uppnå konverteringen.
Förutsättningar
- En Azure-prenumeration
- En instans av Azure Data Manager for Energy som skapats i din Azure-prenumeration.
- En SEG-Y-fil
- Du kan använda någon av följande filer från Volve-datamängden som ett test. Själva Volve-datauppsättningen är tillgänglig från Equinor.
Hämta information om Azure Data Manager for Energy-instansen
Det första steget är att hämta följande information från din Azure Data Manager for Energy-instans i Azure Portal:
Parameter | Värde | Exempel |
---|---|---|
client_id | App-ID (klient-ID) | 00001111-aaaa-2222-bbbb-3333cccc4444 |
client_secret | Klienthemligheter | _fl****************** |
tenant_id | Katalog-ID (klientorganisation) | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | webbadress | https://<instance>.energy.azure.com |
data-partition-id | Datapartitioner | <data-partition-name> |
Du använder den här informationen senare i självstudien.
Konfigurera Postman
Konfigurera sedan Postman:
Importera följande filer i Postman:
Så här importerar du filerna:
- Välj Importera i Postman.
- Klistra in URL:en för varje fil i sökrutan.
I Postman-miljön uppdaterar du AKTUELLT VÄRDE med informationen från din Azure Data Manager for Energy-instansinformation
I Postman går du till den vänstra menyn och väljer Miljöer och sedan SEGYtoZGY-miljö.
I kolumnen AKTUELLT VÄRDE anger du den information som beskrivs i tabellen i "Hämta information om Azure Data Manager for Energy-instansen".
Steg för steg-process för att konvertera SEG-Y-fil till ZGY-fil
Postman-samlingen som tillhandahålls har alla exempelanrop som ska fungera som en guide. Du kan också hämta motsvarande cURL-kommando för ett Postman-anrop genom att klicka på knappen Kod .
Skapa en juridisk tagg
Förbereda datamängdsfiler
Förbered metadata-/manifestfilen/postfilen för datauppsättningen. Manifestfilen innehåller:
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
Konverteringen använder en manifestfil som du laddar upp till ditt lagringskonto senare för att köra konverteringen. Den här manifestfilen skapas med hjälp av flera JSON-filer och kör ett skript. JSON-filerna för den här processen lagras här för Volve Dataset. Mer information om Volve, till exempel var datamängdsdefinitionerna kommer ifrån, finns på deras webbplats. Slutför följande steg för att skapa manifestfilen:
- Klona lagringsplatsen och navigera till mappen
doc/sample-records/volve
- Redigera värdena i bash-skriptet
prepare-records.sh
. Kom ihåg att formatet för den juridiska taggen är prefixet med Namnet på Azure Data Manager för Energy-instansen och datapartitionsnamnet, så det ser ut som<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>
- Kör skriptet
prepare-records.sh
. - Utdata är en JSON-matris med alla objekt och sparas i
all_records.json
filen. -
filecollection_segy_id
Spara värdena ochwork_product_id
i JSON-filen som ska användas i konverteringssteget. På så sätt vet konverteraren var du ska leta efter det här innehållet i dinall_records.json
.
Kommentar
Filen all_records.json
måste också innehålla lämpliga data för varje element.
Exempel: Följande parametrar används vid beräkning av ZGY-koordinaterna för SeismicBinGrid
:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
-
persistableReferenceCrs
asIngestedCoordinates
från blocket OmSeismicBinGrid
har P6-parametrarna och CRS som anges underAsIngestedCoordinates
, bör själva konverteringen kunna slutföras, men Petrel kommer inte att förstå undersökningens geometri för filen om den inte också får 5 hörnpunkter underSpatialArea
,AsIngestedCoordinates
,SpatialArea
ochWgs84Coordinates
.
Användaråtkomst
Användaren måste vara en del av users.datalake.admins
gruppen. Verifiera aktuella rättigheter för användaren med hjälp av följande anrop:
Senare i den här självstudien behöver du minst en owner
och minst en viewer
. Dessa användargrupper ser ut som data.default.owners
och data.default.viewers
. Anteckna en av var och en i listan.
Om användaren inte ingår i den obligatoriska gruppen kan du lägga till den behörighet som krävs med hjälp av följande exempelanrop: e-post-ID: Returneras värdet "ID" från samtalet ovan.
Om du ännu inte har skapat berättigandegrupper följer du anvisningarna enligt beskrivningen i Hantera användare. Om du vill se vilka grupper du har använder du Hämta berättigandegrupper för en viss användare. Isolering av dataåtkomst uppnås med den här dedikerade ACL:en (åtkomstkontrollistan) per objekt inom en viss datapartition.
Förbered underprojekt
1. Registrera datapartition till Seismic
2. Skapa underprojekt
Använd dina tidigare skapade berättigandegrupper som du vill lägga till som ACL-administratörer (åtkomstkontrollista) och visningsprogram. Datapartitionsrättigheter översätts inte nödvändigtvis till underprojekten i den, så det är viktigt att vara explicit om ACL:er för varje underprojekt, oavsett vilken datapartition det finns i.
3. Skapa datauppsättning
Kommentar
Det här steget krävs bara om du inte använder sdutil
för att ladda upp seismiska filer.
Ladda upp filen
Det finns två sätt att ladda upp en SEGY-fil. Ett alternativ används sasurl via Postman/ curl-anrop. Du måste ladda ned Postman eller konfigurera Curl i operativsystemet.
Den andra metoden är att använda SDUTIL. Om du vill logga in på din instans för ADME via verktyget måste du generera en uppdateringstoken för instansen. Se Så här genererar du autentiseringstoken. Du kan också ändra koden för SDUTIL så att klientens autentiseringsuppgifter används i stället för att logga in. Om du inte redan har gjort det måste du konfigurera SDUTIL. Ladda ned kodbasen och redigera config.yaml
i roten. Ersätt innehållet i den här konfigurationsfilen med följande 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
Metod 1: Postman
Hämta sasurl:
Ladda upp filen:
Du måste välja den fil som ska laddas upp i avsnittet Brödtext i API-anropet.
Verifiera uppladdning
Metod 2: SDUTIL
sdutil är ett OSDU-skrivbordsverktyg för att få åtkomst till seismisk tjänst. Vi använder den för att ladda upp/ladda ned filer. Använd taggen azure-stable från SDUTIL.
Kommentar
När du kör python sdutil config init
behöver du inte ange något när du uppmanas att göra det med Insert the azure (azureGlabEnv) application key:
.
python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/
Ladda upp din seismiska fil till Seismic Store. Här är ett exempel med en SEGY-formatfil med namnet source.segy
:
python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy
Till exempel:
python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy
Skapa lagringsposter
Infoga innehållet all_records.json
i filen i lagringen för arbetsprodukt, seismiska spårningsdata, seismiskt rutnät och filinsamling. Kopiera och klistra in innehållet i filen i begärandetexten i API-anropet.
Kör konverterare
Utlös ZGY Conversion DAG för att konvertera dina data med de körningskontextvärden som du hade sparat ovan.
Hämta ID-token från sdutil för den uppladdade filen eller använd en åtkomst-/ägartoken från Postman.
python sdutil auth idtoken
- Låt DAG köras till tillståndet
succeeded
. Du kan kontrollera statusen med hjälp av arbetsflödesstatusanropet. Körnings-ID:t finns i svaret för ovanstående anrop
Du kan se om den konverterade filen finns med följande kommando i sdutil eller i Postman API-anropet:
python sdutil ls sd://<data-partition-id>/<subproject>
Du kan ladda ned och inspektera filen med hjälp av kommandot sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® är ett varumärke som tillhör The Open Group.