【AI Earth试玩】权限配置与openAPI调用工具库

前言

AI earth是阿里达摩院出的遥感云计算平台,我简单体验下来感觉像是GEE的python版本+遥感深度学习计算平台,整体体验还是挺不错的,尤其是多分类的结果还是挺惊艳的。

平台提供工具箱和notebook两种模式,工具箱整个交互简单易用,这里主要说一下基于notebook的工具箱app调用处理,更多玩法可以参考官方api文档。

权限配置

  • 获取AccessKey并授权

第一种 创建RAM用户的AccessKey

  • 登录RAM控制台。
  • 在左侧导航栏,选择****身份管理** > *用户***。
  • 用户页面,单击目标RAM用户名称。
  • 用户AccessKey区域,单击创建AccessKey
  • 根据界面提示完成安全验证。
  • 权限管理-授权 页面,选择需要授权的子账号,并选择 AliyunRsimganalysFullAccess 系统权限,即可允许对应子账号使用AI Earth云平台功能。如需购买[AI Earth增值服务](javascript:void(0)),请同时授予子账号 AliyunBSSFullAccess 权限。

notebook提交任务

  • 登录后进入平台,点击处理分析选择进入开发者模式,打开运行环境。

  • 这里可以点击项目数据上传自己的数据,也可以选择公开数据集,自己上传的数据是有单独的STAC ID的,公开数据也是有全局唯一的STAC ID的,copy要处理数据的STAC ID,后面代码需要用。

    具体数据STAC ID查询与导入方式参考https://engine-aiearth.aliyun.com/docs/page/guide?d=c2989d#heading-9

初始化环境

这里把上面获取的accessKey复制粘贴过来。

import time
from Tea.exceptions import TeaException
from alibabacloud_tea_openapi import models
from alibabacloud_aiearth_engine20220609.models import *
from alibabacloud_aiearth_engine20220609.client import Client

config = models.Config(
    # 您的AccessKey ID,
    access_key_id='*请替换*',
    # 您的AccessKey Secret,
    access_key_secret='*请替换*',
    # 地域ID
    region_id='cn-hangzhou',
    # 访问的域名
    endpoint='aiearth-engine.cn-hangzhou.aliyuncs.com'
)

client = Client(config)

提交AI解译任务

try:
    createAIJobRequest = CreateAIJobRequest()
    createAIJobRequest.job_name = 'test'  # 这里换成自己的项目名称
    createAIJobRequest.app = 'land_cover_classification'   # 换成自己要调用工具箱的名称,这里以多分类任务为例,不同工具箱对应的名称参考附录
    createAIJobRequest.area_threshold = 0
    createAIJobRequest.confidence = 10
    createAIJobRequestInputs = CreateAIJobRequestInputs()
    createAIJobRequestInputs.idx = 1
    createAIJobRequestInputsSrc = CreateAIJobRequestInputsSrc()
    createAIJobRequestInputsSrc.data_id = '*请替换*'   # data_id即为你数据的STAC ID
    createAIJobRequestInputs.src = createAIJobRequestInputsSrc
    createAIJobRequest.inputs = [createAIJobRequestInputs]
    aijob: CreateAIJobResponse = client.create_aijob(createAIJobRequest)
    print(aijob.body)
    jobId = aijob.body.jobs[0].job_id
except TeaException as e:
    # 打印整体的错误输出
    print(e)
    # 打印错误码
    print(e.code)
    # 打印错误信息,错误信息中包含
    print(e.message)
    # 打印服务端返回的具体错误内容
    print(e.data)

输出结果为:

{'App': 'land_cover_classification', 'Jobs': [{'JobId': 88609, 'Name': 'api-test', 'Success': True}], 'RequestId': 'EBA6E96A-F55C-52B8-A32B-89257E0C5884'}

可以看到任务ID为88609,状态Success为True等信息。

查询AI解译任务

 # 获取任务状态
try:
    getJobsRequest = GetJobsRequest()
    getJobsRequest.job_ids = [jobId]  # 这里换成你自己任务的ID
    jobs: GetJobsResponse = client.get_jobs(getJobsRequest)
    print(jobs.body)
except TeaException as e:
    # 打印整体的错误输出
    print(e)
    # 打印错误码
    print(e.code)
    # 打印错误信息,错误信息中包含
    print(e.message)
    # 打印服务端返回的具体错误内容
    print(e.data)

返回结果如下,可以看到任务的一些详细信息。

{'List': [{'App': 'land_cover_classification', 'JobId': 88608, 'JobName': 'api-test', 'JobType': 1, 'OutDataId': 36859, 'OutDataType': 1, 'OutDateType': 1, 'Progress': '100.00%', 'Status': 1, 'SubmitDate': 1684475561515}, 'RequestId': '82593D93-FC8C-5120-B913-A33B70C2C3CA'}

任务处理完成后重新进入平台,点击我的数据—>处理结果数据中,可以看到自己任务状态,点击可以在线卷帘对比查看,也可以下载离线查看。

附录

官方给出的API调用app名称与推荐置信度

app名称 app说明 置信度参考值(低) 置信度参考值(中) 置信度参考值(高)
building_extraction 建筑物提取 11.76 25 40
greenhouse_extraction 大棚提取 10 25 40
land_cover_classification 地物分类 10 25 40
pv_plant 光伏电厂识别 10 25 40
barrage 拦河坝识别 10 25 40
construction_change 通用变化检测 10 25 40
multiclass 变化多分类 10 25 40
farmland_extraction_remote_sensing 地块提取 10 25 40
building_change 建筑物变化检测 10 25 40
farmland_change 农田变化检测 10 25 40
remove_cloud_haze 去云雾处理 10 25 40

你可能感兴趣的:(新工具试玩,人工智能,遥感,AI,Earth)