0

我在读取存储在 IBM 云对象存储中的 laz 文件时遇到问题。我已经构建了 pywren-ibm 库,其中包含使用 docker 对其中一个进行 pdal 的所有要求,然后我将其作为操作部署到 IBM 云功能,其中出现的错误是“无法打开'Colorea.laz 的流”并出现错误'没有这样的文件或目录。' 如何在 IBM 云功能中使用 pdal 读取文件?

这是一些代码:

import pywren_ibm_cloud as pywren
import pdal
import json

def manip_data(bucket, key, data_stream):

        data = data_stream.read()
        cr_json ={
             "pipeline": [
              { 
                  "type": "readers.las",
                  "filename": f"{key}"
              }, 
              {
                  "type":"filters.range",
                  "limits":"Classification[9:9]"
              }

          ]
        }

        pipeline = pdal.Pipeline(json.dumps(cr_json, indent=4))
        pipeline.validate()
        pipeline.loglevel = 8
        n_points = pipeline.execute()

bucketname = 'The bucket name'
pw = pywren.ibm_cf_executor(runtime='ammarokran/pywren-pdal:1.0')
pw.map(manip_data, bucketname, chunk_size=None)
print(pw.get_result())

该代码是从带有 jupyter notebook 的本地 pc 运行的。

4

1 回答 1

0

您需要为包含您尝试访问的文件的存储桶指定一些凭据和正确的端点。不完全确定它如何与自定义运行时一起工作,但通常您可以在执行程序中传递一个配置对象。

import pywren_ibm_cloud as pywren

config = {'pywren' : {'storage_bucket' : 'BUCKET_NAME'},

          'ibm_cf':  {'endpoint': 'HOST', 
                      'namespace': 'NAMESPACE', 
                      'api_key': 'API_KEY'}, 

          'ibm_cos': {'endpoint': 'REGION_ENDPOINT', 
                      'api_key': 'API_KEY'}}

pw = pywren.ibm_cf_executor(config=config)
于 2019-05-13T19:13:22.677 回答