# CoordTransformer - Трансформация координат

class axipy.CoordTransformer

  Класс для преобразования координат из одной СК в другую. При создании объекта трансформации в него передается исходная и целевая СК. После этого данный объект может использоваться для преобразования данных между этими СК.

  Пример преобразования точки

      from axipy import CoordSystem, CoordTransformer, Pnt, Rect

      csLL = CoordSystem.from_prj("1, 104")
      csMercator = CoordSystem.from_prj("10, 104, 7, 0")
      inPoint = Pnt(10, 10)
      transformer = CoordTransformer(csLL, csMercator)
      outPoint = transformer.transform(inPoint)
      print('Result point:', outPoint)
      '''
      >>> Result point: (1113194.9079327357 1111475.1028522244)
      '''
      outRect = transformer.transform(Rect(0,0,10,10))
      print('Result rect:', outRect)
      '''
      >>> Result rect: (0.0 0.0) (1113194.9079327357 1111475.1028522244)
      '''

  Конструктор класса:

  `__init__`(cs_from, cs_to) | Конструктор класса.

  Классовые методы:

  `proj_transform_definition`(cs_from, cs_to) | Возвращает строку трансформации (pipeline) для преобразования между двумя СК, заданными в формате proj.

  Методы:

  `transform`() | Преобразовывает точки из исходной СК в целевую СК.

  __init__(cs_from: CoordSystem, cs_to: CoordSystem)

    Конструктор класса.

    Параметры:

      - cs_from – Исходная СК.

      - cs_to – Целевая СК.

  classmethod proj_transform_definition(cs_from: str, cs_to: str) → str

    Возвращает строку трансформации (pipeline) для преобразования между двумя СК, заданными в формате proj.

    Параметры:

      - cs_from – Строка с определением исходной СК в формате proj

      - cs_to – Строка с определением исходной СК в формате proj

    Результат:

      Строка с определением трансформации между двумя этими СК в формате proj

    Пример получения строки трансформации

        str_from = '+proj=longlat +ellps=WGS84 +no_defs'
        str_to = '+proj=merc +ellps=GRS80 +no_defs'
        print(CoordTransformer.proj_transform_definition(str_from, str_to))
        '''
        >>> proj=pipeline step proj=unitconvert xy_in=deg xy_out=rad step proj=merc lon_0=0 k=1 x_0=0 y_0=0 ellps=GRS80
        '''

  transform(value: Union[QRectF, Rect]) → Rect
  transform(value: Union[Tuple[float, float], Pnt, QPointF]) → Pnt
  transform(value: Iterable[Union[Tuple[float, float], Pnt, QPointF]]) → List[Pnt]

    Преобразовывает точки из исходной СК в целевую СК.

    Параметры:

      value – Входное значение. Может быть точкой, массивом точек `axipy.Pnt` или `axipy.Rect`.

    Результат:

      Выходное значение. Тип зависит от входного и аналогичен ему.

    Исключение:

      RuntimeError – Ошибка выполнения преобразования.