微软行星云计算Planetary Computer——定了用python作为主要语言,告别GEE的JavaScript痛苦!

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 微软行星云计算Planetary Computer——定了用python作为主要语言,告别GEE的JavaScript痛苦!

在行星计算机上计算

行星计算机的核心组件是数据集和用于查询它们的 API。本文档概述了您可以对由行星计算机托管的数据进行计算的各种方法。

无论您如何对数据进行计算,为确保最高效率,您都应将计算位置尽可能靠近数据。行星计算机数据目录托管在 Azure 的西欧区域,因此您的计算也应该在那里。


使用我们的 JupyterHub

行星计算机中心JupyterHub在西欧地区Azure的部署。这是在行星计算机上开始计算的最简单方法。

笔记

您需要申请访问权限才能使用行星计算机中心。

一旦获得批准,您就可以使用您的凭据登录 JupyterHub。您将获得一个计算环境,其中包括来自Pangeo Docker 镜像之一的标准科学和地理空间包。

对于可扩展的计算,JupyterHub 还配置了Dask Gateway。创建 Dask 集群:

>>> from dask_gateway import GatewayCluster


>>> cluster = GatewayCluster()  # Creates the Dask Scheduler. Might take a minute.

>>> client = cluster.get_client()

>>> cluster.adapt(minimum=1, maximum=100)

>>> cluster

GatewayCluster<prod.fbfed27704fc4d1da027dad20471993b, status=running>

通过此设置,所有计算都在 Azure 上进行,无论是在单个节点上还是在具有 Dask 的集群上。

有关Dask的介绍,请参阅使用 Dask进行缩放。此设置由Pangeo 社区首创。该Pangeo云机制的文档提供了有关如何使用启用DASK-JupyterHubs更多的背景。


使用 VS Code 连接到远程 Jupyter 内核

有关如何使用 Visual Studio Code 作为行星计算机计算的用户界面,请参阅使用 VS Code


使用 GitHub 代码空间

请参阅使用 GitHub 代码空间了解如何使用GitHub 代码空间作为用户界面和使用来自 Planetary Computer 目录中的数据的执行环境。


使用我们的 Dask 网关

在此设置中,您仅使用行星计算机的可扩展计算。您没有登录 JupyterHub。相反,您的本地机器驱动计算。我们向重视并习惯于管理本地开发环境的用户推荐这种方法。此设置需要您多加注意:您需要确保本地环境中的库版本与 Azure 中运行的版本兼容。虽然不是必需的,但我们建议使用在Microsoft/planetary-computer-containers 上发布的容器映像。此处的示例将使用mcr.microsoft.com/planetary-computer/python图像创建本地 jupyterlab 会话。


从 JupyterHub 请求令牌

访问Hub | Planetary Computer以生成令牌。您需要进行身份验证才能生成令牌。

<JUPYTERHUB_API_TOKEN>下面看到的任何地方替换该令牌。


连接到网关

与之前类似,我们将使用dask_gateway连接。只有现在我们需要明确提供 URL。您可以在代码中或作为环境变量指定它们。

下一个片段在localhost:8888使用mcr.microsoft.com/planetary-computer/python容器时启动 jupyterlab 。它还将当前工作目录挂载为一个卷,以便您可以访问本地文件。

$ export JUPYTERHUB_API_TOKEN=<JUPYTERHUB_API_TOKEN> from above

$ docker run -it --rm \

   -p 8888:8888 \

   -e JUPYTERHUB_API_TOKEN=$JUPYTERHUB_API_TOKEN \

   -e DASK_GATEWAY__AUTH__TYPE="jupyterhub" \

   -e DASK_GATEWAY__CLUSTER__OPTIONS__IMAGE="mcr.microsoft.com/planetary-computer/python:latest" \

   -e DASK_GATEWAY__ADDRESS="https://pccompute.westeurope.cloudapp.azure.com/compute/services/dask-gateway" \

   -e DASK_GATEWAY__PROXY_ADDRESS="gateway://pccompute-dask.westeurope.cloudapp.azure.com:80" \

   mcr.microsoft.com/planetary-computer/python:latest \

   jupyter lab --no-browser --ip="0.0.0.0"

这将打印出一个可以用来访问本地 jupyterlab 的 URL。从那里,你可以

>>> import dask_gateway

>>> gateway = dask_gateway.Gateway()

>>> cluster = gateway.new_cluster()

>>> client = cluster.get_client()

