Содержание
Дискретные и непрерывные данные—ArcMap | Документация
Доступно с лицензией 3D Analyst.
- Дискретные и непрерывные пространственные объекты
- Постепенное изменение непрерывных данных
- Дискретные или непрерывные?
Значения, присваиваемые ячейкам поверхности, могут быть представлены как дискретными, так и непрерывными данными. Пространственные объекты и поверхности в ArcGIS могут быть представлены дискретными и непрерывными данными.
Дискретные данные, также известные как категорийные или прерывистые, в основном используются для представления объектов как в векторных, так и в растровых системах хранения данных. Дискретные объекты имеют четко определяемые границы. Нетрудно точно определить, где начинается и где заканчивается такой объект. Озеро – это дискретный объект, окруженный ландшафтом. Место, где кончается вода и начинается суша, можно четко определить. К другим дискретным объектам относятся здания, дороги и земельные участки. Дискретные объекты обычно обозначаются существительным.
Непрерывные данные, или непрерывная поверхность, отображают явление, в котором каждая точка поверхности является мерой плотности, мерой отношения к некой фиксированной точке пространства или отношением к точке происхождения. Непрерывные данные также называются полями, не дискретными (непрерывными) данными или данными поверхности.
Один из типов непрерывной поверхности вычисляется на основе характеристик, определяющих поверхность, в которой каждая точка пространства вычисляется относительно фиксированной регистрационной точки. Сюда относится высота (фиксированная точка – уровень моря) и экспозиция (фиксированная точка – одно из направлений: север, восток, юг, запад).
Дискретные и непрерывные пространственные объекты
Большинство приложений ArcGIS используют дискретную географическую информацию, например, собственность земельных участков, классификацию почв, зонирование и землепользование. Эти типы данных отображаются с помощью номинальных, порядковых, интервальных и относительных значений. Поверхности представлены непрерывными данными, такими как высоты, количество осадков, концентрация загрязнений и т.д. Эти данные могут быть представлены в виде непрерывной поверхности, которая, в основном, не имеет резких переходов.
Дискретные объекты
Дискретные объекты не являются непрерывными и имеют четкие границы. Например, дорога имеет известную ширину и длину и представлена на карте в виде линии. Карта собственности на землю отражает границы между различными участками. Существуют четкие отличия в характеристиках (имя владельца, номер участка и тип собственности) между каждым пространственным объектом карты.
Примеры дискретных пространственных объектов показаны на карте землевладений.
Дискретные пространственные объекты карты также могут быть представлены в виде тематических данных. Эти данные или объекты легко отображаются на карте в виде точек, линий или полигонов. К настоящему моменту вы уже должны знать, как структура данных ArcGIS используется для отображения топологических отношений двумерных пространственных объектов. Объекты карты могут иметь атрибуты, использующиеся для их описания, присвоения символов и создания надписей. Кроме того, имеется возможность проведения дополнительного анализа для определения или выявления новых взаимосвязей между этими пространственными объектами.
Непрерывные пространственные объекты
Непрерывные пространственные объекты не имеют четких границ в пространстве. В основном переход между возможными значениями на непрерывной поверхности происходит без резкого изменения значений. Атрибут поверхности хранится как z-значение, единственная переменная, связанная с парой координат x,y. Например, значения высот являются непрерывными по всей поверхности. Любое представление поверхности является только образцом (поднабором) значений всей поверхности.
Постепенное изменение непрерывных данных
Второй тип непрерывной поверхности демонстрирует явление, постепенно меняющееся по мере удаления от точки-источника. В качестве примеров таких покрытий можно привести данные по движению жидкостей или воздуха. Эти поверхности характеризуются способом перемещения явления.
Один тип движения – это сквозная диффузия или любое другое перемещение, при котором явление движется от областей с высокой концентрацией к областям с низкой концентрацией до тех пор, пока не произойдет выравнивание. К характеристикам поверхности с таким вариантом перемещения относятся, например, концентрация соли, распределяющаяся по воде или земле, распространение нефтяного пятна или распределение огня от центра лесного пожара. Поверхности такого типа должны иметь источник. Концентрация у источника всегда выше, затем она снижается как функция расстояния и параметров среды распространения.
В приведенном выше примере поверхности с источником концентрация явления в любой точке является функцией проникающей способности.
Еще один тип движения определяется собственной характеристикой движущегося объекта или режимом движения. Например, распространение звуковой волны от точки взрыва бомбы является собственной характеристикой звука и параметров среды, в которой он распространяется. Способ перемещения также может ограничивать и прямо влиять на поверхность концентрации объектов, как в случае с распространением семян какого-либо растения. Все способы распространения – посредством пчел, человека, ветра или воды, влияют на поверхность концентрации распространения семян растения.
К другим примерам движения относятся: распределение популяций животных, расположение потенциальных покупателей магазина (автомобиль – средство передвижения, время в пути – лимитирующий фактор), распространение заболевания.
Дискретные или непрерывные?
При моделировании большого количества пространственных объектов, можно заметить, что границы между непрерывными и дискретными объектами часто размыты. При отображении пространственных объектов, создается континуум, предельные значения которого могут быть дискретными или непрерывными объектами. Большинство пространственных объектов укладываются в промежуток между предельными значениями.
Примерами объектов, которые создают континуум, могут быть типы почв, границы лесов, заболоченных участков, а также географические рынки, формирующиеся посредством телевизионной рекламы. При определении места объекта в непрерывно-дискретном континууме, ключевым фактором будет простота нахождения его границ. Не имеет значения, где именно находится объект в континууме, растр может отобразить его с большей или меньшей точностью.
Принимая решение на основе полученного результата, важно понимать особенности моделирования различных типов данных, как непрерывных, так и дискретных. Точное место постройки здания не должно основываться только на типе почвы. Площадь лесного участка не может являться основным фактором, определяющим количество населяющих его оленей. Маркетинговая программа не должна основываться только на данных о географическом рынке, зависящим от распространения телевизионной рекламы. Достоверность и точность границ во входных данных, имеет первостепенное значение.
Связанные разделы
Дискретные и непрерывные данные – в чем разница?
Дискретные и непрерывные данные – в чем разница?
Для такого простого слова «данные» – довольно сложная тема. Например, «любовь» или «новости». Есть структурированные и неструктурированные данные. Тогда у вас есть качественные и количественные данные.
Теперь мы хотели бы изучить еще два типа данных – дискретный и непрерывный – и помочь вам понять разницу. (Тогда ваша организация может использовать статистическое программное обеспечение, чтобы получить представление о обоих типах.)
Загрузить программу ВІ
Демонстрации решений
Оглавление
Для такого простого слова «данные» – довольно сложная тема. Например, «любовь» или «новости». Есть структурированные и неструктурированные данные. Тогда у вас есть качественные и количественные данные.
Теперь мы хотели бы изучить еще два типа данных – дискретный и непрерывный – и помочь вам понять разницу. (Тогда ваша организация может использовать статистическое программное обеспечение, чтобы получить представление о обоих типах.)
Посмотреть самое простое в использовании программное обеспечение для статистического анализа →
Чем больше вы понимаете об этих уникальных типах данных, тем больше вы сможете определить возможности, в которых каждый из них может пригодиться. Затем вы можете использовать эту информацию, чтобы принести пользу своему бренду, независимо от того, являетесь ли вы специалистом по обработке данных, аналитиком данных, инженером по обработке данных – или просто поклонником цифр.
Дискретные и непрерывные данные
При рассмотрении набора чисел они обычно являются дискретными (счетными) переменными или непрерывными (измеряемыми) переменными. То, как вы изучаете эти данные, должно отличаться в зависимости от того, к какой группе они относятся. Это, безусловно, повлияет и на то, как это будет измеряться.
В чем разница между дискретными и непрерывными данными?
Дискретные данные включают в себя круглые конкретные числа, которые определяются путем подсчета. Непрерывные данные включают комплексные числа, которые измеряются в течение определенного интервала времени.
Простой способ описать разницу между ними – визуализировать график точечной диаграммы в сравнении с линейным графиком.
Когда вы соберете набор круглых определенных чисел, они окажутся на своем месте на графике, похожем на те, что показаны слева. Дискретные данные относятся к отдельным счетным предметам.
Когда вы измеряете определенный поток данных со сложным диапазоном результатов, эти результаты будут обозначены линией в виде диапазона данных (см. Графики справа). Непрерывные данные относятся к изменениям с течением времени, включая концепции, которые не просто подсчитать, но требуют подробных измерений.
Подождите, пока мы немного раскроем эти термины для лучшего понимания.
Что такое дискретные данные?
Некоторые синонимы слова «дискретный» включают: разъединенный, отдельный и отдельный. Их можно легко применить к идее дискретных данных.
Мы собираем данные, чтобы найти взаимосвязи, тенденции и другие концепции. Например, если вы отслеживаете количество отжиманий, которые вы делаете каждый день в течение месяца, основной целью является оценка вашего прогресса и скорости улучшения.
С учетом сказанного, ваш дневной счет – это дискретное, изолированное число. Нет четкого диапазона того, сколько вы можете сделать за один день, поэтому отношения остаются неопределенными. Чем больше информации вы собираете с течением времени, тем больше идей вы можете сделать, например, что среднее количество отжиманий, которые вы делали на прошлой неделе, составляло 15 отжиманий в день, что на 5 отжиманий в день больше, чем неделей ранее. Между тем, сами числа отжиманий – это целые, круглые числа, которые нельзя разбить на более мелкие части.
Забавное практическое правило состоит в том, что во многих случаях дискретным данным может предшествовать «количество».
Примеры дискретных данных
Некоторые примеры дискретных данных, которые можно собрать:
- Количество клиентов, купивших разные товары
- Количество компьютеров в каждом отделе
- Количество товаров, которые вы покупаете в продуктовом магазине каждую неделю.
Дискретные данные также могут быть качественными. Национальность, которую вы выбираете в форме, – это отдельные данные. Национальность каждого на вашей работе, если сгруппировать вместе с помощью программного обеспечения для работы с электронными таблицами, может быть ценной информацией при оценке вашей практики найма.
Посмотреть бесплатное программное обеспечение для электронных таблиц с самым высоким рейтингом →
Национальная перепись состоит из дискретных данных, как качественных, так и количественных. Подсчет и сбор этой идентифицирующей информации углубляет наше понимание населения. Это помогает нам делать прогнозы о будущем, документируя историю. Это отличный пример силы дискретных данных.
Что такое непрерывные данные?
Непрерывные данные относятся к нефиксированному количеству возможных измерений между двумя реалистичными точками.
Эти числа не всегда чистые и аккуратные, как те, которые содержатся в дискретных данных, поскольку они обычно собираются на основе точных измерений. Со временем измерение определенного объекта позволяет нам создать определенный диапазон, в соответствии с которым мы можем разумно ожидать сбора большего количества данных.
Непрерывные данные – это все о точности. Переменные в этих наборах данных часто имеют десятичные точки, а число справа растянуто, насколько это возможно. Этот уровень детализации имеет первостепенное значение для ученых, врачей и производителей, и это лишь некоторые из них.
Примеры непрерывных данных
Некоторые примеры непрерывных данных включают:
- Вес новорожденных малышей
- Суточная скорость ветра
- Температура морозильной камеры
Когда вы думаете об экспериментах или исследованиях, включающих постоянные измерения, они, вероятно, в некоторой степени связаны с непрерывными переменными. Если где-нибудь в таблице у вас есть число вроде «2,86290», это не то число, которое вы могли бы легко вычислить сами – подумайте об измерительных устройствах, таких как секундомеры, весы, термометры и тому подобное.
Задача с использованием этих инструментов, вероятно, применима к непрерывным данным. Например, если мы отслеживаем каждого бегуна на Олимпийских играх, время будет отображаться на графике вдоль соответствующей линии. Несмотря на то, что с годами наши спортсмены становятся быстрее и сильнее, никогда не должно быть выбросов, искажающих остальные данные. (Даже Усэйн Болт всего на пару секунд быстрее, чем историческое поле, если говорить об этом.)
На этой линии есть бесконечные возможности (например, 5,77 секунды, 5,772 секунды, 5,7699 секунды и т. Д.), Но каждое новое измерение будет постоянно находиться где-то в пределах диапазона.
Не каждый пример непрерывных данных будет аккуратно попадать в прямую линию, но со временем диапазон станет более очевидным, и вы можете сделать ставку на новые точки данных, застрявшие внутри этих параметров.
Важность как непрерывных, так и дискретных данных
Тот факт, что мы поставили «против» в заголовке этого блога, не означает, что это соревнование (хотя мы не остановим вас от создания футболок «Team Discrete» или «Team Continuous»).
Дело в том, что оба типа одинаково ценны для сборщиков данных, и каждый день вы будете сталкиваться с моментами, которые приводят к измерениям, которые могут по праву способствовать любому типу данных. Любое всестороннее исследование формируется за счет объединения этих двух уникальных групп данных.
Почитать еще
Введение в анализ временных рядов
Хотя для анализа данных используются все многочисленные передовые инструменты и методы, такие как наука о
История развития моделей данных
Итак, прыгайте на борт и наслаждайтесь путешествиями во времени наших попыток справиться с временностью в
Машинное обучение
Глубокое обучение – это продвинутая форма машинного обучения. Глубокое обучение относится к способности компьютерных систем, известных
Правила эффективного прогнозирования
Интуиция очень важна. С ее помощью было создано большое количество хороших прогнозов. Но нужно всегда
Выборка. Типы выборок
Суммарная численность объектов наблюдения (люди, домохозяйства, предприятия, населенные пункты и т. д.), обладающих определенным набором признаков
Обзор самых популярных алгоритмов машинного обучения
Существует такое понятие, как «No Free Lunch» теорема. Её суть заключается в том, что нет
Обзор основных видов сегментации
Загрузить программу ВІ Демонстрации решений Аналитика бизнеса Оглавление Сегментация бренда Сегментация помогает принимать более эффективные
Алгоритмы машинного обучения
В одной из статей мы познакомились с основами машинного обученияи, хотя кратко, но очень лаконично, мы
Полное руководство по анализу текста
Напоминание – это количество правильных результатов, разделенное на количество результатов, которые должны были быть возвращены. Загрузить
Читайте о всех решениях
Какие бы задачи перед Вами не стояли, мы сможем предложить лучшие инструменты и решения
Смотреть
Несколько видео о наших продуктах
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
Проиграть видео
Как аналитика данных помогает менеджерам компании
vladimjh3021-03-16T15:33:58+02:00
Дискретные параметры — документация pyABC
В этой записной книжке мы обсуждаем возможности pyABC по работе с дискретными параметрами.
В своем последовательном алгоритме Монте-Карло pyABC использует переходные ядра \(g_t\), которые предлагают параметры для генерации \(t\) путем слегка искажающих параметров, принятых при генерации \(t-1\). Таким образом, постепенно выбирая из все более и более лучшего приближения апостериорного, а не априорного, мы можем уменьшить порог приемлемости \(\varepsilon\), сохраняя при этом высокие показатели приемлемости. Чтобы учесть отсутствие выборки из предыдущего \(\pi\), нам нужно взвесить
частицы на \(\pi(\theta) / g_t(\theta)\).
Формальное требование к любому переходу состоит в том, что априор абсолютно непрерывен по отношению к нему, т. е. \(g_t\gg\pi\). Это означает, что любое значение, которое имеет положительную массу в априорном состоянии, все еще может быть сэмплировано при переходе. В остальном переход может быть произвольным. Как правило, он должен быть близок к базовому апостериорному для достижения высоких показателей приемлемости. pyABC предлагает различные ядра переходов, которые автоматически адаптируются к структуре проблемы и, таким образом, обеспечивают
качественные предложения. Ядро перехода по умолчанию pyabc.MultivariateNormalTransition
, а также ядро pyabc.LocalTransition
используют (локализованные/перемасштабированные) многомерные нормальные ядра с адаптивными ковариационными матрицами. Поэтому они могут узнать о шкалах параметров и корреляциях.
Однако они могут работать только с непрерывными параметрами.
Иногда параметры могут принимать только дискретные значения и, следовательно, также должны моделироваться как таковые, например. через дискретный целочисленный априор. В этом случае вышеуказанные переходы не могут быть применены, так как они предлагают нецелочисленные параметры. Что касается реализации, самый простой способ справиться с этим — просто округлить предлагаемые параметры до следующего целого числа. Однако, чтобы затем получить статистически правильные веса, нужно было бы интегрировать переходную плотность по всем
значения, округленные до одного и того же значения. Это может быть нетривиальным с вычислительной точки зрения и также не реализовано в pyABC, где вместо этого можно было бы просто взять значение плотности при фактически отобранных параметрах в качестве приближения, что не совсем правильно.
Для эффективной и правильной работы с дискретными параметрами pyABC также реализует дискретные переходы как классы, производные от pyabc.transition.DiscreteTransition
. Покажем пример:
# установить, если еще не сделали !pip установить pyabc --quiet
импортировать matplotlib.pyplot как plt импортировать numpy как np импортировать pyabc %matplotlib встроенный pyabc.settings.set_figure_params('pyabc') # для улучшенных графиков
Предположим, что у нас есть модель с двумя параметрами: параметр непрерывной дисперсии и параметр среднего значения, который по какой-то причине может принимать только целые значения от 0 до 6. Чтобы немного оживить ситуацию и получить нетривиальное апостериорное распределение, модель случайным образом возмущает среднее значение смещением \(\pm 2\).
n_data = 100 модель защиты (р): возвращаться { 'y': p['p_discrete'] + np.random.choice([-2, 0, 2], p=[0,2, 0,5, 0,3]) + p['p_continuous'] * np. random.normal(size=n_data) } расстояние = лямбда x, x0: сумма ((x['y'] - x0['y']) ** 2) p_true = {'p_discrete': 2, 'p_continuous': 0,5} obs = модель (p_true)
# построить данные топор = plt.hist(obs['y']) plt.xlabel("Наблюдаемый y_i") plt.ylabel("Частота") plt.title("Данные") plt.show()
В настоящее время предлагается два класса. Во-первых, это pyabc.DiscreteRandomWalkTransition
, аналогично реализованный и в других инструментах. Сначала он выбирает значение параметра из взвешенного последнего поколения, а затем выполняет случайное блуждание фиксированного числа шагов. Хотя он может иметь дело с неограниченными дискретными областями, его недостаток состоит в том, что он нарушает условие абсолютной непрерывности и, таким образом, не будет здесь далее рассматриваться. Дайте нам знать, если вы хотите обсудить
дополнительные подробности об этом.
Здесь мы сосредоточимся на втором реализованном дискретном переходе, pyabc.DiscreteJumpTransition
, для которого требуется конечный домен. Он также сначала выбирает значение параметра из взвешенного последнего поколения и обеспечивает абсолютную положительность, с положительной вероятностью 1 - p_stay
перемещаясь к произвольному другому значению в пределах домена.
Поскольку у нас здесь также есть еще один непрерывный параметр (для которого мы просто используем pyabc.MultivariateNormalTransition
), мы используем pyabc.AggregatedTransition
для объединения обоих.
# область возможных дискретных значений дискретный_домен = np.arange(7) # приоры до = pyabc.Distribution( p_discrete=pyabc.RV('rv_discrete', значения=(discrete_domain, [1 / 7] * 7)), p_continuous=pyabc.RV('однородный', 0, 2), ) # переходные ядра переход = pyabc.AggregatedTransition( сопоставление = { 'p_discrete': pyabc.DiscreteJumpTransition( домен = дискретный_домен, p_stay = 0,7 ), 'p_continuous': pyabc.MultivariateNormalTransition(), } )
Ядра перехода подстраиваются под структуру задачи с помощью функций fit()
, которые вызываются после каждого поколения.
Запустим:
абв = pyабв.ABCSMC( модель, предыдущая, расстояние, переходы = переход, популяция_размер = 1000 ) abc.new (pyabc.create_sqlite_db_id(), обс) история = abc.run (max_nr_populations = 5)
INFO:Sampler:Распараллеливание выборки на 4 ядрах. ИНФОРМАЦИЯ:История:НачалоINFO:ABC:Калибровочный образец до t=0. ИНФОРМАЦИЯ: эпсилон: начальный эпсилон равен 532,89.85207147157 ИНФОРМАЦИЯ: ABC: t: 0, eps: 532.8985207147157. ИНФОРМАЦИЯ: ABC: Скорость приема: 1000/1943 = 5,1467e-01, ESS=1,0000e+03. ИНФОРМАЦИЯ: ABC: t: 1, eps: 246,51277130629907. ИНФОРМАЦИЯ: ABC: Скорость приема: 1000/2957 = 3,3818e-01, ESS=9,3208e+02. ИНФОРМАЦИЯ: ABC: t: 2, eps: 139.40880503967205. ИНФОРМАЦИЯ: ABC: Скорость приема: 1000/4961 = 2,0157e-01, ESS=9,2875e+02. ИНФОРМАЦИЯ: ABC: t: 3, eps: 97,37696808219137. ИНФОРМАЦИЯ: ABC: Скорость приема: 1000/5822 = 1,7176e-01, ESS=8,5079e+02. ИНФОРМАЦИЯ: ABC: t: 4, eps: 43,89834541733582. ИНФОРМАЦИЯ: ABC: Скорость приема: 1000 / 7134 = 1,4017e-01, ESS = 9.0801e+02. INFO:pyabc.util:Остановка: максимальное количество поколений. INFO:History:Done
В результате мы видим, что мы идеально воспроизводим 3 вероятных средних параметра с их соответствующими вероятностями. Со временем апостериорное приближение постепенно становится более точным.
# некоторые визуализации рис, оси = plt.subplots(history.max_t + 1, 2, figsize=(6, 12)) для t в диапазоне (history.max_t + 1): pyabc.visualization.plot_kde_1d_highlevel( история, 'р_непрерывный', т=т, ссылка = p_true, хмин=0, хмакс=2, ось = оси [t, 0], ) pyabc.visualization.plot_histogram_1d( история, 'p_discrete', т=т, бункеры = np.arange (8), выровнять = 'левый', топор=оси[t, 1], ) axes[t, 0].set_ylabel(f"Апостериорный t={t}") fig. tight_layout()
Определить параметры в слое запроса — ArcGIS Pro
Оператор SQL, определяющий источник слоя запроса, является статическим. Однако бывают ситуации, когда части операторов SQL заранее неизвестны. Например, когда вы отображаете сводные данные об осадках, вы можете не знать, захочет ли программа для чтения карт агрегировать значения осадков по станциям по дням, неделям или месяцам. Параметры в слоях запроса делают компоненты оператора SQL динамическими. Параметр запроса можно рассматривать как переменную инструкции SQL, значение которой определяется при выполнении запроса. Ниже приведены два типа параметров запроса:
- Параметры диапазона динамически связывают числовые или временные значения с ползунками диапазона и времени. Например, рассмотрим запрос SQL, который включает параметр диапазона WHERE ::r:myRangeVar1.
SQL-запрос, отправляемый в базу данных, выглядит следующим образом: WHERE aField = value или WHERE aField => value1 AND aField <= значение2, в зависимости от того, одно или два значения передается ползунком диапазона.
- Дискретные параметры обновляют запрос литеральными значениями при выполнении запроса. Например, рассмотрим SQL-запрос, который определяет уровень запроса и включает два дискретных параметра: WHERE city_population > ::population AND state_name = ::name. Когда для каждого параметра указаны такие значения, как 10000 и Калифорния, соответственно, SQL-запрос, отправляемый в базу данных, имеет вид WHERE city_population > 10000 AND state_name = ‘California’.
Уровень запроса определяется запросом SQL, который указывается при создании слоя запроса. Вы можете создать слой запроса с помощью инструмента геообработки Создать слой запроса, но вы не можете определить параметры с помощью этого инструмента. Чтобы использовать параметры в операторе SQL, измените слой запроса в диалоговом окне «Редактировать запрос».
Если вам нужен слой запросов, позволяющий просматривать агрегированные значения по дате, времени или числовым диапазонам, используйте кнопку Сделать
Инструмент геообработки Aggregation Query Layer для построения слоя запроса с включенной динамической агрегацией и определения запроса
параметры для отображения результатов.
Параметры диапазона
Параметры диапазона работают либо с числовыми (целыми или двойными), либо со значениями даты и времени для динамического отображения данных на ползунке времени или диапазона. Они объявляются без ссылки на поле или выражение, и в SQL-запросе не используются логические операторы. Вместо этого поле или выражение задаются как свойство параметра. Перед параметрами диапазона стоит ключевое слово ::r:. Вы используете параметры диапазона, когда предложение SQL-запроса WHERE зависит от полей, не входящих в список SELECT.
Пример: WHERE ::r:MyRangeParameter
При объявлении параметра диапазона необходимо указать поле или выражение, тип данных и, при необходимости, значения по умолчанию и псевдоним, которые будут использоваться в ползунках. Нажмите Значение по умолчанию, чтобы ввести минимальное и максимальное значения по умолчанию. Если этот флажок установлен, вы должны ввести хотя бы одно значение для проверки выражения. Значения по умолчанию могут быть литералами значений (фактическое число или дата) или выражением, которое возвращает значение указанного типа данных.
Следующие шаги объясняют, как определить параметр диапазона в таблице с именем землетрясения, чтобы отображать землетрясения, произошедшие за последние семь дней, в качестве периода времени по умолчанию и, при необходимости, использовать бегунок времени для изменения этого периода времени:
- Вкл. на вкладке Карта в группе Слой откройте меню Добавить данные и щелкните Запросить слой.
- В меню «Соединение» выберите соединение с базой данных или создайте соединение с помощью «Новое соединение с базой геоданных» .
- В поле Имя введите Землетрясения.
- В поле запроса введите select * from EARTHQUAKES where ::r:EQDateRange.
- Наведите указатель мыши на параметр ::r:EQDateRange в коде и щелкните Изменить запрос, чтобы изменить свойства.
- Введите следующие свойства параметра:
- Для поля или выражения введите имя поля даты и времени.
- В поле Тип данных выберите Дата.
- Проверьте значение по умолчанию.
- Введите выражения значений по умолчанию в соответствии с базовой базой данных.
- Нажмите Готово.
- Щелкните Проверить, чтобы убедиться, что SQL-запрос и определения диапазона допустимы.
- Щелкните Далее.
- Укажите поля уникального идентификатора, тип геометрии и пространственную привязку и нажмите «Готово».
Теперь вы можете использовать ползунок времени для перехода к любому периоду времени и просмотра произошедших землетрясений. Вы можете нажать кнопку «Отключить время», чтобы просмотреть землетрясения в установленном по умолчанию диапазоне времени, который в данном примере находится в пределах последних семи дней.
Предостережение:
Вы можете объявить более одного параметра диапазона в слое запроса, но только один из этих параметров диапазона может ссылаться на значения даты и времени.
Дополнительные свойства для параметров диапазона
Если проверка запроса не удалась, может потребоваться указать некоторые дополнительные свойства для параметров диапазона. Разверните раздел «Дополнительно» свойств параметра, чтобы указать имя таблицы, которой принадлежит поле. Это помогает получить минимальное и максимальное значения непосредственно из таблицы. Это повышает эффективность, особенно если параметр находится во вложенном запросе. Кроме того, в разделе «Дополнительно», если значения по умолчанию не указаны, необходимо указать выражение, которое будет использоваться, если для параметра отсутствует значение. Выберите либо 1=1 (по умолчанию), что приведет к разрешению параметра в выражении как «ИСТИНА», либо 1=0, что приведет к разрешению параметра как «ЛОЖЬ».
Дискретные параметры
Дискретные параметры работают с числовыми (целыми или двойными), датами или строковыми значениями и имеют префикс ключевого слова ::. Они соединяются с полем или выражением с помощью операторов SQL. Вы можете обновить значение поля, чтобы отфильтровать данные, отображаемые на карте.
При объявлении дискретного параметра необходимо указать тип данных и значения по умолчанию. Чтобы предоставить список вариантов на уровне во время выполнения, используйте оператор SQL IN и установите флажок Разрешить несколько значений. При необходимости укажите псевдоним, который будет использоваться вместо имени параметра. Вот примеры:
- WHERE aFieldName = ::var1
- WHERE AdminField IN ::AdminAgency
Предопределенные дискретные параметры
В дополнение к объявлению ваших собственных дискретных параметров, есть два предопределенных дискретных параметра, которые вы можете использовать в своих запросах. Параметр view_extent указывает пространственный фильтр для вашего запроса и может значительно повысить производительность при работе с очень большими наборами данных. Параметр view_scale позволяет получить доступ к текущему масштабу карты в запросе. Эти переменные учитываются только в контексте 2D-карты. Они будут игнорироваться в 3D-сцене.
view_extent
Когда слой просматривается на карте, к запросу, отправляемому в базу данных, в конце SQL-запроса добавляется пространственный фильтр. Этого достаточно, но вы можете ограничить агрегирование только объектами, видимыми в текущем экстенте. В этих случаях вы можете добавить в запрос параметр view_extent, чтобы пространственно ограничить его текущим экстентом.
Вы можете добавить ::view_extent в любом месте вашего запроса столько раз, сколько необходимо. В отличие от пользовательских дискретных параметров здесь нет свойств, которые нужно задавать, а значение параметра по умолчанию равно NULL.
SQL-запрос, отправляемый в базу данных, заменяет ::view_extent полигоном в формате общеизвестного текста (WKT) с той же пространственной привязкой, что и слой. Используйте функцию базы данных и идентификатор пространственной привязки (SRID) для создания геометрии из полигона экстента WKT. Следующие примеры показывают это для типов баз данных SQL Server и PostgreSQL:
- В SQL Server: WHERE shape.STWithin(geometry::STGeomFromText(::view_extent, 4326)) = 1
- В PostgreSQL: WHERE ST_Within(shape, ST_GeomFromText (::view_extent, 4326))
view_scale
Используйте предопределенный параметр view_scale, если вы хотите изменить предложение where или выбранные поля в зависимости от текущего масштаба карты. При использовании этого параметра передается значение по умолчанию, равное нулю. Других свойств для установки нет. Вы можете указать этот параметр столько раз, сколько необходимо в вашем SQL-запросе. В следующих примерах используется параметр view_scale в типах баз данных SQL Server и PostgreSQL:
- В SQL Server: WHERE IIF(::view_scale > 100000, <сделать это>, <сделать это>)
- В PostgreSQL: WHERE (CASE WHEN ::view_scale >= 100000 THEN <сделать это> WHEN ::view_scale >= 50000 AND ::view_scale < 100000 THEN <сделать это> ELSE <сделать другое> КОНЕЦ)
Добавление параметров к слою запроса
Чтобы добавить параметр к запросу, выполните следующие действия:
- Щелкните слой правой кнопкой мыши на панели Содержание и выберите Свойства .
Добавить комментарий