Compartir a través de


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

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) 00001111-aaaa-2222-bbbb-3333cccc4444
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:

  1. Descargue e instale la aplicación de escritorio Postman.

  2. Importe los archivos siguientes a Postman:

    Para importar los archivos:

    1. Seleccione Importar en Postman.

    Captura de pantalla que muestra el botón Importar en Postman.

    1. Pegar la dirección URL de cada archivo en el cuadro de búsqueda.

    Captura de pantalla que muestra la importación de archivos de colección y entorno en Postman a través de una dirección URL.

  3. En el entorno de Postman, actualice CURRENT VALUE con la información de los detalles de la instancia de Azure Data Manager for Energy

    1. En Postman, en el menú de la izquierda, seleccione Entornos, y a continuación, seleccione Entorno SEGYtoZGY.

    2. 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".

    Captura de pantalla que muestra dónde especificar los valores actuales en el entorno SEGYtoZGY.

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.

Captura de pantalla que muestra el botón Código en Postman.

Captura de pantalla de la creación de la 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:

  1. Clone el repositorio y vaya a la carpeta doc/sample-records/volve
  2. 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>
  1. Ejecute el script prepare-records.sh.
  2. La salida es una matriz JSON con todos los objetos y se guarda en el archivo all_records.json.
  3. Guarde filecollection_segy_id y los valores work_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 del all_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 bloque asIngestedCoordinates Si el SeismicBinGrid tiene los parámetros P6 y el CRS especificado en AsIngestedCoordinates, 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 en SpatialArea,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:

Captura de pantalla que muestra la llamada API para obtener grupos de usuarios en Postman.

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.

Captura de pantalla que muestra la llamada API para obtener el registro de un usuario como administrador en Postman.

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

Captura de pantalla que muestra la llamada API para registrar una partición de datos como un inquilino sísmico en Postman.

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.

Captura de pantalla que muestra la llamada API para crear un subproyecto sísmico en Postman.

3. Creación de un conjunto de datos

Nota:

Este paso solo es necesario si no usa sdutil para cargar los archivos sísmicos.

Captura de pantalla que muestra la llamada API para crear un conjunto de datos sísmico en Postman.

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:

Captura de pantalla que muestra la llamada API para obtener una dirección URL de carga de GCS en Postman.

Cargue el archivo:

Debe seleccionar el archivo que se va a cargar en la sección Cuerpo de la llamada API.

Captura de pantalla que muestra la llamada API para cargar un archivo en Postman.

Captura de pantalla que muestra la llamada API para cargar un archivo binario en Postman.

Comprobación de la carga

Captura de pantalla que muestra la llamada API para comprobar que un archivo binario se carga en Postman.

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.

Captura de pantalla que muestra la llamada API para crear registros de almacenamiento en Postman.

Ejecutar convertidor

  1. 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

Captura de pantalla que muestra la llamada API para iniciar el flujo de trabajo de conversión en Postman.

  1. 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

Captura de pantalla que muestra la llamada API para comprobar el estado del flujo de trabajo de conversión en Postman.

  1. 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>
    

Captura de pantalla que muestra la llamada API para comprobar si el archivo se ha convertido.

  1. 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.

Pasos siguientes