Comment convertir un fichier SEG-Y en ZGY
Dans cet article, vous allez apprendre à convertir des données mises en forme SEG-Y au format ZGY. Les données sismiques stockées au format SEG-Y standard de l’industrie peuvent être converties en ZGY pour une utilisation dans des applications telles que Petrel via le DMS Seismic. Consultez le FAQ sur la conversion ZGY. Vous trouverez davantage d’informations dans la communauté OSDU® ici : Conversion de SEG-Y en ZGY Ce tutoriel est un guide pas à pas pour effectuer la conversion. Notez que le workflow de production réel peut différer. Utilisez cet article comme guide décrivant l’ensemble d’étapes requis pour effectuer la conversion.
Prérequis
- Un abonnement Azure
- Une instance d’Azure Data Manager pour Energy créée dans votre abonnement Azure.
- Un fichier SEG-Y
- Vous pouvez utiliser n’importe lequel des fichiers suivants du jeu de données Volve en guise de test. Le jeu de données Volve lui-même est disponible auprès d’Equinor.
Obtenir les détails de votre instance Azure Data Manager pour Energy
La première étape consiste à obtenir les informations suivantes auprès de votre instance Azure Data Manager pour Energy dans le Portail Azure :
Paramètre | Valeur | Exemple |
---|---|---|
client_id | ID d’application (client) | 00001111-aaaa-2222-bbbb-3333cccc4444 |
client_secret | Clés secrètes client | _fl****************** |
tenant_id | ID de l’annuaire (locataire) | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | URL | https://<instance>.energy.azure.com |
data-partition-id | Partition(s) de données | <data-partition-name> |
Vous aurez besoin de cette information plus loin dans le tutoriel.
Configurer Postman
Configurez ensuite Postman :
Téléchargez et installez l’application bureau Postman.
Importez les fichiers suivants dans Postman :
Pour importer les fichiers :
- Sélectionnez Importer dans Postman.
- Collez l’URL de chaque fichier dans la zone de recherche.
Dans l’environnement Postman, mettez à jour CURRENT VALUE avec les détails de votre instance Azure Data Manager pour Energy.
Dans le menu de gauche de Postman, sélectionnez Environments, puis SEGYtoZGY Environment.
Dans la colonne CURRENT VALUE, entrez les informations décrites dans le tableau figurant dans « Obtenir les détails de votre instance Azure Data Manager pour Energy ».
Processus pas à pas pour convertir le fichier SEG-Y en fichier ZGY
La collection Postman fournie contient tous les exemples d’appels pour servir de guide. Vous pouvez également récupérer la commande cURL équivalente pour un appel Postman en cliquant sur le bouton Code.
Créer une étiquette juridique
Préparer les fichiers de jeu de données
Préparez les métadonnées, le fichier de manifeste et le fichier d’enregistrements du jeu de données. Le fichier manifeste inclut les éléments suivants :
- WorkProduct
- SeismicBinGrid
- FileCollection
- SeismicTraceData
La conversion utilise un fichier manifeste que vous chargerez ultérieurement sur votre compte de stockage afin d’exécuter la conversion. Ce fichier manifeste est créé à l’aide de plusieurs fichiers JSON et en exécutant un script. Les fichiers JSON de ce processus sont stockés ici pour le jeu de données Volve. Pour plus d’informations sur Volve, notamment d’où proviennent les définitions des jeux de données, visitez leur site web. Effectuez les étapes suivantes afin de créer le fichier manifeste :
- Clonez le référentiel et accédez au dossier
doc/sample-records/volve
. - Modifiez les valeurs dans le script bash
prepare-records.sh
. Rappelez-vous que le format de l’étiquette juridique est préfixé du nom de l’instance Azure Data Manager for Energy et du nom de la partition de données. Il ressemble donc à<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>
- Exécutez le script
prepare-records.sh
. - La sortie est un tableau JSON avec tous les objets, et elle est enregistrée dans le fichier
all_records.json
. - Enregistrez les valeurs
filecollection_segy_id
etwork_product_id
dans ce fichier JSON pour les utiliser dans l’étape de conversion. De cette façon, le convertisseur sait où chercher le contenu de votreall_records.json
.
Remarque
Le fichier all_records.json
doit également contenir des données appropriées pour chaque élément.
Exemple : Les paramètres suivants sont utilisés lors du calcul des coordonnées ZGY pour SeismicBinGrid
:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
persistableReferenceCrs
du blocasIngestedCoordinates
. SiSeismicBinGrid
a les paramètres P6 et le CRS spécifié sousAsIngestedCoordinates
, la conversion proprement dite devrait s’effectuer correctement, mais Petrel ne comprendra pas la géométrie d’enquête du fichier, sauf s’il obtient également les cinq points d’angle sousSpatialArea
,AsIngestedCoordinates
,SpatialArea
etWgs84Coordinates
.
Accès utilisateur
L’utilisateur doit faire partie du groupe users.datalake.admins
. Validez les droits actuels pour l’utilisateur à l’aide de l’appel suivant :
Plus loin dans ce tutoriel, vous aurez besoin d’au moins un owner
et d’au moins un viewer
. Ces groupes d’utilisateurs ressemblent à data.default.owners
et data.default.viewers
. Veillez à noter l’un de chaque dans vos listes.
Si l’utilisateur ne fait pas partie du groupe requis, vous pouvez ajouter le droit requis à l’aide de l’exemple d’appel suivant : email-id: est la valeur « ID » retournée par l’appel ci-dessus.
Si vous n’avez pas encore créé de groupes de droits, suivez les instructions indiquées dans Comment gérer les utilisateurs. Si vous souhaitez voir quels groupes vous avez, utilisez Obtenir des groupes de droits pour un utilisateur donné. L’isolation de l’accès aux données est réalisée grâce à cette ACL (liste de contrôle d’accès) dédiée par objet au sein d’une partition de données donnée.
Préparer le sous-projet
1. Inscrire la partition de données auprès de Seismic
2. Créer un sous-projet
Utilisez les groupes de droits créés précédemment que vous souhaitez ajouter en tant qu’administrateurs et lecteurs des listes de contrôle d’accès (ACL). Les droits d’une partition de données ne se reflètent pas nécessairement dans les sous-projets qui la composent. Il est donc important d’être explicite quant aux listes ACL de chaque sous-projet, quelle que soit la partition de données dans laquelle il se trouve.
3. Créer un jeu de données
Remarque
Cette étape n’est nécessaire que si vous n’utilisez pas sdutil
pour charger les fichiers Seismic.
Charger le fichier
Il existe deux façons de charger un fichier SEGY. L’une des options consiste à utiliser la sasurl via l’appel curl / Postman. Vous devez télécharger Postman ou configurer Curl sur votre système d’exploitation.
La deuxième méthode consiste à utiliser SDUTIL. Pour vous connecter à votre instance pour ADME via l’outil, vous devez générer un jeton d’actualisation pour l’instance. Consultez l’article Comment générer un jeton d’authentification. En guise d’alternative, vous pouvez modifier le code de SDUTIL de façon à utiliser les informations d’identification du client à la place pour vous connecter. Si ce n’est déjà fait, vous devez configurer SDUTIL. Téléchargez le codebase et modifiez le config.yaml
à la racine. Remplacez le contenu du fichier de configuration par le yaml suivant.
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éthode 1 : Postman
Obtenez la sasurl :
Chargez le fichier :
Vous devez sélectionner le fichier à charger dans la section Body de l’appel d’API.
Vérifier le chargement
Méthode 2 : SDUTIL
sdutil est un utilitaire de bureau OSDU permettant d’accéder au service Seismic. Nous l’utilisons pour charger/télécharger des fichiers. Utilisez l’étiquette azure-stable de SDUTIL.
Remarque
Lors de l’exécution de python sdutil config init
, vous n’avez pas besoin d’entrer quoi que ce soit en réponse à l’invite Insert the azure (azureGlabEnv) application key:
.
python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/
Chargez votre fichier sismique dans votre magasin Seismic. Voici un exemple avec un fichier au format SEGY appelé source.segy
:
python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy
Par exemple :
python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy
Créer des enregistrements de stockage
Insérez le contenu de votre fichier all_records.json
dans le stockage pour le produit de travail, les données de trace sismique, la grille sismique et la collecte de fichiers. Copiez et collez le contenu de ce fichier dans le corps de la requête de l’appel d’API.
Exécuter le convertisseur
Déclenchez le DAG de conversion ZGY pour convertir vos données à l’aide des valeurs de contexte d’exécution que vous avez enregistrées ci-dessus.
Récupérez le jeton d’ID de sdutil pour le fichier chargé, ou utilisez un jeton d’accès/jeton du porteur à partir de Postman.
python sdutil auth idtoken
- Laissez le DAG s’exécuter jusqu’à l’état
succeeded
. Vous pouvez vérifier l’état à l’aide de l’appel d’état du workflow. L’ID d’exécution se trouve dans la réponse à l’appel ci-dessus.
Vous pouvez voir si le fichier converti est présent en exécutant la commande suivante dans sdutil ou dans l’appel d’API Postman :
python sdutil ls sd://<data-partition-id>/<subproject>
Vous pouvez télécharger et inspecter le fichier en utilisant la commande sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® est une marque déposée de The Open Group.