Нехитрые советы для пользователей ПК

Архив за месяц: Январь 2020

1, который существует , например в языке T-SQL (можно посмотреть здесь).

Однако, продолжим … Создаем второй запрос, в котором будем использовать результаты  Query1 :

В приведенном на форме слева запросе выведем в результирующий список наименования нас. пунктов, встречающиеся более 3-х раз. Сортировать результаты будем по первому полю в порядке возрастания по алфавиту — предложение 1 asc в поле Сортировать по .

Условие запроса для нашего примера будет таким: name in (Select name from query1 where col2 > 3)

Результат будет выглядеть сл. образом — как и следовало ожидать, наиболее ‘популярными’  являются названия Александровка, Каменка, Поповка , Березовка и пр. :

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

Мндаа …  Диалектика,  однако — от просто к сложному 🙂   За сим разрешите откланяться …

© Simashkov.2015

04.05.2015 г.

Назад

Назад

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

Решить такую задачу проще всего с использованием файла-подключения со специальным расширением .udl (Universal Data Link). Алгоритм действий может быть следующий.

Создаём, например в Total Commander‘ е (по Shift+F4) файл с расширением udl. Пусть это будет test.udl:

screen1-3020846

Затем дважды щёлкаем по нему:

screen6-8802866

На следующей форме выбираем, например, драйвер для MS SQL Server:

screen3-6160384

На форме выше жмём кнопку Далее и выбираем соответствующие опции:

screen4-2454800

Жмём на кнопку Проверить подключение и если всё OK видим следующий результат :

screen5-8602860

Как создать и протестировать  подключение к базе данных из средства разработки MS Visual Studio — смотрите здесь

27.04.2011

Назад

 Администрирование,  ищем пункт Источник данных(ODBC) и дважды щёлкаем по нему:

screen1-6394429

Видим следующую форму и идём на вкладку Файловый DSN:

screen2-3113987

Жмём на кнопку Добавить и в следующей форме выбираем (для нашего случая) драйвер MS Access:

screen11-6472019

Двигаемcя дальше и указываем источник данных — нужную нам базу:

screen3-7487198

Жмём кнопку OK и вводим имя файлового источника данных — пусть он будет называться MySource:

screen4-2594695

Созданный файловый DSN является ничем иным, как простым текстовым файлом, в котором хранятся параметры созданного соединения и его можно просмотреть любым текстовым редактором:

screen5-9997329

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

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

 Ну вот… Предварительную работу провели. Теперь запускаем MapInfo и идём Файл>Открыть соединение с СУБД и на вкладке Файловый источник данных выбираем созданный только-что файл MySource.dsn:

screen6-2118802

Теперь на Панели инструментов СУБД жмём кнопку Открыть соединение screen7-8289135

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

screen8-3527570

Для возможности вносить изменения прямо в базу MS Access выбираем опции, как показано ниже:

screen12-7949347

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

Наконец-то нужная нам таблица открыта:

screen9-7145440

Теперь, если вы открыли её в режиме Прямого доступа, все изменения в ней будут отражаться и в вашей базе данных! (При условии, естественно, что вы всё сохраните 🙂 … Для этого не забываем Сохранить таблицу и по окончании работы с БД идём Файл>Закрыть соединение с СУБД или жмём соответствующую кнопку на Панели инструментов СУБД :

 screen13-5929516

Как решить аналогичную задачу по подключению к СУБД из ArcGIS 10, можно посмотреть на нашем сайте здесь.

©Simashkov.2011.

02.02.2011 г.

Назад

Открыть :

sql4-8665987

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

sql5-3363585

Выглядеть текст скрипта для нашего учебного случая будет приблизительно сл. образом (прим. смысл скрипта в том, что он просто вставляет конструкцией insert into значения, взятые из исходной dbf -таблицы ):

sql6-3426138

Жмём F5 (или кнопку Выполнить) и в таблице master можем увидеть нашу отконвертированную таким образом dbf-табличку :

sql8-9196886

О том, как ещё можно экспортировать/импортировать данные из/в MS SQL Server смотрите

здесь

© Simashkov.2014

29.03.2014 г.

Назад

Ниже приведен пример(образец) оформления в программе Surfer тематической картограммы по показателю кислотности pH для районного агрохимического атласа, созданной в Лаборатории АгроГИС-технологий (г. Калуга). Картограмма создана на основе  интерполированной тематической поверхности — в данном случае, по показателю кислотности почв pH по результатам агрохимического обследования Козельского района Калужской области. Масштаб районной картограммы — в 1 см 800 метров.

Пример оформления аналогичной картограммы в ГИС MapInfo смотрите здесь

kze_surf1200x1700-6209038

 

 

Поверхность), то её будет необходимо импортировать. Для этого загружаем Vertical Mapper и идём меню Vertical Mapper>Create Grid>Import Grid:

