Sentinel-2衛(wèi)星數(shù)據(jù)查詢與下載

利用sentinel hub Python開發(fā)包查詢和下載Sentinel-2等衛(wèi)星遙感數(shù)據(jù)

1. 描述

??sentinelhub Python包支持用戶利用兩種方式進(jìn)行衛(wèi)星遙感數(shù)據(jù)的下載和處理。第一種方式是使用OGC(WMS和WCS)Web請(qǐng)求装畅,它支持Sentinel-2 L1C和L2A播演,Sentinel-1,Landsat 8休建,MODIS和DEM數(shù)據(jù)源碉渡。第二種方式是支持從AWS(Amazon Web Service)上獲取數(shù)據(jù)聚谁。從AWS上獲取數(shù)據(jù)時(shí)需要提供AWS賬號(hào)信息,當(dāng)從歐洲地區(qū)獲取數(shù)據(jù)時(shí)滞诺,免費(fèi)形导,當(dāng)從歐洲以外的地區(qū)獲取數(shù)據(jù)時(shí)AWS會(huì)從當(dāng)前的AWS賬號(hào)上收取數(shù)據(jù)流量費(fèi)。也就是說數(shù)據(jù)不出歐洲不收費(fèi)习霹,但是只要一出歐洲就會(huì)收取流量費(fèi)朵耕。配置AWS認(rèn)證(賬號(hào))的原因,其實(shí)就是為了扣費(fèi)淋叶。比如憔披,你可以把數(shù)據(jù)下載到歐洲的AWS主機(jī)上,也可以下載到歐洲的S3上爸吮,都是免費(fèi)的芬膝。當(dāng)你想下載到中國(guó)或者中國(guó)地區(qū)的S3上,都要收取流量費(fèi)形娇。具體收費(fèi)標(biāo)準(zhǔn)可參考AWS的流量收費(fèi)標(biāo)準(zhǔn)锰霜。

2. 安裝

??安裝要求python 版本 >= 3.5,并且安裝有C/C++編譯器,可以使用pypi 包管理器進(jìn)行安裝桐早。


$ pip install sentinelhub --upgrade

??也可以通過clone 代碼倉進(jìn)行手動(dòng)安裝


$ python setup.py build   

$ python setup.py install

3. 開發(fā)包特性

3.1 OGC web 服務(wù)

??一些主要的功能與一個(gè)Sentinel Hub賬號(hào)相關(guān)聯(lián):

  • 使用Sentinel Hub帳戶支持Web地圖服務(wù)(WMS)和Web Coverage服務(wù)(WCS)請(qǐng)求;

  • 支持標(biāo)準(zhǔn)和自定義多光譜圖層癣缅,例如未處理的波段厨剪,真彩色圖像或NDVI;

  • 支持多時(shí)間請(qǐng)求;

  • 支持云覆蓋過濾;

  • 支持不同的坐標(biāo)參考系統(tǒng);

  • 支持以最常見的圖像和數(shù)據(jù)格式讀取和寫入下載的數(shù)據(jù)到磁盤;

  • 支持各種數(shù)據(jù)源:

    • Sentinel-2 L1C

    • Sentinel-2 L2A

    • Sentinel-1,

    • Landsat 8友存,

    • MODIS祷膳,

    • DEM。

3.2 AWS 數(shù)據(jù)下載

??該軟件包允許從AWS上的Sentinel-2下載Sentinel-2數(shù)據(jù)屡立,并將數(shù)據(jù)重建為ESA .SAFE格式直晨。

實(shí)施以下內(nèi)容:

  • 支持Sentinel-2 L1C和Sentinel-2 L2A數(shù)據(jù);

  • 支持新舊(即緊湊).SAFE格式;

  • 僅支持下載整個(gè)產(chǎn)品或.SAFE結(jié)構(gòu)圖;

  • 支持命令行條目;

  • 可調(diào)整的線程下載,以及現(xiàn)有數(shù)據(jù)的可選重新下載(非默認(rèn));

  • 需要S-2產(chǎn)品ID或產(chǎn)品的圖塊名稱和日期膨俐。

  • 如果是Sentinel-2 L2A數(shù)據(jù)勇皇,則需要AWS訪問密鑰。

