Partager via


Tutoriel : Utiliser des points de terminaison d’API Reservoir DDMS

Dans cet article, vous allez apprendre à lire des données à partir des API REST Reservoir DDMS avec des commandes curl.

Important

Dans la version actuelle, seules les API de lecture Reservoir DDMS sont prises en charge.

Prérequis

Utiliser les API Reservoir DDMS pour lire les données de réservoir

  1. Pour vérifier l’intégrité du client, exécutez la commande curl suivante dans 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>'
    

    Exemple de réponse :

    {
        "groupId": "org.opengroup.osdu",
        "artifactId": "@osdu/open-etp-client",
        "version": "1.2.0",
        "commitId": "unknown",
        "commitTime": "unknown"
    }
    
  2. Exécutez la commande curl suivante pour lister tous les espaces de données.

    curl --request GET \
      --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces \
      --header 'Authorization: Bearer <access-token>' \
      --header 'data-partition-id: <data-partition-id>'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir le résumé du contenu d’un espace de données.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est 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'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir tous les détails des ressources d’un espace de données.

    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>'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir toutes les ressources d’un espace de données filtrées sur le type d’objet.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/volve. Vous souhaitez obtenir toutes les ressources de type Grid2dRepresentation.

    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'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir des détails tels que les métadonnées d’une représentation en fonction du GUID du type d’objet de données.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/volve. Vous souhaitez obtenir les détails du type d’objet Grid2dRepresentation avec le GUID d’objet de données 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'
    

    Exemple de réponse

    [
    	{
    		"$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. Exécutez la commande curl suivante pour obtenir la description de tous les tableaux d’un GUID d’objet de données pour un type d’objet de données spécifique.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/Volve. Vous souhaitez obtenir les tableaux du type d’objet Grid2dRepresentation avec le GUID d’objet de données 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'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir le tableau au format json d’un chemin d’accès spécifique dans la ressource.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/Volve. Vous souhaitez obtenir le tableau avec le chemin d’accès dans la ressource au format RESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0 de type d’objet Grid2dRepresentation avec le GUID d’objet de données 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/RESQML%2F07cb9ebb-299f-469b-9792-e76633a72b89%2Fpoints_patch0 \
      --header 'Authorization: Bearer ey........' \
      --header 'data-partition-id: dp1'
    

    Exemple de réponse

    {
    	"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. Exécutez la commande curl suivante pour obtenir tous les objets sources d’un GUID de type d’objet spécifique.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/Volve. Vous souhaitez obtenir tous les autres objets que référence un objet spécifique avec le 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'
    

    Exemple de réponse

    [
    	{
    		"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. Exécutez la commande curl suivante pour obtenir les objets cibles d’un GUID de type d’objet spécifique.

    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>'
    

    Exemple de demande

    Imaginez une ressource Azure Data Manager for Energy nommée admetest avec une partition de données nommée dp1, et le nom de l’espace de données est demo/Volve. Vous souhaitez obtenir tous les autres objets qui référencent un objet spécifique avec le 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'
    

    Exemple de réponse

    [
    	{
    		"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"
    		}
    	}
    ]
    

Tutoriel : Utiliser des points de terminaison d’API websocket Reservoir DDMS