Skip to content

Quick Start - OpenAPI

Welcome to EO Platform OpenAPI! This guide will help you quickly get started with the core features of the Earth Observation data platform, from basic authentication to advanced data analysis operations, allowing you to complete your first API call within 5 minutes.

What is EO Platform OpenAPI?

EO Platform OpenAPI is a complete set of RESTful API services designed specifically for the storage, processing, and analysis of Earth observation data. Through these APIs, you can:

  • Data Management: Upload, query, and download various remote sensing image data
  • Data Processing: Execute preprocessing operations such as band composition, mosaicking, fusion, cloud removal, and index calculation
  • Intelligent Analysis: Run target detection algorithms, supporting aircraft detection, road detection, building detection, etc.
  • Metadata Management: Manage image publishing and display.

Whether you are a remote sensing data scientist, GIS developer, or application developer who needs to integrate Earth observation capabilities, EO Platform OpenAPI can provide you with powerful and flexible data processing capabilities.

Prerequisites

Before getting started, please ensure you have:

  • An EO Platform account and are logged in
  • Obtained a valid API Key (see Authentication Guide)
  • Prepared a development environment (tools or programming languages that support HTTP requests)

Step 1: Get API Key

  1. Log in to EO Data Management Platform
  2. Go to User Center > Profile page
  3. In the API Key Management area, click the "Show" button to view your API Key
  4. Copy and securely save the API Key

🔐 Security Tip: API Key is only displayed in full once when generated, please save it securely. If you need to refresh, the old Key will become invalid immediately.

Step 2: Test Connection

Before using the advanced features of EO Platform, let's verify that your connection and authentication configuration are correct through a simple API call. This test will query the list of data files under your account while verifying the validity of the API Key.

Use the following cURL command to test your API connection:

bash
curl -X POST "http://74.162.64.53:8080/data_management_service/datafile/query/page" \
  -H "X-API-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "pageNumber": 1,
    "pageSize": 5
  }'

Expected Response:

json
{
  "code": 200,
  "message": "OK",
  "data": {
    "pageNumber": 1,
    "pageSize": 5,
    "pageCount": 42,
    "totalCount": 208,
    "fileVoList": [
      {
        "id": 329,
        "dataType": 0,
        "imageId": "2JX0Fn0Gn",
        "fileExtension": "tif",
        "size": 0.294525112025,
        "fileName": "ImageryMosaicking_0327_0311",
        "dirPath": "//Data Process Output File",
        "parentId": 87,
        "folder": 0,
        "captureTime": null,
        "updateTime": 1761406167,
        "category": 1,
        "userName": "tang",
        "creator": "2JO312D",
        "thumbnailUrl": null,
        "bandInfos": null
      }
    ]
  }
}

Step 3: Core Features Quick Experience

Now that you have successfully connected to EO Platform, let's experience the core features of the platform through several practical use cases. The following examples cover the complete workflow from data upload to intelligent analysis, with each step including detailed parameter descriptions and expected results.

3.1 Data Processing - Create Band Composition Task

Use Case: Combine multiple single-band images into color RGB images, which is a common requirement for remote sensing data visualization and analysis.

Band composition is a fundamental operation in remote sensing data processing. By selecting different band combinations, you can highlight different ground features:

  • True Color Composition (RGB = Red, Green, Blue bands): Close to human visual effect
  • False Color Composition (RGB = Near-infrared, Red, Green bands): Highlight vegetation information
  • Natural Color Composition (RGB = Near-infrared, Green, Blue bands): Balance visual effect and information content

API Call Example: Create band composition task

bash
curl -X POST "http://74.162.64.53:8080/data_management_service/processtask/addTask" \
  -H "X-API-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "taskType": 6,
    "taskName": "RGB_Band_Merge_Task",
    "outputPath": 12345,
    "outputFileName": "rgb_composite.tif",
    "reflectanceMultiplier": 1.0,
    "reflectanceAddend": 0.0,
    "datas": [
      {
        "dataFileId": 67890,
        "type": 0,
        "bandInfoId": [4, 3, 2]
      }
    ]
  }'

