Share via


Como converter um arquivo SEG-Y em ZGY

Neste artigo, você aprenderá a converter dados formatados em SEG-Y no formato ZGY. Os dados sísmicos armazenados no formato SEG-Y padrão do setor podem ser convertidos em ZGY para uso em aplicativos como Petrel por meio do DMS Sísmico. Veja aqui as perguntas frequentes sobre conversão de ZGY e mais informações sobre o histórico podem ser encontradas na comunidade OSDU® aqui: conversão de SEG-Y para ZGY. Esse tutorial é um guia passo a passo de como realizar a conversão. Observe que o fluxo de trabalho de produção real pode ser diferente e use como guia para o conjunto de etapas necessárias para alcançar a conversão.

Pré-requisitos

Obtenha os detalhes da instância do Gerenciador de Dados de Energia do Azure

A primeira etapa é obter as seguintes informações da instância do Gerenciador de Dados de Energia do Azure no portal do Azure:

Parâmetro Valor Exemplo
client_id ID do aplicativo (cliente) 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx
client_secret Segredos do cliente _fl******************
tenant_id ID do diretório (locatário) 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx
base_url URL https://<instance>.energy.azure.com
data-partition-id Partições de dados <data-partition-name>

Você usará essas informações posteriormente no tutorial.

Configurar o Postman

Em seguida, configure o Postman:

  1. Baixe e instale o aplicativo da área de trabalho Postman.

  2. Importe os seguintes arquivos para o Postman:

    Para importar os arquivos:

    1. Selecione Importar no Postman.

    Captura de tela mostrando o botão de importação no Postman.

    1. Cole a URL de cada arquivo na caixa de pesquisa.

    Captura de tela mostrando a importação de arquivos de coleção e de ambiente no Postman por meio da URL.

  3. No ambiente Postman, atualize o VALOR ATUAL com as informações dos detalhes da instância do Gerenciador de Dados de Energia do Azure

    1. No Postman, no menu à esquerda, selecione Ambientes e, em seguida, selecione Ambiente SEGYtoZGY.

    2. Na coluna VALOR ATUAL, insira as informações descritas na tabela em "Obter detalhes da instância do Gerenciador de Dados de Energia do Azure".

    Captura de tela que mostra onde inserir os valores atuais no ambiente SEGYtoZGY.

Processo passo a passo para converter arquivo SEG-Y em ZGY

A coleção Postman fornecida contém todos os exemplos de chamadas para servir como guia. Você também pode recuperar o comando cURL equivalente para uma chamada do Postman clicando no botão Código.

Captura de tela que mostra o botão Código no Postman.

Captura de tela da criação da Tag Legal.

Preparar arquivos de conjunto de dados

Prepare o arquivo de metadados/arquivo de manifesto/registros para o conjunto de dados. O arquivo de manifesto inclui:

  • WorkProduct
  • SeismicBinGrid
  • FileCollection
  • SeismicTraceData

A conversão usa um arquivo de manifesto que você carregará em sua conta de armazenamento posteriormente para executar a conversão. Esse arquivo de manifesto é criado usando vários arquivos JSON e executando um script. Os arquivos JSON desse processo são armazenados aqui para o conjunto de dados Volve. Para obter mais informações sobre o Volve, por exemplo, de onde as definições do conjunto de dados são obtidas, visite seu site. Conclua as etapas a seguir para criar o arquivo de manifesto:

  1. Clonar o repositório e navegar até a pasta doc/sample-records/volve
  2. Edite os valores no script bash prepare-records.sh. Lembre-se de que o formato da marca legal é prefixado com o nome da instância do Gerenciador de Dados de Energia do Azure e o nome da partição de dados, portanto, ele se parece com <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. Execute o script prepare-records.sh.
  2. A saída será uma matriz JSON com todos os objetos e será salva no arquivo all_records.json.
  3. Salve o filecollection_segy_id e os valores work_product_id no arquivo JSON a ser na etapa de conversão. Dessa forma, o conversor sabe onde procurar esse conteúdo do all_records.json.

Observação

O arquivo all_records.json também precisa conter dados apropriados para cada elemento.

Exemplo: os seguintes parâmetros são usados ao calcular as coordenadas ZGY para SeismicBinGrid:

  • P6BinGridOriginEasting
  • P6BinGridOriginI
  • P6BinGridOriginJ
  • P6BinGridOriginNorthing
  • P6ScaleFactorOfBinGrid
  • P6BinNodeIncrementOnIaxis
  • P6BinNodeIncrementOnJaxis
  • P6BinWidthOnIaxis
  • P6BinWidthOnJaxis
  • P6MapGridBearingOfBinGridJaxis
  • P6TransformationMethod
  • persistableReferenceCrs do bloco asIngestedCoordinates Se o SeismicBinGrid tiver os parâmetros P6 e o CRS especificados em AsIngestedCoordinates, a conversão em si deverá poder ser concluída com êxito, mas o Petrel não entenderá a geometria da pesquisa do arquivo, a menos que ele também obtenha os 5 pontos de canto abaixo de SpatialArea,AsIngestedCoordinates, SpatialArea e Wgs84Coordinates.

Acesso do Usuário

