Datos Espaciales base de datos

download Datos Espaciales base de datos

of 8

description

Datos Espaciales base de datos

Transcript of Datos Espaciales base de datos

Los datos espaciales (Spatial Data) es una de las nuevas caractersticas del SQL Server 2008, el cual consiste en la capacidad de manipular informacin referente al posicionamiento geogrfico, en el presente artculo presentaremos algunas de las formas de entender y utilizar dicha tecnologa.

Donde se puede aprovechar esta tecnologa?Algunas ideas de aplicacin de esta tecnologa

Un banco, puede mostrar en su sitio web la localizacin de las sucursales ms prximas a un cdigo postal

La bsqueda de una propiedad por parte de una empresa inmobiliaria en base a especificaciones como el rea en metros cuadrados y la proximidad a cierto punto de referencia

Aplicaciones mviles pueden localizar establecimientos cercanos a la ubicacin actual, como hoteles, restaurantes, centros de entretenimiento o gasolineras

Una compaa puede establecer regiones geogrficas de ventas y usarlas para realizar diversos anlisis

Algunos ejemplos de segmentos de anlisis

Informacin enfocada al consumidor y basada en la localizacin

Desarrollo y administracin basada en el cliente

Planificacin, anlisis y datos relacionados con el entorno geogrfico

Anlisis econmicos y financieros en comunidades

Anlisis de desarrollo de planes gubernamentales

Anlisis de segmentacin de mercado

Anlisis, estudio e investigacin de diseo

Anlisis y desarrollo de inmobiliarias

Modelos de ubicacin espacial y sus tipos de datos1. Modelo Geodsico, este se determina con la representacin de la tierra como una esfera, en la cual las localizaciones se realizan mediante latitud y longitud. El tipo de dato para este modelo se llamaGeography

Modelo Geodesico

2. Modelo Planar, se determina como el mapa mundial en una superficie plana el cual las localizaciones se realizan mediante coordenadas X y Y. El tipo de dato utilizado para este modelo se llamaGeometry

Modelo Planar

Los tipos de datos Geography y Geometry son implementados como SQLCLR UDT, que determina que los tipos de datos tienen propiedades y mtodos para realizar operaciones espaciales entre las cuales mencionamos el encontrar intersecciones, calcular distancias, entre otras, de las cuales veremos ms detalle.

Diferencias entre el modelo Geodsico y Planar En el modelo planar las coordenadas son dadas en unidades,las medidas de distancias y reas se dan en las mismas unidades, sin importar que unidades sean a diferencia del modelo Geodsico en el cual las coordenadas se dan en grados, distancias y reas en metros y metros cuadrados, la medida depende del SRID

En el modelo planar, no tiene importancia el sentido en el cual se define un objeto, en el geodsico el sentido, define el tamao del objeto

Ejemplos de uso de los tipos de datosEl tipo de dato Geography es un subconjunto del Geometry, ambos soportan once objetos espaciales, de los cuales solamente 7 son instanciables.

Objetos Spatial Data

1. Point: Es un objeto 0-dimensional representado por una localizacin sencilla, puede incluir los valores Z (elevacin) y M (mtrico)

--Ejemplo 1: Definimos un objeto del tipo Punto con un simple par de coordenadasDECLARE @g geometry;SET @g = geometry::STGeomFromText('POINT (4 4)', 0);--Ejemplo 2: Definimos un objeto del tipo Punto con un par de coordenadas (4, 4), elevacion (5) y metrico (7.3)DECLARE @g geometry;SET @g = geometry::Parse('POINT(4 4 5 7.3)');--Ejemplo 3: Consultamos los valores finales del objetoSELECT @g.STX;SELECT @g.STY;SELECT @g.Z;SELECT @g.M;2. MultiPoint: Es una coleccin de cero o ms puntos

