 Новые возможности Oracle Spatial 11gR2 На ежегодной конференции пользователей Oracle Spatial был анонсирован список новых возможностей, которые появятся в следующей версии базы данных. Нигде явно не сказано, но, очевидно, что это версия 11gR2 Пятая ежегодная конференция прошла 23 апреля во Флориде. Джим Стейнер, главный директор по технологиям Oracle Server, открывал конференцию и поведал о некоторых трендах и дал некоторые комментарии о недавнем приобретении компании Sun Microsystems. "Взрывной рост объема данных продолжается", сказал Стейнер. Он привел несколько важных событий и технологии, которые являются причиной роста. Стейнер говорил о запуске спутника DigitalGlobe's WorldView с разрешением 50 сам, упомянул приобретение NAVTEQ Нокией и будущие планы объединенной компании по увеличению банка геоданных для телекоммуникационных и транспортных компаний, в особенности по Китаю. Особенно важными в сегодняшнем мире геоданных становятся данные генерируемые пользователями систем в реальном времени - например, данные о трафике. Также Стейнер сказал, что широкое распространение в 2008 году получили сенсоры, такие как камеры, регистрирующие трафик. Использование таких систем имело очень серьезные последствия для рынка геоинформатики.
Стратегия развития Oracle Spatial Стейнер, сказал, что в Oracle Spatial будет включено больше средств анализа, моделирования и визуализации в ритейле, бизнес анализе, управлении инфраструктурой и других областях. У компании есть планы по развитию сетевой модели данных и более мощных средств анализа сложных сетей. Также будут развиваться возможности управления спутниковыми снимками и новые методы геопривязки. На более далекую перспективу, сказал Стейнер, планируется сближение физического и виртуального миру (We are going to see a convergence of the physical and virtual world). Он уверен, что появятся технологии, делающие более простой и комфортной работу в виртуальном мире. Это позволит использовать более сложные пространственные технологии в коммерческом ПО. Oracle продолжает работать с быстро растущей областью использования неструктурированных данных для поддержки моделирования и предоставляет мощную платформу для 3D данных. Oracle покупает SUN Как приобретение Sun Microsystems влияет на стратегию Oracle? Стейнер сказал, что это приобретение работает на пользу открытых стандартов. Он объяснил, что платформой №1 для Oracle является Solaris, а затем только Linux. У Oracle и Sun много общих клиентов. Oracle ожидает, что заказчики и партнеры обоих компаний только выиграют от этого, а особенно от увеличившегося объема средств, инвестируемых в научно-исследовательские работы. Новые возможности Oracle Spatial Siva Ravada, директор департамента разработки Oracle Spatial, поделился деталями того, что будет в следующем релизе базы данных Oracle 11gR2. GeoRaster - GeoRaster API - Oracle включит в поставку 4 демонстрационных приложения(tools.java, loader.java, viewer.java and exporter.java) для того, чтобы показать, как использовать GeoRaster API. Пользователю будет продемонстрировано как разрабатывать инструменты для извлечения, трансформации и загрузки(ETL) растровых данных, а также Web приложения.
- Поддержка систем координат для GeoRaster (SDO_GEOR.reproject) позволит пользователям трансформировать GeoRaster данные из одной проекции в другую. Будут поддерживаться все стандартные системы координат из Oracle Spatial. Будут поддерживаться следующие методы resampling: Nearest Neighbor, Bilinear, Cubic, Average4 and Average16.sdo_geor.reproject ( gr1, 'resampling=cubic', ‘blocksize=(256,256,3) interleaving=BIP', 26988, gr2 );
Развернуть изображение... - Полигональная обрезка. Процедура SDO_GEOR.getRasterSubset была расширена, чтобы поддерживать не только прямоугольную область вырезки, но также и полигональную
Развернуть изображение... - Оптимизации разбиения изображения на блоки. Georaster поддерживает разбиение изображения на одинаковые блоки и крайние блоки иногда получаются полупустыми. В этом случае по краям производится заполнение пустыми значениями (padding). Оптимизация размера блоков позволяет уменьшить теряемое за счет paddingа пространство. Оптимизатор будет сам подбирать подходящий размер блока. Исходное изображение размером 518x518x3 разбито на блоки 256x256x3. Используя команду
sdo_geor.changeFormatCopy (gr1, 'blocking=optimalPadding blocksize=(128,96,1)’, gr2); мы получим блоки 130x74 с почти нулевые заполнением поле Развернуть изображение...  | - Растровая интерполяция. Для растровой интерполяции появились 2 новые функции SDO_GEOR.evaluate и SDO_GEOR_evaluate.double.enable. Объект Georaster можно представить как сетку (grid coverage). Для этой сетки бывает необходима функция, позволяющая оценить недостающее значение на основе соседних клеток. Для интерполяции могут быть использованные методы NN (="none", default), Bilinear, Cubic, Average4, Average16.
- Ground Control Points (GCP). GCP – это наземные контрольные точки с известными координатами. Эти точки могут быть использованы, чтобы осуществить геопривязку снимка. GeoRaster определяет GCP XML схемы и позволяет хранить информацию о GCP непосредственно в метаданных объектов Georaster. Работа с точками осуществляется посредством функций (SDO_GEOR.getControlPoint, SDO_GEOR.setControlPoint, SDO_GEOR.deleteControlPoint модель). После того, как GCP созданы можно использовать sdo_geor.georeference для геопривязки снимка с использованием функциональных методов установки (functional fitting methods). Поддерживаются следующие методы Affine, QuadraticPolynomial, CubicPolynomial, DLT, QuadraticRational, RPC.
- Драйвер GDAL для Georaster. GDAL это лучшие геопространнственный ETL инструмент/API для растровых данных с открытым исходным кодом. Теперь в него встроена поддержка импорта и экспорта многих форматов(GeoTIFF, JPEG2000, ECW, NITF, HDF, NetCDF, ERDAS IMG, USGS DEM, SPOT) из и в SDO_GEORASTER. GDAL написан на C++ и работает намного быстрее Oracle’s JAVA GeoRaster loader/exporter. Oracle’s loader/exporter основан на SUN’s JAI libraries. Кроме того GDAL предоставляет C/C++, Java, Python API для работы с GeoRaster. В поставке идет множество инструментов, два их которых: gdal_translate – утилита для загрузки и выгрузки GeoRaster objects из других форматов и gdalinfo – утилита для просмотра информации об растровых объектах.
Новые возможности ядра Spatial - Внутренняя точка (Interior Point). Появилась функция SDO_UTIL.INTERIOR_POINT (geom, tol) RETURNS SDO_GEOMETRY, которая находит точку внутри полигона. Входная геометрия должна быть 2003(полигон) или 2007(мультиполигон) типа.
- Триангуляция Делоне. В функции SDO_GEOM.SDO_TRIANGULATE (geom, tol) RETURNS SDO_GEOMETRY реализована триангуляция Делоне. На вход подается множество точек, на выход получаем геометрию с треугольными элементами. Борис Николаевич Делоне, кстати, наш соотечественник.
Развернуть изображение...  | - Новая функция для агрегатного объединения геометрий SDO_AGGR_SET_UNION.
Похоже это решение, затрагиваемой мною ранее проблемы. Функция SDO_AGGR_SET_UNION (Geometry mdsys.SDO_Geometry_array, tol number) RETURN SDO_GEOMETRY на вход получает массив элементов MDSYS.SDO_Geometry_array (VARRAY of SDO_GEOMETRY), а на выходе получает тот же результат, что и SDO_AGGR_UNION, но делает это гораздо быстрее – почувствуйте разницу | Таблица | SDO_AGGR_SET_UNION | SDO_AGGR_UNION | | States 50 геометрий | 3.3 секунды (в 9 раз быстрее) | 27.55 секунд | | Counties 3230 геометрий | 44 секунды (более чем в 30 раз быстрее) | 26 минут | Кроме того, при увеличении количества объектов время для SDO_AGGR_UNION будет расти очень быстро. Ниже приведен пример кода, использующего новую функцию view source
print? 01.create or replace function Set_Geometry return SDO_GEOMETRY_ARRAY deterministic AS 02.type cursor_type is REF CURSOR; 03.query_crs cursor_type ; 04.g sdo_geometry; 05.GeometryArr sdo_geometry_array; 06.begin 07.GeometryArr := SDO_GEOMETRY_ARRAY(); 08.OPEN query_crs FOR 'select shape FROM cola_markets c WHERE c.name <> ‘‘cola_d’' '; 09.LOOP 10.FETCH query_crs into g; 11.EXIT when query_crs%NOTFOUND ; 12.GeometryArr.extend; 13.GeometryArr(GeometryArr.count) := g; 14.END LOOP; 15.return GeometryArr; 16.end; 17./ По поводу использования: функция SDO_AGGR_UNION гораздо более гибкая, но более медленная, поэтому ее следует использовать когда производительность не на первом месте, а SDO_AGGR_SET_UNION производительность приоритетна. - Функция Concave Hull.
Функция view source
print? 1.SDO_GEOM.CONCAVEHULL (geom, tol) 2.RETURNS SDO_GEOMETRY получает на вход геометрию любого типа (чаще всего multipoint), а на выход дает полигон охватывающий точки. Работа очень похожа на Convex Hull, однако Convex Hull дает выпуклый полигон, а Concave вогнутый (максимально "обтягивающий"). На рисунке можно видеть различие (верхний вариант это Convex Hull, нижний – Concave Hulle Развернуть изображение...  | - Оптимизировано преобразование систем координат с помощью SDO_CS.Transform. Ускорение (в десятки раз) становится заметным, когда эту функций много раз вызываем в одной сессии. В предыдущих версиях при каждом вызове функции контекст преобразования создавался заново, теперь происходит повторное использование. Работа функции SDO_CS.Transform_Layer не изменилась.
- Поддержка Transport Tablespace (TTS) для разных платформ.
Как известно на разных компьютерных платформах порядок байтов в слове разный. Например на x86 процессорах от младшего к старшему (little endian), а например на SPARC – это от старшего к младшему (big endian). Oracle работает на разных платформах и поэтому была разработана технология(Note 113178.1 на metalink), позволяющая переносить табличные пространства между разными платформами. Преобразование байтов к нужному порядку осуществляет RMAN, но он не делает этого для пространственных индексов. Теперь такой перенос поддерживается и для пространственных индексов. SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS автоматически обрабатывает индекс, если TTS экспорт был сделан на платформе с другим порядком байтов. - Triangulated Irregular Networks and Point Clouds
A result table for SDO_PC is used to map the input points to the PTN_ID and PINT_ID columns. This process has been very slow in the past; this change enhances SDO_PC (point cloud) AND SDO_TIN storage. - Геокодирование с использованием данных NAVTEQ
В NAVTEQ данных появилась новая таблица GC_ADDRESS_PINT_NVT, в которую заносятся точечные координаты домов. Это отличается от общепринятой методики, когда известный угловые номера домов для каждого сегмента улицы. Новый метод хорош для точечной застройки (особенно для России), когда дома идут не по порядку, а располагаются в достаточно произвольном порядке  Очень удобно, что сами функции для геокодирования не изменились – просто, если точечный адрес существует, то используется он, если нет, то используются угловые дома для вычисления координат конкретного дома. Web Services - Поддержка транзакции базы данных на WFS-T таблицами.
В 11gR1, если таблица была предоставлена в доступ через WFS-T (с помощью mdsys.sdo_wfs_lock.registerFeatureTable), то прямые Insert и Update (через SQL) были запрещены. Oracle Spatial 11gR2 будет полностью поддерживать транзакции базы данных для таблиц, предоставляемых в доступ через веб-сервис OpenGIS Web Feature Service with transactions (WFS-T) 1.1. Нужно будет запустить процедуру sdo_wfs_lock.enableDBtxns. - Поддержка Workspace Manager и WFS.
В 11gR1, WFS и Workspace Manager работают вместе, но функционал ограничен. Например можно публиковать таблицы из разных Workspace, но при этом только в режиме для чтения. Oracle Spatial 11gR2 будут полностью поддерживать изменяемые Workspace и WFS транзакции. Необходимо будет использовать ту же процедуру sdo_wfs_lock.enableDBtxns для разрешения такой работы. Network Data Model (NDM) - Поддержка путей с несколькими стоимостями.
Можно будет задать несколько стоимостей, по которым будет оцениваться стоимость маршрута. При этом первый стоимость будет использоваться для нахождения наилучшего пути. Например, можно будет искать кратчайший путь, а затем увидеть время проезда, а можно будет оптимизировать время проезда, а затем посмотреть длину пути. - Пользовательские объекты в сетевых ограничениях
Пользовательские объекты теперь могут накапливаться при анализе сети и использоваться в дальнейшем в сетевых ограничениях (пользовательских). Например, можно накапливать посещенные ребра и вершины. - Поддержка изменений NDM в базе данных.
Сеть теперь можно изменять, а затем синхронизировать с представлением в оперативной памяти. Изменения будут синхронизироваться инкрементальной, а не полным чтением секций заново. - Пользовательские данные требует меньше памяти.
Пользовательские данные хранятся в соответствующих таблицах вершин и ребер. Эти данные могут быть использованы в стоимостных калькуляторах, либо в сетевых ограничениях. Теперь эти данные занимаю меньше места, чем в 11gR1. - Секционирование(Partitioning) логических сетей
Логические сети не имеют графического представления. Была разработана новая утилита, помогающая секционировать логические сети, уменьшая количество связей между сетевыми секциями и выполняя перебалансировку с предустановленными пороговыми значениями. Это будет очень полезно для тех, кто работает с очень большими сетями (миллионы вершин/ребер). - Иерархический A* поиск кратчайшего пути
Про это крайне мало было сказано. Я думаю, что здесь идет реализация алгоритмов, описанных S. Shekhar и A. Fetterer. Почитать подробнее можно вот тут и тут. Также интересно пройти по ссылке. - Traveling Salesman (TSP) Анализ
Новая версия будет содержать функцию, решающую задачу комивояжера. Можно задавать список посещаемых вершин, а на порядок посещения влиять сетевыми ограничениями. - Генерация Drive Time Polygon
Пространственное представление (polygon) области, в которую попадают участки сети, которых можно достичь в пределах указанной стоимости. Может формироваться как Concave Hull, так и Convex Hull (см. выше). На рисунке показаны 3 Drive Time Polygon для 1,2 и 3х минутной доступности. Развернуть изображение... - Сервер маршутизации
Теперь построен на стандартном сетевом движке (NDM Load-on-Demand). Этим все сказано. Анализ теперь проводится внутри базы данных, а не на сервере приложений. Это позволяет использовать все возможности сетевого движка. Использование NDM позволяет очень сильно изменить поведение сервера маршрутизации и использовать дополнительные данные. Fusion Middleware (FMW) MapViewer Jayant Sharma, технический директор Oracle Spatial рассказал,что MapViewer это по существу mashup инструмент... для локального поиска, построения картографических отчетов и, в некоторой мере, интерфейсный компонент приложения. FMW MapViewer теперь сертифицирован для WebLogic, и имеет возможности аннотирования, масштабируемые стили, "heatmaps"(показывают концентрацию объектов) и secure map rendering(можно в зависимости от имени пользователя ограничить отрисовываемые объекты). MapViewer теперь поддерживает wrap-around карту (при перетаскивании слева направо карта зациклена и ее можно таскать по кругу до бесконечности), появились панели инструментов, компоненты карты можно делать перемещаемыми, информационные окна могут состоять из нескольких закладок. Работа со спутниковыми снимками DigitalGlobe 11gR2 будет поддерживать сферические системы координат. DigitalGlobe сделает (или сделал) доступным свои спутниковые снимки для Oracle MapViewer через свой ImageConnect (это SDK, позволяющее получить доступ к спутниковым снимкам из Web приложения). По ссылка, кстати можно получить тестовый доступ к сервису. Итого Каждый год Oracle расширяет возможности Oracle Spatial, вводя более широкую поддержку растровых и векторных данных, давай мощные инструменты анализа и управления. В этом году нас ожидает мощное расширение возможностей по всем направлениям. И да прибудет с нами сила )) |