O usuário precisa fazer parte do grupo users.datalake.admins. Valide os direitos atuais do usuário usando a seguinte chamada:

Captura de tela que mostra a chamada de API para obter grupos de usuários no Postman.

Posteriormente nesse tutorial, você precisará de pelo menos um owner e pelo menos um viewer. Esses grupos de usuários se parecem data.default.owners e data.default.viewers. Certifique-se de anotar um de cada em sua lista.

Se o usuário não fizer parte do grupo necessário, você poderá adicionar o direito necessário usando o seguinte exemplo de chamada: email-id: é o valor "ID" retornado da chamada acima.

Captura de tela que mostra a chamada da API para registrar um usuário como administrador no Postman.

Se você ainda não criou grupos de direitos, siga as instruções descritas em Como gerenciar usuários. Se você quiser ver quais grupos você tem, use Obter grupos de direitos para um determinado usuário. O isolamento do acesso a dados é obtido com essa ACL (lista de controle de acesso) dedicada por objeto em uma determinada partição de dados.

Preparar subprojeto

1. Registrar partição de dados no Seismic

Captura de tela que mostra a chamada de API para registrar uma partição de dados como locatário sísmico no Postman.

2. Criar subprojeto

Use os grupos de direitos criados anteriormente que você gostaria de adicionar como administradores e visualizadores da ACL (Lista de Controle de Acesso). Os direitos de partição de dados não se traduzem necessariamente nos subprojetos dentro dele, por isso é importante ser explícito sobre as ACLs de cada subprojeto, independentemente da partição de dados em que ele esteja.

Captura de tela que mostra a chamada de API para criar um subprojeto sísmico no Postman.

3. Criar conjunto de dados

Observação

Essa etapa só é necessária se você não estiver usando sdutil para enviar os arquivos sísmicos.

Captura de tela que mostra a chamada de API para criar um conjunto de dados sísmicos no Postman.

Carregar o arquivo

Existem duas maneiras de fazer upload de um arquivo SEGY. Uma opção é usar o sasurl através da chamada Postman/curl. Você precisa baixar o Postman ou configurar o Curl em seu sistema operacional. O segundo método é usar SDUTIL. Para fazer login na sua instância do ADME por meio da ferramenta, você precisa gerar um token de atualização para a instância. Consulte Como gerar um token de autenticação. Alternativamente, você pode modificar o código do SDUTIL para usar credenciais do cliente em vez de fazer login. Se ainda não o fez, você precisa configurar o SDUTIL. Baixe a base de código e edite o config.yaml na raiz. Substitua o conteúdo do arquivo de configuração pelo yaml a seguir.

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

Método 1: Postman

Obtenha o sasurl:

Captura de tela que mostra a chamada da API para obter um URL de upload do GCS no Postman.

Carregue o arquivo:

Você precisa selecionar o arquivo para fazer upload na seção Corpo da chamada de API.

Captura de tela que mostra a chamada da API para fazer upload de um arquivo no Postman.

Captura de tela que mostra a chamada da API para fazer upload de um arquivo binário no Postman.

Verifique o upload

Captura de tela que mostra a chamada de API para verificar se um arquivo binário foi carregado no Postman.

Método 2: SDUTIL

sdutil é um utilitário de desktop OSDU para acessar serviços sísmicos. Nós o usamos para fazer upload/download de arquivos. Use a tag azure-stable de SDUTIL.

Observação

Ao executar python sdutil config init, você não precisa inserir nada quando solicitado Insert the azure (azureGlabEnv) application key:.

python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/

Carregue seu arquivo sísmico no Repositório Sísmico. Aqui está um exemplo com um arquivo de formato SEGY chamado source.segy:

python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy

Por exemplo:

python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy

Criar registros de armazenamento

Insira o conteúdo do arquivo all_records.json no armazenamento para work-product, dados de rastreamento sísmicos, grade sísmica e coleta de arquivos. Copie e cole o conteúdo desse arquivo no corpo da solicitação da chamada à API.

Captura de tela que mostra a chamada de API para criar registros de armazenamento no Postman.

Executar conversor

  1. Acione o DAG de conversão de ZGY para converter seus dados usando os valores de contexto de execução que você salvou acima.

    Obtenha o token de ID do sdutil para o arquivo carregado ou use um token de acesso/portador do Postman.

python sdutil auth idtoken

Captura de tela que mostra a chamada de API para iniciar o fluxo de trabalho de conversão no Postman.

  1. Deixe o DAG ser executado no estado succeeded. Você pode verificar o status usando a chamada de status do fluxo de trabalho. O ID de execução está na resposta da chamada acima

Captura de tela que mostra a chamada de API para verificar o status do fluxo de trabalho de conversão no Postman.

  1. Você pode ver se o arquivo convertido está presente usando o seguinte comando no sdutil ou na chamada da API Postman:

    python sdutil ls sd://<data-partition-id>/<subproject>
    

Captura de tela que mostra a chamada da API para verificar se o arquivo foi convertido.

  1. Você pode baixar e inspecionar o arquivo usando o comando sdutilcp:

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

OSDU® é uma marca registrada do The Open Group.

Próximas etapas