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

简介: 微软行星云计算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 之外。


相关文章
|
2月前
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
115 1
用python执行js代码:PyExecJS库
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——使用Python模拟执行JavaScript
JavaScript逆向爬虫——使用Python模拟执行JavaScript
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
|
1月前
|
XML 监控 JavaScript
JavaScript 语言对企业上网监控的技术支持
在数字化企业环境中,上网监控对企业信息安全和提升员工效率至关重要。JavaScript 作为广泛应用的脚本语言,提供了强大的技术支持,包括数据获取与分析、与服务器端交互、监控页面加载时间和网络活动,助力企业有效管理上网行为,保障信息安全。
26 6
|
2月前
|
JavaScript 前端开发 Python
python执行js代码
本文档详细介绍如何安装Node.js环境及PyExecJS库,并提供示例代码展示其功能。首先,通过指定链接安装Node.js,安装完毕后可在命令行中输入`node --version`来验证安装是否成功。接着,使用`pip install PyExecJS`安装PyExecJS库,该库允许Python程序执行JavaScript代码。文档还提供了多个示例代码,展示了如何在Python环境中执行和编译JavaScript代码,并可以选择特定的JavaScript运行时环境,如Node.js或JScript。最后,通过具体案例展示了PyExecJS的功能与使用方法。
33 3
|
1月前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
40 0
|
3月前
|
JSON 数据格式 Python
python中有哪些常用语言成分?
Python作为一种广泛使用的编程语言,其语言成分丰富多样,涵盖了多个方面。
60 9
|
3月前
|
人工智能 JavaScript Python
微软会用Python替代VBA吗?
微软会用Python替代VBA吗?
|
3月前
|
机器学习/深度学习 人工智能 文字识别
轻松识别文字,这款Python OCR库支持超过80种语言
轻松识别文字,这款Python OCR库支持超过80种语言