Udostępnij za pośrednictwem


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

Odczytywanie danych zbiorników za pomocą interfejsów API DDMS zbiorników

  1. 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"
    }
    
  2. 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"
    		}
    	}
    ]
    
  3. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/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
    	}
    ]
    
  4. 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"
    		}
    	}
    ]
    
  5. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/volve. Chcesz uzyskać wszystkie Grid2dRepresentation 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"
    		}
        }
    ]
    
  6. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/volve. Chcesz uzyskać szczegółowe informacje o typie Grid2dRepresentation obiektu z identyfikatorem GUID obiektu danych 07cb9ebb-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"
    				]
    			}
    		}
    	}
    ]
    
  7. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/Volve. Chcesz uzyskać tablice typu Grid2dRepresentation obiektu z identyfikatorem GUID obiektu danych 07cb9ebb-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": {}
    	}
    ]
    
  8. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/Volve. Chcesz uzyskać tablicę ze ścieżką jako zasób RESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0 typu Grid2dRepresentation obiektu z identyfikatorem GUID 07cb9ebb-299f-469b-9792-e76633a72b89obiektu 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
    		]
    	}
    }
    
  9. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/Volve. Chcesz pobrać wszystkie inne obiekty, do których odwołuje się określony obiekt z identyfikatorem GUID 07cb9ebb-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"
    		}
    	}
    ]
    
  10. 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 nazwie dp1 , a nazwa przestrzeni danych to demo/Volve. Chcesz pobrać wszystkie inne obiekty odwołujące się do określonego obiektu z identyfikatorem GUID 07cb9ebb-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"
    		}
    	}
    ]
    

Samouczek: używanie punktów końcowych interfejsu API protokołu WebSocket protokołu DDMS zbiorników