Лекция 4. Представление пространственных данных





Представление пространственных данных - способ цифрового описания пространственных объектов.

Наиболее универсальные и употребительные из них:

векторное представление (точки, линии, полигоны)

(векторно-топологическое представление

векторно-нетопологическое или модель "спагетти")

растровое представление (ячейки, сетки),

регулярно-ячеистое представление

квадродерево (квадротомическое представление).

К менее распространенным или применяемым для представления пространственных объектов определенного типа относятся также гиперграфовая модель, модель типа TIN и ее многомерные расширения.

Существуют способы и технологии перехода от одних П.п.д. к другим (к примеру, растрово-векторное преобразование, векторно-растровое преобразование).

Растровая модель данных

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

Разбивает всю изучаемую территорию на элементы регулярной сетки или ячейки

Каждая ячейка содержит только одно значение

Является пространственно заполненной, поскольку каждое местоположение на изучаемой территории соответствует ячейке растра, иными совами - растровая модель оперирует элементарными местоположениями

Соглашения, принятые для растровой ГИС

1.Разрешение
Минимальная линейная размерность наименьшей единицы географического пространства, для которой могут быть приведены какие-либо данные. В растровой модели данных наименьшей единицей для большинства систем выступает квадрат или прямоугольник. Такие единицы известны как сетка, ячейка или пиксель. Множество ячеек образует решетку, растр, матрицу.

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

3.Площадной контур (Зона)

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

4.Значение
Единица информации, хранящаяся в слое для каждого пикселя или ячейки. Ячейки одной зоны (или района) имеют одинаковое значение

5.Векторная модель данных

Векторно-нетопологическое представление данных (см. модель "спагетти") - цифровое представление точечных, линейных и полигональных пространственных объектов в виде набора координатных пар, с описанием только геометрии объектов.

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

Векторная модель данных:

Основана на векторах (направленных отрезках прямых)

Базовым примитивом является точка

Объекты создаются путем соединения точек прямыми линиями или дугами

Площади определяются набором линий

Представляет собой объектно-ориентированную систему

Пример векторного представления пространственных объектов

Типы векторных объектов, основанные на определении пространственных размеров

Безразмерные типы объектов

Точка - определяет геометрическое местоположение

Узел - топологический переход или конечная точка, также может определять местоположение

Одномерные типы объектов

Линия - одномерный объект

Линейный сегмент - прямая линия между двумя точками

Строка - последовательность линейных сегментов

Дуга - геометрическое место точек, которые формируют кривую определенную математической функцией

Связь - соединение между двумя узлами

Направленная связь - связь с одним определенным направлением

Цепочка - направленная последовательность непересекающихся линейных сегментов или дуг с узлами на их концах

Кольцо - последовательность непересекающихся цепочек, строк, связей или замкнутых дуг

Двумерные типы объектов

Область - ограниченный непрерывный объект, который может включать или не включать в себя собственную границу

Внутренняя область - область, которая не включает собственную границу

Полигон (контур) - 2-мерный (площадной) объект, внутренняя область, образованная замкнутой последовательностью дуг в векторно-топологических представлениях или сегментов в модели "спагетти". Различают простой П., не содержащий внутренних П., и составной П, содержащий внутренние П., называемые также "островами" (island) и анклавами (hole).

Пиксель - элемент изображения, который является самым малым неделимым элементом изображения

Пример слоев, составленных из пространственных объектов линейного типа

Примеры слоев, составленных из пространственных объектов полигонального типа

Топологическое представление векторных объектов

Формирование топологии включает определение и кодирование взаимосвязей между точечными, линейными и площадными объектами.

Сопоставление растровой и векторной моделей данных

Преимущества

Растровая модель Векторная модель
1. Простая структура данных 2. Эффективные оверлейные операции 3. Работа со сложными структурами 4. Работа со снимками   1. Компактная структура 2. Топология 3. Качественная графика  

