вторник, 27 апреля 2010 г.

Бесплатные приложения для сравнения БД SQL Server

Бесплатные приложения для сравнения БД SQL Server

  • dbForge Schema Compare for SQL Server - для быстрого сравнения и синхронизации схем, простого анализа различий и безопасного обновления базы на нужном SQL сервере.
  • dbForge Data Compare for SQL Server - для быстрого сравнения данных, удобного управления различиями, а также безопасной и настраиваемой синхронизации базы на нужном SQL сервере.
  • Open DBDiff  - Проект с открытым исходным кодом для сравнения и синхронизации баз данных на базе СУБД SQL Server 2005/2008. (готовит скрипты для синхронизации - вещь!!!).

вторник, 20 апреля 2010 г.

Сравнение SQL Server 2008, PostGIS, MySQL

General Overview

FeatureSQL Server 2008 (RC0)MySQL 5.1/6PostgreSQL 8.3/PostGIS 1.3/1.4
OSWindows XP, Windows Vista, Windows 2003, Windows 2008Windows XP, Windows Vista, (haven't tested on 2008), Linux, Unix, MacWindows 2000+ (including Vista and 2003, haven't tested on 2008), Linux, Unix, Mac
LicensingCommercial - Closed Source, Various levels of features based on version, Express version has full spatial support but limitation on database size and only use one processor.Commercial Open Source (COSS), some parts GPL. Here is an interesting blog entry on the subject MySQL free software but not Open Source. The comments are actually much more informative than the article itself.FLOSS (PostgreSQL is BSD, PostGIS is GPL Open Source - you can use for commercial apps but if you make changes to the core libraries of PostGIS, you need to give that back to the community)
Free GIS Data Loadersshp dataloader for SQL Server 2008 developed by Morten Nielsen(doesn't yet work with RC0)OGR2OGR, shp2mysql.pl scriptincluded shp2pgsql, OGR2OGR, QuantumGIS SPIT,SHP loader for PostGIS also developed by Morten using SharpMap.NET various others
Commercial GIS Data LoadersManifold, Safe FME Objects, ESRI ArcGIS 9.3 (in a later service pack)Safe FME ObjectsManifold, FME Objects, ESRI ArcGIS 9.3
Application drivers available specifically for spatial component? Not yet - SharpMap.NET eventually and probably built into new ADO.NET 3.5+GDAL C++, SharpMap via OGR, AutoCAD FDOSharpMap.Net, JDBC postgis.jar included with postgis, JTS etc. tons for Java, GDAL C++, AutoCad FDO beta support
Free Object/Relational MappingNHibernateSpatial (this is a .NET object relational spatial mapper) - beta supportHibernate Spatial - this is a java object relational mapperNHibernateSpatial and HibernateSpatial
Free Desktop Viewers and EditorsWill be built into SQL Manager, but not available in RC0 and only useful for viewingGvSigOpenJump, QuantumGIS, GvSig, uDig
Commercial Desktop Viewers and EditorsESRI ArcGIS 9.3 Server SDE later service pack, Manifold, FMEFMEESRI ArcGIS 9.3 Server, ZigGIS for desktop, Manifold, FME
Web Mapping ToolKits - it must be said things like OpenLayers and various other scripting frameworks that can accept GML will work with any of these databases and your favorite web scripting languageManifold, MapDotNet, ArcGIS 9.3 (in later service pack), UMN MapServer see, MapGuide Open Source (using beta FDO driver)UMN Mapserver, GeoServer, MapGuide Open SourceManifold, MapDotNet, ArcGIS 9.3, UMN Mapserver, GeoServer, FeatureServer, MapGuide Open Source (using beta FDO driver)
Spatial FunctionsBoth OGC SFSQL MM and Geodetic custom (over 70 functions)OGC mostly only MBR (bounding box functions) few true spatial relation functions, 2D onlyOver 300 functions and operators, no geodetic support except for point-2-point non-indexed distance functions, custom PostGIS for 2D and some 3D, some MM support of circular strings and compound curves
Spatial Indexes (from reports Oracle also uses some sort of R-Tree indexing scheme and can use quadtree, IBM DB2 uses quadtree, Spherical Voronoi Tessalation, IBM Informix uses R-Tree. Note R-Tree indexes are self-tuning and do not require grid setupYes - 4 level Multi-Level grid hierarchy (BOL says its B-Tree based) with tessalation as described Isaac Kunen Multi-Level Gridrequires defining an index grid for optimal performanceR-Tree quadratic splitting - indexes only exist for MyISAMGIST - a variant of R-Tree
True Geodetic support - support for true measurement along a spherical coordinate (it must be noted Oracle and IBM provide geodetic support, although IBM Informix/DB2 have it as an additional Blade add-on in addition to standard spatial)Yes - with caveats - must use Geography type which has the following constraints, no single geometry may overlap hemispheres, intersections, some operations are undefined for two geometries in separate hemispheres. SRID must be defined in spatial ref. Orientation of polygons is important in Geography. According to BOL - ST_Distance is only supported when one of the geography instances is a point ( NOTE: Isaac Kunen says the BOL docs are wrong about ST_Distance and this restriction has been lifted) . Fewer spatial functions available for geography than geometryNoNo
Shared HostingManyManyMuch fewer, but ramping up. It must be noted that if you have a dedicated Linux/Windows server, and aren't afraid to be your own admin (or to get a qualified consultant such as us), then your options are much wider.List of community recommended PostGIS Hosters

Spatial Functionality
FeatureSQL Server 2008 (RC0) GeometrySQL Server 2008 (RC0) GeographyMySQL 5.1/6PostgreSQL 8.3/PostGIS 1.3/1.4
Supported Geometry TypesPolygon, Point, LineString, MultiLineString, MultiPoint, MultiPolygon, GeometryCollection 2D support also storage for 3D and 4D (M,Z)Polygon, Point, LineString, MultiLineString, MultiPoint, MultiPolygon, GeometryCollection, 2D, ability to store 3D, 4D (M and Z)2D, can store 3D 4D(e.g. M and Z) but no functions do anything with those) - Polygon, Point, LineString, MultiPoint, MultiPolygon,MultiLineString, GeometryCollection2D, some 3D, 4D (support for storing Z,M but most spatial functions ignore the higher dimensions) and some curve support - Polygon, Point, LineString, MultiPoint, MultiPolygon, MultiLineString, GeometryCollection, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface
Transform - ability to transform from one spatial ref to anotherNo - need 3rd-party tools, Geometry can use any SRID between 0 and 999999No, but less need for transform since spherical coordinates that cover the globe can be used. SRID must be defined in sys.spatial_reference_systemsNoST_Transform - Yes for 2D and 3D, but not for Circular Curve Types
Geometry Output functions - these are important particular for web-development when using the various javascript, flash apisSTAsBinary(), STAsText(), AsGML(), AsTextZM(), will have a builder api in the RTM for extending to support more output formatsSame as the geometry onesAsBinary(), AsText()ST_AsBinary(), ST_AsText(), ST_AsSVG(), ST_AsGML(), ST_AsKML(), ST_AsGeoJson() -- new in 1.3.4, ST_AsEWKT(), ST_AsHexEWKB()
Geometry Input functionsSTGeomFromText(),STGeomFromWKB(), GeomFromGML()Same as GeometryGeomFromText(), GeomFromWKB()ST_GeomFromText(), ST_GeomFromWKB()
Intersects and IntersectionSTIntersects(), STIntersection() (spatial ref of both geoms must be the same)Same as geometry except an intersection resulting in a polygon that overlaps 2 hemispheres will return nullMBRIntersects()* bounding box only (spatial refs of both geoms must be the same), they do not implement Intersection yetST_Intersects(), ST_Intersection() (spatial ref must be the same)
Other Non-Agg key relationship and relation outputsSTContains(), STDifference(), STDisjoint(), STEquals(), STOverlaps(), STRelate(), STSymDifference(), STTouches(), STWithin()STDisjoint()MBRContains(), MBREqual(), MBROverlaps, MBRTouches(), MBRWithin(), bounding box only (spatial refs of both geoms must be the same) (these are aliased in 6.0 to names Contains(), Overlaps(), Equals()... but do the same as MBR)ST_Contains(), ST_Disjoint(), ST_Difference(), ST_Equals(), ST_Overlaps(), ST_Relate(), ST_SymDifference(), ST_Touches(), ST_Within() (spatial ref must be the same)
Accessors and EditorsBufferWithTolerance() (this is similar to PostGIS variant of Buffer that takes 3 args (defaulted to 8 number of segs to use to approximate a quarter circle), MakeValid(), Reduce() - similar to PostGIS ST_Simplify(), STBoundary(), STBuffer(),STCentroid(), STConvexHull(), STDimension(), STEndPoint(), STExteriorRing(), STGeometryN(), STGeometryType(), STInteriorRingN(), STIsClosed(), STIsEmpty(), STIsSimple(), STNumGeometries(), STNumPoints() (only applies to LINESTRINGS), STPointN((), STStartPoint(), STSRID(), STUnion()NumRings(), RingN(), STArea(), STBuffer(), STDimension(), STEndpoint(),STGeometryN(), STGeometryType(), STIsClosed(), STIsEmpty(), STLength(), STNumGeometries(), STNumPoints(), STPointN(), STSrid(), STStartPoint(), STUnion()Centroid(), Dimension(), EndPoint(), Envelope(), ExteriorRing(), GeomtryN(), GeometryType(), InteriorRingN(), IsClosed(), IsRing(), NumPoints(), PointN(), SRID(), StartPoint()ST_Affine(), ST_Boundary(), ST_Buffer() (2 variants similar to STBuffer() and BufferWithTolerance()), ST_Centroid(), ST_ConvexHull(), ST_Dimension(), ST_EndPoint(), ST_ExteriorRing(), ST_GeometryN(), ST_GeometryType(), ST_InteriorRingN(), ST_IsClosed(), ST_IsEmpty(),ST_IsRing(), ST_ISSimple(), ST_NumGeometries(),ST_NumPoints() (only applies to linestrings), ST_NPoints() - returns num vertexes regardless of geometry type, ST_PointN(), ST_Simplify(), ST_StartPoint(), ST_SRID(),ST_Translate(), ST_Union(), various MakeLine,MakePolygon, buildarea etc.
MeasurementSTArea(), STLength(), STDistance() (measurements in unit of spatial ref)Same as geometry - except measurements can be in meters, sq meters, or units of spatial refArea(), GLength(), Distance()ST_Area(), ST_Length(), ST_Distance(), ST_Distance_Spheroid(), ST_Length_Spheriod (non-sphere, non-spheriod functions units are in spatial ref, sphere and spheroid are in meters but only work for point geometries) and equivalents for 3D geometries.
Linear Referencing - things like returning fractions of lines, approximating point location along a line based on num addressnone built in, but can roll your own with CLR. UPDATE Isaac Knunen has some linear referencing functions already built in the new CodePlex SQL Server Spatial Tools project.none built in - check out new SQL Server Spatial tools code plex projectnoneST_Line_Interpolate_point(), ST_Line_Substring(), ST_line_locate_point(), ST_locate_along_measure(), ST_locate_between_measures()
Spatial Aggregates (functions like SUM but for spatial)Apparently none in this release so have to roll your own with CLR. There are numerous examples of this on the web.
UPDATE SQL Server 2008 Spatial Toolscontains aggregate functions for Union and Envelop similar to PostGIS ST_Union and ST_Extent functions
nonenoneST_Extent(), ST_Collect(), ST_Union(), ST_Accum(), ST_MakeLine(), ST_Polygonize()

понедельник, 12 апреля 2010 г.

Записки об использовании ГИС в нефтяных компаниях России

 

Использование геоинформационных систем в нефтегазовых компаниях

Имея некоторый опыт работы к нефтегазовых компаниях долго думал над тем, почему бы не написать про использование в Российских нефтегазовых компаниях геоинформационных систем  (далее ГИС) или про информационные системы создания карт, если по-простому.
Создание карт для нефтяной геологии и геофизики имеет свою специфику, поэтому системы ориентированные на построение географических карт или кадастровых оказываются малопригодны для нефтяников (например Autodesk Map). К геологическим ГИС выдвигаются дополнительные требования:
  • Отображение специальных картографических объектов (скважин, сейсмопрофилей, лицензионных участков) в соответствии с принятыми стандартами (стандартов много: ГОСТ, корпоративный стандарт, руководящий документ и пр.).
  • Широкий набор возможностей для работы с главным для геологов и геофизиков типом данных – картами в изолиниях.
  • Обмен данными с другими геологическими пакетами (импорт/экспорт) Schlumberger, Roxar, Landmark.
  • Поддержка геологических объектов (наклонных скважин, сейсмических профилей и разрезов, структурных карт с разломами, 3D моделей и других) как объектов в БД или набором параметров в реляционной модели.
Далее попробую привести краткую справку по системам, которые используются в нефтяных компаниях в России.
После нескольких лет скитаний по северам определил опытным путем, что большинство пользователей  в таежной глубине нефтяных компаний предпочитают простое и незатейливое решение Тюменских разработчиков под названием Изолиния (Isoline). Сайт проекта: http://www.isoline-gis.ru/ .
Isoline GIS широко используется в геологических отделах ЛУКОЙЛ и ТНК.
Проект Isoline был задуман как классическая ГИС и аналог таким популярным пакетам как ArcVeiw или MapInfo, но был бы специализирован для нужд нефтяной геологии.
Преимущества:
  • Простой и доступный интерфейс
  • Быстродействие (написан на Delphi)
Не преимущества:
  • Цена: стоимость колеблется около 300 тыс. рублей за лицензию для корпоративного использования.
  • Жесткая привязанность к разработчикам
  • Слабая интеграция на уровне данных с другими ГИС

На втором месте по использованию ГИС в нефтяных компаниях стоит продукты компании ESRI. Причем до сих пор используется весь потенциал ГИС этой компании. Например, в некоторых в компаниях  пользуются Arcview GIS версий 3.2 и 3.3,  так как для этих версий на бесплатном языке программирования Avenue разработано много модулей, позволяющих облегчить рутинную работу специалиста. Кроме этого, стоить отметить, что так как они описаны в эру, когда .NET еще и в помине не было, то работают они с данными, расположенными на локальном диске просто с огромной скоростью. Сам грешен был этим делом. Если необходимо быстро сделать карту со скважинами (точками), а скважины лежат в базе данных, то быстрее инструмента не найти.
После выхода флагмана (линейки ArcGIS) компании ESRI ситуация в нефтяных компаниях не особо поменялась. Хотя корпоративным стандартом во многих компаниях и признана ESRI, но на деле очень не так много специалистов пользуются настольными приложениями. Конечно время идет и технологии не стоят на месте и компания ESRI развивается, но так как компания очень большая и создает она инструмент, который применим во многих сферах, то приходиться простым геологам долго мучиться, чтобы сделать нормальную карту в ArcGIS. Одна из причин - отсутствие стандартизованных значков в поставке ArcGIS. И  пользователи либо вынуждены брать то что есть или искать в других приложениях.
Ну про ESRI могу много рассказывать и может это даже тема отдельного поста, но есть в продуктах этой компании очень большой плюс: она предоставляет очень адекватный SDK для разработчиков и можно создавать действительно стоящие вещи, например широко в нефтяных компаниях используется Система Мониторинга Недропользования, разрабатываемая в Тюмени компанией ООО "СибГеоПроект" на базе ArcGIS Engine и с использованием современных технологий .NET Remouting, Silverlight. По факту одно из решений - это реализовано как надстройка (PlugIn) для ArcGis Desktop (ArcView), а также создана своя ГИС, которая оптимизирована под геологические задачи и задачи мониторинга недропользования.
Преимущества:
  • Стандарт де-факто для геоинформационных систем
  • Простой и доступный интерфейс
  • Быстродействие версий предыдущей линейки 3.x
  • Почти во всех нефтяных компаниях есть хотя бы одна установка
Не преимущества:
  • Цена: стоимость колеблется около 100 тыс. рублей за лицензию.
  • Cпециалиста (грамотного) по технологиям ESRI очень сложно найти и тем более разработчика на ArcObjects.
  • А еще сложнее найти специалиста по серверным продуктам ESRI

Очень часто в нефтяных компаниях встречается данная ГИС в маркшейдерских отделах. Когда то было время и представители данной компании раздавали просто так компашки (версии 3 или 4.х) и таким образом в эру слабых компьютеров ГИС MapInfo вошла в массы. Более всего данная ГИС распространена в кадастровой сфере. В нефтянке данная ГИС зарекомендовала себя как неприхотливая и на базе нее делали географические карты разных масштабов с подложкой от Роскартографии (зеленкой). Я также видел давно пару систем, перетендующих на гордое звание информационные, но они как то не прижились. 
Преимущества:
  • Работает быстро на слабых компьютерах
  • Простой и доступный интерфейс
  • Была и Есть документация на русском языке. 
  • Много работ на ее базе, особенно студенческих
Не преимущества:
  • Цена: стоимость колеблется около 100 тыс. рублей за лицензию.
  • Тяжелая разработка на своем специализированном языке MapBasic
  • К сожалению на текущий момент уже не существует компании MapInfo, и ее целиком поглотила группа Pitney Bows, которая скорее всего ее кому-нибудь перепродаст со временем...(дай бог, чтоб я ошибся), хотя сейчас все еще можно купить полный спектр технологий MapInfo.
       
В силу специфики отрасли очень большое количество Пользователей работает с пакетом Surfer от компании GoldenSoftware.
Пакет Surfer предназначен для обработки и визуализации двумерных функций. В Surfer в качестве основных элементов изображения используются следующие типы карт:
  1. Карта изолиний (Countour Map). В дополнение к уже традиционным средствам управления режимами вывода изолиний, осей, рамок, разметки, легенды и пр. здесь реализована возможность создания карт с помощью заливки цветом или различными узорами отдельных зон (рис. 5). Кроме того, изображение плоской карты можно вращать и наклонять, использовать независимое масштабирование по осям X и Y.
  2. Трехмерное изображение поверхности (3D Surface Map). Для таких карт используются различные типы проекции, при этом изображение можно поворачивать и наклонять, используя простой графический интерфейс. На них можно также наносить линии разрезов, изолиний (рис. 6), устанавливать независимое масштабирование по осям X, Y, Z, заполнять цветом или узором отдельные сеточные элементы поверхности.
  3. Карта исходных данных (Post Map). Эти карты используются для изображения точечных данных в виде специальных символов и текстовых подписей к ним. При этом для отображения числового значения в точке можно управлять размером символа (линейная или квадратичная зависимость) или применять различные символы в соответствии с диапазоном данных (рис. 7). Построение одной карты можно выполнять с помощью нескольких файлов.
  4. Карта основы (Base Map). Это может быть практически любое плоское изображение, полученное с помощью импорта файлов различных графических форматов: AutoCAD [.DXF], DOS Surfer [.BLN, .PLT], Atlas Boundary [.BNA], Golden Software MapViewer [.GSB], Windows Metafile [.WMF], USGS Digital Line Graph [.LGO], Bitmap Graphics [.TIF], [.BMP], [.PCX], [.GIF], [.JPG], [.DCX], [.TGA] и некоторых других. Эти карты могут быть использованы не только для простого вывода изображения, но также, например, для вывода некоторых областей пустыми. Кроме того, при желании эти карты можно использовать для получения границ при выполнении расчетов поверхности, ее преобразовании, рассечении и пр.
Также у компании стали развиваться различные недорогие ГИС, решающие узконаправленные задачи (Grapher,MapViewer) 

Преимущества:
  • Работает быстро на слабых компьютерах
  • Простой и доступный интерфейс
  • Была и Есть документация на русском языке. 
  • Много работ на ее базе, очень многие карты в изолиниях
  • Хороший экспорт в распространенные форматы
  • Цена около 700 $ удовлетворит любого босса
Не преимущества:
  • Законченный продукт (не добавить не убавить)
  • Для работы с другими гелогическими приложениями приходиться проводить дополнительные манипуляции с данными

И совсем на мой взгляд не заслуженно обходят стороной ГИС TNTMips компании MicroImages, Inc. Эта ГИС имеет очень много средств для импорта данных из различных источников. В основном применяется для очень качественного картопостроения, так как на выходе композитный растр. Если у вас стоит задача сделать красивую карту на всю стену, а данные в разных форматах приносят из разных отделов, то лучше TNTmips для этой цели не найти. Кроме этого есть для разработчиков адекватный SDK и компания шагает в ногу со временем и на сегодняшний день имеет множество средств для публикации данных, в том числе и на Web.
Преимущества:
  • Работает быстро на слабых компьютерах и на разных платформах
  • Есть хороший SDK для разработчика
  • Очень быстро реагирующая и очень адекватная техническая поддержка (выпускает патч по вашему заказу максимум в течение 2-х недель)
  • Хороший импорт-экспорт из/в распространенные форматы (в том числе и проприетарные)
  • Есть даже бесплатный вариант для небольших проектов
Не преимущества:
  • Сложный интерфейс (надо привыкать)
  • Нужен опыт работы с Unix системами, чтобы понять что к чему, т.к. интерфейс построен на базе Motif (X Server).
  • Свой скриптовый язык обработки данных и программирования SML.
Ну вот в общем то и все. если будет необходимость и интерес аудитории - готов продолжить рассказ (надеюсь будет диалог) о использовании ГИС в нефтяных и газовых компаниях. 

пятница, 9 апреля 2010 г.

Народная карта от Яндекса

Интернет, 8 апреля 2010 года. Яндекс приглашает всех рисовать Народную карту. Теперь любой желающий может изобразить на спутниковых снимках схему своего города, посёлка или деревни, где живёт любимая бабушка.
Сервис позволяет рисовать дома и дороги, реки и леса, а также редактировать объекты и дополнять их описаниями. Например, можно исправить неточно нарисованное здание или указать название соседней улицы, если предыдущий автор забыл это сделать. Самым активным пользователям будут предложены права «народных модераторов» — они будут следить за достоверностью карт в подшефных регионах.
«Мы уверены, что сервис будет полезен жителям тех мест, которых ещё нет на карте, и подарит немало приятных минут самим «картографам», — говорит менеджер сервиса Андрей Кармацкий. — Перед запуском мы предложили коллегам из Яндекса попробовать Народную карту. И вы можете увидеть, насколько увлечённо они рисовали, например, Красноармейск или Нальчик. Некоторых даже приходилось просить оставить что-нибудь для пользователей».
Для рисования открыты территории России, Украины и других стран, для которых у Яндекса есть спутниковые снимки хорошего качества. Таких снимков более 300, и их список постоянно пополняется. Например, кроме карты родного города, можно нарисовать схему Мелитополя или Амстердама. Сервис запущен в режиме бета-тестирования – интерфейс и функционал будут развиваться. Скоро появится возможность разместить Народную карту у себя на сайте так же, как и обычные Яндекс.Карты — с помощью API.

Ссылка на Оригинал статьи.