Cómo convertir un archivo SEG-Y a ZGY
En este artículo, aprenderá a convertir datos con el formato SEG-Y al formato ZGY. Los datos sísmicos almacenados en formato SEG-Y estándar del sector se pueden convertir a ZGY para usarlos en aplicaciones como Petrel, a través de DMS sísmico. Consulte aquí las preguntas frecuentes sobre la conversión de ZGY y obtenga más información en la comunidad de OSDU®: Conversación de SEG-Y a ZGY. Este tutorial es una guía paso a paso sobre cómo realizar la conversión. Tenga en cuenta que el flujo de trabajo de producción real puede diferir y usar como guía para el conjunto necesario de pasos para lograr la conversión.
Requisitos previos
- Una suscripción de Azure
- Instancia de Azure Data Manager for Energy creada en la suscripción de Azure.
- Un archivo SEG-Y
- Puede usar cualquiera de los siguientes archivos del conjunto de datos Volve como prueba. El propio conjunto de datos Volve está disponible en Equinor.
Obtener los detalles de la instancia de Azure Data Manager for Energy
El primer paso es obtener la siguiente información de la instancia de Azure Data Manager for Energy en Azure Portal:
Parámetro | Valor | Ejemplo |
---|---|---|
client_id | Id. de aplicación (cliente) | 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx |
client_secret | Secretos de cliente | _fl****************** |
tenant_id | Id. de directorio (inquilino) | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | URL | https://<instance>.energy.azure.com |
data-partition-id | Particiones de datos | <data-partition-name> |
Esta información se usa más adelante en el tutorial.
Configuración de Postman
Después, configure Postman:
Descargue e instale la aplicación de escritorio Postman.
Importe los archivos siguientes a Postman:
Para importar los archivos:
- Seleccione Importar en Postman.
- Pegar la dirección URL de cada archivo en el cuadro de búsqueda.
En el entorno de Postman, actualice CURRENT VALUE con la información de los detalles de la instancia de Azure Data Manager for Energy
En Postman, en el menú de la izquierda, seleccione Entornos, y a continuación, seleccione Entorno SEGYtoZGY.
En la columna CURRENT VALUE, escriba la información que se describe en la tabla en "Obtener los detalles de la instancia de Azure Data Manager for Energy".
Proceso paso a paso para convertir el archivo SEG-Y en ZGY
La colección Postman proporcionada tiene todas las llamadas de ejemplo que sirven como guía. También puede recuperar el comando cURL equivalente para una llamada de Postman haciendo clic en el botón Código.
Crear una etiqueta legal
Preparación de archivos de conjunto de datos
Prepare el archivo de metadatos, el archivo de manifiesto o los registros para el conjunto de datos. El archivo de manifiesto incluye:
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
La conversión usa un archivo de manifiesto que se carga en la cuenta de almacenamiento más adelante para ejecutar la conversión. Este archivo de manifiesto se crea mediante varios archivos JSON y ejecuta un script. Los archivos JSON de este proceso se almacenan aquí para el conjunto de datos Volve. Para obtener más información sobre Volve, como de dónde proceden las definiciones de conjuntos de datos, consulte su sitio web. Complete los siguientes pasos para crear el archivo de manifiesto:
- Clone el repositorio y vaya a la carpeta
doc/sample-records/volve
- Edite los valores del script de Bash
prepare-records.sh
. Recuerde que el formato de la etiqueta legal tiene como prefijo el nombre de la instancia de Azure Data Manager for Energy y el nombre de la partición de datos, por lo que es similar a<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>
- Ejecute el script
prepare-records.sh
. - La salida es una matriz JSON con todos los objetos y se guarda en el archivo
all_records.json
. - Guarde
filecollection_segy_id
y los valoreswork_product_id
de ese archivo JSON para usarlos en el paso de conversión. De este modo, el convertidor sabe dónde buscar este contenido delall_records.json
.
Nota:
El archivo all_records.json
también debe contener los datos adecuados para cada elemento.
Ejemplo: se usan los siguientes parámetros al calcular las coordenadas ZGY para SeismicBinGrid
:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
persistableReferenceCrs
del bloqueasIngestedCoordinates
Si elSeismicBinGrid
tiene los parámetros P6 y el CRS especificado enAsIngestedCoordinates
, la propia conversión debería poder completarse correctamente, pero Petrel no comprenderá la geometría de la encuesta del archivo a menos que también obtenga los 5 vértices enSpatialArea
,AsIngestedCoordinates
,SpatialArea
yWgs84Coordinates
.
Acceso de usuarios
El usuario debe formar parte del users.datalake.admins
grupo. Valide los derechos actuales para el usuario mediante la siguiente llamada:
Más adelante en este tutorial, necesita al menos una owner
y al menos una viewer
. Estos grupos de usuarios parecen data.default.owners
y data.default.viewers
. Asegúrese de anotar uno de cada uno de ellos en la lista.
Si el usuario no forma parte del grupo necesario, puede agregar el derecho necesario mediante la siguiente llamada de ejemplo: email-id: Es el valor "ID" devuelto desde la llamada anterior.
Si aún no ha creado grupos de derechos, siga las instrucciones que se describen en Administración de usuarios. Si quiere ver los grupos que tiene, use Obtención de grupos de derechos para un usuario determinado. Aislamiento de acceso a datos que se ha logrado con esta ACL dedicada (lista de control de acceso) por objeto en una partición de datos determinada.
Preparar subproyecto
1. Registro de la partición de datos en Seismic
2. Crear subproyecto
Use los grupos de derechos creados anteriormente que desea agregar como administradores y visores de ACL (Lista de control de acceso). Los derechos de partición de datos no se traducen necesariamente en los subproyectos que contiene, por lo que es importante ser explícito sobre las ACL de cada subproyecto, independientemente de la partición de datos en la que se encuentra.
3. Creación de un conjunto de datos
Nota:
Este paso solo es necesario si no usa sdutil
para cargar los archivos sísmicos.
Carga del archivo
Hay dos maneras de cargar un archivo SEGY. Una opción es usar la sasurl a través de la llamada a Postman /curl. Debe descargar Postman o configurar Curl en el sistema operativo.
El segundo método consiste en usar SDUTIL. Para iniciar sesión en la instancia de ADME a través de la herramienta, debe generar un token de actualización para la instancia. Consulte Cómo generar el token de autenticación. Como alternativa, puede modificar el código de SDUTIL para usar las credenciales de cliente en su lugar para iniciar sesión. Si aún no lo ha hecho, debe configurar SDUTIL. Descargue el código base y edite el config.yaml
en la raíz. Reemplace el contenido de este archivo de configuración por el código YAML siguiente.
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
Obtenga la sasurl:
Cargue el archivo:
Debe seleccionar el archivo que se va a cargar en la sección Cuerpo de la llamada API.
Comprobación de la carga
Método 2: SDUTIL
sdutil es una utilidad de escritorio de OSDU para acceder al servicio sísmico. Lo usamos para cargar o descargar archivos. Use la etiqueta azure-stable de SDUTIL.
Nota:
Al ejecutar python sdutil config init
, no es necesario escribir nada cuando se le solicite con Insert the azure (azureGlabEnv) application key:
.
python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/
Cargue el archivo sísmico en el almacén de Seismic. Este es un ejemplo con un archivo de formato SEGY denominado source.segy
:
python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy
Por ejemplo:
python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy
Crear registros de almacenamiento
Inserte el contenido del archivo all_records.json
en el almacenamiento para los productos de trabajo, datos de seguimiento sísmico, la cuadrícula sísmica y la recopilación de archivos. Copie y pegue el contenido de ese archivo en el cuerpo de la solicitud de la llamada API.
Ejecutar convertidor
Desencadene el DAG de conversión de ZGY para convertir los datos mediante los valores de contexto de ejecución que había guardado anteriormente.
Capture el token de id. de sdutil para el archivo cargado o use un token de acceso o portador de Postman.
python sdutil auth idtoken
- Deje que el DAG se ejecute en el estado
succeeded
. Puede comprobar el estado mediante la llamada de estado del flujo de trabajo. El id. de ejecución está en la respuesta de la llamada anterior
Puede ver si el archivo convertido está presente mediante el siguiente comando en sdutil o en la llamada API de Postman:
python sdutil ls sd://<data-partition-id>/<subproject>
Puede descargar e inspeccionar el archivo mediante el comando sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® es una marca comercial de The Open Group.