Konvertieren einer SEG-Y-Datei in eine ZGY-Datei

In diesem Artikel erfahren Sie, wie Sie Dateien im SEG-Y-Format in das ZGY-Format konvertieren. Seismische Daten, die im Branchenstandardformat SEG-Y gespeichert sind, können über das Seismic DMS in das ZGY-Format konvertiert werden, um in Anwendungen wie Petrel verwendet zu werden. Häufig gestellte Fragen zur ZGY-Konvertierung finden Sie hier, und weitere Hintergrundinformationen finden Sie in der OSDU®-Community unter Konvertierung von SEG-Y zu ZGY. Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung zum Ausführen der Konvertierung. Beachten Sie, dass der tatsächliche Produktionsworkflow abweichen kann. Verwenden Sie das Tutorial daher als Leitfaden für die erforderlichen Schritte für die Konvertierung.

Voraussetzungen

Abrufen der Instanzdetails für Azure Data Manager for Energy

Der erste Schritt besteht darin, die folgenden Informationen aus Ihrer Instanz von Azure Data Manager for Energy im Azure-Portal abzurufen:

Parameter Wert Beispiel
client_id Anwendungs-ID (Client) 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxx
client_secret Geheime Clientschlüssel _fl******************
tenant_id Verzeichnis-ID (Mandant) 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx
base_url URL https://<instance>.energy.azure.com
data-partition-id Data Partition(s) <data-partition-name>

Sie verwenden diese Informationen später im Tutorial.

Einrichten von Postman

Als Nächstes richten Sie Postman ein:

  1. Laden Sie die Postman-Desktop-App herunter, und installieren Sie sie.

  2. Importieren Sie die folgenden Dateien in Postman:

    So importieren Sie die Dateien:

    1. Wählen Sie in Postman die Option Importieren aus.

    Screenshot: Schaltfläche zum Importieren in Postman

    1. Fügen Sie die URL jeder Datei in das Suchfeld ein.

    Screenshot: Importieren von Sammlungs- und Umgebungsdateien in Postman per URL

  3. Aktualisieren Sie in der Postman-Umgebung die Option CURRENT VALUE mit den Informationen aus den Details zu Ihrer Azure Data Manager for Energy-Instanz:

    1. Wählen Sie in Postman im linken Menü Umgebungen und dann SEGYtoZGY-Umgebung aus.

    2. Geben Sie in der Spalte CURRENT VALUE die Informationen ein, die in der Tabelle unter „Abrufen der Instanzdetails für Azure Data Manager for Energy“ beschrieben sind.

    Screenshot: Vorgehen bei der Eingabe der aktuellen Werte in der SEGYtoZGY-Umgebung

Schritt-für-Schritt-Prozess zum Konvertieren einer SEG-Y-Datei in eine ZGY-Datei

Die bereitgestellte Postman-Sammlung enthält alle Beispielaufrufe, die als Leitfaden dienen können. Sie können auch den entsprechenden cURL-Befehl für einen Postman-Aufruf abrufen, indem Sie auf die Schaltfläche Code klicken.

Screenshot: Schaltfläche „Code“ in Postman

Screenshot: Erstellen eines rechtlichen Tags

Vorbereiten von Datasetdateien

Bereiten Sie die Metadaten-, Manifest- und Datensatzdatei für das Dataset vor. Die Manifestdatei enthält Folgendes:

  • WorkProduct
  • SeismicBinGrid
  • FileCollection
  • SeismicTraceData

Die Konvertierung verwendet eine Manifestdatei, die Sie später in Ihr Speicherkonto hochladen, um die Konvertierung auszuführen. Diese Manifestdatei wird mithilfe mehrerer JSON-Dateien und durch Ausführen eines Skripts erstellt. Die JSON-Dateien für diesen Prozess werden für das Volve-Dataset hier gespeichert. Weitere Informationen zu Volve, z. B. dazu, woher die Definitionen der Datasets stammen, finden Sie auf der Website von Volve. Führen Sie die folgenden Schritte aus, um die Manifestdatei zu erstellen:

  1. Klonen Sie das Repository, und navigieren Sie zum Ordnerdoc/sample-records/volve.
  2. Bearbeiten Sie die Werte im Bash-Skript prepare-records.sh. Erinnern Sie sich daran, dass dem Format des rechtlichen Tags der Name der Azure Data Manager for Energy-Instanz und der Name der Datenpartition vorangestellt werden, sodass es wie <instancename>-<datapartitionname>-<legaltagname> aussieht.
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. Führen Sie das Skript prepare-records.sh aus.
  2. Die Ausgabe ist ein JSON-Array mit allen Objekten und wird in der Datei all_records.json gespeichert.
  3. Speichern Sie die Werte filecollection_segy_id und work_product_id in dieser JSON-Datei, um sie im Konvertierungsschritt zu verwenden. Auf diese Weise weiß der Konverter, wo er nach dem Inhalt Ihrer all_records.json suchen muss.