Представление пространственных объектов в ГИС

Представление пространственных объектов реальной действительности

Пространственные данные состоят из цифровых представлений реально существующих дискретных пространственных объектов.

Свойства, показанные на карте, например, озера, здания, контуры, должны пониматься как дискретные объекты.

Содержание карты может быть зафиксировано в базе данных, путем превращения свойств карты в пространственные объекты.

Многие свойства, которые показаны на карте, на самом деле виртуальны. Например, контуры или границы реально не существуют, но здания и озера - реальные объекты.

Содержание базы пространственных данных включает:

Цифровые версии реально существующих объектов (например, зданий)

Цифровые версии искусственно выделенных свойств карты (например, контуры)

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

Разновидность непрерывных свойств

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

Непрерывная изменчивость может быть представлена в базе данных несколькими способами:

посредством величин измерений в некоторых характерных пунктах (точках), например, метеостанции и посты

посредством описаний трансектов (профилей – вертикальных разрезов участков земной поверхности)

посредством разделения площади на контуры, зоны, принимая при этом, что некоторое значение свойства внутри контура (зоны) есть величина постоянная

посредством построения изолиний, например горизонталей для отображения рельефа

Каждый из этих способов создает дискретные объекты, которые могут быть зафиксированы в виде точек, линий, площадей.

Компоненты пространственных данных

Расположение: пространственные данные вообще часто называются данными о размещении

Пространственные отношения: взаимосвязи между пространственными объектами описываются как пространственные отношения между ними (например, А содержит B; смежен с С, находится к северу от D)

Атрибуты: Атрибуты фиксируют тематические описания, определяя различные характеристики объектов

Время: временная изменчивость фиксируется разными способами:

- интервалом времени, в течение которого существует объект

- скоростью изменчивости объектов

- временем получения значений свойств

Источники пространственных данных

Совокупности первичных данных (измерений и съемок) по выборкам:

произвольная выборка, каждое место или время одинаково вероятно, чтобы быть выбранным

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

упорядоченная выборка, когда известно, что генеральная совокупность содержит существенно различные подсовокупности.

Совокупности вторичных данных, полученные из существующих карт, таблиц, или других баз данных.

 


Лекция 4. Выборка.

Наряду с тем, что MapInfo позволяет отображать данные на географических картах, мощный аппарат анализа составляет способность MapInfo группировать и организовывать эти данные. Разбив данные на логические группы, можно проводить анализ на основании одной или нескольких переменных величин.

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

Например, рассмотрим таблицу записей о клиентах. Можно создать подмножество клиентов:

- проживающих не далее 50 км от Новгорода;

- сделавших покупки более чем на 1.000.000 рублей;

- чьи фамилии начинаются на букву "B".

Приведенные тут предложения, на основании которых формируются подмножества данных, называют запросами.

Существует множество способов группировки данных. Некоторые записи попадают более, чем в одну категорию. Также можно группировать данные по нескольким переменным. Кто из клиентов живет в радиусе 50 км от Новгорода, и сделал покупки на сумму более 1.000.000?

Характеристики Выборки

Выборки представляют собой временные таблицы. Когда проводится выбор, MapInfo создает временную таблицу и сохраняет в ней выбранные записи.

Над таблицей выборки можно проводить многие из тех операций, которые разрешены для постоянных (базовых) таблиц, например:

Ее можно просматривать в окнах Списка, Карты (если в ней имеются графические объекты), Графика и Отчета.

Ее можно вырезать и копировать в буфер обмена, а также вставлять в другие таблицы или даже использовать в других программах.

Работая с выборкой, можно редактировать исходную таблицу. Если Вы хотите изменить только некоторые записи базовой таблицы, Вы можете сделать выборку и редактировать только эту выборку.

Из выборки в свою очередь можно выбирать записи.

