本文介绍如何使用 curl 命令从 Reservoir DDMS REST API 读取数据。
重要
在当前版本中,仅支持 Reservoir DDMS 读取 API。
先决条件
- 创建 Azure Data Manager for Energy 资源。 请参阅如何创建 Azure Data Manager for Energy 资源。
- 生成服务主体访问令牌以调用储层 DDMS API。 请参阅如何生成身份验证令牌。
使用 Reservoir DDMS API 读取储层数据
若要检查客户端运行状况,请在 Azure Cloud Shell 中运行以下 curl 命令。
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>'
示例响应:
{ "groupId": "org.opengroup.osdu", "artifactId": "@osdu/open-etp-client", "version": "1.2.0", "commitId": "unknown", "commitTime": "unknown" }
运行以下 curl 命令以列出所有数据空间。
curl --request GET \ --url https://<adme_url>/api/reservoir-ddms/v2/dataspaces \ --header 'Authorization: Bearer <access-token>' \ --header 'data-partition-id: <data-partition-id>'
示例响应
[ { "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" } } ]
运行以下 curl 命令以获取数据空间中内容的摘要。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“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'
示例响应
[ { "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 } ]
运行以下 curl 命令以获取数据空间中的所有资源详细信息。
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>'
示例响应
[ { "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" } } ]
运行以下 curl 命令,获取按对象类型筛选的数据空间中的所有资源。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/volve
”。 你想要获取所有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'
示例响应
[ { "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" } } ]
运行以下 curl 命令,获取基于数据对象类型 guid 的表示形式的元数据等详细信息。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/volve
”。 你想要获取具有数据对象 guid07cb9ebb-299f-469b-9792-e76633a72b89
的对象类型Grid2dRepresentation
的详细信息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'
示例响应
[ { "$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" ] } } } ]
运行以下 curl 命令以获取特定数据对象类型的数据对象 guid 的所有数组的说明。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/Volve
”。 你想要获取具有数据对象 guid07cb9ebb-299f-469b-9792-e76633a72b89
的对象类型Grid2dRepresentation
的数组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'
示例响应
[ { "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": {} } ]
运行以下 curl 命令,获取资源中特定路径的数组作为 json。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/Volve
”。 你想要获取具有资源路径的数组,作为具有数据对象 guid07cb9ebb-299f-469b-9792-e76633a72b89
的对象类型Grid2dRepresentation
的RESQML/07cb9ebb-299f-469b-9792-e76633a72b89/points_patch0
。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'
示例响应
{ "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 ] } }
运行以下 curl 命令以获取特定对象类型 guid 的所有源对象。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/Volve
”。 你想要获取具有 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'
示例响应
[ { "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" } } ]
运行以下 curl 命令以获取特定对象类型 guid 的目标对象。
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>'
示例请求
假设有一个名为“
admetest
”的 Azure Data Manager for Energy 资源,它有一个名为“dp1
”的数据分区,数据空间名称为“demo/Volve
”。 你想要获取引用具有 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'
示例响应
[ { "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" } } ]