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.

    Screenshot that shows the import button in Postman.

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

    Screenshot that shows importing collection and environment files in 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'.

    Screenshot that shows where to enter current values in SEGYtoZGY environment.

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 .

Screenshot that shows the Code button in Postman.

Screenshot of creating Legal Tag.

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 tiver os parâmetros P6 e o SeismicBinGrid CRS especificados em , 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 SpatialAreaAsIngestedCoordinates,,AsIngestedCoordinatesSpatialArea , 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:

Screenshot that shows the API call to get user groups in Postman.

Mais adiante neste tutorial, você precisa de pelo menos um e pelo menos um ownerviewer. 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.

Screenshot that shows the API call to get register a user as an admin in 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

Screenshot that shows the API call to register a data partition as a seismic tenant in 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.

Screenshot that shows the API call to create a seismic subproject in 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.

Screenshot that shows the API call to create a seismic dataset in 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:

Screenshot that shows the API call to get a GCS upload URL in Postman.

Carregue o ficheiro:

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

Screenshot that shows the API call to upload a file in Postman.

Screenshot that shows the API call to upload a file binary in Postman.

Verificar upload

Screenshot that shows the API call to verify a file binary is uploaded in 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.

Screenshot that shows the API call to create storage records in 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

Screenshot that shows the API call to start the conversion workflow in 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

Screenshot that shows the API call to check the conversion workflow's status in 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>
    

Screenshot that shows the API call to check if the file has been converted.

  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