Чтобы сохранить таблицу выборки в виде постоянной таблицы, нужно выполнить команду ФАЙЛ >СОЗДАТЬ КОПИЮ. Сохранив выборку в постоянную таблицу, можно работать с ней дальше, как со всеми другими таблицами.

Таблицы выборок полностью зависят от тех таблиц, на основании которых они были созданы. Так, при закрывании базовой таблицы все связанные с ней таблицы выборок будут закрыты.

Как делать Выборки

В MapInfo выборку можно создать с помощью пяти команд и инструментов. Их можно разделить на две категории:

1. Выбор на экране: инструменты Стрелка, Выбор-в-круге, Выбор-в-области, Выбор-в-рамке, команда ВЫБРАТЬ ПОЛНОСТЬЮ. Чтобы выбрать записи инструментом, следует указать на соответствующий графический объект (объекты) или обвести их окружностью. Чтобы выбрать все записи некоторого слоя, выполните команду ЗАПРОС > ВЫБРАТЬ ПОЛНОСТЬЮ.

2. Выбор с помощью запросов: ВЫБРАТЬ, SQL-ЗАПРОС. В обоих случаях задается логическое выражение, на основании которого MapInfo выбирает записи. Например, выражение ПРОДАЖИ > 20000000 означает, что MapInfo выберет только записи о продажах на сумму более 20 млн.

Выбор на экране

Чтобы выбрать объект на карте, этот объект должен лежать на доступном слое. Чтобы сделать слой доступным, нужно выполнить команду УПРАВЛЕНИЕ СЛОЯМИ из меню КАРТА и установите режим "Доступный" для данного слоя.

Когда выбирается объект на доступном слое карты, MapInfo выделяет этот объект методом, заданным в разделе "Выделение выборки" диалога "Режимы" (меню НАСТРОЙКА). При выборе же объекта на изменяемом слое MapInfo показывает вокруг такого объекта маркеры (черные квадраты).

При наличии нескольких доступных слоев в окне Карты MapInfo выбирает объекты с самого верхнего из них. Например, в окне Карты доступными являются слои районов и областей. Если слой районов является верхним, то MapInfo выбирает объекты с него. И, наоборот, если выше лежит слой областей, MapInfo производит выбор со слоя областей. Когда Вы используете инструмент Стрелка, MapInfo отображает всплывающие подсказки для самого верхнего доступного слоя. По мере продвижения курсора к другим объектам, информация во всплывающих подсказках изменяется. Вы можете отключить всплываящие подсказки с помощью команды НАСТРОЙКИ>РЕЖИМЫ>ОКНО КАРТЫ.

Аналогично, чтобы проводить поиск по областям, они должны лежать на самом верхнем из доступных слоев. Пусть имеется слой почтовых индексов и слой границ областей. Чтобы выбрать все объекты, имеющие заданный почтовый индекс, слой почтовых индексов должен быть верхним среди перечисленных слоев. Чтобы выбирать объекты в заданной области, слой областей должен лежать выше слоя почтовых индексов. Изменить порядок слоев на карте можно с помощью команды КАРТА > УПРАВЛЕНИЕ СЛОЯМИ.

Чтобы выбрать объект из таблицы, соответствующей не самому верхнему слою, следует нажимать клавишу CTRL при выборе. Допустим, например, что есть три доступных слоя: слой областей, слой районов и слой городов. Вы хотите выбрать объекты на слое областей, но он является самым нижним слоем карты. Не отпуская клавишу CTRL, укажите еще раз на карту инструментом Стрелка. Теперь Вы работаете со вторым слоем. Не отпуская CTRL, еще раз укажите снова на карту инструментом Стрелка. Теперь Вы работаете с третьим слоем (самым нижним) - слоемобластей.

Отмена выбора объектов или записей

Вы можете:

Убрать отдельный объект или запись из группы выбранных объектов или записей

Отменить выбор группы объектов или записей

Отменить выбор всех выбранных объектов

