Расчет покрытий базовых станций сотовой сети: различия между версиями
Нет описания правки |
|||
Строка 1: | Строка 1: | ||
В данной статье описывается пример использования библиотеки [http://www.geoalchemy.org/intro.html GeoAlchemy] -- расширения библиотеки SQLAlchemy, которое предназначено для работы с пространственными БД. В качестве иллюстрации выбрана задача расчета покрытий базовых станций сотовой сети. | В данной статье описывается пример использования библиотеки [http://www.geoalchemy.org/intro.html GeoAlchemy] -- расширения библиотеки [http://www.sqlalchemy.org/ SQLAlchemy], которое предназначено для работы с пространственными БД. В качестве иллюстрации выбрана задача расчета покрытий базовых станций сотовой сети. | ||
Данная статья не ставит цель дать всесторонний обзор данных библиотек или заменить их документацию. Цель статьи -- познакомить читателя с идеями, лежащими в основе этих библиотек и на конкретном примере и показать преимущества использования [http://ru.wikipedia.org/wiki/ORM технологии ORM], обеспечивающей большую гибкость и прозрачность программного кода. | |||
== Краткие сведения о SQLAlchemy и GeoAlchemy == | == Краткие сведения о SQLAlchemy и GeoAlchemy == |
Версия от 13:41, 29 декабря 2013
В данной статье описывается пример использования библиотеки GeoAlchemy -- расширения библиотеки SQLAlchemy, которое предназначено для работы с пространственными БД. В качестве иллюстрации выбрана задача расчета покрытий базовых станций сотовой сети.
Данная статья не ставит цель дать всесторонний обзор данных библиотек или заменить их документацию. Цель статьи -- познакомить читателя с идеями, лежащими в основе этих библиотек и на конкретном примере и показать преимущества использования технологии ORM, обеспечивающей большую гибкость и прозрачность программного кода.
Краткие сведения о SQLAlchemy и GeoAlchemy
Библиотека на языке Python с открытым исходным кодом SQLAlchemy -- предназначена для работы с реляционными СУБД с применением технологии ORM. Она служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL.
GeoAlcemy -- пространственное расширение библиотеки SQLAlchemy, позволяющее производить обработку пространственных данных. В настоящий момент GeoAlchemy поддерживает такие базы данных и их пространственные расширения, как PostGIS, Spatialite, MySQL, Oracle, и MS SQL Server 2008.
Краткие сведения о задаче расчета покрытий
Для примера будем рассматривать задачу расчета покрытий базовых станций (БС) сотовой сети. Предположим, что имеется набор точек, которые помечают местоположения базовых станций. При этом с каждой станцией связаны следующие атрибуты:
- Идентификаторы станции т.е. mcc, mnc, lac, cid (подробнее об этих идентификаторах можно прочитать в википедии
- Частота, на которой работает БС.
- Высота подвеса.
- Тип сети (2G, 3G, 4G).
- Азимут "луча" станции.
- Ширина сектора станции в градусах.
Требуется определить возможное местоположение абонента сети по идентификаторам БС, к которой подключился абонент в данный момент.
Будем использовать простейший вариант расчета покрытия БС, когда точка будет считаться принадлежащей к зоне обслуживания той БС, к которой она расположена ближе. Это очень простая модель, которая не учитывает неоднородности среды, в которой распространяется радиосигнал, мощность данного сигнала, но, тем не менее, при достаточно большой плотности сети она позволяет найти приблизительное решение задачи.
Построение модели GeoAlchemy
Данные по базовым станциям и их покрытиям будем хранить в БД PostgreSQL с пространственным расширением PostGIS.