微软行星云计算Planetary Computer——从 STAC API 读取数据

简介: 微软行星云计算Planetary Computer——从 STAC API 读取数据

行星计算机使用STAC对我们托管的数据集进行编目。我们提供了一个STAC API端点,可用于按空间和时间搜索我们的数据集。本快速入门将向您展示如何使用我们的 STAC API 和开源库搜索数据。

 

首先,您需要安装pystac-client库。您可以通过 pip 安装它:

> pip install pystac-client

首先,我们将使用 pystac-client 打开我们的 STAC API:

from pystac_client import Client
catalog = Client.open("https://planetarycomputer.microsoft.com/api/stac/v1")

这为我们提供了一个可以抓取或搜索的STAC 目录。目录包含我们索引的每个数据集STAC 集合(这还不是行星计算机托管的数据的整体)。我们在这里列出了可用的集合 ID 和标题:

# 这里获取子目录,然后利用for循环分别打印出来
collections = catalog.get_children()
for collection in collections:
    print(f"{collection.id} - {collection.title}")

集合具有有关它们包含的STAC 项目的信息。例如,在这里我们查看可用于Landsat 8 Collection 2 Level 2数据的波段

#获取Landsat影像
landsat = catalog.get_child("landsat-8-c2-l2")
#遍历所有影像,然后波段这里一般要用“eo:”作为选择波段的前缀
#这里选择我们分别要获取的信息,波段名称,描述,和分辨率
for band in landsat.extra_fields["summaries"]["eo:bands"]:
    name = band["name"]
    description = band["description"]
    common_name = "" if "common_name" not in band else f"({band['common_name']})"
    ground_sample_distance = band["gsd"]
    print(f"{name} {common_name}: {description} ({ground_sample_distance}m resolution)")

我们可以使用 API 来搜索在特定时间与某个区域重叠的图像。这里我们使用了 2020 年 12 月微软主园区周围的一个区域:这里对于python有一个缺点就是我们没法直接在线圈出我们所需要的地方,就像GEE在线的JavaScript中的编辑界面上,这一点多少有点不方便。没法随意选择任意地点的位置。

area_of_interest = {
    "type": "Polygon",
    "coordinates": [
        [
            [-122.27508544921875, 47.54687159892238],
            [-121.96128845214844, 47.54687159892238],
            [-121.96128845214844, 47.745787772920934],
            [-122.27508544921875, 47.745787772920934],
            [-122.27508544921875, 47.54687159892238],
        ]
    ],
}
time_range = "2020-12-01/2020-12-31"
#这里可以看出影像集合的搜索给出的代码是:landsat-8-c2-l2
search = catalog.search(
    collections=["landsat-8-c2-l2"], intersects=area_of_interest, datetime=time_range
)

搜索将 STAC 项作为PySTAC对象返回给我们:

items = list(search.get_items())
for item in items:
    print(f"{item.id}: {item.datetime}")

打印结果:

LC08_L2SP_046027_20201229_02_T2:2020-12-29 18:55:56.738265+00:00

LC08_L2SP_047027_20201220_02_T2:2020-12-20 19:02:09.878796+00:00

LC08_L2SP_046027_20201213_02_T2:2020-12-13 18:56:00.096447+00:00

LC08_L2SP_047027_20201204_02_T1:2020-12-04 19:02:11.194486+00:00

我们可以使用eo扩展程序按云量对项目进行排序。我们将抓取低云度的项目:

selected_item = sorted(items, key=lambda item: item.properties["eo:cloud_cover"])[0]

我们可以使用eo扩展程序按云量对项目进行排序。我们将抓取低云量的影像:

selected_item = sorted(items, key=lambda item: item.properties["eo:cloud_cover"])[0]

我们可以通过以下方式查看我们的项目可用的影像信息

for asset_key, asset in selected_item.assets.items():
    print(f"{asset_key:<25} - {asset.title}")

打印结果

在这里,我们检查thumbnail资产:

import json
thumbnail_asset = selected_item.assets["thumbnail"]
print(json.dumps(thumbnail_asset.to_dict(), indent=2))

{

 的“href”: “https://landsateuwest.blob.core.windows.net/landsat-c2/level-2/standard/oli-tirs/2020/047/027/LC08_L2SP_047027_20201204_20210313_02_T1/LC08_L2SP_047027_20201204_20210313_02_T1_thumb_small.jpeg”,

 “类型” : "image/jpeg",

 "title": "thumbnail"

}