4 從AWS上獲取衛(wèi)星數(shù)據(jù)示例

??該示例說明如何從AWS S3存儲(chǔ)桶上獲取Sentinel-2影像和其他衛(wèi)星數(shù)據(jù)焚刺。AWS上提供的數(shù)據(jù)與ESA提供的S-2數(shù)據(jù)完全相同敛摘。Sentinelhub包支持通過制定產(chǎn)品ID或者指定切片的形式獲取數(shù)據(jù)。它可以將數(shù)據(jù)下載到與AWS相同的文件結(jié)構(gòu)(S3)乳愉,也可以將數(shù)據(jù)下載到ESA的.SAFE文件結(jié)構(gòu)中兄淫。

4.1 配置信息

4.1.1 配置

??主要配置AWS的憑據(jù)信息。開發(fā)包安裝完后會(huì)有一個(gè)配置文件config.json蔓姚。用戶可以在終端命令行中輸入如下命令查詢配置參數(shù):


$ sentinelhub.config --show

4.1.2 Sentinel Hub 功能配置

??如果需要使用Sentinel Hub的服務(wù)捕虽,必須先配置instance_id參數(shù)。如果只是查詢下載赂乐,則不需要配置該參數(shù)薯鳍。instance_id需要在Sentinel hub services上進(jìn)行注冊(cè)申請(qǐng)咖气。通過以下命令設(shè)置Sentinel Hub instance ID:


$ sentinelhub.config --instance_id <your instance id>

??通過這樣做挨措,包將使用這個(gè)實(shí)例ID與Sentinel Hub進(jìn)行交互,除非您有意在代碼中指定一個(gè)不同的實(shí)例ID崩溪。

4.1.3 亞馬遜S3功能配置

??開發(fā)包從亞馬遜S3存儲(chǔ)桶中下載Sentinel-2 L1C和L2A數(shù)據(jù)浅役。這些數(shù)據(jù)存在請(qǐng)求付費(fèi)的存儲(chǔ)桶中,因此在使用S3相關(guān)功能時(shí)需要AWS認(rèn)證伶唯。通過在命令行中的以下命令進(jìn)行aws_access_key_idaws_secret_access_key參數(shù)的設(shè)置觉既。


$ sentinelhub.config --aws_access_key_id <your access key> --aws_secret_access_key <your secret access key>

??如果沒有設(shè)置認(rèn)證,則包將自動(dòng)嘗試使用本地存儲(chǔ)的AWS認(rèn)證(如果這些認(rèn)證是根據(jù)AWS配置說明配置的)乳幸。任何其他配置參數(shù)(例如區(qū)域)也將以同樣的方式收集瞪讼。

??AWS憑據(jù)還必須具有正確的權(quán)限才能從S3 bucket下載數(shù)據(jù)〈舛希可以在AWS IAM控制臺(tái)中配置符欠。配置足夠權(quán)限的方法有很多,其中之一就是將其設(shè)置為AmazonS3ReadOnlyAccess.

??重要提示:因?yàn)镾3中的衛(wèi)星數(shù)據(jù)包含在請(qǐng)求者付費(fèi)桶中瓶埋,Amazon將根據(jù)Amazon S3的價(jià)格向用戶收取下載費(fèi)用希柿。在這種情況下诊沪,用戶需要根據(jù)下載的數(shù)據(jù)量和請(qǐng)求數(shù)付費(fèi)。sentinelhub包最多會(huì)為每個(gè)下載的文件發(fā)出一個(gè)GET請(qǐng)求曾撤。文件的元數(shù)據(jù)端姚。xml, tileInfo。json和productInfo挤悉。json將從Sentinel Hub公共存儲(chǔ)庫免費(fèi)獲得渐裸。

4.2 查詢可用的數(shù)據(jù)

??AWS的Sentinel-2數(shù)據(jù)存檔包含兩個(gè)存儲(chǔ)桶,一個(gè)包含L1C尖啡,另一個(gè)包含L2A數(shù)據(jù)橄仆。有三種方法可以搜索存檔以查找特定的切片和影像產(chǎn)品:

