Share via


Como converter um arquivo SEG-Y para ZGY

Neste artigo, você aprenderá a converter dados formatados SEG-Y para o formato ZGY. Os dados sísmicos armazenados no formato SEG-Y padrão da indústria podem ser convertidos em ZGY para uso em aplicações como Petrel através do DMS sísmico. Veja aqui as perguntas frequentes sobre a conversão do ZGY e mais informações podem ser encontradas na comunidade OSDU® aqui: conversa SEG-Y para ZGY. Este tutorial é uma diretriz passo a passo de como realizar a conversão. Observe que o fluxo de trabalho de produção real pode ser diferente e usado como um guia para o conjunto necessário de etapas para alcançar a conversão.

Pré-requisitos

Obtenha os detalhes da instância do Azure Data Manager for Energy

A primeira etapa é obter as seguintes informações da sua instância do Azure Data Manager for Energy no portal do Azure:

Parâmetro valor Exemplo
client_id ID da aplicação (cliente) 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx
client_secret Segredos de cliente _fl******************
tenant_id ID do Diretório (inquilino) 72F988BF-86F1-41AF-91AB-xxxxxxxxxxxx
base_url URL https://<instance>.energy.azure.com
ID da partição de dados Partição(ões) de dados <data-partition-name>

Você usa essas informações mais adiante no tutorial.

Configurar o Postman

Em seguida, configure o carteiro:

  1. Transfira e instale a aplicação de ambiente de trabalho Postman .

  2. Importe os seguintes arquivos no Postman:

    Para importar os ficheiros:

    1. Selecione Importar no Postman.

    Captura de tela que mostra o botão de importação no Postman.

    1. Cole o URL de cada ficheiro na caixa de pesquisa.

    Captura de tela que mostra a importação de arquivos de coleção e ambiente no Postman via URL.

  3. No ambiente do Postman, atualize VALOR ATUAL com as informações dos detalhes da instância do Azure Data Manager for Energy

    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 os detalhes da instância do Azure Data Manager for Energy'.

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

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

A coleção Postman fornecida tem todas as chamadas de amostra para servir como guia. Você também pode recuperar o comando cURL equivalente para uma chamada Postman clicando no botão Código .

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

Captura de ecrã a mostrar a criação de uma etiqueta legal.

Preparar arquivos de conjunto de dados

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

  • Produto de trabalho
  • SeismicBinGrid
  • FileCollection
  • SeismicTraceData

A conversão usa um arquivo de manifesto que você carrega para sua conta de armazenamento mais tarde para executar a conversão. Esse arquivo de manifesto é criado usando vários arquivos JSON e executando um script. Os arquivos JSON para este processo são armazenados aqui para o Volve Dataset. Para obter mais informações sobre o Volve, como de onde vêm as definições do conjunto de dados, visite o site. Conclua as seguintes etapas para criar o arquivo de manifesto:

  1. Clone o repositório e navegue até a pasta doc/sample-records/volve
  2. Edite prepare-records.sh os valores no script bash. Lembre-se de que o formato da marca legal é prefixado com o nome da instância do Azure Data Manager for Energy e o nome da partição de dados, portanto, parece <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 é uma matriz JSON com todos os objetos e é salva no all_records.json arquivo.
  3. Salve o filecollection_segy_id e os work_product_id valores nesse arquivo JSON para usar na etapa de conversão. Dessa forma, o conversor sabe onde procurar esse conteúdo do seu all_records.json.

Nota

O all_records.json arquivo também deve 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
  • persistableReferenceCrsasIngestedCoordinates do bloco Se o SeismicBinGrid tiver os parâmetros P6 e o CRS especificados em AsIngestedCoordinates, a conversão em si deve ser capaz de ser concluída com êxito, mas Petrel não entenderá a geometria do levantamento topográfico do arquivo, a menos que também obtenha os 5 pontos de canto em SpatialArea,AsIngestedCoordinates, SpatialArea, e Wgs84Coordinates.

Acesso do usuário

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

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

Mais adiante neste tutorial, você precisa de pelo menos um owner e pelo menos um viewer. Esses grupos de usuários se parecem com data.default.owners e data.default.viewers. Certifique-se de anotar um de cada um na sua lista.

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

Captura de tela que mostra a chamada de 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 de acesso a dados é obtido com esta ACL (lista de controle de acesso) dedicada por objeto dentro de uma determinada partição de dados.

Preparar Subprojeto

1. Registre a partição de dados para sísmica

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

2. Criar subprojeto

Use seus 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 para os subprojetos dentro dela, por isso é importante ser explícito sobre as ACLs para cada subprojeto, independentemente da partição de dados em que ela esteja.

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

3. Criar conjunto de dados

Nota

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

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

Carregue o ficheiro

Há duas maneiras de carregar um arquivo SEGY. Uma opção é usada o sasurl através de Postman / curl call. Você precisa baixar Postman ou configurar Curl no seu sistema operacional. O segundo método é usar SDUTIL. Para fazer login na sua instância para o ADME por meio da ferramenta, você precisa gerar um token de atualização para a instância. Consulte Como gerar token de autenticação. Como alternativa, você pode modificar o código de SDUTIL para usar credenciais de cliente em vez de fazer login. Se você ainda não tem, você precisa configurar SDUTIL. Baixe a base de código e edite o config.yaml na raiz. Substitua o conteúdo deste 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: Carteiro

Obter o sasurl:

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

Carregue o ficheiro:

Você precisa selecionar o arquivo a ser carregado na seção Corpo da chamada da API.

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

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

Verificar 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 o serviço sísmico. Usamo-lo para carregar/descarregar ficheiros. Use a tag azure-stable de SDUTIL.

Nota

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

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

Carregue o seu ficheiro sísmico para a sua Loja Sísmica. 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 produtos de trabalho, dados de rastreamento sísmico, grade sísmica e coleta de arquivos. Copie e cole o conteúdo desse arquivo no corpo da solicitação da chamada de 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 ZGY para converter seus dados usando os valores de contexto de execução que você salvou acima.

    Buscar o token de ID do sdutil para o arquivo carregado ou usar 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 para o succeeded estado. 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 do Postman:

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

Captura de tela que mostra a chamada de 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 comercial do The Open Group.

Próximos passos