ris5-8507150

Далее следует форма настроек импорта сетки .mig :

Так, подготовительную работу провели. Теперь можно непосредственно переходить к решению поставленной задачи. Если расширение Vertical Mapper загружено, то необходимо вызвать панель Менеджера Сеток по соотв. кнопке. Далее жмём на кнопку Analysis>Point Inspection:

ris8-1571569

Выбираем слой точек, для которого будем извлекать значения растра — points в нашем случае:

ris9-5537336

Жмём OK и видим, что в новое поле ph5_1 программа занесла значение растра в точке. Теперь наша учебная карта может выглядеть приблизительно так:

ris10-7326003

Ещё один подход к обсуждаемой теме с использованием расширения Discover представлен в

следующем пункте

Как решить аналогичную задачу по извлечению значения интерполированного растра в точке, используя ArcGIS, можно посмотреть на нашем сайте здесь

Прим. от 20.11.2015 В версии MapInfo 15 реализован функционал для извлечения Z-параметра в точке. Более подробно можно посмотреть здесь

© Simashkov.2012

23.11.2012 г.

Назад

ArcGIS соответствующее приложение для создания 3D моделей карт — ArcScene.  Для начала в нём из приложения ArcCatalog (так проще всего) просто ‘вытягиваем’ мышкой только-что созданную интерполированную поверхность:

fig22-8799019

В том, что наша 3D карта пока выглядит не совсем изящно, нет ничего страшного. Это всего лишь, условно говоря, пока сырье, полуфабрикат. Сейчас займемся его обработкой. Для начала по контекстному меню Scene Properties в Таблице содержания (ТОС) перепроецируем карту:

fig15-7454271

В  появившейся форме кликаем  на вкладку Coordinate System и выбираем проекцию Меркатора (для нашего примера):

fig16-2505968

Следующий шаг — опять в Таблице содержания становимся уже на поверхность и по меню Properties идём на вкладку Symbology

fig17-8464795

… и выбираем более выразительную цветную палитру (ramp),  ну например такую:

fig20-7208802

Теперь настало время подгрузить в  сцену топографический планшет — ‘задрапировать’ им нашу поверхность. Опять-таки, просто вытягиваем его мышкой из соответствующего каталога в Окно представления карты:

fig19-5979845

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

Поначалу наша сцена может выглядеть не совсем привлекательно:

fig24-6049789

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

Во-первых, становимся на слой топокарты и по меню Properties,  идём на вкладку Rendering (Отрисовка) и сдвигаем ползунки в панели Optimize в сторону наилучшего качества:

fig6-4539104

Второй важный момент. На вкладке Display в опциях интерполяции растра обязательно меняем с принятой по умолчанию for discrete data (для дискретных данных) на любую for continuous data (для непрерывных данных). Это существенным образом улучшит качество картинки топокарты :

fig4-1744609

Остался ещё важный пункт для создания качественной картинки 3D карты . На вкладке Base Heights (Базовые высоты) выставляем опцию Floating on a custom surface и устанавливаем масштаб отображения высот рельефа:

fig2-3874969

Фактор отображения пропорциональности рельефа (7.5 на рисунке слева) во многом зависит от контекста конкретной 3D сцены и его нужно подбирать индивидуально в зависимости от характера ваших данных. Меньшие значения это фактора соответствуют более ‘плоскому’ отображению рельефа.

Далее ( по вкусу) можно переходить к ‘водным процедурам’ — попробовать поэкспериментировать на вкладке Display с опциями прозрачности, контрастности и яркости для слоя топокарты и поверхности высот, добиваясь их наиболее выразительной визуализации. Один из таких вариантов сцены представлен ниже:

fig5-9029758

… или в более крупном масштабе (зуме):

rel3darcscene_up5-5252943

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

Ссылки