4.2.1 使用aws_cli工具(亞馬遜 AWS 命令行接口工具)手動(dòng)檢索

??終端中輸入以下命令:


aws s3 ls s3://sentinel-s2-l2a/tiles/33/U/WR/ --request-payer

注意,aws_cli工具需要事先安裝衅斩,并且配置好aws認(rèn)證信息盆顾。具體安裝和配置可參考aws_cli安裝配置

4.2.2 使用https://roda.sentinel-hub.com//上提供的服務(wù)進(jìn)行手動(dòng)搜索

??直接通過瀏覽器編輯url并打開,不需要身份驗(yàn)證畏梆,例如:下載Sentinel-2 2017年1月14日L1C級(jí)產(chǎn)品瓦片1 C CV數(shù)據(jù)產(chǎn)品您宪。

https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/1/C/CV/2017/1/14/0/

??該方法返回一個(gè)包含有數(shù)據(jù)下載信息的文件

在這里插入圖片描述

4.2.3 使用Sentinel Hub Web Feature

??Service(WFS)按位置和時(shí)間間隔自動(dòng)檢索(注意:對(duì)于此功能,必須根據(jù)配置段落配置Sentinel Hub實(shí)例ID 奠涌。該實(shí)例ID需要在Sentinel hub上進(jìn)行注冊(cè)宪巨。):


from sentinelhub import WebFeatureService, BBox, CRS, DataSource 

INSTANCE_ID = ''  # In case you put instance ID into cofniguration file you can leave this unchanged     

search_bbox = BBox(bbox=[46.16, -16.15, 46.51, -15.58], crs=CRS.WGS84)     

search_time_interval = ('2017-12-01T00:00:00', '2017-12-15T23:59:59')     

wfs_iterator = WebFeatureService(search_bbox, search_time_interval,   

                                data_source=DataSource.SENTINEL2_L1C,   

                                maxcc=1.0, instance_id=INSTANCE_ID) 

for tile_info in wfs_iterator:

    print(tile_info)


