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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8873dbaf32c721d4d064a28986250ac9f3fe5eef85430eb41ee3bd5dbbff671a |
|
MD5 | 4e01fcf658e88c245b1aa512778df7ac |
|
BLAKE2b-256 | 7076b24102a14c9cd9ead6fd1ed5394451c152da83ce813e5b83351e2e6097b1 |
sdap_os-0.1.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c40431d96437be4c4135a6f033b36e76fd13298ad0cb8aa5ccbef12fc418d2ad |
|
MD5 | 2c021358962ee03413d020ccaa4459a8 |
|
BLAKE2b-256 | faeacd6d1e1df8393bedcb31018604390264fbd2e3fc0e849e56cba3c9a65f35 |