从这里开始,使用 Dask 的计算将在集群上进行。当你得到.compute()一个结果并将它带回本地时,它会来到你本地机器上运行的 Python 进程。理想情况下,本地返回的结果足够小,Azure 和本地计算机之间的较低带宽不会成为瓶颈。


使用您自己的计算

前两种方法依赖于行星计算机提供的计算。如果您拥有自己的 Azure 资源,则可以使用这些资源访问行星计算机的数据集。
也就是说,请确保您的资源位于西欧Azure 区域。将计算与数据放在同一区域是进行计算的最有效方式。


使用 Azure 机器学习

如果你有一个现有的Azure 机器学习工作区,你可以使用它来访问由行星计算机托管的数据和 API。在这里,我们展示了如何从 Azure 机器学习工作室访问行星计算机的元数据 API。

在这种情况下,我们使用 Azure Machine Learning Studio 连接到在 Azure 中运行的虚拟机。该虚拟机具有到行星计算机数据和元数据 API 的高带宽连接。


使用 Dask 云提供商

需要专门的软件环境或大量计算的用户可以使用自己的资源来访问行星计算机的数据和元数据 API。

在此示例中,我们使用仅使用 Azure 订阅来创建 Dask 集群。按照https://cloudprovider.dask.org/en/latest/azure.html 上的设置说明进行操作后,您可以创建集群:Dask Cloud Provider

>>> from dask_cloudprovider.azure import AzureVMCluster

>>> cluster = AzureVMCluster(resource_group="<resource group>",

...                          vnet="<vnet>",

...                          security_group="<security group>",

...                          n_workers=1)

Creating scheduler instance

Assigned public IP

Network interface ready

Creating VM

Created VM dask-5648cc8b-scheduler

Waiting for scheduler to run

Scheduler is running

Creating worker instance

Network interface ready

Creating VM

Created VM dask-5648cc8b-worker-e1ebfc0e

并连接到它

>>> from dask.distributed import Client

>>> client = Client(cluster)

与之前的设置一样,Dask 调度程序和工作程序在数据附近的 Azure 中运行。本地客户端可能在 Azure 之外。


相关文章
|
10月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
778 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
547 4
|
XML 监控 JavaScript
JavaScript 语言对企业上网监控的技术支持
在数字化企业环境中,上网监控对企业信息安全和提升员工效率至关重要。JavaScript 作为广泛应用的脚本语言,提供了强大的技术支持,包括数据获取与分析、与服务器端交互、监控页面加载时间和网络活动,助力企业有效管理上网行为,保障信息安全。
205 6
|
JavaScript 前端开发 安全
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印 1. 信息标识: 水印可以用于标识文档的所有者、保密级别、状态或其他相关信息,帮助用户更好地理解文档内容的属性。 2. 版权保护: 在文档中添加水印可以帮助保护内容的版权,防止他人未经授权地复制、转载或篡改内容。 3. 安全保护: 对于敏感信息或机密文档,添加水印可以帮助防止信息泄露,提高文档的安全性。 4. 提升专业性: 在一些场景下,如商业报告、合同文件等,添加水印可以增加文档的专业性和正式性。 5. 防止截屏或拷贝: 在网页中添加水印可以防止用户通过截屏或复制粘贴等方式非法获取文档内容。
805 1
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
|
Web App开发 JavaScript 前端开发
Node.js与Go语言的对比?
【8月更文挑战第4天】Node.js与Go语言的对比?
1754 3
|
Java Go 云计算
Go语言在云计算和高并发系统中的卓越表现
【10月更文挑战第10天】Go语言在云计算和高并发系统中的卓越表现
|
JavaScript 前端开发 编译器
ECMAScript与JavaScript:一场语言的邂逅
ECMAScript与JavaScript:一场语言的邂逅
384 3
|
自然语言处理 JavaScript 前端开发
【走向世界】Vue.js国际化:打造无国界应用,让爱与信息跨越语言的边界!
【8月更文挑战第30天】本文详细介绍了Vue.js中实现国际化的多种方法及最佳实践。通过使用`vue-i18n`等第三方库,开发者能够轻松地为应用添加多语言支持,优化用户体验并扩大市场覆盖范围。文章涵盖从基本配置、动态加载语言包到考虑文化差异等方面的内容,帮助读者构建真正全球化且无缝多语言体验的应用程序。
541 0
|
JavaScript 前端开发 UED
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程

推荐镜像

更多