1. О создании тематической 3D карты в ArcGIS можно посмотреть ещё здесь

2. Как решить аналогичную задачу по созданию 3D карты в MapInfo, можно посмотреть на нашем сайте в этой статье

Выбрать . Далее, как показано выше идём меню Surface>Assign grid cell value и в сл. форме задаём поле, в в которое будем писать извлечённое значение растра:

fig4-9998656

Жмём OK и после небольших манипуляций можно увидеть приблизительно такую картинку:

fig5-1784269

В поле ZVal программа записала значение интерполированной поверхности в точке.

Как решить аналогичную задачу по извлечению значения интерполированного растра в точке, используя ArcGIS, можно посмотреть на нашем сайте здесь

© Simashkov.2012

01.12.2012 г.

Назад

 Каталог Программ и ставим птичку напротив пункта Нарисовать сетку:

screen2-8614968

Прим. В более поздних 64-х разрядных версиях MapInfo с ленточным интерфейсом инструмент Grid Maker можно найти на вкладке Home>Tools :

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

screen3-7324493

Чтобы создать аккуратную сетку (в смысле без лишних областей) желательно заранее определить координаты крайних северных, южных, западных и восточных точек нашей карты — как это сделать, можно посмотреть на нашем сайте тут

 Результат наложения построенной таким образом сетки на нашу карту будет выглядеть приблизительно так:

screen5-9729448

Но описанная выше утилита Grid Maker работает только в географической системе координат (Широта/Долгота). Если вы попытаетесь с помощью её построить сетку на плоскости в прямоугольной системе координат XY, то скорее всего  у вас ничего не получиться:

screen11-3490917

Для построения «прямоугольных» сеток можно воспользоваться удобной утилитой GridWine, которую можно качнуть отсюда. Для загрузки указанной утилиты идём Программы>Запустить программу MapBasic:

screen8-8447052

После этого в строке меню появляется пункт Grid. Идём меню Grid>Build и мышкой отмечаем левый нижний и правый верхний углы. Затем указываем шаг сетки. Пусть в нашем случае это будет 25 километров:

screen9-3970416

Сохраняем построенную таким образом сетку и добавляем  её к нашей учебной карте:

screen10-5787570

Ещё один подход к созданию координатных сеток может быть реализовать с помощью малоизвестного (к сожалению) расширения Discover к ГИС MapInfo. Предположим, что наша исходная карта выглядит так:

fig3-9549957

Как показано на рисунке выше, для создания сетки идём меню Discover>Map Grid. Далее попадаем в форму настроек координатной сетки:

fig4-7560327

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

fig2-6641301

Карты с построенными таким образом сетками становятся гораздо более профессиональными,  выразительными и грамотно оформленными. К чему мы собственно и стремимся …

Ссылки к статье

1. Как выполнить аналогичную задачу по созданию сеток в ArcGIS можно посмотреть на нашем сайте здесь.

2. О том, как создать координатные сетки в графических редакторах — смотрите на нашем сайте тут

3. Как ещё создать зарамочное оформление градусной сетки с помощью утилиты Planshet в MapInfo  смотрите в этой статье

4. В 15-й версии появился еще один способ создания сеток. Более подробная информация здесь— 27.11.2015 г.

©Simashkov.2011.

02.02.2011 г.

Назад

Open Attribute Table):

screen4-2489426

Таак, подготовительную работу провели. Теперь можно нанести наши данные на карту. Для этого становимся на нашу табличку, жмём правую кнопку и выбираем Display XY Data:

screen5-4264416

Появляется сл. диалоговое окно, в котором мы должны указать, из каких колонок брать координаты X/Y:

screen6-1787641

Если всё было сделано правильно, то  сможем увидеть наши точки на карте:

screen9-5714782

Теперь, при необходимости, можно сохранить наши данные в виде файла-слоя (*.lyr) — правая кнопка> Save As Layer File, или сохранить в базе геоданных — Data>Export Data:

screen11-9623069

В этом случае необходимо указать базу геоданных, в которой будем хранить наши результаты (как пример):

screen12-4025255

Если нужно узнать о создании линии по набору точек — смотрите эту

статью Как решить аналогичную задачу в ГИС

MapInfo —

можно посмотреть на нашем сайте здесь

©Simashkov.2011

27.03.2011 г.

Назад