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
- Uma assinatura do Azure
- Uma instância do Gerenciador de Dados de Energia do Azure criada na sua assinatura do Azure.
- Um arquivo SEG-Y
- Você pode usar qualquer um dos seguintes arquivos do conjunto de dados Volve como teste. O próprio conjunto de dados Volve está disponível em Equinor.
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) | 00001111-aaaa-2222-bbbb-3333cccc4444 |
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:
Baixe e instale o aplicativo da área de trabalho Postman.
Importe os seguintes arquivos para o Postman:
Para importar os arquivos:
- Selecione Importar no Postman.
- Cole a URL de cada arquivo na caixa de pesquisa.
No ambiente Postman, atualize o VALOR ATUAL com as informações dos detalhes da instância do Gerenciador de Dados de Energia do Azure
No Postman, no menu à esquerda, selecione Ambientes e, em seguida, selecione Ambiente SEGYtoZGY.
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".
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.
Crie uma etiqueta 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:
- Clonar o repositório e navegar até a pasta
doc/sample-records/volve
- 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>
- Execute o script
prepare-records.sh
. - A saída será uma matriz JSON com todos os objetos e será salva no arquivo
all_records.json
. - Salve o
filecollection_segy_id
e os valoreswork_product_id
no arquivo JSON a ser na etapa de conversão. Dessa forma, o conversor sabe onde procurar esse conteúdo doall_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 blocoasIngestedCoordinates
Se oSeismicBinGrid
tiver os parâmetros P6 e o CRS especificados emAsIngestedCoordinates
, 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 deSpatialArea
,AsIngestedCoordinates
,SpatialArea
eWgs84Coordinates
.
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:
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.
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
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.
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.
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:
Carregue o arquivo:
Você precisa selecionar o arquivo para fazer upload na seção Corpo da chamada de API.
Verifique o upload
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.
Executar conversor
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
- 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
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>
Você pode baixar e inspecionar o arquivo usando o comando sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® é uma marca registrada do The Open Group.