Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4103

.pdf
Скачиваний:
2
Добавлен:
08.01.2021
Размер:
786.29 Кб
Скачать

21

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

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

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

в поле и поместить в таблицу: вводится название таблицы, в которую будет помещен результат запроса.

в заключение необходимо нажать кнопку ОК.

2Поместите курсор в поле из таблиц, а затем из выпадающего списка

Таблицы выберите Выделы и Категории земель. В поле с условием введите

(Выделы.КатегорияЗемель = Категории_земель.Код). Данное условие устанавливает связь между записями таблицы Выделы и записями таблицы

Категории земель.

3Для добавления еще одного условия в конец записи поля с условием введите AND (Категории_земель.Описание = "Болото").

4Находясь в поле Выбрать колонки поочередно из списка Колонки

выберите Выделы.НомерКвартала, Выделы.НомерВыдела, и Категории_земель. Описание.

5Поместите курсор в поле порядок задать по колонке: и выберите из списка Колонки поле Выделы. НомерКвартала.

6В поле поместить в таблицу введите название таблицы Болота.

7Нажмите кнопку Проверить, и если ошибок нет, то щелкните по кнопке ОК. На экране должно появится окно Болота Список, представленное на рис. 12. Одновременно в окне Карты будут выделены все объекты, соответствующие выбранным выделам.

Рис. 12 Результат выполнения упражнения 3

22

8 Для сохранения результата запроса выполните команду Файл Сохранить копию. В появившемся окне Создать копию щелкните по таблице Болота и нажмите на кнопку Новое имя. В открывшемся окне выберите свою папку, введите имя Болота и нажмите кнопку Сохранить.

Упражнение 4.

Найдите на карте выделы первого квартала, на территории которых растет сосна. Для этого воспользуйтесь следующими указаниями:

1 Выполните команду Запрос SQL-запрос.

2 Поместите курсор в поле из таблиц, а затем из выпадающего списка

Таблицы выберите Выделы и Состав.

3 В поле с условием введите (Выделы.ГИСидентификатор = Состав.ГИСидентификатор). Данное условие устанавливает связь между записями таблицы Выделы и записями таблицы Состав.

4 Для добавления условия, определяющего номер квартала, в конец записи поля с условием введите AND (Выделы.НомерКвартала = 1), а затем AND (Состав.Порода = "Сосна") – для поиска насаждений, у которых порода Сосна.

5 Находясь в поле Выбрать колонки поочередно из списка Колонки

выберите Состав.ГИСидентификатор, Выделы.НомерКвартала, Выделы.НомерВыдела и Состав.Порода.

6 Поместите курсор в поле порядок задать по колонке: и выберите из списка Колонки поле Выделы. НомерВыдела.

7 В поле поместить в таблицу введите название таблицы Сосна.

8 Нажмите кнопку Проверить, и если ошибок нет, то щелкните по кнопке ОК. На экране должно появится окно Сосна Список, представленное на рис. 13. Одновременно в окне Карты будут выделены все объекты, соответствующие выбранным выделам.

9 Сохраните результат запроса в таблицу Сосна.

Упражнение 5.

Используя правила построения запросов и команду SQL-запрос, найдите выделы первого квартала:

1в состав насаждений которых входит сосна или ель;

2в состав насаждений которых входит сосна возрастом старше 100 лет;

3в состав насаждений которых входит сосна возрастом от 75 до 125

лет;

4 содержащие насаждения высотой более 20 м. Результат каждого запроса сохраните в таблицу.

23

Рис. 13 Результат выполнения упражнения 4

Упражнение 6.

Используя правила построения запросов и команду SQL-запрос, найдите на планшете:

1выделы, которым соответствует категория земель "Лесные культуры";

2выделы, на которых назначено проведение лесохозяйственного мероприятия "Прочистка".

Результат каждого запроса сохраните в таблицу.

Запрос на обновление данных

При работе с базами данных ведения лесного хозяйства существует необходимость в их актуализации, т.е. изменении данных на конкретный момент времени. Для этого требуется производить пересчет многих значений.

В MapInfo для обновления всех или части строк таблицы существует команда меню Таблица Обновить колонку. Для реализации обновления необходимых строк таблицы следует организовать требуемый выбор либо командой Выбор, либо командой SQL-запрос.

24

Упражнение 7.

Втаблице Состав увеличьте возраст насаждений на 5 лет. Для этого:

1Вызовите команду меню Таблица Обновить колонку. На экране появится диалоговое окно (рис. 14), которое заполните следующим образом:

вполе Обновить таблицу: из выпадающего списка выберите Состав,

вполе Обновить колонку: Возраст;

вполе Значения извлечь из: Состав.

Рис. 14 Диалоговое окно для обновления данных в таблицах

2Поместите курсор в поле Значение и нажмите кнопку Составить. Введите выражение Возраст + 5, воспользовавшись ниспадающими списками

Колонки и Операторы.

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

4Сохраните таблицу Состав.