{'properties':{'path':'s3:// sentinel-s2-l1c / tiles / 38 / L / PH / 2017/12/15/0','time':'07:12:03'溜畅, 'id':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'捏卓,'cloudCoverPercentage':28.27,'mbr':'600000,8190220 709800,8300020'慈格,'date':'2017-12-15'怠晴,'crs':'EPSG:32738' },'type':'Feature'浴捆,'geometry':{'type':'MultiPolygon'蒜田,'crs':{'properties':{'name':'urn:ogc:def:crs:EPSG :: 4326 '},'type':'name'}选泻,'coordinates':[[[[45.931783967冲粤,-15.374656929],[46.954538568页眯,-15.368029755]梯捕,[46.964123606,-16.360077552]窝撵,[45.936356187傀顾,-16.367155102],[45.931783967忿族, -15.374656929]]]]}}

{'properties':{'path':'s3:// sentinel-s2-l1c / tiles / 38 / L / PH / 2017/12/10/''锣笨,'time':'07:12:10'蝌矛, 'id':'S2A_OPER_MSI_L1C_TL_SGS__20171210T103113_A012887_T38LPH_N02.06','cloudCoverPercentage':94.02错英,'mbr':'600000,8190220 709800,8300020'入撒,'date':'2017-12-10','crs':'EPSG:32738' }椭岩,'type':'Feature'茅逮,'geometry':{'type':'MultiPolygon','crs':{'properties':{'name':'urn:ogc:def:crs:EPSG :: 4326 '}判哥,'type':'name'}献雅,'coordinates':[[[[45.931783967,-15.374656929]塌计,[46.954538568挺身,-15.368029755],[46.964123606锌仅,-16.360077552]章钾,[45.936356187,-16.367155102]热芹,[45.931783967贱傀, -15.374656929]]]]}}

{'properties':{'path':'s3:// sentinel-s2-l1c / tiles / 38 / L / PH / 2017/12/5/0','time':'07:13:30'伊脓, 'id':'S2B_OPER_MSI_L1C_TL_SGS__20171205T102636_A003907_T38LPH_N02.06'府寒,'cloudCoverPercentage':91.74,'mbr':'600000,8190220 709800,8300020'报腔,'date':'2017-12-05'株搔,'crs':'EPSG:32738' },'type':'Feature'榄笙,'geometry':{'type':'MultiPolygon'邪狞,'crs':{'properties':{'name':'urn:ogc:def:crs:EPSG :: 4326 '}祷蝌,'type':'name'}茅撞,'coordinates':[[[[45.931783967,-15.374656929]巨朦,[46.954538568米丘,-15.368029755],[46.964123606糊啡,-16.360077552]拄查,[45.936356187,-16.367155102]棚蓄,[45.931783967堕扶, -15.374656929]]]]}}

??從獲得的WFS迭代器中碍脏,我們可以提取唯一定義每個(gè)tile的信息。


wfs_iterator.get_tiles()

[('38LPH', '2017-12-15', 0),

('38LPH', '2017-12-10', 0),

('38LPH', '2017-12-5', 0)]

4.2.4 使用sentinelhub.opensearch模塊中的函數(shù)自動(dòng)搜索

??該方法不需要身份驗(yàn)證稍算,直接可以用典尾。


from sentinelhub import get_area_info     

for tile_info in get_area_info(search_bbox, search_time_interval, maxcc=0.5):

    print(tile_info)


{'properties':{'services':{'download':{'mimeType':'text / html','url':'http://sentinel-s2-l1c.s3-website.eu-central-1 .amazonaws.com#tiles / 38 / L / PH / 2017/12/15/0 /'}}糊探,'centroid':{'type':'Point'钾埂,'coordinates':[23.482061803,-15.8675924285]}科平, 'spacecraft':'S2B'褥紫,'license':{'grantedFlags':無,'grantedOrganizationCountries':無瞪慧,'licenseId':'未經(jīng)許可'髓考,'hasToBeSigned':'never','grantedCountries':無弃酌,'描述' :{'shortName':'無許可'}绳军,'signatureQuota': -  1,'viewService':'public'}矢腻,'links':[{'href':'http://opensearch.sentinel-hub门驾。COM /恢復(fù)/收藏/ Sentinel2 / 985b7c0c-5d4a-5105-a37b-ef41f4092392.json&LANG = EN ' '類型?': '應(yīng)用/ JSON'多柑, '標(biāo)題':' GeoJSON的鏈接985b7c0c-5d4a-5105-a37b -ef41f4092392'奶是,'rel':'self'}],'productType':'S2MSI1C'竣灌,'published':'2017-12-15T14:03:04.356331Z'聂沙,'sgsId':3440459,'snowCover':0 初嘹,'collection':'Sentinel2'及汉,'processingLevel':'1C','description':無屯烦,'completionDate':'2017-12-15T07:12:03Z'坷随,'orbitNumber':4050,'sensorMode':無驻龟,'s3Path':'tiles / 38 / L / PH / 2017/12/15/0'温眉,'updated':'2017-12-15T14:03:04.356331Z','parentIdentifier':無翁狐,'s3URI': 'S3://定點(diǎn)-S2-L1C /瓦/ 38 / L / PH /十二分之二千零十七/ 15/0 /'类溢,'organisationName':無,'quicklook':無露懒,'縮略圖':無闯冷,'標(biāo)題':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'砂心,'儀表':'MSI','productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'蛇耀,'startDate': '2017-12-15T07:12:03Z'计贰,'cloudCover':28.27,'platform':'Sentinel-2'蒂窒,'keywords':[]躁倒,'resolution':10},'type':'Feature'洒琢, '幾何':{ '類型': '的MultiPolygon'秧秉, '坐標(biāo)':[[[[45.931783967,-15.374656929]衰抑,[46.954538568象迎,-15.368029755],[46.964123606呛踊,-16.360077552]砾淌,[45.936356187,-16.367155102]谭网,[45.931783967 汪厨,-15.374656929]]]]},'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}organisationName':無愉择,'quicklook':無劫乱,'縮略圖':無,'標(biāo)題':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'锥涕,'儀表':'MSI'衷戈,'productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06','startDate':' 2017-12-15T07:12:03Z'层坠,'cloudCover':28.27殖妇,'platform':'Sentinel-2','keywords':[]破花,'resolution':10}谦趣,'type':'Feature',' geometry':{'type':'MultiPolygon'旧乞,'coordinates':[[[[45.931783967蔚润,-15.374656929]磅氨,[46.954538568尺栖,-15.368029755],[46.964123606烦租,-16.360077552]延赌,[45.936356187除盏,-16.367155102],[45.931783967挫以, -15.374656929]]]]}者蠕,'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}organisationName':無,'quicklook':無掐松,'縮略圖':無踱侣,'標(biāo)題':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06','儀表':'MSI'大磺,'productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'抡句,'startDate':' 2017-12-15T07:12:03Z','cloudCover':28.27杠愧,'platform':'Sentinel-2'待榔,'keywords':[],'resolution':10}流济,'type':'Feature'锐锣,' geometry':{'type':'MultiPolygon','coordinates':[[[[45.931783967绳瘟,-15.374656929]雕憔,[46.954538568,-15.368029755]糖声,[46.964123606橘茉,-16.360077552],[45.936356187姨丈,-16.367155102]畅卓,[45.931783967, -15.374656929]]]]}蟋恬,'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}:無翁潘,'縮略圖':無,'標(biāo)題':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'歼争,'工具':'MSI'拜马,'productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06','startDate':'2017-12-15T07:12: 03Z'沐绒,'cloudCover':28.27俩莽,'platform':'Sentinel-2','keywords':[]乔遮,'resolution':10}扮超,'type':'Feature','geometry':{'type': 'MultiPolygon','坐標(biāo)':[[[[[45.931783967出刷,-15.374656929]璧疗,[46.954538568,-15.368029755]馁龟,[46.964123606崩侠,-16.360077552],[45.936356187坷檩,-16.367155102]却音,[45.931783967,-15.374656929]]]}矢炼, 'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}:無僧家,'縮略圖':無,'標(biāo)題':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'裸删,'工具':'MSI'八拱,'productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06','startDate':'2017-12-15T07:12: 03Z'涯塔,'cloudCover':28.27肌稻,'platform':'Sentinel-2','keywords':[]匕荸,'resolution':10}爹谭,'type':'Feature','geometry':{'type': 'MultiPolygon'榛搔,'坐標(biāo)':[[[[[45.931783967诺凡,-15.374656929],[46.954538568践惑,-15.368029755]腹泌,[46.964123606,-16.360077552]尔觉,[45.936356187凉袱,-16.367155102],[45.931783967侦铜,-15.374656929]]]}专甩, 'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06','instrument':'MSI'钉稍,'productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'涤躲,'startDate':'2017-12-15T07:12:03Z','cloudCover':28.27贡未,'platform':' Sentinel-2'种樱,'keywords':[]蒙袍,'resolution':10},'type':'Feature'缸托,'geometry':{'type':'MultiPolygon'左敌,'coordinates':[[[[45.931783967瘾蛋, -15.374656929]俐镐,[46.954538568,-15.368029755]哺哼,[46.964123606佩抹,-16.360077552],[45.936356187取董,-16.367155102]棍苹,[45.931783967,-15.374656929]]]]茵汰,'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392 “}S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'枢里,'instrument':'MSI','productIdentifier':'S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06'蹂午,'startDate':'2017-12-15T07:12:03Z'栏豺,'cloudCover':28.27,'platform':' Sentinel-2'豆胸,'keywords':[]奥洼,'resolution':10},'type':'Feature'晚胡,'geometry':{'type':'MultiPolygon'灵奖,'coordinates':[[[[45.931783967, -15.374656929]估盘,[46.954538568瓷患,-15.368029755],[46.964123606遣妥,-16.360077552]尉尾,[45.936356187,-16.367155102]燥透,[45.931783967沙咏,-15.374656929]]]],'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392 “}S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06' 班套, '的startDate': '2017-12-15T07:12:03Z'肢藐, 'cloudCover':28.27, '平臺(tái)': '哨兵-2'吱韭, '關(guān)鍵字':[]吆豹, '分辨率':10} '類型': '特征'鱼的, '幾何':{ '類型': '的MultiPolygon', '坐標(biāo)':[[[[45.931783967痘煤,-15.374656929]凑阶,[46.954538568,-15.368029755]衷快,[46.964123606宙橱,-16.360077552] [45.936356187,-16.367155102]蘸拔,[45.931783967师郑,-15.374656929]]]],'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}S2B_OPER_MSI_L1C_TL_MTI__20171215T085654_A004050_T38LPH_N02.06' 调窍, '的startDate': '2017-12-15T07:12:03Z'宝冕, 'cloudCover':28.27, '平臺(tái)': '哨兵-2'邓萨, '關(guān)鍵字':[]地梨, '分辨率':10} '類型': '特征', '幾何':{ '類型': '的MultiPolygon'缔恳, '坐標(biāo)':[[[[45.931783967宝剖,-15.374656929],[46.954538568褐耳,-15.368029755]诈闺,[46.964123606,-16.360077552] [45.936356187铃芦,-16.367155102]雅镊,[45.931783967,-15.374656929]]]]刃滓,'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}geometry':{'type':'MultiPolygon'仁烹,'coordinates':[[[[45.931783967,-15.374656929]咧虎,[46.954538568卓缰,-15.368029755],[46.964123606砰诵,-16.360077552]征唬,[45.936356187,-16.367155102]茁彭,[45.931783967总寒, -15.374656929]]]]},'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}geometry':{'type':'MultiPolygon'理肺,'coordinates':[[[[45.931783967摄闸,-15.374656929]善镰,[46.954538568,-15.368029755]年枕,[46.964123606炫欺,-16.360077552],[45.936356187熏兄,-16.367155102]品洛,[45.931783967, -15.374656929]]]]}霍弹,'id':'985b7c0c-5d4a-5105-a37b-ef41f4092392'}

