Redaguoti

Bendrinti naudojant


Tutorial: Work with seismic data by using Seismic DDMS APIs

This tutorial demonstrates how to utilize Seismic Domain Data Management Services (DDMS) APIs with cURL to manage seismic data within an Azure Data Manager for Energy instance.

In this tutorial, you learn how to:

  • Register a data partition for seismic data.
  • Utilize Seismic DDMS APIs to store and retrieve seismic data.

For more information about DDMS, see DDMS concepts.

Prerequisites

Get your Azure Data Manager for Energy instance details

To proceed, gather the following details from your Azure Data Manager for Energy instance via the Azure portal:

Parameter Description Example Where to find this value
client_id Application (client) ID 00001111-aaaa-2222-bbbb-3333cccc4444 You use this app or client ID when registering the application with the Microsoft identity platform. See Register an application
client_secret Client secret _fl****************** Sometimes called an application password, a client secret is a string value that your app can use in place of a certificate to identity itself. See Add a client secret.
tenant_id Directory (tenant) ID 72f988bf-86f1-41af-91ab-xxxxxxxxxxxx Hover over your account name in the Azure portal to get the directory or tenant ID. Alternatively, search for and select Microsoft Entra ID > Properties > Tenant ID in the Azure portal.
base_url Instance URL https://<instance>.energy.azure.com Find this value on the overview page of the Azure Data Manager for Energy instance.
data_partition_id Data partition name opendes Find this value on the overview page of the Azure Data Manager for Energy instance.
access_token Access token value 0.ATcA01-XWHdJ0ES-qDevC6r........... Follow How to generate auth token to create an access token and save it.

Use Seismic DDMS APIs to store and retrieve seismic data

Create a legal tag that is automatically added to the Seismic DDMS environment for data compliance.

API: Setup > Create Legal Tag for SDMS

curl --request POST \
  --url https://{base_url}/api/legal/v1/legaltags \
  --header 'Authorization: Bearer {access_token}' \
  --header 'Content-Type: application/json' \
  --header 'Data-Partition-Id:  {data_partition_id}' \
  --data '{
    "name": "{tag_name}",
    "description": "Legal Tag added for Seismic",
    "properties": {
        "countryOfOrigin": [
            "US"
        ],
        "contractId": "No Contract Related",
        "expirationDate": "2099-01-01",
        "dataType": "Public Domain Data",
        "originator": "OSDU",
        "securityClassification": "Public",
        "exportClassification": "EAR99",
        "personalData": "No Personal Data"
    }
}'

Sample Response:

{
	"name": "opendes-Seismic-Legal-Tag-Test999588567444",
	"description": "Legal Tag added for Seismic",
	"properties": {
		"countryOfOrigin": [
			"US"
		],
		"contractId": "No Contract Related",
		"expirationDate": "2099-01-01",
		"originator": "OSDU",
		"dataType": "Public Domain Data",
		"securityClassification": "Public",
		"personalData": "No Personal Data",
		"exportClassification": "EAR99"
	}
}

For more information, see Manage legal tags.

Verify the service

Run basic service connection and status tests in your Azure Data Manager for Energy instance.

API: Service Verification > Check Status

curl --request GET \
  --url http://{base_url}/seistore-svc/api/v3/svcstatus \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer {access_token}' \
  --header 'data-partition-id: {data_partition_id}'

Sample Response:

service OK

Tenant

Create a tenant in your Azure Data Manager for Energy instance.

Note

You must register a data partition as a tenant before using it with the Seismic DDMS.

API: Tenant > Register a seismic-dms tenant

curl --request POST \
  --url https://{base_url}/seistore-svc/api/v3/tenant/{data_partition_id} \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {access_token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "gcpid": "{data_partition_id}",
    "esd": "{data_partition_id}.dataservices.energy",
    "default_acl": "users.datalake.admins@opendes.dataservices.energy"
}'

Sample Response:

{
	"name": "opendes",
	"esd": "opendes.dataservices.energy",
	"gcpid": "opendes",
	"default_acls": "users.datalake.admins@opendes.dataservices.energy,users.datalake.ops@opendes.dataservices.energy",
	"Symbol(id)": {
		"partitionKey": "tn-opendes",
		"name": "opendes"
	}
}