При увеличении возраста насаждений в базе данных учета лесных ресурсов также необходимо производить изменение их высоты и диаметра в соответствии со следующей формулой:

H = H1 + H1 D A , 100

где Н – изменяемые высота или диаметр, Н1 – исходные высота или диаметр,

D – годовой процент изменения показателя, А – число лет.

25

Упражнение 8.

Измените данные сосны 3 класса бонитета возрастом 105 лет, для которой годовой процент изменения высоты равен 0.36, а диаметра – 0.46. Для этого выполните следующее:

1 Для отбора насаждений, удовлетворяющих данным критериям, вызовите команду меню Запрос SQL-запрос.

2В появившемся диалоговом окне установите курсор в поле из таблиц:

ипоследовательно из списка Таблицы выберите Выделы и Состав. В поле с условием: введите выражение (Выделы.ГИСидентификатор = Состав.ГИСидентификатор) And (Выделы.КлассБонитета = 3) And (Состав.Порода = "Сосна") And (Состав.Возраст = 110), которое позволяет отобрать выделы с 3 классом бонитета, в состав насаждений которых входит сосна возрастом 110 лет (т.к. возраст был увеличен на 5 лет без изменения высоты и диаметра).

3В поле Выбрать колонки перечислите следующие поля:

Выделы.ГИСидентификатор, Выделы.НомерКвартала, Выделы. НомерВыдела, Выделы.КлассБонитета, Состав.Порода, Состав.Возраст, Состав.Высота_м, Состав.Диаметр_см, а в поле и поместить в таблицу:

записано Selection. Нажмите ОК для выполнения запроса.

4Если запрос был составлен верно, то на экране отобразится окно Query1 Список, записи которого удовлетворяют необходимым критериям, и для них теперь следует пересчитать значения высоты и диаметра.

5Вызовите команду меню Таблица Обновить колонку.

Соответствующее диалоговое окно заполните следующим образом:

Обновить таблицу: Query1 Обновить колонку: Высота_м Значения извлечь из: Query1

Значение: Высота_м + (Высота_м * 0.36 *5/100).

инажмите кнопку ОК. В таблице Состав для соответствующих пород будут изменены значения высоты.

6Повторным выполнением команды Таблица Обновить колонку измените диаметр, заполнив поле Значение: необходимой формулой.

Упражнение 9.

Измените данные березы 3 класса бонитета возрастом 65 лет, для которой годовой процент изменения высоты равен 1.05, а диаметра – 1.14.

Создание отчетов

Начиная с MapInfo Professional 5.0, в поставку включена полнофункциональная версия генератора отчетов Crystal Reports, позволяющая создавать отчеты из табличных данных.

26

Упражнение 10.

Создайте для запроса, сформированного в упражнении 4, отчет. Для этого:

1 Выполните команду Программы Crystal Reports Новый отчет.

Появится список всех открытых таблиц. Выберите имя соответствующей таблицы (если необходимой таблицы в списке нет, то откройте ее, вызвав команду Файл Открыть таблицу) и нажмите кнопку Отчет. Появится интерфейс приложения Crystal Report for MapInfo Pro.

2 Выполните команду Report Report Expert (Отчет Мастер отчетов). Откроется диалоговое окно Create Report Expert (Создание отчета мастером) (рис. 15), состоящее из вкладок Data (Данные), Fields

(Поля), Group (Сортировка), Total (Обобщение) и Style (Стиль), помогающих сформировать отчет.

Рис. 15 Окно создания отчета с помощью мастера

3Нажимая кнопку Next (Далее), просмотрите все вкладки и возможные параметры.

4Нажмите кнопку Preview Sample (Просмотр примера), чтобы просмотреть, как выглядит отчет на экране.

5Для сохранения отчета выполните команду File Save (Файл Сохранить).

27

6Закройте программу Crystal Report for MapInfo Pro.

7Для открытия ранее созданного отчета выберите команду Программы

Crystal Reports Открыть отчет. В окне открытия файла укажите имя отчета и нажмите кнопку Открыть.

8Запустится приложение Crystal Report for MapInfo Pro. Вызовите

команду File Print Preview, на экране появится отчет.

9 Закройте программу Crystal Report for MapInfo Pro.

Вопросы для самопроверки

1Что такое запрос, и какие задачи решаются с его помощью?

2Расскажите правила построения выражений для формулирования условий запроса.

3Какие возможности работы у команд меню Запрос Выбрать и Запрос SQL-запрос?

4Какой порядок заполнения диалогового окна SQL-запрос?

5Как выполнить обновление данных в таблицах?

6Как создать отчет к таблицам данных в MapInfo?

ЛАБОРАТОРНАЯ РАБОТА № 6

Тема работы: Выбор объектов в таблицах MapInfo по пространственным критериям.

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

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

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

28

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

Запросы к графическим объектам в таблицах

Функции над географическими объектами (такие, как Area (obj, str), Perimeter (obj, str) и др.) могут использоваться в запросах к таблицам, которые представлены объектами на карте. Такие запросы очень похожи на все другие запросы.