Чтобы убрать один объект из группы выбранных объектов или записей, нажмите клавишу SHIFT и укажите на этот объект или запись инструментом Стрелка. Когда Вы укажете на него, выбор будет отменен.

Чтобы отменить выбор всех выбранных объектов, следует либо указать в любое место на карте, где нет ни одного объекта, либо выполнить команду ОТМЕНИТЬ ВЫБОР из меню Запрос.

Инструменты, используемые для выбора

Панель Операции MapInfo содержит несколько инструментов, которые позволяют выбирать записи для дальнейшего просмотра и анализа:

Инструмент Стрелка

Инструмент Выбор-в-круге

Инструмент Выбор-в-рамке

Инструмент Выбор-в-области

Каждый из этих инструментов более подробно описан ниже.

Инструмент Стрелка

Инструмент Стрелка позволяет выбирать объекты по одному или сразу все объекты в одной области. Объект выбирается, когда Вы указываете на него.

Чтобы выбрать объект:

1. Сделайте слой, с которым Вы будете работать, доступным (КАРТА > УПРАВЛЕНИЕ

СЛОЯМИ).

2. Выберите инструмент Стрелка из панели Операции.

3. Укажите на объект в окне Карты. Если слой, на котором лежит данный объект, является доступным, MapInfo выберет объект. Если слой является изменяемым, MapInfo покажет маркеры вокруг объекта. Если же слой не является ни доступным, ни изменяемым, то MapInfo не сделает выбора.

4. Выполните команду ОКНО > НОВЫЙ СПИСОК, чтобы увидеть список уже выбранных записей. Выберите "Selection" ("Выборка") в окошке списка таблиц. MapInfo создаст окно Списка для текущей временной таблицы выборки. Чтобы выбирать записи в этом окне, просто указывайте на запись инструментом Стрелка.

Чтобы выбрать по отдельности несколько объектов, укажите на первый из них, затем нажмите клавишу SHIFT и укажите на следующий. MapInfo присоединит второй объект к выборке. Если же второй объект выбирать, не нажав SHIFT, то MapInfo отменит выбор первого объекта и выберет только второй объект.

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

Инструмент Выбор-в-круге

Инструмент Выбор-в-круге предназначен для выбора всех объектов внутри круга заданного радиуса. Рассмотрим, например, таблицы доноров и станций переливания крови. С помощью инструмента Выбор-в-круге можно создать временный список доноров, проживающих на расстоянии не далее 1 километра от каждой из станций переливания крови.

Заметим, что инструмент Выбор-в-круге выбирает все объекты, центроиды которых попадают внутрь заданного круга. Объекты не обязательно должны полностью лежать внутри этого круга.

Чтобы выбрать все объекты в заданном круге:

1. Сделайте слой, с которым Вы будете работать, доступным (КАРТА > УПРАВЛЕНИЕ СЛОЯМИ).

2. Выберите инструмент Стрелка из панели Операции. При движении по окну Карты указатель мыши примет форму указательного пальца.

3. Укажите на точку на Карте, которую следует считать центром круга, в котором будет производится поиск. Например, чтобы выбрать все пожарные краны в радиусе 2 км от пожарной станции, Вы будете использовать саму пожарную станцию в качестве центральной точки круга.

4. Нажмите кнопку мыши и отодвигайте указатель от центра круга. MapInfo будет рисовать окружность вокруг центральной точки и показывать текущее значение ее радиуса в левом нижнем углу окна.

5. Когда Вы достигли нужного радиуса, отпустите кнопку мыши. MapInfo выделит все объекты, лежащие в заданном круге.

Чтобы увидеть список выбранных в круге записей, выполните команду НОВЫЙ СПИСОК из меню ОКНО. Выберите "Selection" ("Выборка") из списка таблиц. MapInfo создаст окно Списка для текущей временной таблицы выборки.

Инструмент Выбор-в-рамке

