axipy.cs

Модуль систем координат.

В данном модуле содержатся классы и методы, предназначенные для удобной работы с координатными системами.

axipy.cs.unit

Экземпляр класса, позволяющий получить доступ к единицам измерения.

Type

UnitService

См.также

Подробнее об использовании см. LinearUnit и AreaUnit

Система Координат (СК) - CoordSystem

class axipy.cs.CoordSystem

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

Поддерживается создание СК посредством следующих вариантов:

Примеры:

cs_epsg = CoordSystem.from_epsg(4326)
cs_prj = CoordSystem.from_prj('1, 104')
cs_proj = CoordSystem.from_proj('+proj=longlat +ellps=WGS84 +no_defs')
cs_wkt = CoordSystem.from_wkt('GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]')
convert_from_degree(value)

Переводит из градусов в единицы измерения системы координат.

Тип результата

Union[Pnt, List[Pnt], Rect]

convert_to_degree(value)

Переводит из единиц измерения системы координат в градусы.

Пример:

csMercator = CoordSystem. from_prj("10, 104, 7, 0")
p_out = csMercator.to_degree((1000000, 1000000))
print(p_out)

>>> (8.983152841195214 9.005882635078796)
Тип результата

Union[Pnt, List[Pnt], Rect]

property description

Краткое текстовое описание.

Тип результата

str

property epsg

Значение EPSG если существует для данной системы координат, иначе None.

Тип результата

Optional[int]

classmethod from_epsg(code)

Создает координатную систему по коду EPSG.

См.также

Подробнее см. EPSG

Параметры

code (int) – Стандартное значение EPSG.

Тип результата

CoordSystem

classmethod from_prj(prj)

Создает координатную систему из строки MapBasic.

См.также

Подробнее см. PRJ

Параметры

prj (str) – Строка MapBasic. Допустима короткая нотация.

Пример:

csMercator = CoordSystem.from_prj('10, 104, 7, 0')
csLatLon = CoordSystem.from_prj('Earth Projection 1, 104')
csMercator = CoordSystem.from_prj('NonEarth 0, 'm'')
Тип результата

CoordSystem

classmethod from_proj(proj)

Создает координатную систему из строки proj.

См.также

Подробнее см. PROJ

Параметры

proj (str) – Строка proj.

Тип результата

CoordSystem

classmethod from_string(string)

Создает систему координат из строки.

Строка состоит из двух частей: префикса и строки представления СК. Возможные значения префиксов: «proj», «wkt», «epsg», «prj».»

Параметры

string (str) – Строка.

Пример:

crs1 = CoordSystem.from_string('epsg:4326')
crs2 = CoordSystem.from_string('prj:1,104')
Тип результата

CoordSystem

classmethod from_units(unit, rect=<axipy.utl.Rect object>)

Создает декартову систему координат.

Параметры
  • unit (LinearUnit) – Единицы измерения системы координат.

  • rect (Union[Rect, QRectF, None]) – Охват системы координат.

Пример:

ne = CoordSystem.from_units(unit.km, Rect(-100, -100, 100, 100))
Тип результата

CoordSystem

classmethod from_wkt(wkt)

Создает координатную систему из строки WKT.

См.также

Подробнее см. WKT

Параметры

wkt (str) – Строка WKT.

Тип результата

CoordSystem

property lat_lon

Является ли данная СК широтой/долготой.

Тип результата

bool

property name

Наименование системы координат.

Тип результата

str

property non_earth

Является ли данная СК декартовой.

Тип результата

bool

property prj

Строка prj формата MapBasic или пустая строка, если аналога не найдено.

Тип результата

str

property proj

Строка PROJ или пустая строка, если аналога не найдено.

Тип результата

str

property rect

Максимально допустимый охват.

Тип результата

Rect

property unit

Единицы измерения.

Тип результата

LinearUnit

property wkt

Строка WKT или пустая строка, если аналога не найдено.

Тип результата

str

Единицы измерения - EarthUnit

digraph geometry { node [shape="box", style=filled, fillcolor="lightgray"] EarthUnit [ href="#ref-label-earthunit-class" ]; LinearUnit [ href="#ref-label-areaunit-class" ]; AreaUnit [ href="#ref-label-areaunit-class" ]; EarthUnit -> LinearUnit; EarthUnit -> AreaUnit; }
class axipy.cs.EarthUnit

Базовый абстрактный класс единиц измерения.