4.3 下載數(shù)據(jù)

4.3.1 下載AWS瓦片

??Sentinel-2的瓦片可以通過ESA瓦片ID(比如L1C_T01WCV_A012011_20171010T003615)或瓦片名稱(例如T38TML或38TML)毫别、觀測(cè)時(shí)間和AWS索引來唯一地定義娃弓。AWS索引是AWS路徑中的最后一個(gè)數(shù)字(例如https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/1/C/CV/2017/1/14/0/ 索引為0)典格。該開發(fā)包采用第二種瓦片定義方式。按照如下方式將瓦片ID轉(zhuǎn)換成

(tile_name, time, aws_index):


from sentinelhub import AwsTile

tile_id = 'S2A_OPER_MSI_L1C_TL_MTI__20151219T100121_A002563_T38TML_N02.01'

tile_name, time, aws_index = AwsTile.tile_id_to_tile(tile_id)

tile_name, time, aws_index

('38TML', '2015-12-19', 1)

根據(jù)轉(zhuǎn)換后的瓦片名稱台丛、觀測(cè)時(shí)間和AWS索引耍缴,我們就可以下載所需要的S-2數(shù)據(jù)了。比如挽霉,我們想要下載影像的B8A和B10波段防嗡,元數(shù)據(jù)文件:瓦片信息文件(tileInfo.json),預(yù)覽文件(preview.jp2)和云掩膜文件(qi/MSK_CLOUDS_B00)。將這些文件保存至當(dāng)前路徑下的AwsData目錄下侠坎。


