保世基官方網(wǎng)站建設(shè)北京云無限優(yōu)化
前言
AI earth是阿里達(dá)摩院出的遙感云計算平臺,我簡單體驗下來感覺像是GEE的python版本+遙感深度學(xué)習(xí)計算平臺,整體體驗還是挺不錯的,尤其是多分類的結(jié)果還是挺驚艷的。
平臺提供工具箱和notebook兩種模式,工具箱整個交互簡單易用,這里主要說一下基于notebook的工具箱app調(diào)用處理,更多玩法可以參考官方api文檔。
權(quán)限配置
- 獲取AccessKey并授權(quán)
第一種 創(chuàng)建RAM用戶的AccessKey
- 登錄RAM控制臺。
- 在左側(cè)導(dǎo)航欄,選擇****身份管理** > *用戶***。
- 在用戶頁面,單擊目標(biāo)RAM用戶名稱。
- 在用戶AccessKey區(qū)域,單擊創(chuàng)建AccessKey。
- 根據(jù)界面提示完成安全驗證。
- 在 權(quán)限管理-授權(quán) 頁面,選擇需要授權(quán)的子賬號,并選擇 AliyunRsimganalysFullAccess 系統(tǒng)權(quán)限,即可允許對應(yīng)子賬號使用AI Earth云平臺功能。如需購買[AI Earth增值服務(wù)](javascript:void(0)),請同時授予子賬號 AliyunBSSFullAccess 權(quán)限。
notebook提交任務(wù)
-
登錄后進(jìn)入平臺,點擊處理分析選擇進(jìn)入開發(fā)者模式,打開運行環(huán)境。
-
這里可以點擊項目數(shù)據(jù)上傳自己的數(shù)據(jù),也可以選擇公開數(shù)據(jù)集,自己上傳的數(shù)據(jù)是有單獨的STAC ID的,公開數(shù)據(jù)也是有全局唯一的STAC ID的,copy要處理數(shù)據(jù)的STAC ID,后面代碼需要用。
具體數(shù)據(jù)STAC ID查詢與導(dǎo)入方式參考https://engine-aiearth.aliyun.com/docs/page/guide?d=c2989d#heading-9
初始化環(huán)境
這里把上面獲取的accessKey復(fù)制粘貼過來。
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 Clientconfig = models.Config(# 您的AccessKey ID,access_key_id='*請?zhí)鎿Q*',# 您的AccessKey Secret,access_key_secret='*請?zhí)鎿Q*',# 地域IDregion_id='cn-hangzhou',# 訪問的域名endpoint='aiearth-engine.cn-hangzhou.aliyuncs.com'
)client = Client(config)
提交AI解譯任務(wù)
try:createAIJobRequest = CreateAIJobRequest()createAIJobRequest.job_name = 'test' # 這里換成自己的項目名稱createAIJobRequest.app = 'land_cover_classification' # 換成自己要調(diào)用工具箱的名稱,這里以多分類任務(wù)為例,不同工具箱對應(yīng)的名稱參考附錄createAIJobRequest.area_threshold = 0createAIJobRequest.confidence = 10createAIJobRequestInputs = CreateAIJobRequestInputs()createAIJobRequestInputs.idx = 1createAIJobRequestInputsSrc = CreateAIJobRequestInputsSrc()createAIJobRequestInputsSrc.data_id = '*請?zhí)鎿Q*' # data_id即為你數(shù)據(jù)的STAC IDcreateAIJobRequestInputs.src = createAIJobRequestInputsSrccreateAIJobRequest.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)# 打印服務(wù)端返回的具體錯誤內(nèi)容print(e.data)
輸出結(jié)果為:
{'App': 'land_cover_classification', 'Jobs': [{'JobId': 88609, 'Name': 'api-test', 'Success': True}], 'RequestId': 'EBA6E96A-F55C-52B8-A32B-89257E0C5884'}
可以看到任務(wù)ID為88609,狀態(tài)Success為True等信息。
查詢AI解譯任務(wù)
# 獲取任務(wù)狀態(tài)
try:getJobsRequest = GetJobsRequest()getJobsRequest.job_ids = [jobId] # 這里換成你自己任務(wù)的IDjobs: GetJobsResponse = client.get_jobs(getJobsRequest)print(jobs.body)
except TeaException as e:# 打印整體的錯誤輸出print(e)# 打印錯誤碼print(e.code)# 打印錯誤信息,錯誤信息中包含print(e.message)# 打印服務(wù)端返回的具體錯誤內(nèi)容print(e.data)
返回結(jié)果如下,可以看到任務(wù)的一些詳細(xì)信息。
{'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'}
任務(wù)處理完成后重新進(jìn)入平臺,點擊我的數(shù)據(jù)—>處理結(jié)果數(shù)據(jù)中,可以看到自己任務(wù)狀態(tài),點擊可以在線卷簾對比查看,也可以下載離線查看。
附錄
官方給出的API調(diào)用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 | 農(nóng)田變化檢測 | 10 | 25 | 40 |
remove_cloud_haze | 去云霧處理 | 10 | 25 | 40 |