Входной кэш указывает имя файла / местоположение - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь использовать intake и intake-xarray для открытия и хранения удаленных файлов. У меня свернутый файл каталога здесь:

/isibhv/projects/paleo_pool/boundary_conditions/ice_sheet_reconstructions/ice_sheet_reconstructions.yaml

Это выглядит так:

metadata:
  version: 1
sources:
  glac1d:
    description: The GLAC-1D Reconstruction 
    driver: netcdf
    args:
        urlpath: "https://sharebox.lsce.ipsl.fr/index.php/s/yfuUw91ruuJXroC/download?path=%2F&files=TOPicemsk.GLACD26kN9894GE90227A6005GGrBgic.nc"
    cache_dir: "{{ CATALOG_DIR }}/glac1d"
    cache: 
        - argkey: urlpath
          type: file

Я могу открыть файлы в Python:

import intake
cat = intake.open_catalog("ice_sheet_reconstructions.yaml")
ds = cat.glac1d.read()

Все это прекрасно работает; и я получаю файл, как я и ожидал. Тем не менее, кэш не показывает, где я ожидал. Я бы предположил, что создается новая папка:

/isibhv/projects/paleo_pool/boundary_conditions/ice_sheet_reconstructions/glac1d

Вместо этого я получаю что-то в своем домашнем каталоге.

Я неправильно указал каталог кэша?

В качестве второго вопроса: можно ли напрямую указать, как кэшированные файлы должны вызываться при их сохранении?

Спасибо! Пол

1 Ответ

1 голос
/ 20 марта 2020

Местоположение кэша определяется конфигурацией, которая является файлом YAML, обычно в ~/.intake/conf.yaml (ключ "cache_dir"), но может быть где-то еще в соответствии с переменной окружения INTAKE_CONF(_FILE) ИЛИ метаданными источника, ключ "catalog_dir" (<- это может быть неверно?). Специальное значение «catdir» означает «в каталоге, где находится каталог». </p>

Однако

С появлением кэширования в fsspec, возможно следующее:

sources:
  glac1d:
    description: The GLAC-1D Reconstruction 
    driver: netcdf
    args:
        urlpath: "filecache://sharebox.lsce.ipsl.fr/index.php/s/yfuUw91ruuJXroC/download?path=%2F&files=TOPicemsk.GLACD26kN9894GE90227A6005GGrBgic.nc"
        storage_options:
            target_protocol: https
            cache_storage: "{{ CATALOG_DIR }}/glac1d"

к сожалению, требуемые изменения еще не введены во входной xarray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...