Инструмент Выбор-в-рамке предназначен для выбора всех объектов внутри заданного прямоугольника. С помощью этого инструмента можно обвести пунктирной рамкой все объекты, которые Вы хотите выбрать. Все доступные объекты с верхнего слоя будут выбраны. Чтобы выбрать объекты не с самого верхнего слоя, надо в диалоге "Управление слоями" сбросить флажок "Доступный" для всех слоев над тем слоем, с которого Вы хотите произвести выбор.

Чтобы выбрать объекты в заданном прямоугольнике:

1. Сделайте слой, с которым Вы будете работать, доступным (КАРТА > УПРАВЛЕНИЕ СЛОЯМИ).

2. Выберите инструмент Выбор-в-рамке из панели Операции. При движении по окну Карты указатель примет форму пальца.

3. Укажите на точку на карте, которую следует считать углом прямоугольника, в котором будет производиться поиск.

4. Нажмите кнопку мыши и обведите пунктирной линией все объекты, которые Вы хотите выбрать.

5. Когда Вы достигните нужного охвата, отпустите кнопку мыши. MapInfo выделит все объекты, лежащие в заданном прямоугольнике.

6. Чтобы увидеть список выбранных записей, выполните команду СПИСОК из меню ОКНО. Выберите "Selection" ("Выборка") из списка таблиц. MapInfo создаст окно Списка для текущей временной таблицы выборки.

Инструмент Выбор-в-области

Инструмент Выбор-в-области предназначен для выбора всех объектов, расположенных в пределах некоторого площадного объекта (области). С помощью этого инструмента MapInfo выбирает все объекты, лежащие в заданной стране, области, районе.

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

Чтобы выбрать все объекты в заданной области:

1. Сделайте слой, с которым Вы будете работать, доступным (КАРТА > УПРАВЛЕНИЕ СЛОЯМИ).

2. Выберите инструмент Выбор-в-области из панели Операции. При движении по окну Карты указатель примет форму крестика.

3. Укажите на любую область на карте. MapInfo выберет все объекты, лежащие в заданной области.

4. Чтобы увидеть список выбранных записей, выполните команду СПИСОК из меню Окно. Выберите Selection из списка таблиц. MapInfo создаст окно Списка для текущей временной таблицы выборки.

Другие методы поиска

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

Кроме того, можно создавать области для поиска командой БУФЕР. Команда БУФЕР используется для создания областей вокруг точек, линий и других областей. Например, чтобы найти всех клиентов, проживающих в пределах пяти километров от Волоколамского шоссе, можно с помощью команды БУФЕР создать многоугольник, куда войдут все территории на расстоянии пяти километров от этого шоссе.

Командой БУФЕР можно создавать даже области вокруг областей. Пусть, например, Вы хотите найти все радиостанции на расстоянии не более 20 км от границ некоторого района. С помощью команды БУФЕР можно создать многоугольник, в который войдут местности в пределах 20 км от границы заданного района. Чтобы проводить поиск в многоугольнике, должны быть доступными два слоя: слой, из объектов которого будет строиться выборка, и слой, содержащий область, в которой будет проводиться поиск.

 

Запросы

Выбор с помощью запросов

Команда ВЫБРАТЬ позволяет создать выборку (подмножество записей) на основании информации из некоторой таблицы MapInfo. Например:

Какие клиенты сделали покупки на 2000000 рублей и более?

Кто из моих клиентов живет в Раменском районе?

Команда SQL-ЗАПРОС позволяет решать следующие задачи в MapInfo:

Создать вычисляемые колонки - колонки, значения в которых вычисляются на основании значений в уже существующих колонках;

Обобщить данные;

Скомбинировать две или более таблицы в одну новую таблицу;

Показывать только интересующие колонки и строки

Пример. Выбор больниц Центрального округа, расположенных рядом с метро