property conversion

Коэффициент преобразования в метры.

Тип результата

float

property description

Краткое описание.

Тип результата

str

property localized_name

Локализованное краткое наименование единиц измерения.

Тип результата

str

property name

Краткое наименование единиц измерения.

Тип результата

str

to_unit(unit, value=1)

Перевод значения в другие единицы измерения.

Параметры
  • unit (Union[LinearUnit, AreaUnit]) – Единицы измерения, в которые необходимо перевести значение.

  • value (float) – Значение для перевода.

Пример:

from axipy import *

print("Linear:", unit.km.to_unit(unit.m, 2))
print("Area:", unit.sq_km.to_unit(unit.sq_m, 2))

>>> Linear: 2000.0
>>> Area: 2000000.0
Тип результата

float

Единицы измерения расстояний - LinearUnit

class axipy.cs.LinearUnit

Базовые классы: axipy.cs.EarthUnit

Линейные единицы измерения. Используются для работы с координатами объектов или расстояний.

Примечание

Получить экземпляр можно через сервис axipy.cs.unit по соответствующему атрибуту.

Перечень в виде списка можно получить посредством axipy.cs.unit.all_linear()

km

Километры

Type

LinearUnit

m

Метры

Type

LinearUnit

mm

Миллиметры

Type

LinearUnit

cm

Сантиметры

Type

LinearUnit

mi

Мили

Type

LinearUnit

nmi

Морские мили.

Type

LinearUnit

inch

Дюймы

Type

LinearUnit

ft

Футы

Type

LinearUnit

yd

Ярды

Type

LinearUnit

survey_ft

Топографические футы.

Type

LinearUnit

li

Линки

Type

LinearUnit

ch

Чейны

Type

LinearUnit

rd

Роды

Type

LinearUnit

Примеры:

print(axipy.unit.km.description)

>>> километры

for u in unit.all_linear:
    print('unit name: {}'.format(u.description))

>>> unit name: километры
>>> unit name: метры
>>> unit name: миллиметры
>>> unit name: сантиметры
>>> unit name: мили
>>> unit name: морские мили
>>> unit name: дюймы
>>> unit name: футы
>>> unit name: ярды
>>> unit name: топографические футы
>>> unit name: линки
>>> unit name: чейны
>>> unit name: роды

Единицы измерения площадей - AreaUnit

class axipy.cs.AreaUnit

Базовые классы: axipy.cs.EarthUnit

Единицы измерения площадей.

Примечание

Получить экземпляр можно через сервис axipy.cs.unit по соответствующему атрибуту.

Перечень в виде списка можно получить посредством axipy.cs.unit.all_area()

sq_km

Квадратные километры

Type

AreaUnit

sq_m

Квадратные метры

Type

AreaUnit

sq_mm

Квадратные миллиметры

Type

AreaUnit

sq_cm

Квадратные сантиметры

Type

AreaUnit

sq_mi

Квадратные мили

Type

AreaUnit

sq_nmi

Квадратные морские мили.

Type

AreaUnit

sq_inch

Квадратные дюймы

Type

AreaUnit

sq_ft

Квадратные футы

Type

AreaUnit

sq_yd

Квадратные ярды

Type

AreaUnit

sq_survey_ft

Квадратные топографические футы.

Type

AreaUnit

sq_li

Квадратные линки

Type

AreaUnit

sq_ch

Квадратные чейны

Type

AreaUnit

sq_rd

Квадратные роды

Type

AreaUnit

Пример:

print(axipy.unit.sq_km.description)

>>> кв. километры

Сервис доступа к единицам измерения - UnitService

class axipy.cs.UnitService
property all_area

Перечень всех площадных единиц измерения.

Тип результата

List[AreaUnit]

property all_linear

Перечень всех линейных единиц измерения.

Тип результата

List[LinearUnit]

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

class axipy.cs.CoordTransformer(cs_from, cs_to)

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

Параметры

Пример:

# Пример преобразования точки
from axipy import *

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)
outRect = transformer.transform(Rect(0,0,10,10))
print('Result rect:', outRect)
transform(value)

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

Параметры

value (Union[Pnt, List[Pnt], QPointF, QRectF, Rect, List[QPointF]]) – Входное значение. Может быть точкой, массивом точек axipy.utl.Pnt или axipy.utl.Rect.

Тип результата

Union[Pnt, Rect, List[Pnt]]

Результат

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

Исключение

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