Hinweis

Die Datei all_records.json muss auch geeignete Daten für jedes Element enthalten.

Beispiel: Die folgenden Parameter werden beim Berechnen der ZGY-Koordinaten für SeismicBinGrid verwendet:

  • P6BinGridOriginEasting
  • P6BinGridOriginI
  • P6BinGridOriginJ
  • P6BinGridOriginNorthing
  • P6ScaleFactorOfBinGrid
  • P6BinNodeIncrementOnIaxis
  • P6BinNodeIncrementOnJaxis
  • P6BinWidthOnIaxis
  • P6BinWidthOnJaxis
  • P6MapGridBearingOfBinGridJaxis
  • P6TransformationMethod
  • persistableReferenceCrs aus dem asIngestedCoordinates-Block: Wenn für SeismicBinGrid die P6-Parameter und CRS unter AsIngestedCoordinatesangegeben sind, sollte die Konvertierung selbst erfolgreich abgeschlossen werden können. Petrel versteht die Umfragegeometrie der Datei jedoch nicht, es sei denn, es werden auch die fünf Eckpunkte unter SpatialArea, AsIngestedCoordinates, SpatialArea und Wgs84Coordinates bereitgestellt.

User Access

Der Benutzer muss Teil der Gruppe users.datalake.admins sein. Überprüfen Sie die aktuellen Berechtigungen für den Benutzer mithilfe des folgenden Aufrufs:

Screenshot: API-Aufruf zum Abrufen von Benutzergruppen in Postman

Später in diesem Tutorial benötigen Sie mindestens einen Besitzer (owner) und mindestens einen Betrachter (viewer). Diese Benutzergruppen sehen wie data.default.owners und data.default.viewers aus. Achten Sie darauf, jeweils einen in Ihrer Liste zu notieren.

Wenn der Benutzer nicht Teil der erforderlichen Gruppe ist, können Sie die erforderliche Berechtigung mithilfe des folgenden Beispielaufrufs hinzufügen: „email-id“ Ist der Wert „ID“, der mit dem obigen Aufruf zurückgegeben wird.

Screenshot: API-Aufruf zum Registrieren eines Benutzers als Administrator in Postman

Wenn Sie noch keine Berechtigungsgruppen erstellt haben, befolgen Sie die Anweisungen unter Verwalten von Benutzer*innen. Wenn Sie sehen möchten, über welche Gruppen Sie verfügen, verwenden Sie Abrufen von Berechtigungsgruppen für einen bestimmten Benutzer. Die Isolation des Datenzugriffs wird mit dieser speziellen Zugriffssteuerungsliste pro Objekt innerhalb einer bestimmten Datenpartition erreicht.

Vorbereiten eines Unterprojekts

1. Registrieren der Datenpartition für Seismic

Screenshot: API-Aufruf zum Registrieren einer Datenpartition als Seismic-Mandant in Postman

2. Erstellen eines Unterprojekts

Verwenden Sie Ihre zuvor erstellten Berechtigungsgruppen, die Sie als Administratoren und Betrachter der Zugriffssteuerungsliste (Access Control List, ACL) hinzufügen möchten. Die Berechtigungen für Datenpartitionen lassen sich nicht unbedingt auf die darin enthaltenen Unterprojekte übertragen, sodass es wichtig ist, die Zugriffssteuerungslisten für jedes Unterprojekt explizit anzugeben, unabhängig davon, in welcher Datenpartition es sich befindet.

Screenshot: API-Aufruf zum Erstellen eines Seismic-Unterprojekts in Postman

3. Erstellen von Datasets

Hinweis