Select bolnicy.name, bolnicy.addres, bolnicy.tel, UNDEGR.R_NAME, distance(CentroidX(bolnicy.obj), CentroidY(bolnicy.obj), CentroidX(undegr.obj), CentroidY(undegr.obj),"m")
From bolnicy, undegr, bolnicy,distr
Where BOLNICY.Obj Within DISTR.Obj AND UNDEGR.Obj Within DISTR.Obj and
distr.r_name="Центральный" and distance(CentroidX(bolnicy.obj), CentroidY(bolnicy.obj),
CentroidX(undegr.obj), CentroidY(undegr.obj),"m")<200

Команда Выбрать

Команда ВЫБРАТЬ позволяет формулировать запросы к таблице. С ее помощью можно выбирать записи и сопоставленные им графические объекты по значениям их атрибутов. Таким образом, можно выделять в окне Карты или Списка объекты, удовлетворяющие некоторому критерию.

Результаты запросов можно сохранять в виде таблиц, просматривать в окнах Списков, Карт и Графиков.

В команде ВЫБРАТЬ можно формулировать такие запросы как:

Покажите все районы, где средний доход жителей превышает 6 000 000 рублей.

Покажите все районы, где средний возраст населения составляет 42 года.

Покажите все районы, где средний доход жителей превышает 6 000 000 рублей, а средний возраст населения составляет 42 года.

Покажите все записи о заказах, сделанных в июле и сентябре.

Покажите все города в Ярославской, Владимирской и Костромской областях, население которых превышает 100 000 жителей.

При работе с окном Списка MapInfo выделяет записи (строки Списка), удовлетворяющие заданному в запросе критерию. При работе с окном Карты выделяются соответствующие этим записям графические объекты. Если же Вы работаете с окнами обоих типов, то выделяются и записи, и графические объекты. Во всех случаях MapInfo автоматически создает рабочую таблицу с названием "Selection" (или "Выборка"), которая содержит результаты обработки запроса. Эту таблицу можно просматривать в окне Списка, Карты или Графика как любую другую таблицу.

Кроме того, ее можно сохранить под другим именем командой СОЗДАТЬ КОПИЮ.

Создание выражений

Чтобы выполнить поиск по запросу, необходимо задать логическое выражение.

Например, имеется таблица о сдаваемом внаем жилье. Если Вы хотите создать временную таблицу жилья, стоимость аренды которого ниже $800 в месяц, следует задать выражение: РЕНТА < 800 (где РЕНТА - это название колонки, содержащей данные о ежемесячной арендной плате.)

Можно производить арифметические операции над данными.

Пусть надо создать временную таблицу жилья, общая стоимость которого меньше $800. Общая стоимость образуется из арендной платы и ежемесячных коммунальных платежей. Задайте выражение: РЕНТА + ПЛАТЕЖИ < 800

Имеется два способа создания выражений.

1. можно ввести выражение напрямую.

2. можно нажать кнопку "Составить" в диалоге "Выбрать" и построить выражение с помощью окошек в диалоге "Выражение". Такой способ обычно используется при построении сложных выражений.

Диалог "Выражение" содержит три окошка списка, с помощью которых можно составить выражение: "Колонки", "Операторы" и "Функции".

"Колонки"

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

"Операторы"

В этом окошке содержится перечень математических и логических операторов. Среди операторов - сложение, вычитание, умножение, деление, знаки больше, меньше и равно. С помощью этих символов можно создавать математические формулы. В списке "Операторы" содержатся также логические операции, например, AND, NOT, OR и LIKE.

"Функции"

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

Окошко "Функции" содержит много других функций, в том числе функции площади, периметра, синуса, косинуса и дат.

Этапы выполнения команды Выбрать

В общих чертах процесс выбора объектов с помощью команды ВЫБРАТЬ выглядит так:

1. Выполните команду ВЫБРАТЬ из меню Запрос.

2. Выберите название таблицы, из которой следует выбирать записи.

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

4. Выберите колонку, по которой следует сортировать результаты обработки запроса (это не обязательно). Стандартный режим - без сортировки.