Expected Response:

json
{
  "code": 200,
  "message": "success",
  "data": {
    "taskId": 15
  }
}

Parameter Description:

  • taskType: 6 indicates band composition task
  • taskName: Task name, recommended to include timestamp to ensure uniqueness
  • outputPath: Output directory ID, must be a valid directory identifier
  • outputFileName: Output file name, including extension
  • reflectanceMultiplier: Reflectance multiplier for radiometric correction (optional)
  • reflectanceAddend: Reflectance addend for radiometric correction (optional)
  • datas[].dataFileId: Input data file ID
  • datas[].type: Data type, 0 indicates normal data (for band composition)
  • datas[].bandInfoId: Band information ID array, arranged in RGB order

Important Notes:

  • Band composition task will merge specified bands in order into multi-band images
  • The order of bandInfoId array determines the band order of output images
  • It is recommended to ensure that the spatial resolution and projection coordinate system of each band are consistent before composition
  • The output directory must exist and the user must have write permissions

3.2 Dataset Management - Create Dataset

Use Case: Create datasets to organize and manage related remote sensing data, facilitating data classification, retrieval, and sharing.

Dataset is an important concept for data organization in EO Platform, allowing you to:

  • Classification Management: Categorize and organize data of the same theme or project
  • Permission Control: Set access permissions and sharing scope for datasets
  • Metadata Association: Add descriptive information and tags to datasets
  • Batch Operations: Perform unified processing on all data within the dataset

API Call Example: Create remote sensing image dataset

bash
curl -X POST "http://74.162.64.53:8080/data_management_service/dataset/create" \
  -H "X-API-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: multipart/form-data" \
  -F "datasetName=2024 Urban Remote Sensing Monitoring Dataset" \
  -F "description=Contains Landsat-8 and Sentinel-2 image data of major cities in 2024, used for urban expansion and land use change analysis" \
  -F "provider=National Remote Sensing Center" \
  -F "tagIds=[1,3,5]"

Expected Response:

json
{
  "code": 200,
  "message": "success",
  "data": {
    "datasetId": 8
  }
}

Parameter Description:

  • datasetName: Dataset name, required, maximum 50 characters
  • description: Dataset description, optional, maximum 1024 characters
  • provider: Data source or provider, optional
  • tagIds: List of associated tag IDs, required, used for data classification and retrieval
  • picture: Dataset cover image, optional

Important Notes:

  • Dataset name cannot be empty and length cannot exceed 50 characters
  • At least one tag ID must be specified
  • Tag IDs must be valid tags that exist in the system

3.3 Intelligent Analysis - Create Analysis Algorithm

Use Case: Create custom remote sensing data analysis algorithms, supporting target detection and other analysis needs.

EO Platform currently supports the following types of analysis algorithms:

  • Target Detection:
    • Road Detection: Automatically identify and extract road networks
    • Aircraft Detection: Aircraft target recognition in airports and aprons
    • Building Detection: Urban building outline and distribution extraction

API Call Example: Create building detection algorithm

bash
curl -X POST "http://74.162.64.53:8080/data_management_service/analysis/algorithm/add" \
  -H "X-API-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Urban Building Detection",
    "type": "object_detection",
    "description": "Deep learning-based urban building automatic detection algorithm",
    "featureName": "building_extraction",
    "algorithmCode": "BUILDING_DETECT_V2",
    "algorithmType": "ai_detection",
    "enable": 1,
    "showOrder": 2,
    "analysisAlgorithmParams": [
      {
        "name": "confidence_threshold",
        "labelName": "Confidence Threshold",
        "description": "Minimum confidence for building detection",
        "type": "double",
        "notNull": 1,
        "show": 1,
        "control": "slider",
        "min": "0.1",
        "max": "1.0",
        "defaultValue": "0.7",
        "unit": "probability",
        "showOrder": 1,
        "analyzeParam": 1
      },
      {
        "name": "min_area",
        "labelName": "Minimum Area",
        "description": "Minimum area of detected buildings (square meters)",
        "type": "int",
        "notNull": 1,
        "show": 1,
        "control": "number_input",
        "min": "10",
        "max": "10000",
        "defaultValue": "100",
        "unit": "m²",
        "showOrder": 2,
        "analyzeParam": 1
      },
      {
        "name": "use_nms",
        "labelName": "Non-Maximum Suppression",
        "description": "Whether to use non-maximum suppression to remove overlapping detections",
        "type": "boolean",
        "notNull": 0,
        "show": 1,
        "control": "checkbox",
        "defaultValue": "true",
        "showOrder": 3,
        "analyzeParam": 1
      }
    ]
  }'