from sentinelhub import AwsTileRequest

bands = ['B8A', 'B10']

metafiles = ['tileInfo', 'preview', 'qi/MSK_CLOUDS_B00']

data_folder = './AwsData'

request = AwsTileRequest(tile=tile_name, time=time, aws_index=aws_index,

                        bands=bands, metafiles=metafiles, data_folder=data_folder,

                        data_source=DataSource.SENTINEL2_L1C)

request.save_data()  # This is where the download is triggered

??注意蚁趁,bands 必須是波段列表中的子集(詳見最后備注)。如果不想下載波段數(shù)據(jù)实胸,則將bands設(shè)置成為一個(gè)空列表就行他嫡,即bands=[]。如果缺省bands庐完,則表示下載所有的波段數(shù)據(jù)钢属。metafiles 必須是元文件列表中的子集 (詳見最后備注)。另外门躯,再次調(diào)用以上方法時(shí)淆党,數(shù)據(jù)不會(huì)重新下載,除非設(shè)定參數(shù)redownload=True讶凉。

獲取已經(jīng)下載的數(shù)據(jù)染乌,我們可以直接調(diào)用get_data()


data_list = request.get_data()  # This will not redownload anything because data is already stored on disk

b8a, b10, tile_info, preview, cloud_mask = data_list