您可以看到缩略图的 URL 包含在资产信息中。但是,我们将无法直接使用 URL:

import requests
#获取链接
requests.get(thumbnail_asset.href)

但是这里无法显示,显示错误

<响应 [404]>

这是因为 Plantary 计算机使用 Azure Blob 存储SAS 令牌来访问我们的数据,这使我们能够在任何地方免费向任何人提供数据,同时对数据集的出口量保持一定的控制。

要获取访问令牌,您可以使用 Planetary Computer's Data Authentication API

您还可以使用行星计算机包生成令牌并签署资产 HREF 以供访问。您可以通过 pip 安装

> pip install planetary-computer


import planetary_computer as pc
signed_href = pc.sign(thumbnail_asset.href)

我们可以使用 PIL 来渲染图像:

from PIL import Image
from urllib.request import urlopen
Image.open(urlopen(signed_href))


相关文章
|
监控 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第34天】在数字化时代,云计算已成为企业和个人存储、处理数据的优选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境中的网络安全挑战,并提供一系列策略来加强信息安全。从基础的数据加密到复杂的访问控制机制,我们将一探究竟如何在享受云服务便利的同时,确保数据的安全性和隐私性不被侵犯。
214 10
|
存储 安全 网络安全
云计算与网络安全:守护数据,构筑未来
在当今的信息化时代,云计算已成为推动技术革新的重要力量。然而,随之而来的网络安全问题也日益凸显。本文从云服务、网络安全和信息安全等技术领域展开,探讨了云计算在为生活带来便捷的同时,如何通过技术创新和策略实施来确保网络环境的安全性和数据的保密性。
|
存储 分布式计算 大数据
大数据与云计算:无缝结合,开启数据新纪元
大数据与云计算:无缝结合,开启数据新纪元
925 11
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
存储 安全 网络安全
云计算与网络安全:如何保护您的数据
【10月更文挑战第21天】在这篇文章中,我们将探讨云计算和网络安全的关系。随着云计算的普及,网络安全问题日益突出。我们将介绍云服务的基本概念,以及如何通过网络安全措施来保护您的数据。最后,我们将提供一些代码示例,帮助您更好地理解这些概念。
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。
|
机器学习/深度学习 安全 网络安全
云端盾牌:云计算时代的网络安全守护在这个数字脉搏加速跳动的时代,云计算以其高效、灵活的特性,成为推动企业数字化转型的强劲引擎。然而,正如每枚硬币都有两面,云计算的广泛应用也同步放大了网络安全的风险敞口。本文旨在探讨云计算服务中网络安全的关键作用,以及如何构建一道坚不可摧的信息防线,确保数据的安全与隐私。
云计算作为信息技术领域的革新力量,正深刻改变着企业的运营模式和人们的生活。但在享受其带来的便利与效率的同时,云服务的安全问题不容忽视。从数据泄露到服务中断,每一个安全事件都可能给企业和个人带来难以估量的损失。因此,本文聚焦于云计算环境下的网络安全挑战,分析其根源,并提出有效的防护策略,旨在为云服务的安全使用提供指导和参考。
366 8
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。本期,我们邀请到阿里云弹性计算产品运营与生态合作负责人何川,围绕云计算如何加速数据基础设施建设及其未来发展趋势展开探讨。
|
存储 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第23天】在数字化时代,云计算已成为企业和个人存储和处理数据的热门选择。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,并提出一系列保护数据的策略。我们将从云服务的基本概念出发,深入分析网络安全的重要性,并介绍如何通过技术和管理措施来增强云安全。文章的目的是为读者提供实用的指导,帮助他们在享受云计算便利的同时,确保数据的安全。
|
存储 安全 网络安全
云计算与网络安全:保护数据的新挑战
【9月更文挑战第25天】在数字化时代,云计算已成为企业和个人存储和处理数据的关键技术。然而,随着云服务的普及,网络安全问题也日益突出。本文将探讨云计算中的网络安全问题,包括数据泄露、恶意软件攻击等,并提出相应的防护措施。我们将通过实例分析,展示如何在实际场景中应用这些防护措施,以保护数据安全。