Упражнение 1.

Запустите MapInfo и откройте рабочий набор Планшет, знакомый из предыдущей лабораторной работы (рис. 7).

Упражнение 2.

Найдите на карте выделы, площадью более 50 000 м2. Для этого:

1Выполните команду Запрос SQL-запрос. На экране появится диалоговое окно SQL-запрос (рис. 11).

2Поместите курсор в поле из таблиц, а затем из выпадающего списка

Таблицы выберите Выделы.

3В поле с условием: введите Area(obj, "sq m")>50000.

4В поле поместить в таблицу введите название таблицы Площадь50000.

5В поле Выбрать колонки задайте НомерКвартала, НомерВыдела и

вычисляемое поле Area(obj, "sq m") "Площадь".

6Нажмите кнопку Проверить, и если ошибок нет, то щелкните по кнопке ОК.

7На экране появится окно Площадь50000 Список, в котором можно

увидеть значение площади объекта, и одновременно в окне Карты будут выделены выделы, площадью более 50 000 м2.

8Для сохранения результата запроса выполните команду Файл Сохранить копию. В появившемся окне Создать копию щелкните по таблице Площадь50000 и нажмите на кнопку Новое имя. В открывшемся окне выберите свою папку, введите имя Площадь50000 и нажмите кнопку

Сохранить.

Упражнение 3.

Найдите дороги на слое карты Лесные дороги и зимник, протяженностью более 1000 м, используя функцию вычисления длины полилинии ObjectLen(obj, "m"). В окне списка следует предусмотреть поле, вычисляемое длину дороги, чтобы убедиться в правильности выполнения запроса.

29

Использование в запросах взаимного расположения объектов в пространстве

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

 

Таблица 5

Географические операторы

Географический оператор

Назначение

Contains (Содержит)

Объект A содержит объект B, если центроид B

 

лежит в границах объекта A.

Contains Entire

Объект A полностью содержит объект B, если

(Полностью содержит)

граница B полностью лежит внутри границ A

Contains Part

Объект A содержит часть объекта B, если

(Содержит часть)

границы B частично лежат внутри границ A

Within (Внутри)

Объект A лежит внутри объекта B, если его

 

центроид лежит в границах B

Entirely Within

Объект A лежит полностью внутри объекта B,

(Полностью внутри)

если его граница полностью лежит внутри

 

границ B

Partly Within

Объект A лежит частично внутри объекта B,

(Частично внутри)

если его границы частично лежат внутри

 

границ объекта B

Intersects (Пересекает)

Объект A пересекается с объектом B, если они

 

имеют хотя бы одну общую точку

Различие между Contains и Within, с одной стороны, и Contains Entire и Entirely Within, с другой, состоит в том, что Contains и Within основаны на анализе центроида объекта, а Contains Entire и Entirely Within – на анализе всего объекта. Рис. 16 объясняет это различие.

а) б)

Рис. 16 Различие между географическими операторами

30

Для рис. 16, а) истинны будут выражения: объект А Содержит

(Contains) объект В и объект В Внутри (Within) объекта А; для рис. 16, б) – объект А Полностью содержит (Contains Entire) объект В, объект В Полностью Внутри (Entirely Within) объекта А. Выражения объект А Пересекает (Intersects) объект В и объект В Пересекает (Intersects) объект

Аистинны для обоих рисунков.

Вобоих случаях объект A содержит объект B, так как центроид объекта B лежит внутри границы объекта A. Однако на рис. 16, а часть объекта B лежит вне границ объекта A, а на рис. 16, б весь объект B лежит внутри объекта A. Только во втором случае можно сказать, что “объект A полностью содержит объект B” или что "объект B лежит полностью внутри объекта A”. Из того что A полностью содержит B, следует, что A содержит B; а из того, что B полностью лежит внутри A, следует, что B лежит внутри A.

При использовании операторов Within и Contains хотя бы один из объектов А или В должен быть графическим площадным объектом: полигоном, эллипсом, прямоугольником или скругленным прямоугольником.

Кроме того, какое условие использовать: Within или Contains, зависит от порядка объектов в выражении. Существуют следующие правила:

Within используется для проверки, находится ли первый из объектов-параметров внутри второго;

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

Сравнение расположения точки и области

Порядок записи объектов в операторах Внутри и Содержит для случая сравнения точки и области будет следующим:

точка Within (внутри) области;

область Contains (содержит) точку.

Упражнение 4.

На карте выберите выделы, содержащие любые условные знаки (символы или надписи), для этого:

1Выполните команду Запрос SQL-запрос. На экране появится диалоговое окно SQL-запрос (рис. 11).

2Поместите курсор в поле из таблиц, а затем из выпадающего списка

Таблицы выберите Выделы и Семантика. В поле с условием: введите Выделы.Obj Contains семантика.Obj (если автоматически появилось другое условие, то удалите его).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]