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
- Ein Azure-Abonnement
- Eine Instanz von Azure Data Manager for Energy, die in Ihrem Azure-Abonnement erstellt wurde
- Eine SEG-Y-Datei
- Sie können eine der folgenden Dateien aus dem Volve-Dataset als Test verwenden. Das Volve-Dataset selbst ist unter Equinor verfügbar.
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:
Laden Sie die Postman-Desktop-App herunter, und installieren Sie sie.
Importieren Sie die folgenden Dateien in Postman:
So importieren Sie die Dateien:
- Wählen Sie in Postman die Option Importieren aus.
- Fügen Sie die URL jeder Datei in das Suchfeld ein.
Aktualisieren Sie in der Postman-Umgebung die Option CURRENT VALUE mit den Informationen aus den Details zu Ihrer Azure Data Manager for Energy-Instanz:
Wählen Sie in Postman im linken Menü Umgebungen und dann SEGYtoZGY-Umgebung aus.
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.
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.
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:
- Klonen Sie das Repository, und navigieren Sie zum Ordner
doc/sample-records/volve
. - 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>
- Führen Sie das Skript
prepare-records.sh
aus. - Die Ausgabe ist ein JSON-Array mit allen Objekten und wird in der Datei
all_records.json
gespeichert. - Speichern Sie die Werte
filecollection_segy_id
undwork_product_id
in dieser JSON-Datei, um sie im Konvertierungsschritt zu verwenden. Auf diese Weise weiß der Konverter, wo er nach dem Inhalt Ihrerall_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 demasIngestedCoordinates
-Block: Wenn fürSeismicBinGrid
die P6-Parameter und CRS unterAsIngestedCoordinates
angegeben 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 unterSpatialArea
,AsIngestedCoordinates
,SpatialArea
undWgs84Coordinates
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:
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.
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
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.
3. Erstellen von Datasets
Hinweis
Dieser Schritt ist nur erforderlich, wenn Sie nicht sdutil
zum Hochladen der Seismic-Dateien verwenden.
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:
Hochladen der Datei:
Sie müssen die Datei auswählen, die im Abschnitt „Textkörper“ des API-Aufrufs hochgeladen werden soll.
Überprüfen des Uploads
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.
Ausführen des Konverters
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
- 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.
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>
Sie können die Datei mithilfe des Befehls sdutil
cp
herunterladen und untersuchen:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® ist eine Marke von The Open Group.