Файлы чтения laz хранятся в IBM COS - PullRequest
0 голосов
/ 09 мая 2019

У меня проблема с чтением файлов laz, которые хранятся в облачном хранилище объектов IBM. Я собрал библиотеку pywren-ibm со всеми требованиями, которые применили к одному из них с помощью докера, и затем развернул ее в облачной функции IBM в качестве действия, в котором появляется ошибка «Невозможно открыть поток для« Colorea.laz »с ошибкой». Данный файл или каталог отсутствует.' Как я могу прочитать файлы с помощью pdal в облачной функции IBM?

Вот часть кода:

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.

1 Ответ

0 голосов
/ 13 мая 2019

Вам нужно будет указать некоторые учетные данные и правильную конечную точку для корзины, содержащей файлы, к которым вы пытаетесь получить доступ. Не совсем уверен, как это работает с пользовательской средой выполнения, но обычно вы можете просто передать объект конфигурации в executor.

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)
...