注意,該方法直接獲取的是打開的數(shù)據(jù)而不是文件路徑懂讯。比如b8a是波段8a柵格數(shù)據(jù)的數(shù)組荷憋,tile_info是字典對(duì)象。下載的文件將保存在名稱為"tile_name,time,aws_index"的文件夾下域醇,文件名稱與提交的參數(shù)列表中的名稱一致台谊,比如B8A.jp2蓉媳、tileInfo.json。注意文件夾名稱中的time的字符串形式為“YYYY-MM-DD”锅铅,跟由AwsTile.tile_id_to_tile函數(shù)轉(zhuǎn)換后的time字符串形式稍有差別酪呻。

??下載和讀取也可以通過一次調(diào)用request.get_data(save_data=True)直接完成。

4.3.2 下載AWS產(chǎn)品

??通過ESA產(chǎn)品ID獲取Sentinel-2 整個(gè)產(chǎn)品的數(shù)據(jù)盐须。


from sentinelhub import AwsProductRequest

product_id = 'S2A_MSIL1C_20171010T003621_N0205_R002_T01WCV_20171010T003615'

request = AwsProductRequest(product_id=product_id, data_folder=data_folder)

# Uncomment the the following line to download the data:

# data_list = request.get_data(save_data=True)

??如果沒有定義bands參數(shù)玩荠,將下載所有波段。如果沒有定義metafiles參數(shù)贼邓,則不會(huì)下載其他元數(shù)據(jù)文件阶冈。

4.3.3 數(shù)據(jù)下載成.SAFE結(jié)構(gòu)

??通過指定參數(shù)safe_format=True數(shù)據(jù)可以下載成.SAFE結(jié)構(gòu)。


tile_request = AwsTileRequest(tile=tile_name, time=time, aws_index=aws_index,

                              bands=bands, metafiles=metafiles, data_folder=data_folder,

                              safe_format=True)

# Uncomment the the following line to download the data:

# tile_request.save_data()


product_id = 'S2A_OPER_PRD_MSIL1C_PDMC_20160121T043931_R069_V20160103T171947_20160103T171947'

product_request = AwsProductRequest(product_id=product_id, bands=['B01'],

                                    data_folder=data_folder, safe_format=True)

# Uncomment the the following line to download the data:

# product_request.save_data()

??以前的產(chǎn)品包含多個(gè)瓦片塑径。如果只想下載一些瓦片女坑,也可以指定要下載的瓦片列表。


product_request = AwsProductRequest(product_id=product_id, tile_list=['T14PNA', 'T13PHT'],

                                    data_folder=data_folder, safe_format=True)

# Uncomment the the following line to download the data:

# product_request.save_data()

備注:

波段名稱包括:


['B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B09', 'B10', 'B11', 'B12']

元文件數(shù)據(jù)名稱包括:


