# PanoramaDataProvider - Провайдер для ГИС Панорама

class axipy.PanoramaDataProvider

  Базовые классы: `DataProvider`

  Провайдер для источников ГИС Панорама.

  Примечание

  Ссылку на провайдер можно получить через глобальную переменную `axipy.provider_manager.panorama`.

  Пример преобразования из DWG и Панорамы

  Пример преобразования в DWG и Панораму

  Свойства:

  `id` | Идентификатор провайдера.

  Методы:

  `convert_file`(src_filepath, dest_filepath, ...) | Производит конвертацию исходного файла в формате SXF в другой формат этого же провайдера (MAP).
  `create_open`() | Внимание Не поддерживается.
  `file_extensions`() | Список поддерживаемых расширений файлов.
  `get_destination`(filepath, classificator, schema) | Создает назначение объекта данных.
  `get_source`(filename[, alias, empty_layers]) | Создает источник данных.
  `is_supported_coordsystem`(coordsystem) | Производится проверка, поддерживается ли СК провайдером.
  `open`(filename[, alias, empty_layers]) | Открывает объект данных.

  Специальные методы:

  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  convert_file(src_filepath: Union[str, Path], dest_filepath: Union[str, Path], classificator: Union[str, Path])

    Производит конвертацию исходного файла в формате SXF в другой формат этого же провайдера (MAP).

    Параметры:

      - src_filepath – Путь к исходному файлу SXF (имя файла).

      - dest_filepath – Путь к выходному файлу (имя файла).

      - classificator – Путь к классификатору

        input_file = 'Podolsk.sxf'
        output_file = 'Podolsk.map'
        classificator = 'Topo100t.rsc'
        provider_manager.panorama.convert_file(input_file, output_file, classificator)

  create_open() → NoReturn

    Внимание

    Не поддерживается.

    Исключение:

      NotImplementedError –

  file_extensions() → List[str]

    Список поддерживаемых расширений файлов.

    Результат:

      Пустой список для не файловых провайдеров.

  get_destination(filepath: Union[str, Path], classificator: str, schema: Schema, key_field: Optional[str] = None, single_object_type: Optional[str] = None, coordsystem: Optional[CoordSystem] = None, open_mode: OpenMode = OpenMode.Create) → Destination

    Создает назначение объекта данных.

    Параметры:

      - filepath – Путь к результирующему файлу SIT или MAP.

      - schema – Схема таблицы.

      - classificator – Путь к классификатору. При проведении конвертации копия классификатора так же сохраняется в папке с выходным файлом.

      - key_field – Колонка-атрибут, содержащая ключи объектов, для файла с разнотипными объектами

      - single_object_type – Символьный ключ объекта для файла, содержащего однотипные объекты

      - coordsystem – Система координат, в которой необходимо получить результат. Если не указана, берется из схемы. Если СК не может быть преобразована в СК Панорамы, то вызывается исключение. Проверить предварительно можно воспользовавшись функцией `is_supported_coordsystem()`

      - open_mode – Режим открытия файла. В случае OpenMode.Append будет производится дополнение к существующему файлу.

    Примечание

    Обязательно одно из двух полей key_field или single_object_type

  get_source(filename: Union[str, Path], alias: Optional[str] = None, empty_layers: bool = False) → Source

    Создает источник данных.

    Параметры:

      - filename – Имя файла.

      - alias – Псевдоним для открываемого объекта.

      - empty_layers – Показывать пустые слои в общем списке `ProviderManager.read_contents()`

  property id: str

    Идентификатор провайдера.

  is_supported_coordsystem(coordsystem: CoordSystem) → bool

    Производится проверка, поддерживается ли СК провайдером.

    Параметры:

      coordsystem – Система Координат.

    Пример:

        coord_system = CoordSystem.from_prj('1,104')
        print(f'Supported: {provider_manager.panorama.is_supported_coordsystem(coord_system)}')
        coord_system = CoordSystem.from_prj('32, 1020, 7, 42.5, 49.5, 78.5, 30.28813972, 0, 0')
        print(f'Supported: {provider_manager.panorama.is_supported_coordsystem(coord_system)}')
        >>> Supported: False
        >>> Supported: True

  open(filename: Union[str, Path], alias: Optional[str] = None, empty_layers: bool = False) → Table

    Открывает объект данных.

    Параметры:

      - filename – Имя файла. Если это файлы *.sxf или *.txf, то их необходимо предварительно сконвертировать, используя метод `convert_file()`.

      - alias – Псевдоним для открываемого объекта.

      - empty_layers – Показывать пустые слои в общем списке`