--Ejemplo 1: Declaracion de un objeto geografico MultiPunto con dos coordenadas, la segunda con valor de alturaDECLARE @g geometry;SET @g = geometry::STMPointFromText('MULTIPOINT((4 5), (6 9 2.5))', 23);--Ejemplo 2: El objeto STGeometryN() devuelve el valor de un puntoSELECT @g.STGeometryN(1).STAsText();3. LineString:Es un objeto de una dimensin que representa una secuencia de puntos, puede contener valores en Z y M

--Ejemplo: Instancia de LineString con tres puntosDECLARE @g geometry;SET @g = geometry::STGeomFromText('LINESTRING(2 2, 2 5, 5 7)', 0);4. MultiLineString: Es una coleccin de cero o mas instancias del tipo LineString

--Ejemplo: Coleccin de dos objetos del tipo LineStringDECLARE @g geometry;SET @g = geometry::Parse('MULTILINESTRING((0 1, 1 2), (1 3, 1 5))');5. Polygon: Es un objeto bidimesional almacenado como como una secuencia de puntos con un anillo exterior y ninguno, uno o varios interiores.

--Ejemplo: Definicion de un poligono con un hueco en el centroDECLARE @g geometry;SET @g = geometry::STPolyFromText('POLYGON((0 0, 0 4, 4 4, 4 0, 0 0), (1 1, 1 2, 2 1, 1 1))', 10);6. MultiPolygon: Es una instancia que incluye cero o mas polygonos.

--Ejemplo: Creacion de una instancia Multipoligono, consultando el WKT para el primer componente.DECLARE @g geometry;SET @g = geometry::Parse('MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((8 8, 8 10, 10 8, 8 8)))');SELECT @g.STGeometryN(2).STAsText();7. GeometryCollection: Coleccin de cero o mas instancias geomtricas o geogrficas.

--Ejemplo: Creacion de una coleccion geometrica que incluye un punto y un poligono con valores en ZDECLARE @g geometry;SET @g = geometry::STGeomCollFromText('GEOMETRYCOLLECTION(POINT(3 3 1), POLYGON((0 0 2, 1 10 3, 1 0 4, 0 0 2)))', 1);Continuamos con el soporte para datos espaciales de SQL Server. En laprimera partevimos una breve introduccin a los tiposgeometryygeography,en la que explicbamos cmo almacenar este tipo de informacin en nuestra base de datos y cmo llevar a cabo operaciones sencillas mediante las funciones espaciales que ofrece SQL Server. En esta segunda parte veremos cmo importar informacin geogrfica desde una fuente externa, centrndonos en los datos en formatoshapefile. Para llevar a cabo esto utilizaremos la herramienta gratuitaShape2SQL.

Fuentes de informacin espacial

En la Red existen multitud de empresas y organismos, tanto pblicos como privados, que ofrecen todo tipo de informacin geogrfica. La calidad de esta informacin vara mucho, pero en general no resulta complicado obtener datos fiables sobre ncleos urbanos, carreteras, ros, fronteras, etc. Si combinamos esta informacin con nuestros propios datos podemos obtener resultados muy interesantes como por ejemplo distribuciones geogrficas de ventas, seguimiento de envos, etc.

Algunos de los de organismos internacionales desde los que podemos descargar informacin espacial gratuita son por ejemplo la Organizacin de las Naciones Unidas (ONU) a travs de su portalGeo Data, o la Agencia Europea de Medio Ambiente (EEA) mediante suservicio de datos y mapas.

En el caso de Espaa, una de las principales fuentes es elInstituto Geogrfico Nacional (IGN). Se trata de un organismo pblico que, entre otras cosas, es el responsable de la elaboracin del Atlas Nacional de Espaa. El IGN ofrece un amplio catlogo de ficheros con informacin geogrfica actualizada que podemos descargar de manera gratuita para uso no comercial.

ESRI Shapefile

