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 – Ошибка выполнения преобразования.