axipy.cs¶
Модуль систем координат.
В данном модуле содержатся классы и методы, предназначенные для удобной работы с координатными системами.
-
axipy.cs.
unit
¶ Экземпляр класса, позволяющий получить доступ к единицам измерения.
- Type
См.также
Подробнее об использовании см. LinearUnit
и AreaUnit
Система Координат (СК) - CoordSystem
¶
-
class
axipy.cs.
CoordSystem
¶ Система координат (СК). СК описывает каким образом реальные объекты на земной поверхности могут быть представлены в виде двумерной проекции. Выбор СК для представления данных зависит от конкретных исходных условий по представлению исходных данных.
Поддерживается создание СК посредством следующих вариантов:
Из строки MapInfo PRJ
from_prj()
Из строки PROJ
from_proj()
Из строки WKT
from_wkt()
Из значения EPSG
from_epsg()
План/Схему с указанием единиц измерения и охвата
from_units()
Примеры:
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)¶ Переводит из градусов в единицы измерения системы координат.
-
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)
-
property
epsg
¶ Значение EPSG если существует для данной системы координат, иначе None.
-
classmethod
from_epsg
(code)¶ Создает координатную систему по коду EPSG.
См.также
Подробнее см. EPSG
- Параметры
code (
int
) – Стандартное значение EPSG.- Тип результата
-
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'')
- Тип результата
-
classmethod
from_proj
(proj)¶ Создает координатную систему из строки proj.
См.также
Подробнее см. PROJ
- Параметры
proj (
str
) – Строка proj.- Тип результата
-
classmethod
from_string
(string)¶ Создает систему координат из строки.
Строка состоит из двух частей: префикса и строки представления СК. Возможные значения префиксов: «proj», «wkt», «epsg», «prj».»
- Параметры
string (
str
) – Строка.
Пример:
crs1 = CoordSystem.from_string('epsg:4326') crs2 = CoordSystem.from_string('prj:1,104')
- Тип результата
-
classmethod
from_units
(unit, rect=<axipy.utl.Rect object>)¶ Создает декартову систему координат.
- Параметры
unit (
LinearUnit
) – Единицы измерения системы координат.
Пример:
ne = CoordSystem.from_units(unit.km, Rect(-100, -100, 100, 100))
- Тип результата
-
classmethod
from_wkt
(wkt)¶ Создает координатную систему из строки WKT.
См.также
Подробнее см. WKT
- Параметры
wkt (
str
) – Строка WKT.- Тип результата
-
property
prj
¶ Строка prj формата MapBasic или пустая строка, если аналога не найдено.
- Тип результата
-
property
unit
¶ Единицы измерения.
- Тип результата
Единицы измерения - 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
¶ Базовый абстрактный класс единиц измерения.
-
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
- Тип результата
-
Единицы измерения расстояний - LinearUnit
¶
-
class
axipy.cs.
LinearUnit
¶ Базовые классы:
axipy.cs.EarthUnit
Линейные единицы измерения. Используются для работы с координатами объектов или расстояний.
Примечание
Получить экземпляр можно через сервис
axipy.cs.unit
по соответствующему атрибуту.Перечень в виде списка можно получить посредством
axipy.cs.unit.all_linear()
-
km
¶ Километры
- Type
-
m
¶ Метры
- Type
-
mm
¶ Миллиметры
- Type
-
cm
¶ Сантиметры
- Type
-
mi
¶ Мили
- Type
-
nmi
¶ Морские мили.
- Type
-
inch
¶ Дюймы
- Type
-
ft
¶ Футы
- Type
-
yd
¶ Ярды
- Type
-
survey_ft
¶ Топографические футы.
- Type
-
li
¶ Линки
- Type
-
ch
¶ Чейны
- Type
-
rd
¶ Роды
- Type
Примеры:
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()
Пример:
print(axipy.unit.sq_km.description) >>> кв. километры
Сервис доступа к единицам измерения - UnitService
¶
Трансформация координат - CoordTransformer
¶
-
class
axipy.cs.
CoordTransformer
(cs_from, cs_to)¶ Класс для преобразования координат из одной СК в другую. При создании объекта трансформации в него передается исходная и целевая СК. После этого данный объект может использоваться для преобразования данных между этими СК.
- Параметры
cs_from (
Union
[CoordSystem
,str
]) – Исходная СК.cs_to (
Union
[CoordSystem
,str
]) – Целевая СК.
Пример:
# Пример преобразования точки 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
.- Тип результата
- Результат
Выходное значение. Тип зависит от входного и аналогичен ему.
- Исключение
RuntimeError – Ошибка выполнения преобразования.