Dieser Schritt ist nur erforderlich, wenn Sie nicht sdutil zum Hochladen der Seismic-Dateien verwenden.

Screenshot: API-Aufruf zum Erstellen eines Seismic-Datasets in Postman

Hochladen der Datei

Es gibt zwei Möglichkeiten zum Hochladen einer SEGY-Datei. Bei einer Option wird die sasurl über einen Postman-/curl-Aufruf verwendet. Sie müssen Postman herunterladen oder Curl auf Ihrem Betriebssystem einrichten. Die zweite Methode besteht darin, SDUTIL zu verwenden. Um sich über das Tool bei Ihrer Instanz für ADME anzumelden, müssen Sie ein Aktualisierungstoken für die Instanz generieren. Weitere Informationen finden Sie unter Generieren eines Authentifizierungstokens. Alternativ können Sie den Code von SDUTIL ändern, um stattdessen Clientanmeldeinformationen für die Anmeldung zu verwenden. Sie müssen SDUTIL einrichten, sofern noch nicht geschehen. Öffnen Sie die Codebasis, und bearbeiten Sie config.yaml im Stammverzeichnis. Ersetzen Sie den Inhalt der Konfigurationsdatei durch den folgenden YAML-Code.

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

Methode 1: Postman

Abrufen der sasurl:

Screenshot: API-Aufruf zum Abrufen einer GCS-Upload-URL in Postman

Hochladen der Datei:

Sie müssen die Datei auswählen, die im Abschnitt „Textkörper“ des API-Aufrufs hochgeladen werden soll.

Screenshot: API-Aufruf zum Hochladen einer Datei in Postman

Screenshot: API-Aufruf zum Hochladen einer Binärdatei in Postman

Überprüfen des Uploads

Screenshot: API-Aufruf zum Überprüfen des Uploads einer Binärdatei in Postman

Methode 2: SDUTIL

sdutil ist ein OSDU-Desktophilfsprogramm für den Zugriff auf den Seismic-Dienst. Es wird zum Hoch- und Herunterladen von Dateien verwendet. Verwenden Sie das Tag „azure-stable“ über SDUTIL.

Hinweis

Beim Ausführen von python sdutil config init müssen Sie keine Werte eingeben, wenn Insert the azure (azureGlabEnv) application key: angezeigt wird.

python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/

Laden Sie Ihre Seismic-Datei in Ihren Seismic Store hoch. Hier folgt ein Beispiel mit einer Datei im SEGY-Format namens source.segy:

python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy

Zum Beispiel:

python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy

Erstellen von Speicherdatensätzen

Fügen Sie den Inhalt Ihrer Datei all_records.json in den Speicher für das Arbeitsprodukt, die seismischen Ablaufverfolgungsdaten, das seismische Raster und die Dateisammlung ein. Kopieren Sie den Inhalt dieser Datei, und fügen Sie ihn in den Anforderungstext des API-Aufrufs ein.

Screenshot: API-Aufruf zum Erstellen von Speicherdatensätzen in Postman

Ausführen des Konverters

  1. Lösen Sie den DAG für die ZGY-Konvertierung aus, um Ihre Daten unter Verwendung der oben gespeicherten Ausführungskontextwerte zu konvertieren.

    Rufen Sie das ID-Token für die hochgeladene Datei über sdutil ab, oder verwenden Sie ein Zugriffs-/Bearertoken von Postman.

python sdutil auth idtoken

Screenshot: API-Aufruf zum Starten des Konvertierungsworkflows in Postman

  1. Lassen Sie den DAG bis zum Zustand succeeded ausführen. Sie können den Status mithilfe des Aufrufs des Workflowstatus überprüfen. Die Ausführungs-ID ist in der Antwort auf den obigen Aufruf enthalten.

Screenshot: API-Aufruf zum Überprüfen des Status des Konvertierungsworkflows in Postman

  1. Sie können mit dem folgenden Befehl in sdutil oder im Postman-API-Aufruf feststellen, ob die konvertierte Datei vorhanden ist:

    python sdutil ls sd://<data-partition-id>/<subproject>
    

Screenshot: API-Aufruf, um zu überprüfen, ob die Datei konvertiert wurde

  1. Sie können die Datei mithilfe des Befehls sdutilcp herunterladen und untersuchen:

    python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
    

OSDU® ist eine Marke von The Open Group.

Nächste Schritte