微软行星云计算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月前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
32 5
|
4月前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
73 0
|
6月前
|
JSON 数据格式 Python
python中有哪些常用语言成分?
Python作为一种广泛使用的编程语言,其语言成分丰富多样,涵盖了多个方面。
110 9
|
6月前
|
机器学习/深度学习 人工智能 文字识别
轻松识别文字,这款Python OCR库支持超过80种语言
轻松识别文字,这款Python OCR库支持超过80种语言
361 2
|
7月前
|
前端开发 API 数据库
告别繁琐,拥抱简洁!Python RESTful API 设计实战,让 API 调用如丝般顺滑!
【7月更文挑战第23天】在Python的Flask框架下构建RESTful API,为在线商店管理商品、订单及用户信息。以商品管理为例,设计简洁API端点,如GET `/products`获取商品列表,POST `/products`添加商品,PUT和DELETE则分别用于更新和删除商品。使用SQLAlchemy ORM与SQLite数据库交互,确保数据一致性。实战中还应加入数据验证、错误处理和权限控制,使API既高效又安全,便于前端或其他服务无缝对接。
74 9
|
7月前
|
数据挖掘 Python
🚀告别繁琐!Python I/O管理实战,文件读写效率飙升的秘密
【7月更文挑战第29天】在 Python 编程中,高效的文件 I/O 对性能至关重要。
67 4
|
7月前
|
数据可视化 数据挖掘 Python
告别枯燥数字,拥抱视觉盛宴!Python 数据分析中的数据可视化艺术,你 get 了吗?
【7月更文挑战第23天】在数据驱动时代,Python的Matplotlib、Seaborn与Plotly等库使数据可视化成为洞察信息的关键工具。不仅转化数字为图形,更是视觉传达故事。示例代码展示从基础图表到箱线图、小提琴图和热力图的创建过程,强调选择合适图表、简洁设计与色彩的重要性。Python赋能数据可视化,开启数据理解新视角,助于揭示模式、辅助决策。✨📊💡 (总计239字符)
80 7
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
为啥我敢说Python是数据分析界的扛把子语言?
为啥我敢说Python是数据分析界的扛把子语言?
65 0
|
7月前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
【7月更文挑战第29天】在广阔的网络世界里,Python以其简洁的语法和强大的库支持成为网络爬虫开发的首选。本文聚焦于两大网络请求库——urllib和requests。urllib是Python内置库,虽API稍显复杂,却有助于理解HTTP本质。示例代码展示了如何使用`urlopen`函数发起GET请求并读取网页内容。相比之下,requests库则更加人性化,极大地简化了HTTP请求流程,使开发者能更专注于业务逻辑。
63 1
|
7月前
|
Python
告别低效!Python并查集:数据结构界的超级英雄,拯救你的编程人生!
【7月更文挑战第18天】并查集,数据结构超级英雄,用于不相交集合的合并与查询。Python实现包括初始化、查找根节点和合并操作。应用广泛,如社交网络分析、图论问题、集合划分等。示例代码展示了解决岛屿数量问题,统计连通的“1”单元格数。掌握并查集,提升编程效率,解决复杂问题。
70 6

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    49
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    57
  • 推荐镜像

    更多