['productInfo', 'tileInfo', 'metadata', 'inspire', 'manifest', 'datastrip/*/metadata', 'preview', 'preview*', 'TCI', 'preview/B01', 'preview/B02', 'preview/B03', 'preview/B04', 'preview/B05', 'preview/B06', 'preview/B07', 'preview/B08', 'preview/B8A', 'preview/B09', 'preview/B10', 'preview/B11', 'preview/B12', 'qi/MSK_CLOUDS_B00', 'qi/MSK_DEFECT_B01', 'qi/MSK_DEFECT_B02', 'qi/MSK_DEFECT_B03', 'qi/MSK_DEFECT_B04', 'qi/MSK_DEFECT_B05', 'qi/MSK_DEFECT_B06', 'qi/MSK_DEFECT_B07', 'qi/MSK_DEFECT_B08', 'qi/MSK_DEFECT_B8A', 'qi/MSK_DEFECT_B09', 'qi/MSK_DEFECT_B10', 'qi/MSK_DEFECT_B11', 'qi/MSK_DEFECT_B12', 'qi/MSK_DETFOO_B01', 'qi/MSK_DETFOO_B02', 'qi/MSK_DETFOO_B03', 'qi/MSK_DETFOO_B04', 'qi/MSK_DETFOO_B05', 'qi/MSK_DETFOO_B06', 'qi/MSK_DETFOO_B07', 'qi/MSK_DETFOO_B08', 'qi/MSK_DETFOO_B8A', 'qi/MSK_DETFOO_B09', 'qi/MSK_DETFOO_B10', 'qi/MSK_DETFOO_B11', 'qi/MSK_DETFOO_B12', 'qi/MSK_NODATA_B01', 'qi/MSK_NODATA_B02', 'qi/MSK_NODATA_B03', 'qi/MSK_NODATA_B04', 'qi/MSK_NODATA_B05', 'qi/MSK_NODATA_B06', 'qi/MSK_NODATA_B07', 'qi/MSK_NODATA_B08', 'qi/MSK_NODATA_B8A', 'qi/MSK_NODATA_B09', 'qi/MSK_NODATA_B10', 'qi/MSK_NODATA_B11', 'qi/MSK_NODATA_B12', 'qi/MSK_SATURA_B01', 'qi/MSK_SATURA_B02', 'qi/MSK_SATURA_B03', 'qi/MSK_SATURA_B04', 'qi/MSK_SATURA_B05', 'qi/MSK_SATURA_B06', 'qi/MSK_SATURA_B07', 'qi/MSK_SATURA_B08', 'qi/MSK_SATURA_B8A', 'qi/MSK_SATURA_B09', 'qi/MSK_SATURA_B10', 'qi/MSK_SATURA_B11', 'qi/MSK_SATURA_B12', 'qi/MSK_TECQUA_B01', 'qi/MSK_TECQUA_B02', 'qi/MSK_TECQUA_B03', 'qi/MSK_TECQUA_B04', 'qi/MSK_TECQUA_B05', 'qi/MSK_TECQUA_B06', 'qi/MSK_TECQUA_B07', 'qi/MSK_TECQUA_B08', 'qi/MSK_TECQUA_B8A', 'qi/MSK_TECQUA_B09', 'qi/MSK_TECQUA_B10', 'qi/MSK_TECQUA_B11', 'qi/MSK_TECQUA_B12', 'qi/FORMAT_CORRECTNESS', 'qi/GENERAL_QUALITY', 'qi/GEOMETRIC_QUALITY', 'qi/SENSOR_QUALITY', 'auxiliary/ECMWFT']

相關(guān)鏈接:

1. sentinelhub 2.5.3 project description

2. Accessing satellite data from AWS with Python

3. sentinelhub configuration

4. sentinelhub-py on github

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末统舀,一起剝皮案震驚了整個(gè)濱河市匆骗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌誉简,老刑警劉巖碉就,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異闷串,居然都是意外死亡瓮钥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門烹吵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碉熄,“玉大人,你說我怎么就攤上這事年叮【弑唬” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我娜庇,道長(zhǎng)只恨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛉顽。我一直安慰自己,他們只是感情好先较,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布携冤。 她就那樣靜靜地躺著悼粮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曾棕。 梳的紋絲不亂的頭發(fā)上扣猫,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音翘地,去河邊找鬼申尤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衙耕,可吹牛的內(nèi)容都是我干的昧穿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼橙喘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼时鸵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渴杆,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤寥枝,失蹤者是張志新(化名)和其女友劉穎宪塔,沒想到半個(gè)月后磁奖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡某筐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年比搭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片南誊。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡身诺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抄囚,到底是詐尸還是另有隱情霉赡,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布幔托,位于F島的核電站穴亏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏重挑。R本人自食惡果不足惜嗓化,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谬哀。 院中可真熱鬧刺覆,春花似錦、人聲如沸史煎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氢橙,卻和暖如春结窘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背充蓝。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工隧枫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谓苟。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓官脓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涝焙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卑笨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354