Главная
страница 1

12 Пример применения: оптимизация зоны обслуживания на основе векторных данных


В данной главе представлен небольшой пример использования модуля сетевого анализа v.net.alloc, связанный с новыми особенностями векторных данных.

В примере определяются области до которых, в случае чрезвычайной ситуации, могут максимально быстро добраться машины скорой помощи, выезжая из определенных точек (госпиталей). Обычно для каждого направления или узла (дороги или перекрестка) можно определить набор разных факторов, связанных с движением по данному направлению (скорость, состояние дорог, улицы с односторонним движением). Но в данном примере ограничивающим фактором является лишь расстояние, которое должно быть преодолено.


12.1 Импорт данных примера


Как и в некоторых предыдущих примерах здесь будут использоваться бесплатные пространственные данные проекта FRIDA по городу Оснабрюк (Германия): http://frida.intevation.org/. Кроме актуальной дорожной сети данные содержат информацию о доступных водных объектах и парках, а также важных объектах (госпитали, школы и т.д.). Данные представлены в формате Shape-файлов ESRI.

При импорте данных FRIDA в GRASS автоматически происходит создание необходимой области в проекции Гаусса-Крюгера (см. также главу 5.2).

Импорт необходимых SHAPE-файлов осуществляется модулем v.in.ogr (например, для набора данных Spearfish):

# Начать новую сессию GRASS (например, с набором данных Spearfish):

grass60 ~/grassdata/spearfish60/user1/
# Импортировать дорожную сеть с созданием новой области:

v.in.ogr dsn=frida-1.0.1-shp-joined/strassen-joined.shp \

output=strassen loc=frida

exit
# Перезапустить с новой областью:

grass60 ~/grassdata/frida/PERMANENT
# Импортировать объекты (госпитали, ...):

v.in.ogr dsn=frida-1.0.1-shp-joined/poi-joined.shp output=points





Рисунок 25: Базовая карта: дорожная сеть и госпитали города Оснабрюк

Проблемы, связанные с топологией, обычно исправляются при импорте данных с помощью команды v.in.ogr. Если же при импорте данных возникают сообщения об ошибках, например, как это может быть в случае с набором полигональных данных (FRIDA V1.0.1), для их устранения используйте модуль v.clean (см. главу 11.5).

Прежде чем перейти к ассоциированию уже доступных узлов дорожной сети с госпиталями, необходимо создать новое поле layer. Это позволит в дальнейшем связывать разные атрибутивные таблицы через это поле:

# Добавление:

v.category points out=points_2f layer=2 op=add


# Проверка:

v.category points_2f layer=1,2 op=print # -> layer 1 == layer 2



12.2 Получение госпиталей из точечного файла


Следующим шагом из слоя points_2f произведем выборку тех точек, которые обозначены как госпитали:

# Выборка госпиталей:

v.extract in=points_2f out=hospitals_pre type=point\

where="poiTypName='Klinik/Hospital'"


v.select ainput=points_2f binput=hospitals_pre out=hospitals
# Проверка:

v.info hospitals # -> one dblink


v.category hospitals layer=1,2 op=print # -> 2 layers
d.erase

d.vect roads

d.vect hospitals disp=attr attr=poiNameID bgcolor=white bcolor=black

d.vect hospitals col=red icon=basic/diamond



12.3 Ассоциирование госпиталей с дорожной сетью


На рисунке 25 показана начальная ситуация для вычисления границы зоны оптимизации. Для ассоциирования госпиталей с дорогами необходимо, чтобы они предварительно были интегрированы в дорожную сеть. Также должно быть указано определенное значение, на основе которого с помощью layer 2 затем будут производиться вычисления.

Ассоциирование осуществляется с помощью двух операций. Сначала точечные объекты (госпитали) hospitals объединяются с линейными объектами roads (дороги) в новую карту roads_hospitals, и атрибутивные таблицы связываются друг с другом посредством поля layer.

# Пересечение данных:

v.patch in=roads,hospitals out=roads_hospitals


# Проверка:

v.info roads_hospitals # -> dblinks = 0


d.erase

d.vect roads_hospitals

d.vect roads_hospitals type=point col=red
# определение базы данных (если необходимо)

db.connect dr=dbf database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/'


# показать на экране атрибутивную информацию объектов

db.describe -c roads

ncols:7

Column 1: cat



Column 2: strShapeID

Column 3: strID

Column 4: strTypID

Column 5: strSpuren

Column 6: strEbene

Column 7: strName