5. Чтобы увидеть выбранные записи в окне Списка, установите флажок "Результат в Список".

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

MapInfo называет временные таблицы выборок "Запрос1", "Запрос2" и так далее. При выборе записей с помощью команд ВЫБРАТЬ и SQL-ЗАПРОС можно задать свое название таблицы выборки вместо стандартного. Введите это название в окошко "поместить в таблицу".

Создание новой таблицы из подмножества файлов

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

Существуют два пути для создания новой таблицы, содержащей выборочные записи из изначальной таблицы. Можно интерактивно выбрать объекты, которые Вас интересуют с помощью инструментов выборки и поместить их в новую таблицу. Или можно использовать SQL-Запрос для выбора необходимых объектов, используя при этом функции SQL.

Команда SQL-запрос

Команда SQL-ЗАПРОС позволяет формулировать еще более сложные запросы, чем команда ВЫБРАТЬ.

Записи в таблице запросов, созданной командой ВЫБРАТЬ, не содержат никакой дополнительной информации по сравнению с исходной таблицей. Это, по существу, те же записи.

С помощью команды SQL-ЗАПРОС можно создавать таблицы запросов, содержащие данные, которые не присутствуют явно в исходных таблицах.

Сохранение запросов

Любой запрос, созданный в диалогах "Выбрать" и "SQL-Запрос" может быть сохранен как таблица запроса MapInfo. Таблицы запросов включают два файла: .TAB и .QRY. После того, как Вы выполнили команды в диалогах "Выбрать" и "SQL-запрос", выполните команду ФАЙЛ>СОХРАНИТЬ ЗАПРОС и, таким образом, запрос сохранится в виде таблицы. Когда Вы открываете эту таблицу, автоматически открываются таблицы, на основе которых выполняется запрос и далее этот запрос выполняется.

Запросы, сделанные на основе других запросов, не могут быть сохранены в виде таблицы или Рабочего набора.

Вычисляемые колонки

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

Стандартный текст в окошке "Выбрать колонки" Њ звездочка (*), которая показывает, что все колонки базовых таблиц следует включить в таблицу запроса. В остальных случаях надо удалить звездочку и перечислить только необходимые колонки.

В выражениях для вычисляемых колонок можно использовать функции обобщения count, sum, avg, wtavg, max и min. Например:

- sum(НАСЕЛЕНИЕ ) - численность населения всего мира.

- sum(Area(obj), "sq km") - суммарная площадь всех стран мира.

Псевдонимы названий колонок

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

Обобщение данных

Под обобщением данных понимаем выполнение математической операции над значениями всех записей из некоторой колонки таблицы. В отличие от команды ВЫБРАТЬ, которая позволяет выполнять математические операции над отдельными записями, язык SQL дает возможность обобщать данные из всех записей в заданной колонке.

При обобщении данных надо указать:

Как группировать записи.

Как суммировать (обобщать) данные.

Например, имеется таблица торговых агентов и объемов продаж за три месяца:

ТОРГ_ПРЕД МЕСЯЦ ПРОДАЖИ
Иванов Май
Петросян Май
Гольдштейн Май
Иванов Июнь
Петросян Июнь
Гольдштейн Июнь
Иванов Июль
Петросян Июль
Гольдштейн Июль

Вычислим общий объем продаж, сделанных каждым из агентов, если в

диалоге "SQL-запрос" указать:

- В окошке "Выбрать колонки": ТОРГ_ПРЕД, sum(ПРОДАЖИ)

- "Сгруппировать по колонке": ТОРГ_ПРЕД

ТОРГ_ПРЕД sum(ПРОДАЖИ)
Иванов
Петросян
Гольдштейн

или вычислить среднемесячный объем продаж каждого агента:

В MapInfo имеется шесть функций обобщения:

Count(*): подсчитывает число записей в группе. В качестве ее аргумента указывается *, так как она применима только ко всей записи, а не к какому-то отдельному полю записи.