Create a subproject

Create a subproject in your Azure Data Manager for Energy instance.

API: Subproject > Create a new subproject

curl --request POST \
  --url https://{base_url}/seistore-svc/api/v3/subproject/tenant/{data_partition_id}/subproject/{sesimic_subproject} \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {access_token}' \
  --header 'Content-Type: application/json' \
  --header 'ltag: opendes-Seismic-Legal-Tag-Test999943387766' \
  --data '{
    "admin": "client_id",
    "access_policy": "dataset"
}'

Sample Response:

{
	"name": "test999384006",
	"tenant": "opendes",
	"ltag": "",
	"acls": {
		"admins": [
			"data.sdms.opendes.test999384006.3a114f91-d79f-489e-b9f0-3a4ac6643924.admin@opendes.dataservices.energy"
		],
		"viewers": [
			"data.sdms.opendes.test999384006.3bbce754-bdfa-4fad-9672-cc9a49231058.viewer@opendes.dataservices.energy"
		]
	},
	"access_policy": "dataset",
	"enforce_key": true,
	"gcs_bucket": "ss-cloud-lr8faf2xnup9yxd",
	"Symbol(id)": {
		"partitionKey": "sp-test999384006",
		"name": "test999384006"
	}
}

Register a dataset

Register a dataset in your Azure Data Manager for Energy instance.

API: Dataset > Register a new dataset

curl --request POST \
  --url https://{base_url}/seistore-svc/api/v3/dataset/tenant/{data_partition_id}/subproject/{seismic_subproject}/dataset/{dataset_name} \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {access_token}' \
  --header 'Content-Type: application/json' \
  --header 'ltag: {legal_tag}' \
  --data '{
  "admin": "client_id",
  "storage_class": "MULTI_REGIONAL",
  "storage_location": "US",
  "access_policy": "dataset",
  "acls": {
    "admins": [
      "data.default.owners@opendes.dataservices.energy"
    ],
    "viewers": [
      "data.default.viewers@opendes.dataservices.energy"
    ]
  }
}'

Sample Response:

{
	"name": "test.sgy",
	"tenant": "opendes",
	"subproject": "test999384006",
	"path": "/",
	"ltag": "opendes-Seismic-Legal-Tag-Test999943387766",
	"created_by": "faK96PJHh5W-AzMK_dERdxkBBssUYVuqDjzYJcw9Al0",
	"last_modified_date": "Mon Mar 17 2025 12:43:38 GMT+0000 (Coordinated Universal Time)",
	"created_date": "Mon Mar 17 2025 12:43:38 GMT+0000 (Coordinated Universal Time)",
	"acls": {
		"admins": [
			"data.default.owners@opendes.dataservices.energy"
		],
		"viewers": [
			"data.default.viewers@opendes.dataservices.energy"
		]
	},
	"gcsurl": "ss-cloud-sfibby9ril9i755-915f80ed-4804-448a-bfa5-2e70934a97a2",
	"ctag": "TQsxLjyufohTOFvfopendes;opendes",
	"Symbol(id)": {
		"partitionKey": "ds-opendes-test999384006-3fdd95ea0c79eb59dcb2acc48ed1d1eb057a5f94debacffac4d8e88410c5cb2804d9ba68473ea20d2d91d143b64b755e4627ad87e89530ade1cd9614a8a53545",
		"name": "test.sgy"
	},
	"access_policy": "dataset",
	"sbit": "WSUmTxkL20jQSlKW",
	"sbit_count": 1
}

Register applications

Register applications in your Azure Data Manager for Energy instance.

API: Applications > Register a new application

curl --request POST \
  --url 'https://{base_url}/seistore-svc/api/v3/app?email={email}&sdpath={sdpath}' \
  --header 'Authorization: Bearer {access_token}'

Sample Response:

Status Code: 200

Next step

As an alternative user experience to Postman, you can use the sdutil command-line Python tool to directly interact with Seismic Store. Use the following tutorial to get started:

For more information on the Seismic REST APIs in Azure Data Manager for Energy, see the OpenAPI specifications available in the adme-samples GitHub repository.