我在读取存储在IBM云对象存储中的laz文件时遇到了问题。我已经构建了pywren-ibm库,其中一个库需要用docker进行pdal,然后我将它作为一个操作部署到IBM cloud function中,出现的错误是"Unable to open stream for 'Colorea.laz“,错误是'No No file or directory.‘’。如何在IBM cloud function中使用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())
代码是从本地pc和jupyter笔记本电脑运行的。
发布于 2019-05-14 03:13:23
您需要为存放您试图访问的文件的存储桶指定一些凭据和正确的端点。不完全确定自定义运行时是如何工作的,但通常您可以在executor中传递一个config对象。
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)
https://stackoverflow.com/questions/56059786
复制相似问题