Condividi tramite


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

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:

  1. Scaricare e installare l'app desktop Postman.

  2. Importare i file seguenti in Postman:

    Per importare i file:

    1. Selezionare Importa in Postman.

    Screenshot che mostra il pulsante di importazione in Postman.

    1. Incollare l'URL di ogni file nella casella di ricerca.

    Screenshot che mostra l'importazione di file di raccolta e ambiente in Postman tramite URL.

  3. Nell'ambiente Postman aggiornare VALORE CORRENTE con le informazioni fornite dall'istanza di Data Manager di Azure per l'energia

    1. In Postman, nel menu a sinistra, selezionare Ambienti e quindi selezionare Ambiente SEGYtoZGY.

    2. Nella colonna VALORE CORRENTE, immettere le informazioni descritte nella tabella in 'Ottenere i dettagli dell'istanza di Azure Data Manager for Energy'.

    Screenshot che mostra dove immettere i valori correnti nell'ambiente SEGYtoZGY.

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.

Screenshot che mostra il pulsante Codice in Postman.

Screenshot della creazione di 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:

  1. Clonare il repository e passare alla cartella doc/sample-records/volve
  2. 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>
  1. Eseguire lo script prepare-records.sh.
  2. L'output è una matrice JSON con tutti gli oggetti e viene salvato nel file all_records.json.
  3. Salvare i valori filecollection_segy_id e work_product_id nel file JSON da usare nel passaggio di conversione. In questo modo il convertitore sa dove cercare questo contenuto di all_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
  • persistableReferenceCrsdal blocco asIngestedCoordinates Se SeismicBinGrid ha i parametri P6 e crS specificati in AsIngestedCoordinates, 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 sotto SpatialArea,AsIngestedCoordinatesSpatialArea e Wgs84Coordinates.

Token accesso

L'utente deve far parte del gruppo users.datalake.admins. Convalidare i diritti correnti per l'utente usando la chiamata seguente:

Screenshot che mostra la chiamata API per ottenere i gruppi di utenti in Postman.

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.

Screenshot che mostra la chiamata API per ottenere la registrazione di un utente come amministratore in Postman.

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

Screenshot che mostra la chiamata API per registrare una partizione di dati come tenant sismico in Postman.

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.

Screenshot che mostra la chiamata API per creare un sottoprogetto sismico in Postman.

3. Creare un set di dati

Nota

Questo passaggio è obbligatorio solo se non si usano sdutil per caricare i file sismici.

Screenshot che mostra la chiamata API per creare un set di dati sismico in Postman.

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:

Screenshot che mostra la chiamata API per ottenere un URL di caricamento GCS in Postman.

Caricare il file:

È necessario selezionare il file da caricare nella sezione Corpo della chiamata API.

Screenshot che mostra la chiamata API per caricare un file in Postman.

Screenshot che mostra la chiamata API per caricare un file binario in Postman.

Verificare il caricamento

Screenshot che mostra la chiamata API per verificare che un file binario sia caricato in Postman.

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.

Screenshot che mostra la chiamata API per creare record di archiviazione in Postman.

Run Converter

  1. 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

Screenshot che mostra la chiamata API per avviare il flusso di lavoro di conversione in Postman.

  1. 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

Screenshot che mostra la chiamata API per controllare lo stato del flusso di lavoro di conversione in Postman.

  1. È 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>
    

Screenshot che mostra la chiamata API per verificare se il file è stato convertito.

  1. È possibile scaricare ed esaminare il file usando il comando sdutilcp:

    python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
    

OSDU® è un marchio di The Open Group.

Passaggi successivi