利用sentinel hub Python開發包查詢和下載Sentinel-2等衛星遙感數據

利用sentinel hub Python開發包查詢和下載Sentinel-2等衛星遙感數據

1. 描述

  sentinelhub Python包支持用戶利用兩種方式進行衛星遙感數據的下載和處理。第一種方式是使用OGC(WMS和WCS)Web請求,它支持Sentinel-2 L1C和L2A,Sentinel-1,Landsat 8,MODIS和DEM數據源。第二種方式是支持從AWS(Amazon Web Service)上獲取數據。它可以使用Sentinel-2 L1C圖像從公共存儲桶提供數據,也可以使用Sentinel-2 L2A圖像向請求者支付存儲桶。如果指定,下載的數據可以以ESA .SAFE格式存儲(支持所有類型的.SAFE格式)。

2. 安裝

  安裝要求python 版本 >= 3.5,並且安裝有C/C++編譯器,可以使用pypi 包管理器進行安裝。

$ pip install sentinelhub --upgrade

  也可以通過clone 代碼倉進行手動安裝

$ python setup.py build    
$ python setup.py install

3. 開發包特性

3.1 OGC web 服務

  一些主要的功能與一個Sentinel Hub賬號相關聯:

  • 使用Sentinel Hub帳戶支持Web地圖服務(WMS)和Web Coverage服務(WCS)請求;
  • 支持標準和自定義多光譜圖層,例如未處理的波段,真彩色圖像或NDVI;
  • 支持多時間請求;
  • 支持雲覆蓋過濾;
  • 支持不同的座標參考系統;
  • 支持以最常見的圖像和數據格式讀取和寫入下載的數據到磁盤;
  • 支持各種數據源:
    • Sentinel-2 L1C
    • Sentinel-2 L2A
    • Sentinel-1,
    • Landsat 8,
    • MODIS,
    • DEM。

3.2 AWS 數據下載

  該軟件包允許從AWS上的Sentinel-2下載Sentinel-2數據,並將數據重建爲ESA .SAFE格式。
實施以下內容:

  • 支持Sentinel-2 L1C和Sentinel-2 L2A數據;
  • 支持新舊(即緊湊).SAFE格式;
  • 僅支持下載整個產品或.SAFE結構圖;
  • 支持命令行條目;
  • 可調整的線程下載,以及現有數據的可選重新下載(非默認);
  • 需要S-2產品ID或產品的圖塊名稱和日期。
  • 如果是Sentinel-2 L2A數據,則需要AWS訪問密鑰。

4 從AWS上獲取衛星數據示例

  該示例說明如何從AWS S3存儲桶上獲取Sentinel-2影像和其他衛星數據。AWS上提供的數據與ESA提供的S-2數據完全相同。Sentinelhub包支持通過制定產品ID或者指定切片的形式獲取數據。它可以將數據下載到與AWS相同的文件結構(S3),也可以將數據下載到ESA的.SAFE文件結構中。

4.1 配置信息

4.1.1 配置

  主要配置AWS的憑據信息。開發包安裝完後會有一個配置文件config.json。用戶可以在終端命令行中輸入如下命令查詢配置參數:

$ sentinelhub.config --show

4.1.2 Sentinel Hub 功能配置

  如果需要使用Sentinel Hub的服務,必須先配置instance_id參數。instance_id需要在Sentinel hub services上進行註冊申請。通過以下命令設置Sentinel Hub instance ID:

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

  通過這樣做,包將使用這個實例ID與Sentinel Hub進行交互,除非您有意在代碼中指定一個不同的實例ID。

4.1.3 亞馬遜S3功能配置

  開發包從亞馬遜S3存儲桶中下載Sentinel-2 L1C和L2A數據。這些數據存在請求付費的存儲桶中,因此在使用S3相關功能時需要AWS認證。通過在命令行中的以下命令進行aws_access_key_idaws_secret_access_key參數的設置。

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

  如果沒有設置認證,則包將自動嘗試使用本地存儲的AWS認證(如果這些認證是根據AWS配置說明配置的)。任何其他配置參數(例如區域)也將以同樣的方式收集。
  AWS憑據還必須具有正確的權限才能從S3 bucket下載數據。可以在AWS IAM控制檯中配置。配置足夠權限的方法有很多,其中之一就是將其設置爲AmazonS3ReadOnlyAccess.
  重要提示:因爲S3中的衛星數據包含在請求者付費桶中,Amazon將根據Amazon S3的價格向用戶收取下載費用。在這種情況下,用戶需要根據下載的數據量和請求數付費。sentinelhub包最多會爲每個下載的文件發出一個GET請求。文件的元數據。xml, tileInfo。json和productInfo。json將從Sentinel Hub公共存儲庫免費獲得。

