Samouczek: używanie punktów końcowych interfejsu API DDMS zbiorników
Z tego artykułu dowiesz się, jak odczytywać dane z interfejsów API REST usługi Reservoir DDMS za pomocą poleceń curl.
Ważne
W bieżącej wersji obsługiwane są tylko interfejsy API odczytu DDMS zbiorników.
Wymagania wstępne
- Utwórz zasób usługi Azure Data Manager for Energy. Zobacz How to create Azure Data Manager for Energy resource (Jak utworzyć usługę Azure Data Manager dla zasobu energetycznego).
- Wygeneruj token dostępu jednostki usługi, aby wywołać interfejsy API DDMS zbiornika. Zobacz Jak wygenerować token uwierzytelniania.
Odczytywanie danych zbiorników za pomocą interfejsów API DDMS zbiorników
Aby sprawdzić kondycję klienta, uruchom następujące polecenie curl w usłudze Azure Cloud Shell.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/health/info \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowa odpowiedź:
{ "groupId": "org.opengroup.osdu", "artifactId": "@osdu/open-etp-client", "version": "1.2.0", "commitId": "unknown", "commitTime": "unknown" }
Uruchom następujące polecenie curl, aby wyświetlić listę wszystkich przestrzeni danych.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowa odpowiedź
[ { "uri": "eml:///dataspace('demo/Volve')", "path": "demo/Volve", "storeLastWrite": "2025-02-04T13:34:18.901Z", "storeCreated": "2025-02-04T13:34:18.901Z", "customData": { "read-only": "false", "size": "232 kB" } } ]
Uruchom następujące polecenie curl, aby uzyskać podsumowanie zawartości w przestrzeni danych.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace_name>/resources \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/Volve
curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources \ --header 'Authorization: Bearer ey......' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "name": "eml20.obj_EpcExternalPartReference", "count": 1 }, { "name": "resqml20.obj_ContinuousProperty", "count": 10 }, { "name": "resqml20.obj_GeneticBoundaryFeature", "count": 7 }, { "name": "resqml20.obj_Grid2dRepresentation", "count": 5 }, { "name": "resqml20.obj_HorizonInterpretation", "count": 6 }, { "name": "resqml20.obj_LocalDepth3dCrs", "count": 1 }, { "name": "resqml20.obj_OrganizationFeature", "count": 1 }, { "name": "resqml20.obj_PropertyKind", "count": 6 }, { "name": "resqml20.obj_StratigraphicColumn", "count": 2 }, { "name": "resqml20.obj_StratigraphicColumnRankInterpretation", "count": 2 }, { "name": "resqml20.obj_StratigraphicUnitFeature", "count": 8 }, { "name": "resqml20.obj_StratigraphicUnitInterpretation", "count": 16 }, { "name": "resqml20.obj_SubRepresentation", "count": 21 }, { "name": "resqml20.obj_TriangulatedSetRepresentation", "count": 3 } ]
Uruchom następujące polecenie curl, aby uzyskać wszystkie szczegóły zasobów w przestrzeni danych.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace_name>/resources/all \ --header 'Authorization: Bearer bearer' \ --header 'data-partition-id: <data-partition-id>'
Przykładowa odpowiedź
[ { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_ContinuousProperty(0ea90494-08f9-48e8-bc28-6cbc70a64626)", "alternateUris": [], "name": "SnS_data_mismatch", "lastChanged": "2019-01-03T17:10:16.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:10:16.000Z", "creator": "ATsoblefack" } }, { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_ContinuousProperty(1615d8d2-2a2d-482c-885e-14225b89e90c)", "alternateUris": [], "name": "Thick", "lastChanged": "2019-01-08T13:42:27.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-08T13:42:26.000Z", "creator": "ATsoblefack" } } ]
Uruchom następujące polecenie curl, aby pobrać wszystkie zasoby w przestrzeni danych filtrowanej według typu obiektu.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type> \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/volve
. Chcesz uzyskać wszystkieGrid2dRepresentation
zasoby typu.curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation \ --header 'Authorization: Bearer ey........' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_Grid2dRepresentation(07cb9ebb-299f-469b-9792-e76633a72b89)", "alternateUris": [], "name": "ConvHugin_Fm_Base", "lastChanged": "2019-01-03T17:11:21.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:11:20.000Z", "creator": "ATsoblefack" } }, { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_Grid2dRepresentation(8f2c2911-5cdc-4133-ab98-be7a3f94de32)", "alternateUris": [], "name": "Hugin_Fm_Base", "lastChanged": "2019-01-03T17:08:58.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:08:58.000Z", "creator": "ATsoblefack" } } ]
Uruchom następujące polecenie curl, aby uzyskać szczegółowe informacje, takie jak metadane reprezentacji na podstawie identyfikatora GUID typu obiektu danych.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type>/<data-object-type-guid> \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/volve
. Chcesz uzyskać szczegółowe informacje o typieGrid2dRepresentation
obiektu z identyfikatorem GUID obiektu danych07cb9ebb-299f-469b-9792-e76633a72b89
curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation/07cb9ebb-299f-469b-9792-e76633a72b89 \ --header 'Authorization: Bearer ey.....' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "$type": "resqml20.obj_Grid2dRepresentation", "SchemaVersion": "2.0", "Uuid": "07cb9ebb-299f-469b-9792-e76633a72b89", "Citation": { "$type": "eml20.Citation", "Title": "ConvHugin_Fm_Base", "Originator": "ATsoblefack", "Creation": "2019-01-03T17:11:20.000Z", "Format": "Paradigm SKUA-GOCAD 22 Alpha 1 Build:20210830-0200 (id: origin/master|56050|1fb1cf919c2|20210827-1108) for Linux_x64_2.17_gcc91", "Editor": "ATsoblefack", "LastUpdate": "2019-01-03T17:11:21.000Z" }, "ExtraMetadata": [ { "$type": "resqml20.NameValuePair", "Name": "pdgm/dx/resqml/creatorGroup", "Value": "ATsoblefack" } ], "RepresentedInterpretation": { "$type": "eml20.DataObjectReference", "ContentType": "application/x-resqml+xml;version=2.0;type=obj_HorizonInterpretation", "Title": "RP_Markers_Calibration", "UUID": "e33006db-2797-4cdf-a4f2-8207b4688b3a", "UuidAuthority": "pdgm", "_data": { "$type": "resqml20.obj_HorizonInterpretation", "SchemaVersion": "2.0", "Uuid": "e33006db-2797-4cdf-a4f2-8207b4688b3a", "Citation": { "$type": "eml20.Citation", "Title": "RP_Markers_Calibration", "Originator": "dalsaab", "Creation": "2021-09-06T14:20:48.000Z", "Format": "Paradigm SKUA-GOCAD 22 Alpha 1 Build:20210830-0200 (id: origin/master|56050|1fb1cf919c2|20210827-1108) for Linux_x64_2.17_gcc91" }, "ExtraMetadata": [ { "$type": "resqml20.NameValuePair", "Name": "pdgm/dx/resqml/creatorGroup", "Value": "dalsaab" } ], "Domain": "depth", "InterpretedFeature": { "$type": "eml20.DataObjectReference", "ContentType": "application/x-resqml+xml;version=2.0;type=obj_GeneticBoundaryFeature", "Title": "Hugin_Fm_Base", "UUID": "bccee857-efb8-4562-aed7-19e5621526c4", "UuidAuthority": "pdgm", "_data": { "$type": "resqml20.obj_GeneticBoundaryFeature", "SchemaVersion": "2.0", "Uuid": "bccee857-efb8-4562-aed7-19e5621526c4", "Citation": { "$type": "eml20.Citation", "Title": "Hugin_Fm_Base", "Originator": "jmaksoud", "Creation": "2018-11-23T15:01:42.000Z", "Format": "Paradigm SKUA-GOCAD 22 Alpha 1 Build:20210830-0200 (id: origin/master|56050|1fb1cf919c2|20210827-1108) for Linux_x64_2.17_gcc91", "Editor": "dalsaab", "LastUpdate": "2018-11-23T15:58:48.000Z" }, "ExtraMetadata": [ { "$type": "resqml20.NameValuePair", "Name": "pdgm/dx/resqml/creatorGroup", "Value": "jmaksoud" } ], "GeneticBoundaryKind": "horizon" } }, "BoundaryRelation": [ "conformable" ] } } } ]
Uruchom następujące polecenie curl, aby uzyskać opis wszystkich tablic dla identyfikatora GUID obiektu danych dla określonego typu obiektu danych.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type>/<data-object-type-guid>/arrays \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/Volve
. Chcesz uzyskać tablice typuGrid2dRepresentation
obiektu z identyfikatorem GUID obiektu danych07cb9ebb-299f-469b-9792-e76633a72b89
curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation/07cb9ebb-299f-469b-9792-e76633a72b89/arrays \ --header 'Authorization: Bearer ey........' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "uid": { "uri": "eml:///dataspace('demo/Volve')/eml20.obj_EpcExternalPartReference(53395ada-6f93-4bac-b506-d45997ded2a2)", "pathInResource": "/RESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0" }, "dimensions": [ 401, 510 ], "arrayType": "Int8Array", "preferredSubarrayDimensions": [], "storeLastWrite": "1970-01-01T00:00:00.000Z", "storeCreated": "1970-01-01T00:00:00.000Z", "customData": {} } ]
Uruchom następujące polecenie curl, aby pobrać tablicę jako json dla określonej ścieżki w zasobie.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type>/<data-object-type-guid>/arrays/<path-in-resource> \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/Volve
. Chcesz uzyskać tablicę ze ścieżką jako zasóbRESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0
typuGrid2dRepresentation
obiektu z identyfikatorem GUID07cb9ebb-299f-469b-9792-e76633a72b89
obiektu danych.curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation/07cb9ebb-299f-469b-9792-e76633a72b89/arrays/RESQML%2F07cb9ebb-299f-469b-9792-e76633a72b89%2Fpoints_patch0 \ --header 'Authorization: Bearer ey........' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
{ "uid": { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_Grid2dRepresentation(07cb9ebb-299f-469b-9792-e76633a72b89)", "pathInResource": "RESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0" }, "data": { "data": [ null, 3160.12890625, 3138.87255859375, 3139.27734375, 3139.30908203125, 3138.96533203125, 3138.2734375, 3137.31884765625, 3136.285400390625, 3135.2890625 ], "dimensions": [ 401, 510 ] } }
Uruchom następujące polecenie curl, aby pobrać wszystkie obiekty źródłowe dla określonego identyfikatora GUID typu obiektu.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type>/<data-object-type-guid>/sources \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/Volve
. Chcesz pobrać wszystkie inne obiekty, do których odwołuje się określony obiekt z identyfikatorem GUID07cb9ebb-299f-469b-9792-e76633a72b89
.curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation/07cb9ebb-299f-469b-9792-e76633a72b89/sources \ --header 'Authorization: Bearer ey........' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_ContinuousProperty(c88bd325-59ba-4c5b-8b4c-d3b1d98be7c5)", "alternateUris": [], "name": "SnS_data_mismatch", "lastChanged": "2019-01-03T17:11:20.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:11:20.000Z", "creator": "ATsoblefack" } }, { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_SubRepresentation(2756ba3c-ece5-498b-9633-6b7ed279043a)", "alternateUris": [], "name": "SnS_faults_proximity", "lastChanged": "2019-01-03T17:11:20.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:11:20.000Z", "creator": "ATsoblefack" } } ]
Uruchom następujące polecenie curl, aby uzyskać obiekty docelowe dla określonego identyfikatora GUID typu obiektu.
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces/<dataspace-name>/resources/<data-object-type>/<data-object-type-guid>/targets \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
Przykładowe żądanie
Rozważmy zasób usługi Azure Data Manager for Energy o nazwie
admetest
z partycją danych o nazwiedp1
, a nazwa przestrzeni danych todemo/Volve
. Chcesz pobrać wszystkie inne obiekty odwołujące się do określonego obiektu z identyfikatorem GUID07cb9ebb-299f-469b-9792-e76633a72b89
.curl --request GET \ --url https://admetest.energy.azure.com/api/reservoir-ddms/v2/dataspaces/demo%2FVolve/resources/resqml20.obj_Grid2dRepresentation/07cb9ebb-299f-469b-9792-e76633a72b89/targets \ --header 'Authorization: Bearer ey........' \ --header 'data-partition-id: dp1'
Przykładowa odpowiedź
[ { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_ContinuousProperty(c88bd325-59ba-4c5b-8b4c-d3b1d98be7c5)", "alternateUris": [], "name": "SnS_data_mismatch", "lastChanged": "2019-01-03T17:11:20.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:11:20.000Z", "creator": "ATsoblefack" } }, { "uri": "eml:///dataspace('demo/Volve')/resqml20.obj_SubRepresentation(2756ba3c-ece5-498b-9633-6b7ed279043a)", "alternateUris": [], "name": "SnS_faults_proximity", "lastChanged": "2019-01-03T17:11:20.000Z", "storeLastWrite": "2025-02-05T11:33:11.766Z", "storeCreated": "2025-02-05T11:33:11.766Z", "activeStatus": "Active", "customData": { "created": "2019-01-03T17:11:20.000Z", "creator": "ATsoblefack" } } ]
Powiązana zawartość
Samouczek: używanie punktów końcowych interfejsu API protokołu WebSocket protokołu DDMS zbiorników