Expected Response:

json
{
  "code": 200,
  "message": "success",
  "data": "BUILDING_DETECT_V2"
}

Parameter Description:

  • name: Algorithm name, required, recommended to use descriptive names
  • type: Algorithm provider type, optional, such as "vegetation_index", "object_detection"
  • description: Algorithm description, optional, detailed explanation of algorithm functions and applicable scenarios
  • algorithmCode: Algorithm code, required, unique identifier within the system
  • algorithmType: Algorithm type, such as "raster_analysis", "ai_detection"
  • analysisAlgorithmParams: Algorithm parameter list, defining parameters required for algorithm execution

Algorithm Parameter Field Description:

  • name: Parameter name, used for program calls
  • labelName: Parameter display name, used for user interface
  • type: Parameter data type (int, double, String, boolean)
  • notNull: Whether required (0-optional, 1-required)
  • control: UI control type (number_input, slider, checkbox, etc.)
  • min/max: Parameter value range
  • defaultValue: Default value

Important Notes:

  • Algorithm code (algorithmCode) must be unique within the system
  • This API is used to create algorithm templates, not execute specific analysis tasks
  • After creating an algorithm, you need to use the analysis task API to execute specific analysis operations
  • Properly setting parameter constraints helps improve algorithm stability and user experience

Performance Optimization Recommendations

1. Batch Operations

  • Use batch query interfaces whenever possible to reduce the number of API calls
  • Set reasonable page sizes (recommended 10-50 records)

2. Caching Strategy

  • Cache data that doesn't change frequently locally (such as algorithm lists, data categories)
  • Use ETags or Last-Modified headers for conditional requests

3. Connection Pool Management

python
# Use connection pool to improve performance
session = requests.Session()
session.headers.update({'X-API-Key': API_KEY})

# Reuse session object for multiple requests
response1 = session.get('/api/endpoint1')
response2 = session.post('/api/endpoint2', json=data)

4. File Upload Optimization

  • Concurrency Control: Don't upload too many files simultaneously
  • Network Optimization: Appropriately reduce upload concurrency in unstable network environments

Common Issues and Debugging

Authentication Issues

Q: Receiving 401 Unauthorized error

json
{
  "code": 401,
  "message": "Invalid API Key"
}

Solutions:

  1. Check if API Key is correctly copied (no extra spaces)
  2. Confirm request header format: X-API-Key: your_key_here
  3. Verify if API Key has expired or been refreshed

Request Format Issues

Q: Receiving 400 Bad Request error

json
{
  "code": 400,
  "message": "Invalid request format"
}

Solutions:

  1. Check if Content-Type is application/json
  2. Verify if JSON format is correct
  3. Confirm if required fields are complete

Next Steps

Congratulations! You have completed the quick start guide for EO Platform OpenAPI. Next, you can:

  1. 📖 Deep Learning: Check [Complete API Documentation] to learn about all available interfaces
  2. 🔧 Integration Development: Refer to [Data Storage Guide] and [Data Processing Guide]
  3. 🚀 Production Deployment: Read [Best Practices] to ensure system stability
  4. 💬 Get Support: Contact technical support channels when encountering issues

API Quick Index

Data Storage

Data Processing

Dataset Management

Intelligent Analysis

Metadata Management

💡 Tip: This quick start guide covers the most commonly used features. For more advanced features, please refer to the corresponding detailed documentation.