跳转到主要内容

SDAP对象存储使用演示

项目描述

SDAP实验,使用对象存储和其他技术(ray.io,xarray...)

特性

  • 在地球观测数据集上应用简单算法

  • 在S3存储桶上读取云优化GeoTiff

  • 使用公共访问或访问密钥管理S3存储桶

  • 管理任何CRS(WGS84,UTM...)中的数据集

  • 管理多波段数据集

  • 管理算法

    • 空间平均值:在x,y,t范围内对x,y维度的平均值
    • 增强型植被指数(EVI):多波段光谱的线性组合

先决条件

  • python 3.9
  • s3上的数据集

配置应用程序并测试

收集配置应遵循在 src/sdap/test/data_access/collection-config.yaml 中找到的模板。

如果您需要访问S3上的某些数据,并且需要身份验证,请使用示例中提供的 src/sdap/test/data_access/secrets.yaml 中的密钥文件。

每个收集有一个密钥配置(例如AWS凭证)。

安装和运行测试

pip install -e '.[dev]'
python setup.py test &> out.log &

运行

作为命令行(适用于无服务器部署)

使用命令行

    sdap-cmd --help

例如,使用 EVI 运算符

    sdap-cmd --conf ./src/sdap/test/data_access/collection-config.yaml \
         --collection hls \
         --x-range -71.24 -71.23 \
         --y-range 42.40 42.42 \
         --time-range 2017-01-01T00:00:00.000000+00:00 2017-06-01T00:00:00.000000+00:00 \
         --operator-name EVI \
         --operator-args '[[0,0,-2.5,2.5,0,0,0],[0,0,2.4,1,0,0,1]]' \
         --plot

使用 SpatialMean 运算符

    sdap-cmd --conf ./src/sdap/test/data_access/collection-config.yaml \
         --secrets my_secrets.yaml \
         --collection hls \
         --bbox -71.24 42.40 -71.23 42.42 \
         --time-range 2017-01-01T00:00:00.000000+00:00 2017-06-01T00:00:00.000000+00:00 \
         --operator-name SpatialMean

    sdap-cmd --conf ./src/sdap/test/data_access/collection-config.yaml \
         --collection maiac \
         --bbox -71.25 42.39 -71.23 42.42 \
         --time-range 2019-01-01T00:00:00.000000+00:00 2019-02-01T00:00:00.000000+00:00 \
         --operator-name SpatialMean

作为服务

启动带有API的Web服务器

sdap-serv  --conf src/sdap/test/data_access/collection-config.yaml --secrets my_secrets.yaml

测试服务,您可以使用 src/sdap/notebook 中提供的jupyter笔记本。

您可以通过运行以下命令在本地运行它:

pip install -e '.[client]'
jupyter-lab

然后在jupyuter Web控制台中选中笔记本并逐步执行它。

资源分配

运行应用程序所需的资源可以估算如下

  • 每个工作者的最大瓦片大小 = T = 64 * x * y * t * obs dim,例如 643660366016 = 5Gb
  • 用户返回结果的最大尺寸 = R = 64xyt观测维度
  • 并行工作者数量:n

总RAM = T*n + R

CPU数量 = n

面向开发者

pip install -e '.[dev]'

工作,编写单元测试

验证

python setup.py test

打包

Upgrade version in `src/sdap/VERSION.txt`

python setup.py sdist bdist_wheel

创建并发布Docker镜像

docker build . -t tloubrieu/sdap-os:0.1.1
docker push tloubrieu/sdap-os:0.1.1   

创建Kubernetes命名空间

kubectl create namespace sdap-os

部署ray.io操作员

(详见https://docs.rayai.org.cn/en/latest/cluster/kubernetes.html#ray-helm)

git clone https://github.com/ray-project/ray.git
cd ray/deploy/charts 
helm -n ray install sdap-cluster --create-namespace ./ray

部署Helm图表

helm install sdap-os ./helm/sdap-os --dependency-update -n sdap-os

停止服务

helm delete sdap-os -n sdap-os

在单节点本地部署中,节点可能被标记为污点以防止在此节点上部署Pod。在这种情况下,你可以运行如下操作

kubectl taint node docker-desktop node.kubernetes.io/disk-pressure:NoSchedule-

(详见https://stackoverflow.com/questions/62991596/1-nodes-had-taints-that-the-pod-didnt-tolerate-in-kubernetes-cluster以获取更多详细信息)

与本地minio一起使用

设置minio服务器(目前尚未用于开发)

独立minio

服务器安装

brew install minio/stable/minio

启动服务器

export MINIO_ROOT_USER=myminio
export MINIO_ROOT_PASSWORD=minio123AB

minio server /Users/loubrieu/Documents/sdap/minio --address localhost:9000 --console-address localhost:19000

客户端

brew install minio/stable/mc
mc --help

创建服务器别名

mc alias set minio http://localhost:9000 myminio minio123AB

创建一个存储桶

mc mb hls

复制测试数据集

创建一个存储桶

mc mb hls

复制一些文件

mc cp data/hls/s1_output_latlon_HLS_S30_T18TYN_2019263_cog.tif minio/hls
mc cp data/hls/s1_output_latlon_HLS_S30_T18TYN_2019260_cog.tif minio/hls
mc cp data/hls/s1_output_latlon_HLS_S30_T18TYN_2019253_cog.tif minio/hls

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

sdap-os-0.1.2.tar.gz (25.5 kB 查看哈希值)

上传时间

构建分布

sdap_os-0.1.2-py3-none-any.whl (37.9 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页