# -> Столбец 'cat' был добавлен при импорте данных с помощью 'v.in.ogr'.
# Связать атрибутивную информацию линейной темы с новым слоем

v.db.connect roads_hospitals dr=dbf \

data='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' \

table=roads layer=1 key=cat


# Связать атрибутивную таблицу точечной темы с новым слоем

v.db.connect roads_hospitals dr=dbf \

data='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' \

table=hospitals layer=2 key=cat


# Проверка:

v.db.connect -p roads_hospital

Примечание:
Учтите, что если карта roads_hospitals будет удалена, удалятся и все связанные с нею атрибутивные таблицы – атрибутивные таблицы тем hospitals и roads (см. главу 10.3). Избежать этого можно путем копирования атрибутивных таблиц, с которыми производится связывание.

Далее госпитали и дорожная сеть автоматически связываются и сохраняются в новой карте roads_hospitals:

# Создать связывающие линии между госпиталями и дорогами:

v.distance -p from=hospitals to=roads output=roads_hospitals_connect\

upload=dist column=dist
# Связать соединяющие линии с самими госпиталями и дорогами:

v.patch in=roads_hospitals,roads_hospitals_connect out=hospitals_net_pre


# Корректировать топологию

v.clean in=hospitals_net_pre out=hospitals_net tool=break,snap


# Почистить

g.remove vect=hospitals_net_pre,hospitals_pre

Итак, создана карта hospitals_net, включающая дорожную сеть, госпитали и связывающие их линии. Кроме того, с помощью layer 2 госпиталям назначена информация о категории. Эти категории используются как отправные точки при вычислении доступности госпиталей.

12.4 Назначение зон оптимальной доступности


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

Как уже было отмечено, мы рассматриваем самый простой способ определения зон оптимальной доступности – без учета дополнительных факторов, таких как скорость или направление движения. В нашем случае возможные дополнительные параметры воображаемы, но могут быть назначены модулю v.net.alloc через дополнительный столбец:

v.net.alloc input=hospitals_net output=hospitals_alloc ccats=40-215

Как результат из дорожной сети получаем подсети, назначенные госпиталям из соображений подсчитанной стоимости. Поэтому каждая дорога назначена именно к тому госпиталю, на который, исходя из расстояний вдоль дорожной сети, приходится наименьшая стоимость. Если потребуется, чтобы определить точную границу, внутри вектора могут быть добавлены новые «узлы».





Рисунок 26: Назначение наиболее доступных дорог госпиталям

На рисунке 26 представлена итоговая карта к данному примеру. Этот результат можно отразить интерактивно с помощью d.m или командой d.vect:

d.vect map=hospitals_alloc color=red cats=40

d.vect map=hospitals_alloc color=green cats=41

d.vect map=hospitals_alloc color=blue cats=69



...

d.vect map=hospitals_alloc color=black cats=215



В целом, GRASS предлагает пять разных сетевых модулей, коротко представленных в главе 11.1. Они используются похожим образом, поэтому данный пример показателен и для других модулей v.net.x.


Смотрите также:
12 Пример применения: оптимизация зоны обслуживания на основе векторных данных
52.42kb.
1 стр.
Исследование возможности применения линз на основе микроканальных пластин для мониторинга космических рентгеновских источников
29.16kb.
1 стр.
Оптимизация комплексного лечения гестоза с учетом применения комбинации антагонистов кальция и бета-адреноблокаторов 14. 01. 01 Акушерство и гинекология
330.36kb.
1 стр.
Академия наук СССР
3436.5kb.
17 стр.
Оптимизация тренировочной деятельности пловцов на этапе предварительной базовой подготовки посредством применения биологически активных веществ 13. 00. 04 теория и методика физического воспитания, спортивной тренировки
384.15kb.
2 стр.
Проект № V. Ii-6: «Оптимизация свойств оксидных пленок для применения в 3D энергонезависимой памяти с наноразмерным масштабом компонентов»
11.81kb.
1 стр.
Оптимизация распределения работ и загруженности службы управления персоналом на основе матрицы разу
1843.06kb.
13 стр.
Формула специальности: Содержанием специальности 22. 00. 04 – «Социальная структура, социальные институты и процессы»
36.75kb.
1 стр.
Внедрение системы электронного документооборота
59.3kb.
1 стр.
В. Г. Шухова Перлит и производства материалов на его основе
64.92kb.
1 стр.
Оптимизация лечения трофических язв с учетом клинико-лабораторных и инструментальных данных 14. 00. 11 Кожные и венерические болезни
404.73kb.
4 стр.
1. Область применения
193.85kb.
1 стр.