Udostępnij za pośrednictwem


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

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:

  1. Pobierz i zainstaluj aplikację klasyczną Postman .

  2. Zaimportuj następujące pliki w narzędziu Postman:

    Aby zaimportować pliki:

    1. Wybierz pozycję Importuj w narzędziu Postman.

    Zrzut ekranu przedstawiający przycisk importu w narzędziu Postman.

    1. Wklej adres URL każdego pliku w polu wyszukiwania.

    Zrzut ekranu przedstawiający importowanie plików kolekcji i środowisk w narzędziu Postman za pośrednictwem adresu URL.

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

    1. W narzędziu Postman w menu po lewej stronie wybierz pozycję Środowiska, a następnie wybierz pozycję SEGYtoZGY Environment( Środowisko SEGYtoZGY).

    2. W kolumnie CURRENT VALUE (BIEŻĄCA WARTOŚĆ ) wprowadź informacje opisane w tabeli "Pobieranie szczegółów wystąpienia usługi Azure Data Manager for Energy".

    Zrzut ekranu pokazujący, gdzie wprowadzić bieżące wartości w środowisku SEGYtoZGY.

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 .

Zrzut ekranu przedstawiający przycisk Kod w narzędziu Postman.

Zrzut ekranu przedstawiający 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:

  1. Sklonuj repozytorium i przejdź do folderu doc/sample-records/volve
  2. 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>
  1. Uruchom skrypt prepare-records.sh.
  2. Dane wyjściowe są tablicą JSON ze wszystkimi obiektami i są zapisywane w all_records.json pliku.
  3. filecollection_segy_id Zapisz wartości i work_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 pliku all_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 SeismicBinGridelementu są używane następujące parametry:

  • P6BinGridOriginEasting
  • P6BinGridOriginI
  • P6BinGridOriginJ
  • P6BinGridOriginNorthing
  • P6ScaleFactorOfBinGrid
  • P6BinNodeIncrementOnIaxis
  • P6BinNodeIncrementOnJaxis
  • P6BinWidthOnIaxis
  • P6BinWidthOnJaxis
  • P6MapGridBearingOfBinGridJaxis
  • P6TransformationMethod
  • persistableReferenceCrsasIngestedCoordinates z bloku Jeśli parametr SeismicBinGrid P6 i CRS określony w obszarze AsIngestedCoordinates, 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żej SpatialArea,AsIngestedCoordinatesSpatialArea i Wgs84Coordinates.

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:

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu pobrania grup użytkowników w narzędziu Postman.

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.

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu zarejestrowania użytkownika jako administratora w narzędziu Postman.

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

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu zarejestrowania partycji danych jako dzierżawy sejsmicznej w narzędziu Postman.

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.

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu utworzenia podprojektu sejsmicznego w narzędziu Postman.

3. Tworzenie zestawu danych

Uwaga

Ten krok jest wymagany tylko wtedy, gdy nie używasz sdutil go do przekazywania plików sejsmicznych.

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu utworzenia zestawu danych sejsmicznych w narzędziu Postman.

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:

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu uzyskania adresu URL przekazywania GCS w narzędziu Postman.

Przekaż plik:

Musisz wybrać plik do przekazania w sekcji Treść wywołania interfejsu API.

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu przekazania pliku w narzędziu Postman.

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu przekazania pliku binarnego w narzędziu Postman.

Weryfikowanie przekazywania

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu sprawdzenia, czy plik binarny został przekazany w narzędziu Postman.

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

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu utworzenia rekordów magazynu w narzędziu Postman.

Uruchamianie konwertera

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

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu uruchomienia przepływu pracy konwersji w narzędziu Postman.

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

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu sprawdzenia stanu przepływu pracy konwersji w narzędziu Postman.

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

Zrzut ekranu przedstawiający wywołanie interfejsu API w celu sprawdzenia, czy plik został przekonwertowany.

  1. Plik można pobrać i sprawdzić za pomocą polecenia sdutilcp:

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

OSDU® jest znakiem towarowym grupy Open.

Następne kroki