Come convertire un file SEG-Y in ZGY
Questo articolo illustra come convertire i dati formattati SEG-Y nel formato ZGY. I dati sismici archiviati nel formato di settore standard SEG-Y possono essere convertiti in ZGY per l'uso in applicazioni come Petrel tramite il DNS Seismic. Vedere qui per le domande frequenti sulla conversione ZGY e altre informazioni sono disponibili nella community OSDU® qui: Conversazione da SEG-Y a ZGY. Questa esercitazione è un'indicazione dettagliata su come eseguire la conversione. Si noti che il flusso di lavoro di produzione effettivo può variare e usarlo come guida per il set di passaggi necessario per ottenere la conversione.
Prerequisiti
- Una sottoscrizione di Azure
- Istanza di Data Manager di Azure per l'energia creata nella sottoscrizione di Azure.
- Un file SEG-Y
- È possibile usare uno dei file seguenti dal set di dati Volve come test. Il set di dati Volve stesso è disponibile da Equinor.
Ottenere i dettagli dell'istanza di Data Manager di Azure per l'energia
Il primo passaggio consiste nell'ottenere le informazioni seguenti dall'istanza di Data Manager di Azure per l'energia nel portale di Azure:
Parametro | Valore | Esempio |
---|---|---|
client_id | ID applicazione (client) | 00001111-aaaa-2222-bbbb-3333cccc44444 |
client_secret | Segreti client | _fl****************** |
tenant_id | ID della directory (tenant) | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | URL | https://<instance>.energy.azure.com |
data-partition-id | Partizioni dati | <data-partition-name> |
Queste informazioni verranno usate più avanti nell'esercitazione.
Impostazione di Postman
Successivamente, configurare Postman:
Scaricare e installare l'app desktop Postman.
Importare i file seguenti in Postman:
Per importare i file:
- Selezionare Importa in Postman.
- Incollare l'URL di ogni file nella casella di ricerca.
Nell'ambiente Postman aggiornare VALORE CORRENTE con le informazioni fornite dall'istanza di Data Manager di Azure per l'energia
In Postman, nel menu a sinistra, selezionare Ambienti e quindi selezionare Ambiente SEGYtoZGY.
Nella colonna VALORE CORRENTE, immettere le informazioni descritte nella tabella in 'Ottenere i dettagli dell'istanza di Azure Data Manager for Energy'.
Procedura dettagliata per convertire il file SEG-Y in file ZGY
La raccolta Postman fornita include tutte le chiamate di esempio da usare come guida. È anche possibile recuperare il comando URL equivalente per una chiamata Postman facendo clic sul pulsante Codice.
Creare un tag legale
Preparare i file del set di dati
Preparare il file di metadati/file manifesto/record per il set di dati. Il file manifesto include:
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
La conversione usa un file manifesto caricato nell'account di archiviazione in un secondo momento per eseguire la conversione. Questo file manifesto viene creato usando più file JSON ed eseguendo uno script. I file JSON per questo processo vengono archiviati qui per il set di dati Volve. Per altre informazioni su Volve, ad esempio da dove provengono le definizioni dei set di dati, visitare il sito Web. Completare i passaggi seguenti per creare il file manifesto:
- Clonare il repository e passare alla cartella
doc/sample-records/volve
- Modificare i valori nel script bash
prepare-records.sh
. Tenere presente che il formato del tag legale è preceduto dal nome dell'istanza di Data Manager di Azure per l'energia e dal nome della partizione dati, in modo che abbia un aspetto simile a<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>
- Eseguire lo script
prepare-records.sh
. - L'output è una matrice JSON con tutti gli oggetti e viene salvato nel file
all_records.json
. - Salvare i valori
filecollection_segy_id
ework_product_id
nel file JSON da usare nel passaggio di conversione. In questo modo il convertitore sa dove cercare questo contenuto diall_records.json
.
Nota
Il file all_records.json
deve inoltre contenere dati appropriati per ogni elemento.
Esempio: i parametri seguenti vengono usati per calcolare le coordinate ZGY per SeismicBinGrid
:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
-
persistableReferenceCrs
dal bloccoasIngestedCoordinates
SeSeismicBinGrid
ha i parametri P6 e crS specificati inAsIngestedCoordinates
, la conversione stessa dovrebbe essere in grado di completare correttamente, ma Petrel non comprenderà la geometria del sondaggio del file a meno che non ottenga anche i 5 punti di angolo sottoSpatialArea
,AsIngestedCoordinates
SpatialArea
eWgs84Coordinates
.
Token accesso
L'utente deve far parte del gruppo users.datalake.admins
. Convalidare i diritti correnti per l'utente usando la chiamata seguente:
Più avanti in questa esercitazione è necessario almeno uno owner
e almeno un viewer
. Questi gruppi di utenti hanno un aspetto simile a data.default.owners
e data.default.viewers
. Assicurarsi di annotare uno di ognuno di essi nell'elenco.
Se l'utente non fa parte del gruppo richiesto, è possibile aggiungere il diritto richiesto usando la chiamata di esempio seguente: email-id: è il valore "ID" restituito dalla chiamata precedente.
Se non sono ancora stati creati gruppi di diritti, seguire le istruzioni descritte in Come gestire gli utenti. Per visualizzare i gruppi disponibili, usare Ottieni gruppi di diritti per un determinato utente. L'isolamento dell'accesso ai dati viene ottenuto con questo ACL dedicato (elenco di controllo di accesso) per oggetto all'interno di una determinata partizione di dati.
Preparare un sottoprogetto
1. Registrare la partizione di dati in Seismic
2. Creare un sottoprogetto
Usare i gruppi di diritti creati in precedenza da aggiungere come amministratori e visualizzatori ACL (elenco di controllo di accesso). I diritti di partizione dati non vengono necessariamente convertiti nei sottoprogetti al suo interno, quindi è importante essere espliciti sugli ACL per ogni sottoprogetto, indipendentemente dalla partizione di dati in cui si trova.
3. Creare un set di dati
Nota
Questo passaggio è obbligatorio solo se non si usano sdutil
per caricare i file sismici.
Caricare il file
Esistono due modi per caricare un file SEGY. Viene usata l'opzione sasurl tramite Postman/chiamata curl. È necessario scaricare Postman o configurare Curl nel sistema operativo.
Il secondo metodo consiste nell'usare SDUTIL. Per accedere all'istanza di ADME tramite lo strumento, è necessario generare un token di aggiornamento per l'istanza. Vedere Come generare token di autenticazione. In alternativa, è possibile modificare il codice di SDUTIL in modo da usare le credenziali client per l'accesso. Se non è già stato fatto, è necessario configurare SDUTIL. Scaricare la codebase e modificare config.yaml
nella radice. Sostituire il contenuto di questo file di configurazione con il codice yaml seguente.
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
Metodo 1: Postman
Ottenere il sasurl:
Caricare il file:
È necessario selezionare il file da caricare nella sezione Corpo della chiamata API.
Verificare il caricamento
Metodo 2: SDUTIL
sdutil è un'utilità desktop OSDU per accedere al servizio sismico. Viene usato per caricare/scaricare file. Usare il tag azure-stable di SDUTIL.
Nota
Quando si esegue python sdutil config init
, non è necessario immettere alcun elemento quando richiesto con Insert the azure (azureGlabEnv) application key:
.
python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/
Caricare il file sismico nell'archivio Sismico. Ecco un esempio con un file in formato SEGY denominato source.segy
:
python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy
Ad esempio:
python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy
Creare record di archiviazione
Inserire il contenuto del file all_records.json
nella risorsa di archiviazione per il prodotto di lavoro, i dati di traccia sismica, la griglia sismica e la raccolta di file. Copiare e incollare il contenuto del file nel corpo della richiesta della chiamata API.
Run Converter
Attivare il dag di conversione ZGY per convertire i dati usando i valori del contesto di esecuzione salvati in precedenza.
Recuperare il token ID da sdutil per il file caricato o usare un token di accesso/connessione da Postman.
python sdutil auth idtoken
- Consentire l'esecuzione del dag allo stato
succeeded
. È possibile controllare lo stato usando la chiamata di stato del flusso di lavoro. L'ID esecuzione si trova nella risposta della chiamata precedente
È possibile verificare se il file convertito è presente usando il comando seguente in sdutil o nella chiamata API Postman:
python sdutil ls sd://<data-partition-id>/<subproject>
È possibile scaricare ed esaminare il file usando il comando sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® è un marchio di The Open Group.