4.2 查詢可用的數據

  AWS的Sentinel-2數據存檔包含兩個存儲桶,一個包含L1C,另一個包含L2A數據。有三種方法可以搜索存檔以查找特定的切片和影像產品:

4.2.1 使用aws_cli手動檢索

  終端中輸入以下命令:

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

4.2.2 使用https://roda.sentinel-hub.com//上提供的服務進行手動搜索

  直接通過瀏覽器編輯url並打開,不需要身份驗證,例如:下載Sentinel-2 2017年1月14日L1C級產品瓦片1 C CV數據產品。

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

  該方法返回一個包含有數據下載信息的文件
在這裏插入圖片描述

4.2.3 使用Sentinel Hub Web Feature

  Service(WFS)按位置和時間間隔自動檢索(注意:對於此功能,必須根據配置段落配置Sentinel Hub實例ID 。該實例ID需要在Sentinel hub上進行註冊。):

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迭代器中,我們可以提取唯一定義每個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模塊中的函數自動搜索

  該方法不需要身份驗證

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':'未經許可','hasToBeSigned':'never','grantedCountries':無,'描述' :{'shortName':'無許可'},'signatureQuota': -  1,'viewService':'public'},'links':[{'href':'http://opensearch.sentinel-hub。COM /恢復/收藏/ Sentinel2 / 985b7c0c-5d4a-5105-a37b-ef41f4092392.json&LANG = EN ' '類型?': '應用/ JSON', '標題':' 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://定點-S2-L1C /瓦/ 38 / L / PH /十二分之二千零十七/ 15/0 /','organisationName':無,'quicklook':無,'縮略圖':無,'標題':'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', '座標':[[[[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':無,'縮略圖':無,'標題':'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':無,'縮略圖':無,'標題':'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'}:無,'縮略圖':無,'標題':'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','座標':[[[[[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','工具':'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','座標':[[[[[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, '平臺': '哨兵-2', '關鍵字':[], '分辨率':10} '類型': '特徵', '幾何':{ '類型': '的MultiPolygon', '座標':[[[[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, '平臺': '哨兵-2', '關鍵字':[], '分辨率':10} '類型': '特徵', '幾何':{ '類型': '的MultiPolygon', '座標':[[[[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 下載數據

4.3.1 下載AWS瓦片

  Sentinel-2的瓦片可以通過ESA瓦片ID(比如L1C_T01WCV_A012011_20171010T003615)或瓦片名稱(例如T38TML或38TML)、觀測時間和AWS索引來唯一地定義。AWS索引是AWS路徑中的最後一個數字(例如https://roda.sentinel-hub.com/sentinel-s2-l1c/tiles/1/C/CV/2017/1/14/0/ 索引爲0)。該開發包採用第二種瓦片定義方式。按照如下方式將瓦片ID轉換成
(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)
根據轉換後的瓦片名稱、觀測時間和AWS索引,我們就可以下載所需要的S-2數據了。比如,我們想要下載影像的B8A和B10波段,元數據文件:瓦片信息文件(tileInfo.json),預覽文件(preview.jp2)和雲掩膜文件(qi/MSK_CLOUDS_B00)。將這些文件保存至當前路徑下的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 必須是波段列表中的子集(詳見最後備註)。metafiles 必須是元文件列表中的子集 (詳見最後備註)。另外,再次調用以上方法時,數據不會重新下載,除非設定參數redownload=True
獲取已經下載的數據,我們可以直接調用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

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

4.3.2 下載AWS產品

  通過ESA產品ID獲取Sentinel-2 整個產品的數據。

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參數,將下載所有波段。如果沒有定義metafiles參數,則不會下載其他元數據文件。

4.3.3 數據下載成.SAFE結構

  通過指定參數safe_format=True數據可以下載成.SAFE結構。

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()

  以前的產品包含多個瓦片。如果只想下載一些瓦片,也可以指定要下載的瓦片列表。

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']

元文件數據名稱包括:

['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']

相關鏈接:
1. sentinelhub 2.5.3 project description
2. Accessing satellite data from AWS with Python
3. sentinelhub configuration
4. sentinelhub-py on github

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章