La informacin espacial que podemos encontrar en Internet se puede presentar en diferentes formatos: ficheros de texto, XML, KML, shapefile, etc.De todos ellos, el formatoshapefiledesarrollado por la empresaESRIes uno de los ms populares.Diseado originalmente para la aplicacinArc View GIS, se ha convertido en un estndar para el intercambio de informacin geogrfica. Se trata de un formato vectorial multiarchivo (incluye ficheros con extensiones: SHP, SHX, DBF y PRJ) en el que se definen puntos, lneas y polgonos. Esta informacin puede ser importada a una tabla de SQL Server como veremos a continuacin.

Importar datos con Shape2SQL

Shape2SQLes una excelente herramienta gratuita desarrollada por Morten Nielsen que nos permite importar directamente ficherosshapefilea SQL Server de manera sencilla. A continuacin veremos paso a paso cmo hacer esto.

Lo primero que haremos ser descargar la aplicacin Shape2SQL desde el siguienteenlace. El resultado de esta descarga ser un fichero ZIP con diferentes utilidades entre ellas Shape2SQL. Esta aplicacin no requiere instalacin, podremos ejecutarla directamente una vez descomprimido el fichero.

A continuacin descargaremos la informacin geogrfica que nos interese.Para ilustrar este artculo vamos a trabajar con labase cartogrfica nacional BCN200del IGN, disponible para su descarga gratuita para uso no comercial previo registro en su sitio Web. Los ficherosshapefilecorrespondientes se pueden obtener desde elcentro de descargasen el apartado "bsqueda avanzada" seleccionando como productoBCN200. En este ejemplo vamos a trabajar con los datos disponibles para la provincia de Cdiz.

El siguiente paso ser ejecutar la aplicacin Shape2SQL para realizar la importacin de datos. La primera vez que ejecutemos esta herramienta tendremos que indicar el servidor SQL Server 2008 y la base de datos en el que guardaremos la informacin espacial importada.

En la siguiente ventana indicaremos elshapefileque queremos importar, en nuestro caso ser el ficheroBCN200_0101S_LIM_ADM.shpcuyo contenido son los lmites administrativos de la provincia de Cdiz. En esta pantalla encontramos adems una serie de opciones entre las que destacan el nombre de la tabla, el nombre y tipo de columna espacial (en este caso sergeography) y el SRID que en en el caso del fichero BCN200 ser el correspondiente a ETRS89 (identificador 4258). Una vez completada esta informacin procederemos a la importacin pulsando el botn "Upload to Database".

Cuando finalice el proceso podremos comprobar que los datos se han cargado correctamente haciendo una sencilla consulta como la siguiente:

?1SELECT geog FROM limites_cadiz

Una vez ejecutada, si seleccionamos la pestaa "Resultados Espaciales" podremos ver la representacin de los datos espaciales importados del fichero shapefile.

Trabajandocon los datosimportados

Aparte delshapefilecon los lmites administrativos, el archivo ZIP que hemos descargado del IGN contiene otros ficheros con informacin relativa a carreteras, ncleos urbanos, etc. Estos ficheros pueden importarse del mismo modo que vimos en el apartado anterior, cada uno en su tabla correspondiente. Si importamos por ejemplo los datos correspondientes a poblaciones y carreteras podremos realizar consultas como la que se muestra a continuacin, cuyo resultado ser un mapa en el que se superponen las tres capas importadas (lmites administrativos, poblaciones y carreteras nacionales).

?1

2

3

4

5SELECT geog,etiqueta from limites_cadizUNION ALLSELECT geog,etiqueta from nucleos_urbanos_cadizUNION ALLSELECT geog,etiqueta from carreteras_nacionales_cadiz

La informacin que acabamos de importar tambin nos sirve para poner en prctica las funciones espaciales que vimos en el artculo anterior. As por ejemplo, si ejecutamos la siguiente consulta obtendremos el rea en kilmetros cuadrados de los diferentes trminos municipales de la provincia.

?1

2

3SELECT etiqueta, geog.STArea()/1000000 AS areaFROM limites_cadizORDER BY area DESC

http://fnunezsanchez.com/post/2011/12/02/Datos-espaciales-en-SQL-Server-parte-2-importar-datos.aspx