Jak przekonwertować plik SEG-Y na ZGY
Z tego artykułu dowiesz się, jak przekonwertować sformatowane dane SEG-Y na format ZGY. Dane seismiczne przechowywane w standardowym formacie SEG-Y można przekonwertować na ZGY do użycia w aplikacjach, takich jak Petrel za pośrednictwem seismic DMS. Zobacz tutaj, aby uzyskać często zadawane pytania dotyczące konwersji ZGY i więcej informacji można znaleźć w społeczności OSDU® tutaj: SEG-Y do ZGY konwersacji. Ten samouczek jest wskazówką krok po kroku, jak przeprowadzić konwersję. Zwróć uwagę, że rzeczywisty przepływ pracy w środowisku produkcyjnym może się różnić i użyć go jako przewodnika dla wymaganego zestawu kroków w celu przeprowadzenia konwersji.
Wymagania wstępne
- Subskrypcja platformy Azure
- Wystąpienie usługi Azure Data Manager for Energy utworzone w ramach subskrypcji platformy Azure.
- Plik SEG-Y
- Jako test można użyć dowolnego z poniższych plików z zestawu danych Volve. Sam zestaw danych Volve jest dostępny w aplikacji Equinor.
Uzyskiwanie szczegółów wystąpienia usługi Azure Data Manager dla wystąpienia energii
Pierwszym krokiem jest uzyskanie następujących informacji z wystąpienia usługi Azure Data Manager for Energy w witrynie Azure Portal:
Parametr | Wartość | Przykład |
---|---|---|
client_id | Identyfikator aplikacji (klient) | 3dbbbcc2-f28f-44b6-a5ab-xxxxxxxxxxxxxx |
client_secret | Klucze tajne klienta | _Fl****************** |
tenant_id | Identyfikator katalogu (dzierżawcy) | 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx |
base_url | URL | https://<instance>.energy.azure.com |
data-partition-id | Partycje danych | <data-partition-name> |
Te informacje są używane w dalszej części tego samouczka.
Konfigurowanie narzędzia Postman
Następnie skonfiguruj narzędzie Postman:
Pobierz i zainstaluj aplikację klasyczną Postman .
Zaimportuj następujące pliki w narzędziu Postman:
Aby zaimportować pliki:
- Wybierz pozycję Importuj w narzędziu Postman.
- Wklej adres URL każdego pliku w polu wyszukiwania.
W środowisku Postman zaktualizuj bieżącą wartość przy użyciu informacji z usługi Azure Data Manager, aby uzyskać szczegółowe informacje o wystąpieniu energii
W narzędziu Postman w menu po lewej stronie wybierz pozycję Środowiska, a następnie wybierz pozycję SEGYtoZGY Environment( Środowisko SEGYtoZGY).
W kolumnie CURRENT VALUE (BIEŻĄCA WARTOŚĆ ) wprowadź informacje opisane w tabeli "Pobieranie szczegółów wystąpienia usługi Azure Data Manager for Energy".
Proces krok po kroku w celu przekonwertowania pliku SEG-Y na plik ZGY
Podana kolekcja Postman zawiera wszystkie przykładowe wywołania służące jako przewodnik. Możesz również pobrać równoważne polecenie cURL dla wywołania postman, klikając przycisk Kod .
Tworzenie tagu prawnego
Przygotowywanie plików zestawu danych
Przygotuj plik metadanych/pliku manifestu/rekordów dla zestawu danych. Plik manifestu zawiera następujące elementy:
- Produkt roboczy
- SeismicBinGrid
- FileCollection
- SeismicTraceData
Konwersja używa pliku manifestu przekazanego do konta magazynu później w celu uruchomienia konwersji. Ten plik manifestu jest tworzony przy użyciu wielu plików JSON i uruchamiania skryptu. Pliki JSON dla tego procesu są przechowywane tutaj dla zestawu danych Volve. Aby uzyskać więcej informacji na temat volve, takich jak miejsce, z którego pochodzą definicje zestawów danych, odwiedź ich witrynę internetową. Wykonaj następujące kroki, aby utworzyć plik manifestu:
- Sklonuj repozytorium i przejdź do folderu
doc/sample-records/volve
- Edytuj wartości w skryscie powłoki
prepare-records.sh
bash. Pamiętaj, że format tagu prawnego jest poprzedzony nazwą wystąpienia usługi Azure Data Manager for Energy i nazwą partycji danych, więc wygląda następująco:<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>
- Uruchom skrypt
prepare-records.sh
. - Dane wyjściowe są tablicą JSON ze wszystkimi obiektami i są zapisywane w
all_records.json
pliku. filecollection_segy_id
Zapisz wartości iwork_product_id
w tym pliku JSON, które mają być używane w kroku konwersji. W ten sposób konwerter wie, gdzie szukać tej zawartości plikuall_records.json
.
Uwaga
Plik all_records.json
musi również zawierać odpowiednie dane dla każdego elementu.
Przykład: Podczas obliczania współrzędnych ZGY dla SeismicBinGrid
elementu są używane następujące parametry:
P6BinGridOriginEasting
P6BinGridOriginI
P6BinGridOriginJ
P6BinGridOriginNorthing
P6ScaleFactorOfBinGrid
P6BinNodeIncrementOnIaxis
P6BinNodeIncrementOnJaxis
P6BinWidthOnIaxis
P6BinWidthOnJaxis
P6MapGridBearingOfBinGridJaxis
P6TransformationMethod
persistableReferenceCrs
asIngestedCoordinates
z bloku Jeśli parametrSeismicBinGrid
P6 i CRS określony w obszarzeAsIngestedCoordinates
, sama konwersja powinna być w stanie zakończyć się pomyślnie, ale Petrel nie zrozumie geometrii ankiety pliku, chyba że również otrzymuje 5 punktów narożnych poniżejSpatialArea
,AsIngestedCoordinates
SpatialArea
iWgs84Coordinates
.
Dostęp użytkowników
Użytkownik musi być częścią users.datalake.admins
grupy. Zweryfikuj bieżące uprawnienia dla użytkownika przy użyciu następującego wywołania:
W dalszej części tego samouczka potrzebny jest co najmniej jeden owner
i co najmniej jeden viewer
. Te grupy użytkowników wyglądają następująco: data.default.owners
i data.default.viewers
. Pamiętaj, aby zanotować jedną z nich na liście.
Jeśli użytkownik nie jest częścią wymaganej grupy, możesz dodać wymagane uprawnienie przy użyciu następującego przykładowego wywołania: email-id: czy wartość "ID" zwrócona z powyższego wywołania.
Jeśli nie utworzono jeszcze grup uprawnień, postępuj zgodnie z instrukcjami opisanymi w temacie Jak zarządzać użytkownikami. Jeśli chcesz zobaczyć, jakie grupy masz, użyj pozycji Pobierz grupy uprawnień dla danego użytkownika. Izolacja dostępu do danych jest osiągana przy użyciu tej dedykowanej listy ACL (listy kontroli dostępu) dla każdego obiektu w ramach danej partycji danych.
Przygotowywanie podprojektu
1. Rejestrowanie partycji danych w seismic
2. Tworzenie podprojektu
Użyj utworzonych wcześniej grup uprawnień, które chcesz dodać jako administratorzy listy kontroli dostępu (lista kontroli dostępu) i osoby przeglądające. Uprawnienia partycji danych nie muszą być tłumaczone na podprojekty, dlatego ważne jest, aby jawnie poznać listy ACL dla każdego podprojektu, niezależnie od partycji danych, w której się znajduje.
3. Tworzenie zestawu danych
Uwaga
Ten krok jest wymagany tylko wtedy, gdy nie używasz sdutil
go do przekazywania plików sejsmicznych.
Przekazywanie pliku
Istnieją dwa sposoby przekazywania pliku SEGY. Jedną z opcji jest użycie sasurl za pośrednictwem wywołania Postman / curl. Musisz pobrać narzędzie Postman lub skonfigurować narzędzie Curl w systemie operacyjnym.
Drugą metodą jest użycie narzędzia SDUTIL. Aby zalogować się do wystąpienia programu ADME za pośrednictwem narzędzia, musisz wygenerować token odświeżania dla wystąpienia. Zobacz Jak wygenerować token uwierzytelniania. Alternatywnie można zmodyfikować kod SDUTIL, aby zamiast tego logować się przy użyciu poświadczeń klienta. Jeśli jeszcze tego nie zrobiono, musisz skonfigurować narzędzie SDUTIL. Pobierz bazę kodu i zmodyfikuj element config.yaml
w katalogu głównym. Zastąp zawartość tego pliku konfiguracji następującym plikiem yaml.
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
Metoda 1. Postman
Pobierz adres sasurl:
Przekaż plik:
Musisz wybrać plik do przekazania w sekcji Treść wywołania interfejsu API.
Weryfikowanie przekazywania
Metoda 2. SDUTIL
sdutil to narzędzie klasyczne OSDU do uzyskiwania dostępu do usługi sejsmicznej. Używamy go do przekazywania/pobierania plików. Użyj tagu azure-stable z narzędzia SDUTIL.
Uwaga
Podczas uruchamiania python sdutil config init
polecenia nie trzeba wprowadzać żadnych elementów po wyświetleniu monitu za pomocą polecenia Insert the azure (azureGlabEnv) application key:
.
python sdutil config init
python sdutil auth login
python sdutil ls sd://<data-partition-id>/<subproject>/
Przekaż plik sejsmiczny do sklepu Seismic Store. Oto przykład pliku w formacie SEGY o nazwie source.segy
:
python sdutil cp <local folder>/source.segy sd://<data-partition-id>/<subproject>/destination.segy
Na przykład:
python sdutil cp ST10010ZC11_PZ_PSDM_KIRCH_FULL_T.MIG_FIN.POST_STACK.3D.JS-017536.segy sd://<data-partition-id>/<subproject>/destination.segy
Tworzenie rekordów magazynu
Wstaw zawartość pliku w magazynie dla produktu roboczego all_records.json
, danych śledzenia sejsmicznego, siatki sejsmicznej i kolekcji plików. Skopiuj i wklej zawartość tego pliku do treści żądania wywołania interfejsu API.
Uruchamianie konwertera
Wyzwól grupę DAG konwersji ZGY, aby przekonwertować dane przy użyciu zapisanych powyżej wartości kontekstu wykonywania.
Pobierz token identyfikatora z narzędzia sdutil dla przekazanego pliku lub użyj tokenu dostępu/elementu nośnego z narzędzia Postman.
python sdutil auth idtoken
- Pozwól, aby grupa DAG działała
succeeded
do stanu. Stan można sprawdzić przy użyciu wywołania stanu przepływu pracy. Identyfikator przebiegu znajduje się w odpowiedzi na powyższe wywołanie
Możesz sprawdzić, czy przekonwertowany plik jest obecny przy użyciu następującego polecenia w narzędziu sdutil lub wywołaniu interfejsu API Postman:
python sdutil ls sd://<data-partition-id>/<subproject>
Plik można pobrać i sprawdzić za pomocą polecenia sdutil
cp
:python sdutil cp sd://<data-partition-id>/<subproject>/<filename.zgy> <local/destination/path>
OSDU® jest znakiem towarowym grupy Open.