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
- Uma subscrição do Azure
- Uma instância do Azure Data Manager for Energy criada na sua subscrição do Azure.
- Um arquivo SEG-Y
- Você pode usar qualquer um dos seguintes arquivos do conjunto de dados Volve como um teste. O próprio conjunto de dados da Volve está disponível na Equinor.
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) | 00001111-aaaa-2222-bbbb-3333cccc444 |
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:
Transfira e instale a aplicação de ambiente de trabalho Postman .
Importe os seguintes arquivos no Postman:
Para importar os ficheiros:
- Selecione Importar no Postman.
- Cole o URL de cada ficheiro na caixa de pesquisa.
No ambiente do Postman, atualize VALOR ATUAL com as informações dos detalhes da instância do Azure Data Manager for Energy
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 os detalhes da instância do Azure Data Manager for Energy'.
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 .
Criar uma tag 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:
- Clone o repositório e navegue até a pasta
doc/sample-records/volve
- 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>
- Execute o script
prepare-records.sh
. - A saída é uma matriz JSON com todos os objetos e é salva no
all_records.json
arquivo. - Salve o
filecollection_segy_id
e oswork_product_id
valores nesse arquivo JSON para usar na etapa de conversão. Dessa forma, o conversor sabe onde procurar esse conteúdo do seuall_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
persistableReferenceCrs
asIngestedCoordinates
do bloco Se oSeismicBinGrid
tiver os parâmetros P6 e o CRS especificados emAsIngestedCoordinates
, 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 emSpatialArea
,AsIngestedCoordinates
,SpatialArea
, eWgs84Coordinates
.
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:
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.
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
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.
3. Criar conjunto de dados
Nota
Esta etapa só é necessária se você não estiver usando sdutil
para carregar os arquivos sísmicos.
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:
Carregue o ficheiro:
Você precisa selecionar o arquivo a ser carregado na seção Corpo da chamada da API.
Verificar upload
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 init
o , 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.
Executar conversor
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
- 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
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>
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 comercial do The Open Group.