Sum (выражение): вычисляет сумму значений в <выражении> для всех записей группы.

Average (выражение): вычисляет среднее значение в <выражении> для всех записей группы.

WtAvg (выражение): вычисляет взвешенное среднее значение <выражения> для всех записей группы.

Max (выражение): находит наибольшее значение в <выражении> среди всех записей группы.

Min (выражение): находит наименьшее значение в <выражении> среди всех записей группы.

Группирующее и упорядочивающее предложения

Результаты SQL-запроса можно сгруппировать по значениям из некоторой колонки так, что записи, содержащие одинаковые значения в этой колонке, будут объединены вместе. Такую колонку можно определить в окошке "Сгруппировать по" диалога "SQL-запрос".

Кроме того, можно указать MapInfo порядок сортировки результатов запроса. Стандартный порядок - по возрастанию (для строковых полей - по алфавиту).

Объединение таблиц командой SQL-запрос

При выполнении SQL-запросов к нескольким таблицам MapInfo должна объединить данные из разных таблиц. Допустим, имеется таблица, содержащая только графические объекты и их названия, и таблица статистических данных для некоторого региона. Надо показать эти статистические данные на карте. Можно объединить статистические и географические данные в одну таблицу с помощью команды SQL-ЗАПРОС.

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

Например, рассмотрим таблицу WORLD и таблицу экономической статистики (ECO_STATS) по всем странам мира. Надо создать временную таблицу запроса, которая объединила бы оба набора данных:

- "Выбрать колонки": *

- "Из таблиц": WORLD, ECO_STATS

- "С условием": WORLD.Страна = ECO_STATS.Страна

Пример. Создадим таблицу, содержащую следующую информацию:

- Число государств на континенте

- Общую численность населения континента

- Общую площадь континента

Откройте таблицу WORLD.TAB и увеличьте его на все окно. Выполните команду Запрос > SQL-запрос. Заполните его следующим образом:

Поле "Выбрать колонки": континент, count(*) "страны", sum(население) "общее население", sum(area(obj,"sq km")) "общая площадь"

Поле "Из таблиц" - world

Поле "Сгруппировать по колонкам" - Континент

Условие Where

Выражение Where в окошке "с условием" позволяет объединять таблицы MapInfo более логично и более просто.

Порядок полей

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

Select * from A,B where A.field1 = B.field1

Select * from A,B where B.field1 = A.field1

Но, когда Вы переключаете порядок географических операндов, географические операторы так же должны измениться. Следующие операторы производят одинаковые результаты:

Select * from states, cities where states.obj contains cities.obj

Select * from states, cities where cities.obj within states.obj

Поиск информации внутри колонки данных - функция InStr

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

Например, Вам надо выбрать все улицы в таблице ДОРОГИ, содержащие слово "Большая" в колонке УЛИЦЫ.

Условие в запросе будет выглядеть так: InStr(1, "Улицы","Большая");

Если функция InStr встретит любое появление "Большая" она вернет позицию на следующее за этим место.

Синтаксис функции INSTR определяется следующим образом:

INSTR ( position, string, substring), где: position - это стартовая позиция поиска, string - это строковый символ или поле, содержащее строковый символ, который надо найти, substring - это строковый символ, который следует найти





Читайте также:
Определение понятия «общество: Понятие «общество» употребляется в узком и широком...
Основные направления модернизма: главной целью модернизма является создание...
Тест мотивационная готовность к школьному обучению Л.А. Венгера: Выявление уровня сформированности внутренней...
Расчет длины развертки детали: Рассмотрим ситуацию, которая нередко возникает на...

Рекомендуемые страницы:



Вам нужно быстро и легко написать вашу работу? Тогда вам сюда...

Поиск по сайту

©2015-2022 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту:


Мы поможем в написании ваших работ!
Обратная связь
0.092 с.